From 32d8de89e0e2ad63ed8fc625816c76e3b976e6ce Mon Sep 17 00:00:00 2001 From: jackmahoney Date: Sun, 16 Nov 2025 12:21:36 +1300 Subject: [PATCH 1/8] Add MailSlurp certified connector --- certified-connectors/MailSlurp/Readme.md | 104 + .../MailSlurp/apiDefinition.swagger.json | 36754 ++++++++++++++++ .../MailSlurp/apiProperties.json | 23 + 3 files changed, 36881 insertions(+) create mode 100644 certified-connectors/MailSlurp/Readme.md create mode 100644 certified-connectors/MailSlurp/apiDefinition.swagger.json create mode 100644 certified-connectors/MailSlurp/apiProperties.json diff --git a/certified-connectors/MailSlurp/Readme.md b/certified-connectors/MailSlurp/Readme.md new file mode 100644 index 0000000000..fc05282399 --- /dev/null +++ b/certified-connectors/MailSlurp/Readme.md @@ -0,0 +1,104 @@ +# MailSlurp Connector for Power Automate + +The MailSlurp connector brings powerful email and SMS testing capabilities directly into your Power Automate flows. It allows you to create inboxes, receive OTPs, read messages, and automate verification steps without writing code. This connector is ideal for QA teams, citizen developers, and enterprise automation builders who need to test workflows that depend on email or SMS delivery. + +> Get your free [API KEY here](https://app.mailslurp.com/) + +## What MailSlurp Provides + +MailSlurp is a hosted email and SMS API platform used by more than 100,000 developers and enterprise teams. It enables fully automated email and SMS interactions for testing, monitoring, onboarding, login flows, and business processes. + +## Key Features +Build, test, and automate SMS and email using MailSlurp's powerful connector features: + +### Create inboxes instantly +Generate real email inboxes on demand for any workflow. Perfect for sign-up flows, password resets, and account provisioning. + +### Automate OTP and verification tests +Receive emails or SMS messages, extract OTP codes, and feed them into your automated workflows without manual steps. + +### Wait for messages during a flow +Use wait operations to pause your flow until an email or SMS arrives. Great for testing multi-step verification. + +### Read and parse messages +Get subject, body, attachments, and metadata. MailSlurp can extract important values like tokens, links, or numeric codes. + +### Temporary or persistent inboxes +Use inboxes for short-lived test runs or create long-term inboxes for business processes. + +### Enterprise-grade reliability +Hosted on AWS across multiple regions with secure storage, rate limits, and high throughput. Supports API keys, audit logs, and compliance needs. + +## Why Power Automate Users Benefit + +Power Automate has limited built-in capabilities for handling dynamic email and SMS verification flows. MailSlurp fills this gap so that you can automate real world scenarios reliably. + +Perfect for: + - Testing and validating sign-up flows + - Verifying password reset functionality + - Simulating new user onboarding + - Automating internal QA and UAT processes + - Monitoring login flows using OTP codes + - Integrating with Power Apps, Dynamics, and SharePoint apps + - Building end-to-end RPA workflows that depend on email or SMS delivery + +## Benefits for Power Automate teams +MailSlurp will make your QA, testing, and automations faster and more reliable: + +### No more manual testing +Stop creating test accounts by hand. MailSlurp automates inbox creation and email/SMS retrieval. + +### Works without writing code +Everything is drag-and-drop. No JSON parsing or HTTP calls required. + +### Fast and scalable +Create thousands of inboxes and run parallel test flows. + +### Secure +Use Power Automate connections to store your API key securely. + +### Supports both email and SMS +Automate any verification channel your app uses. + +## Typical Use Cases +Here is how you can use MailSlurp today: + +### 1. Automated sign-up testing + - Create inbox + - Fill form with inbox address + - Wait for OTP + - Extract OTP + - Submit OTP + - Validate success + +### 2. Password reset scenarios + - Trigger reset + - Wait for reset email + - Parse reset token + - Follow reset link + - Assert outcome + +### 3. Compliance and monitoring + - Confirm transactional emails are being delivered + - Validate templates + - Ensure login flows are stable + +### 4. RPA and integration flows + - Integrate with internal apps that use email-based approval + - Test and automate customer onboarding paths + +## Getting Started + +To use this connector you will need: + + 1. A MailSlurp [account](https://app.mailslurp.com) + 2. An [API key](https://app.mailslurp.com) (stored securely in your connection settings) + 3. A flow that needs email or SMS automation + +The connector exposes actions to create inboxes, wait for emails or SMS messages, read message content, and manage inboxes. + +## Documentation + +Full API documentation is available at: [https://docs.mailslurp.com](https://docs.mailslurp.com) + +For advanced use cases, you can combine Power Automate with [MailSlurp SDKs](https://docs.mailslurp.com/sdks/) in C Sharp, Python, Java, or TypeScript. diff --git a/certified-connectors/MailSlurp/apiDefinition.swagger.json b/certified-connectors/MailSlurp/apiDefinition.swagger.json new file mode 100644 index 0000000000..1ee9957106 --- /dev/null +++ b/certified-connectors/MailSlurp/apiDefinition.swagger.json @@ -0,0 +1,36754 @@ +{ + "swagger": "2.0", + "info": { + "contact": { + "email": "contact@mailslurp.dev", + "url": "https://www.mailslurp.com/contact/" + }, + "description": "MailSlurp is an API for sending and receiving emails and SMS from dynamically allocated email addresses and phone numbers. It's designed for developers and QA teams to test applications, process inbound emails, send templated notifications, attachments, and more.\n\n## Resources\n\n- [Homepage](https://www.mailslurp.com)\n- Get an [API KEY](https://app.mailslurp.com/sign-up/)\n- Generated [SDK Clients](https://docs.mailslurp.com/)\n- [Examples](https://github.com/mailslurp/examples) repository", + "license": { + "name": "Apache 2.0", + "url": "https://www.mailslurp.com" + }, + "title": "MailSlurp API", + "version": "" + }, + "host": "api.mailslurp.com", + "basePath": "/", + "schemes": [ + "https" + ], + "paths": { + "/ai-transformers/{transformerId}/webhooks": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "transformerId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateWebhookOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WebhookDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get notified whenever AI transformation pipeline converts and email or SMS into structured data via a WebHook URL.", + "operationId": "createWebhookForAITransformer", + "summary": "Attach a WebHook URL to an AI transformer" + } + }, + "/ai/structured-content/attachment": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GenerateStructuredContentAttachmentOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/StructuredContentResultDto" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Use output schemas to extract data from an attachment using AI", + "operationId": "generateStructuredContentFromAttachment", + "summary": "Generate structured content for an attachment" + } + }, + "/ai/structured-content/email": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GenerateStructuredContentEmailOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/StructuredContentResultDto" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Use output schemas to extract data from an email using AI", + "operationId": "generateStructuredContentFromEmail", + "summary": "Generate structured content for an email" + } + }, + "/ai/structured-content/sms": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GenerateStructuredContentSmsOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/StructuredContentResultDto" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Use output schemas to extract data from an SMS using AI", + "operationId": "generateStructuredContentFromSms", + "summary": "Generate structured content for a TXT message" + } + }, + "/ai/structured-content/validate": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StructuredOutputSchema" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/StructuredOutputSchemaValidation" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Check if a schema is valid and can be used to extract data using AI", + "operationId": "validateStructuredOutputSchema", + "summary": "Validate structured content schema" + } + }, + "/ai/transformer": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "AIController" + ], + "description": "Delete all AI transformers and schemas", + "operationId": "deleteTransformers", + "summary": "Delete all transformers" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "collectionFormat": "multi", + "description": "Optional list of IDs to include in result", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "include", + "required": false, + "type": "array" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageAITransformProjection" + } + } + }, + "tags": [ + "AIController" + ], + "description": "List all AI transforms", + "operationId": "getTransformers", + "summary": "List transformers" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AITransformCreateOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AITransformDto" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Save an AI transform instructions and schema for use with webhooks and automations", + "operationId": "createTransformer", + "summary": "Create a transformer for reuse in automations" + } + }, + "/ai/transformer/invoke": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InvokeTransformerOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConditionalStructuredContentResult" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Execute an AI transformer to generate structured content", + "operationId": "invokeTransformer", + "summary": "Invoke a transformer" + } + }, + "/ai/transformer/mappings": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "AIController" + ], + "description": "Delete all AI transformer mappings", + "operationId": "deleteAllTransformerMappings", + "summary": "Delete all transformer mapping" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "aiTransformId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "entityId", + "required": false, + "type": "string" + }, + { + "enum": [ + "INBOX", + "PHONE" + ], + "in": "query", + "name": "entityType", + "required": false, + "type": "string" + }, + { + "default": 0, + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageAITransformMappingProjection" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Get AI transformer mappings to other entities", + "operationId": "getTransformerMappings", + "summary": "Get transformer mappings" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateAITransformerMappingOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AITransformMappingDto" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Create AI transformer mappings to other entities", + "operationId": "createTransformerMappings", + "summary": "Create transformer mapping" + } + }, + "/ai/transformer/mappings/{id}": { + "delete": { + "parameters": [ + { + "description": "ID of transform mapping", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "AIController" + ], + "description": "Delete an AI transformer mapping", + "operationId": "deleteTransformerMapping", + "summary": "Delete transformer mapping" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of transform mapping", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AITransformMappingDto" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Get an AI transformer mapping", + "operationId": "getTransformerMapping", + "summary": "Get transformer mapping" + } + }, + "/ai/transformer/mappings/{id}/match": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of transform mapping", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "smsId", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "attachmentId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AITransformMappingMatchResult" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Evaluate transform mapping match conditions for given email, sms, or attachment", + "operationId": "testTransformerMappingMatch", + "summary": "Test transformer mapping match result" + } + }, + "/ai/transformer/results": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "smsId", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "attachmentId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "aiTransformId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "aiTransformMappingId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "entityId", + "required": false, + "type": "string" + }, + { + "enum": [ + "INBOX", + "PHONE" + ], + "in": "query", + "name": "entityType", + "required": false, + "type": "string" + }, + { + "default": 0, + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageAITransformResultProjection" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Get AI transformer results", + "operationId": "getTransformerResults", + "summary": "Get transformer results" + } + }, + "/ai/transformer/results/export": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExportTransformerOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ExportTransformerResponse" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Export AI transformer results in formats such as Excel, CSV, XML etc.", + "operationId": "exportTransformerResults", + "summary": "Export transformer results" + } + }, + "/ai/transformer/results/export/{id}": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ExportTransformerResultJobDto" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Get the job status for an export", + "operationId": "getExportTransformerResultsJob", + "summary": "Get export transformer results job" + } + }, + "/ai/transformer/results/table": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "smsId", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "attachmentId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "aiTransformId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "aiTransformMappingId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "entityId", + "required": false, + "type": "string" + }, + { + "enum": [ + "INBOX", + "PHONE" + ], + "in": "query", + "name": "entityType", + "required": false, + "type": "string" + }, + { + "default": 0, + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "includeMetaData", + "required": true, + "type": "boolean" + }, + { + "in": "query", + "name": "flattenArraysToRows", + "required": true, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageTableData" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Get AI transformer results in table format", + "operationId": "getTransformerResultsTable", + "summary": "Get transformer results table" + } + }, + "/ai/transformer/results/{id}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of transform result", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AITransformResultDto" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Get AI transformer result", + "operationId": "getTransformerResult", + "summary": "Get transformer result" + } + }, + "/ai/transformer/{id}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "AIController" + ], + "description": "Delete an AI transformer and schemas by ID", + "operationId": "deleteTransformer", + "summary": "Delete a transformer" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AITransformDto" + } + } + }, + "tags": [ + "AIController" + ], + "description": "Get AI transformer and schemas by ID", + "operationId": "getTransformer", + "summary": "Get a transformer" + } + }, + "/aliases": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional search term", + "in": "query", + "name": "search", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in alias list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in alias list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageAlias" + } + } + }, + "tags": [ + "AliasController" + ], + "description": "Get all email aliases in paginated form", + "operationId": "getAliases", + "summary": "Get all email aliases you have created" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateAliasOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/AliasDto" + } + } + }, + "tags": [ + "AliasController" + ], + "description": "Email aliases use a MailSlurp randomly generated email address (or a custom domain inbox that you provide) to mask or proxy a real email address. Emails sent to the alias address will be forwarded to the hidden email address it was created for. If you want to send a reply use the threadId attached", + "operationId": "createAlias", + "summary": "Create an email alias. Must be verified by clicking link inside verification email that will be sent to the address. Once verified the alias will be active." + } + }, + "/aliases/threads": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in thread list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in thread list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by sent after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by sent before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageAliasThreadProjection" + } + } + }, + "tags": [ + "AliasController" + ], + "description": "Returns threads created for all aliases in paginated form", + "operationId": "getThreadsPaginated", + "summary": "Get all threads" + } + }, + "/aliases/threads/{threadId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "threadId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AliasThreadProjection" + } + } + }, + "tags": [ + "AliasController" + ], + "description": "Return a thread associated with an alias", + "operationId": "getThread", + "summary": "Get a thread" + } + }, + "/aliases/{aliasId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "aliasId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "AliasController" + ], + "operationId": "deleteAlias", + "summary": "Delete an email alias" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "aliasId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AliasDto" + } + } + }, + "tags": [ + "AliasController" + ], + "description": "Get an email alias by ID", + "operationId": "getAlias", + "summary": "Get an email alias" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "aliasId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateAliasOptions" + } + } + ], + "responses": { + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/AliasDto" + } + } + }, + "tags": [ + "AliasController" + ], + "operationId": "updateAlias", + "summary": "Update an email alias" + } + }, + "/aliases/{aliasId}/emails": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "aliasId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index alias email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size alias email list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by sent after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by sent before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailProjection" + } + } + }, + "tags": [ + "AliasController" + ], + "description": "Get paginated emails for an alias by ID", + "operationId": "getAliasEmails", + "summary": "Get emails for an alias" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "aliasId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentEmailDto" + } + } + }, + "tags": [ + "AliasController" + ], + "description": "Send an email from an alias. Replies to the email will be forwarded to the alias masked email address", + "operationId": "sendAliasEmail", + "summary": "Send an email from an alias inbox" + } + }, + "/aliases/{aliasId}/emails/{emailId}": { + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the alias that email belongs to", + "format": "uuid", + "in": "path", + "name": "aliasId", + "required": true, + "type": "string" + }, + { + "description": "ID of the email that should be replied to", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ReplyToAliasEmailOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentEmailDto" + } + } + }, + "tags": [ + "AliasController" + ], + "description": "Send the reply to the email sender or reply-to and include same subject cc bcc etc. Reply to an email and the contents will be sent with the existing subject to the emails `to`, `cc`, and `bcc`.", + "operationId": "replyToAliasEmail", + "summary": "Reply to an email" + } + }, + "/aliases/{aliasId}/threads": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "aliasId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in thread list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in thread list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by sent after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by sent before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageAliasThreadProjection" + } + } + }, + "tags": [ + "AliasController" + ], + "description": "Returns threads created for an email alias in paginated form", + "operationId": "getAliasThreads", + "summary": "Get threads created for an alias" + } + }, + "/attachments": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "AttachmentController" + ], + "description": "Delete all attachments", + "operationId": "deleteAllAttachments", + "summary": "Delete all attachments" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index for list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size for list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional file name and content type search filter", + "in": "query", + "name": "fileNameFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional inboxId to filter attachments by", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Optional emailId to filter attachments by", + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "description": "Optional sentEmailId to filter attachments by", + "format": "uuid", + "in": "query", + "name": "sentEmailId", + "required": false, + "type": "string" + }, + { + "collectionFormat": "multi", + "description": "Optional list of IDs to include in result", + "in": "query", + "items": { + "type": "string" + }, + "name": "include", + "required": false, + "type": "array" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageAttachmentEntity" + } + } + }, + "tags": [ + "AttachmentController" + ], + "description": "Get all attachments in paginated response. Each entity contains meta data for the attachment such as `name` and `content-type`. Use the `attachmentId` and the download endpoints to get the file contents.", + "operationId": "getAttachments", + "summary": "Get email attachments" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UploadAttachmentOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "tags": [ + "AttachmentController" + ], + "operationId": "uploadAttachment", + "summary": "Upload an attachment for sending using base64 file encoding. Returns an array whose first element is the ID of the uploaded attachment." + } + }, + "/attachments/bytes": { + "post": { + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "header", + "name": "contentType", + "required": false, + "type": "string" + }, + { + "description": "Optional contentType for file. For instance `application/pdf`", + "in": "query", + "name": "contentType", + "required": false, + "type": "string" + }, + { + "description": "Optional content ID (CID) to save upload with", + "in": "query", + "name": "contentId", + "required": false, + "type": "string" + }, + { + "description": "Optional filename to save upload with", + "in": "query", + "name": "filename", + "required": false, + "type": "string" + }, + { + "description": "Optional byte length to save upload with", + "format": "int64", + "in": "query", + "name": "fileSize", + "required": false, + "type": "integer" + }, + { + "in": "header", + "name": "filename", + "required": false, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "tags": [ + "AttachmentController" + ], + "operationId": "uploadAttachmentBytes", + "summary": "Upload an attachment for sending using file byte stream input octet stream. Returns an array whose first element is the ID of the uploaded attachment." + } + }, + "/attachments/multipart": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional content ID of attachment", + "in": "query", + "name": "contentId", + "required": false, + "type": "string" + }, + { + "description": "Optional content type of attachment", + "in": "query", + "name": "contentType", + "required": false, + "type": "string" + }, + { + "description": "Optional name of file", + "in": "query", + "name": "filename", + "required": false, + "type": "string" + }, + { + "description": "Optional content type header of attachment", + "in": "query", + "name": "contentTypeHeader", + "required": false, + "type": "string" + }, + { + "description": "Optional filename header of attachment", + "in": "query", + "name": "x-filename", + "required": false, + "type": "string" + }, + { + "description": "Optional raw filename header of attachment that will be converted to punycode", + "in": "query", + "name": "x-filename-raw", + "required": false, + "type": "string" + }, + { + "description": "Optional content size of attachment", + "format": "int64", + "in": "query", + "name": "x-filesize", + "required": false, + "type": "integer" + }, + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "file": { + "format": "binary", + "type": "string" + } + }, + "required": [ + "file" + ], + "type": "object" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "tags": [ + "AttachmentController" + ], + "operationId": "uploadMultipartForm", + "summary": "Upload an attachment for sending using a Multipart Form request. Returns an array whose first element is the ID of the uploaded attachment." + } + }, + "/attachments/{attachmentId}": { + "delete": { + "parameters": [ + { + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "AttachmentController" + ], + "description": "Delete an attachment", + "operationId": "deleteAttachment", + "summary": "Delete an attachment" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AttachmentEntityDto" + } + } + }, + "tags": [ + "AttachmentController" + ], + "operationId": "getAttachment", + "summary": "Get an attachment entity" + } + }, + "/attachments/{attachmentId}/base64": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DownloadAttachmentDto" + } + } + }, + "tags": [ + "AttachmentController" + ], + "description": "Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the `downloadAttachment` method but allows some clients to get around issues with binary responses.", + "operationId": "downloadAttachmentAsBase64Encoded", + "summary": "Get email attachment as base64 encoded string as alternative to binary responses. To read the content decode the Base64 encoded contents." + } + }, + "/attachments/{attachmentId}/bytes": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, + "type": "string" + } + ], + "responses": { + "default": { + "description": "default response", + "schema": { + "format": "byte", + "type": "string" + } + } + }, + "tags": [ + "AttachmentController" + ], + "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", + "operationId": "downloadAttachmentAsBytes", + "summary": "Download attachments. Get email attachment bytes. If you have trouble with byte responses try the `downloadAttachmentBase64` response endpoints." + } + }, + "/attachments/{attachmentId}/metadata": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AttachmentMetaData" + } + } + }, + "tags": [ + "AttachmentController" + ], + "description": "Returns the metadata for an attachment. It is saved separately to the content of the attachment. Contains properties `name` and `content-type` and `content-length` in bytes for a given attachment.", + "operationId": "getAttachmentInfo", + "summary": "Get email attachment metadata information" + } + }, + "/bounce/account-block": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AccountBounceBlockDto" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "Check if account block status prevents sending", + "operationId": "getAccountBounceBlockStatus", + "summary": "Can account send email" + } + }, + "/bounce/complaints": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index ", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size ", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageComplaint" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "SMTP complaints made against your account", + "operationId": "getComplaints", + "summary": "Get paginated list of complaints." + } + }, + "/bounce/complaints/{id}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the complaint", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Complaint" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "Get complaint", + "operationId": "getComplaint", + "summary": "Get complaint" + } + }, + "/bounce/emails": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size ", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageBouncedEmail" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "Bounced emails are email you have sent that were rejected by a recipient", + "operationId": "getBouncedEmails", + "summary": "Get paginated list of bounced emails." + } + }, + "/bounce/emails/{id}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the bounced email to fetch", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/BouncedEmailDto" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "Bounced emails are email you have sent that were rejected by a recipient", + "operationId": "getBouncedEmail", + "summary": "Get a bounced email." + } + }, + "/bounce/filter-recipients": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/FilterBouncedRecipientsOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FilterBouncedRecipientsResult" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "Prevent email sending errors by remove recipients who have resulted in past email bounces or complaints", + "operationId": "filterBouncedRecipient", + "summary": "Filter a list of email recipients and remove those who have bounced" + } + }, + "/bounce/list-unsubscribe-recipients": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size ", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by domainId", + "format": "uuid", + "in": "query", + "name": "domainId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageListUnsubscribeRecipients" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "Unsubscribed recipient have unsubscribed from a mailing list for a user or domain and cannot be contacted again.", + "operationId": "getListUnsubscribeRecipients", + "summary": "Get paginated list of unsubscribed recipients." + } + }, + "/bounce/recipients": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index ", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size ", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageBouncedRecipients" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "Bounced recipients are email addresses that you have sent emails to that did not accept the sent email. Once a recipient is bounced you cannot send emails to that address.", + "operationId": "getBouncedRecipients", + "summary": "Get paginated list of bounced recipients." + } + }, + "/bounce/recipients/{id}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the bounced recipient", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/BouncedRecipientDto" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "Bounced emails are email you have sent that were rejected by a recipient", + "operationId": "getBouncedRecipient", + "summary": "Get a bounced email." + } + }, + "/bounce/reputation-items": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "DESC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageReputationItems" + } + } + }, + "tags": [ + "BounceController" + ], + "description": "List of complaints and bounces", + "operationId": "getReputationItems", + "summary": "Get paginated list of reputation items." + } + }, + "/bulk/inboxes": { + "delete": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "BulkActionsController" + ], + "operationId": "bulkDeleteInboxes", + "summary": "Bulk Delete Inboxes" + }, + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Number of inboxes to be created in bulk", + "format": "int32", + "in": "query", + "name": "count", + "required": true, + "type": "integer" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "items": { + "$ref": "#/definitions/InboxDto" + }, + "type": "array" + } + } + }, + "tags": [ + "BulkActionsController" + ], + "operationId": "bulkCreateInboxes", + "summary": "Bulk create Inboxes (email addresses)" + } + }, + "/bulk/send": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BulkSendEmailOptions" + } + } + ], + "responses": { + "201": { + "description": "Created" + } + }, + "tags": [ + "BulkActionsController" + ], + "operationId": "bulkSendEmails", + "summary": "Bulk Send Emails" + } + }, + "/connectors": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "ConnectorController" + ], + "operationId": "deleteAllConnector", + "summary": "Delete all inbox connectors" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in connector list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in connector list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageConnector" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "List inbox connectors that sync external emails to MailSlurp inboxes", + "operationId": "getConnectors", + "summary": "Get inbox connectors" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inbox ID to associate with the connector", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ConnectorDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Sync emails between external mailboxes and MailSlurp inboxes", + "operationId": "createConnector", + "summary": "Create an inbox connector" + } + }, + "/connectors/by-email-address": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Email address to search for connector by", + "in": "query", + "name": "emailAddress", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OptionalConnectorDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Find an inbox connector by email address", + "operationId": "getConnectorByEmailAddress", + "summary": "Get connector by email address" + } + }, + "/connectors/by-inbox-id": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox ID to search for connector by", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OptionalConnectorDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Find an inbox connector by inbox ID", + "operationId": "getConnectorByInboxId", + "summary": "Get connector by inbox ID" + } + }, + "/connectors/by-name": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Name to search for connector by", + "in": "query", + "name": "name", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OptionalConnectorDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Find an inbox connector by name", + "operationId": "getConnectorByName", + "summary": "Get connector by name" + } + }, + "/connectors/connections/imap/test": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorImapConnectionOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorImapConnectionTestResult" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Test the IMAP connection options for a connector", + "operationId": "testConnectorImapConnectionOptions", + "summary": "Test an inbox connector IMAP connection options" + } + }, + "/connectors/connections/smtp/test": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorSmtpConnectionOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorSmtpConnectionTestResult" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Test the SMTP connection options for a connector", + "operationId": "testConnectorSmtpConnectionOptions", + "summary": "Test an inbox connector SMTP connection options" + } + }, + "/connectors/events": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional connector ID", + "format": "uuid", + "in": "query", + "name": "id", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in connector list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in connector list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter by event type", + "enum": [ + "SEND", + "SYNC" + ], + "in": "query", + "name": "eventType", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageConnectorEvents" + } + } + }, + "tags": [ + "ConnectorController" + ], + "operationId": "getAllConnectorEvents", + "summary": "Get all inbox connector events" + } + }, + "/connectors/events/{id}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorEventDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "operationId": "getConnectorEvent", + "summary": "Get an inbox connector event" + } + }, + "/connectors/provider-settings": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorProviderSettingsDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Get common mail provider SMTP and IMAP connection settings", + "operationId": "getConnectorProviderSettings", + "summary": "Get SMTP and IMAP connection settings for common mail providers" + } + }, + "/connectors/withOptions": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inbox ID to associate with the connector", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorWithOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ConnectorDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Sync emails between external mailboxes and MailSlurp inboxes", + "operationId": "createConnectorWithOptions", + "summary": "Create an inbox connector with options" + } + }, + "/connectors/{id}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "ConnectorController" + ], + "operationId": "deleteConnector", + "summary": "Delete an inbox connector" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "operationId": "getConnector", + "summary": "Get an inbox connector" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "operationId": "updateConnector", + "summary": "Update an inbox connector" + } + }, + "/connectors/{id}/events": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in connector list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in connector list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter by event type", + "enum": [ + "SEND", + "SYNC" + ], + "in": "query", + "name": "eventType", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageConnectorEvents" + } + } + }, + "tags": [ + "ConnectorController" + ], + "operationId": "getConnectorEvents", + "summary": "Get an inbox connector events" + } + }, + "/connectors/{id}/imap": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Delete IMAP connection for external inbox", + "operationId": "deleteConnectorImapConnection", + "summary": "Delete an inbox connector IMAP connection" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OptionalConnectorImapConnectionDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Get IMAP connection for external inbox", + "operationId": "getConnectorImapConnection", + "summary": "Get an inbox connector IMAP connection" + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorImapConnectionOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorImapConnectionDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Update IMAP connection for external inbox", + "operationId": "updateConnectorImapConnection", + "summary": "Update an inbox connector IMAP connection" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorImapConnectionOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ConnectorImapConnectionDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Allows the reading of emails in an external mailbox and syncing to a MailSlurp inbox", + "operationId": "createConnectorImapConnection", + "summary": "Create an inbox connector IMAP connection" + } + }, + "/connectors/{id}/imap/test": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/CreateConnectorImapConnectionOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorImapConnectionTestResult" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Test the IMAP connection for a connector", + "operationId": "testConnectorImapConnection", + "summary": "Test an inbox connector IMAP connection" + } + }, + "/connectors/{id}/send": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "useFallback", + "required": false, + "type": "boolean" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentEmailDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "operationId": "sendEmailFromConnector", + "summary": "Send from an inbox connector" + } + }, + "/connectors/{id}/smtp": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Delete SMTP connection for external inbox", + "operationId": "deleteConnectorSmtpConnection", + "summary": "Delete an inbox connector SMTP connection" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OptionalConnectorSmtpConnectionDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Get SMTP connection for external inbox", + "operationId": "getConnectorSmtpConnection", + "summary": "Get an inbox connector SMTP connection" + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorSmtpConnectionOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorSmtpConnectionDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Update SMTP connection for external inbox", + "operationId": "updateConnectorSmtpConnection", + "summary": "Update an inbox connector SMTP connection" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorSmtpConnectionOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ConnectorSmtpConnectionDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Allows sending via connector and email is routed to connected inbox and sent via SMTP", + "operationId": "createConnectorSmtpConnection", + "summary": "Create an inbox connector SMTP connection" + } + }, + "/connectors/{id}/smtp/test": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/CreateConnectorSmtpConnectionOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorSmtpConnectionTestResult" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Test the SMTP connection for a connector", + "operationId": "testConnectorSmtpConnection", + "summary": "Test an inbox connector SMTP connection" + } + }, + "/connectors/{id}/sync": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "description": "Date to request emails since", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Which folder to sync emails with", + "in": "query", + "name": "folder", + "required": false, + "type": "string" + }, + { + "description": "Enable or disable logging for the sync operation", + "in": "query", + "name": "logging", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConnectorSyncRequestResult" + } + } + }, + "tags": [ + "ConnectorController" + ], + "operationId": "syncConnector", + "summary": "Sync an inbox connector" + } + }, + "/connectors/{id}/sync-settings": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Configure automatic pull or emails from external inboxes using an interval or schedule", + "operationId": "deleteConnectorSyncSettings", + "summary": "Create an inbox connector sync settings" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OptionalConnectorSyncSettingsDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Get sync settings for connection with external inbox", + "operationId": "getConnectorSyncSettings", + "summary": "Get an inbox connector sync settings" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateConnectorSyncSettingsOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ConnectorSyncSettingsDto" + } + } + }, + "tags": [ + "ConnectorController" + ], + "description": "Configure automatic pull or emails from external inboxes using an interval or schedule", + "operationId": "createConnectorSyncSettings", + "summary": "Create an inbox connector sync settings" + } + }, + "/consent/opt-in": { + "delete": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Email address to revoke consent for", + "in": "query", + "name": "emailAddress", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OptInSendingConsentDto" + } + } + }, + "tags": [ + "ConsentController" + ], + "operationId": "revokeOptInConsentForEmailAddress" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageOptInIdentityProjection" + } + } + }, + "tags": [ + "ConsentController" + ], + "operationId": "getOptInIdentities" + } + }, + "/consent/opt-in/send": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OptInConsentOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OptInConsentSendResult" + } + } + }, + "tags": [ + "ConsentController" + ], + "description": "Send double-opt in consent for an email address", + "operationId": "sendOptInConsentForEmailAddress", + "summary": "Send a verification code to a user once they have explicitly submitted their email address" + } + }, + "/consent/opt-in/sending-consent": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Email address to check consent for", + "in": "query", + "name": "emailAddress", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OptInSendingConsentDto" + } + } + }, + "tags": [ + "ConsentController" + ], + "operationId": "checkSendingConsentForEmailAddress" + } + }, + "/contacts": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/ContactProjection" + }, + "type": "array" + } + } + }, + "tags": [ + "ContactController" + ], + "operationId": "getContacts", + "summary": "Get all contacts" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateContactOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ContactDto" + } + } + }, + "tags": [ + "ContactController" + ], + "operationId": "createContact", + "summary": "Create a contact" + } + }, + "/contacts/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Search terms", + "in": "query", + "name": "search", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageContactProjection" + } + } + }, + "tags": [ + "ContactController" + ], + "operationId": "getAllContacts", + "summary": "Get all contacts" + } + }, + "/contacts/{contactId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "contactId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "ContactController" + ], + "operationId": "deleteContact", + "summary": "Delete contact" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "contactId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ContactDto" + } + } + }, + "tags": [ + "ContactController" + ], + "operationId": "getContact", + "summary": "Get contact" + } + }, + "/contacts/{contactId}/download": { + "get": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "contactId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "ContactController" + ], + "deprecated": true, + "operationId": "getContactVCard", + "summary": "Get contact vCard vcf file" + } + }, + "/createInbox": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "name": "allowTeamAccess", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "useDomainPool", + "required": false, + "type": "boolean" + }, + { + "format": "date-time", + "in": "query", + "name": "expiresAt", + "required": false, + "type": "string" + }, + { + "format": "int64", + "in": "query", + "name": "expiresIn", + "required": false, + "type": "integer" + }, + { + "in": "query", + "name": "emailAddress", + "required": false, + "type": "string" + }, + { + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "in": "query", + "name": "inboxType", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "description", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "name", + "required": false, + "type": "string" + }, + { + "collectionFormat": "multi", + "in": "query", + "items": { + "type": "string" + }, + "name": "tags", + "required": false, + "type": "array" + }, + { + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "virtualInbox", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "useShortAddress", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "domainName", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "domainId", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "prefix", + "required": false, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "CommonActionsController" + ], + "description": "Returns an Inbox with an `id` and an `emailAddress`", + "operationId": "createRandomInbox", + "summary": "Create new random inbox" + } + }, + "/deleteEmailAddress": { + "delete": { + "parameters": [ + { + "description": "ID of inbox to delete", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "CommonActionsController" + ], + "description": "Deletes inbox email address", + "operationId": "deleteEmailAddress", + "summary": "Delete inbox email address by inbox id" + } + }, + "/domains": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/DomainPreview" + }, + "type": "array" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "List all custom domains you have created", + "operationId": "getDomains", + "summary": "Get domains" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateDomainOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/DomainDto" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "Link a domain that you own with MailSlurp so you can create email addresses using it. Endpoint returns DNS records used for validation. You must add these verification records to your host provider's DNS setup to verify the domain.", + "operationId": "createDomain", + "summary": "Create Domain" + } + }, + "/domains/available-domains": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "in": "query", + "name": "inboxType", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DomainGroupsDto" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "List all domains available for use with email address creation", + "operationId": "getAvailableDomains", + "summary": "Get all usable domains" + } + }, + "/domains/issues": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DomainIssuesDto" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "List domain issues for domains you have created", + "operationId": "getDomainIssues", + "summary": "Get domain issues" + } + }, + "/domains/mailslurp-domains": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "in": "query", + "name": "inboxType", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DomainGroupsDto" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "List all MailSlurp domains used with non-custom email addresses", + "operationId": "getMailSlurpDomains", + "summary": "Get MailSlurp domains" + } + }, + "/domains/{id}": { + "delete": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "Delete a domain. This will disable any existing inboxes that use this domain.", + "operationId": "deleteDomain", + "summary": "Delete a domain" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "checkForErrors", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DomainDto" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "Returns domain verification status and tokens for a given domain", + "operationId": "getDomain", + "summary": "Get a domain" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateDomainOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DomainDto" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "Update values on a domain. Note you cannot change the domain name as it is immutable. Recreate the domain if you need to alter this.", + "operationId": "updateDomain", + "summary": "Update a domain" + } + }, + "/domains/{id}/wildcard": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "Get the catch all inbox for a domain for missed emails", + "operationId": "getDomainWildcardCatchAllInbox", + "summary": "Get catch all wild card inbox for domain" + }, + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DomainDto" + } + } + }, + "tags": [ + "DomainController" + ], + "description": "Add a catch all inbox to a domain so that any emails sent to it that cannot be matched will be sent to the catch all inbox generated", + "operationId": "addDomainWildcardCatchAll", + "summary": "Add catch all wild card inbox to domain" + } + }, + "/email-verification": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "EmailVerificationController" + ], + "description": "Remove validation requests", + "operationId": "deleteAllValidationRequests", + "summary": "Delete all validation requests" + } + }, + "/email-verification/email-address-list": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ValidateEmailAddressListOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ValidateEmailAddressListResult" + } + } + }, + "tags": [ + "EmailVerificationController" + ], + "description": "Verify a list of email addresses is valid and can be contacted.", + "operationId": "validateEmailAddressList", + "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing." + } + }, + "/email-verification/validation-requests": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "maximum": 9223372036854776000, + "minimum": 0, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size for paginated result list.", + "format": "int32", + "in": "query", + "maximum": 100, + "minimum": 1, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "DESC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter where email is valid is true or false", + "in": "query", + "name": "isValid", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailValidationRequest" + } + } + }, + "tags": [ + "EmailVerificationController" + ], + "description": "List email verification requests", + "operationId": "getValidationRequests", + "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing." + } + }, + "/email-verification/{id}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "EmailVerificationController" + ], + "description": "Delete a validation record", + "operationId": "deleteValidationRequest", + "summary": "Delete a validation record" + } + }, + "/emails": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "EmailController" + ], + "description": "Deletes all emails in your account. Be careful as emails cannot be recovered", + "operationId": "deleteAllEmails", + "summary": "Delete all emails in all inboxes." + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "collectionFormat": "multi", + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "inboxId", + "required": false, + "type": "array" + }, + { + "default": 0, + "description": "Optional page index in email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails received after given date time. If unset will use time 24hours prior to now.", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Sync connectors", + "in": "query", + "name": "syncConnectors", + "required": false, + "type": "boolean" + }, + { + "description": "Optional plus address ID filter", + "format": "uuid", + "in": "query", + "name": "plusAddressId", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails that are favourited", + "in": "query", + "name": "favourited", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailProjection" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", + "operationId": "getEmailsPaginated", + "summary": "Get all emails in all inboxes in paginated form. Email API list all." + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Use domain pool. Optionally create inbox to send from using the mailslurp domain pool.", + "in": "query", + "name": "useDomainPool", + "required": false, + "type": "boolean" + }, + { + "description": "Optionally create inbox to send from that is a virtual inbox and won't send to external addresses", + "in": "query", + "name": "virtualSend", + "required": false, + "type": "boolean" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } + } + ], + "responses": { + "201": { + "description": "Created" + } + }, + "tags": [ + "EmailController" + ], + "description": "Alias for `InboxController.sendEmail` method - see original method for full details. Sends an email from a given inbox that you have created. If no inbox is supplied a random inbox will be created for you and used to send the email.", + "operationId": "sendEmailSourceOptional", + "summary": "Send email" + } + }, + "/emails/can-send": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CanSendEmailResults" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Can user send email to given recipient or is the recipient blocked", + "operationId": "canSend", + "summary": "Check if email can be sent and options are valid." + } + }, + "/emails/check-email-client-support": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckEmailClientSupportOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CheckEmailClientSupportResults" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Evaluate the features used in an email body and return a report of email client support across different platforms and versions.", + "operationId": "checkEmailClientSupport", + "summary": "Show which email programs and devices support the features used in an email body." + } + }, + "/emails/emails/count": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } + } + }, + "tags": [ + "EmailController" + ], + "operationId": "getEmailCount", + "summary": "Get email count" + } + }, + "/emails/gravatarFor": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "name": "emailAddress", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "size", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GravatarUrl" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get gravatar url for email address", + "operationId": "getGravatarUrlForEmailAddress" + } + }, + "/emails/latest": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "collectionFormat": "multi", + "description": "Optional set of inboxes to filter by. Only get the latest email from these inbox IDs. If not provided will search across all inboxes", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "inboxIds", + "required": false, + "type": "array" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Email" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get the newest email in all inboxes or in a passed set of inbox IDs", + "operationId": "getLatestEmail", + "summary": "Get latest email in all inboxes. Most recently received." + } + }, + "/emails/latestIn": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the inbox you want to get the latest email from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Email" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get the newest email in all inboxes or in a passed set of inbox IDs", + "operationId": "getLatestEmailInInbox_1", + "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not have arrived yet." + } + }, + "/emails/offset-paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "collectionFormat": "multi", + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "inboxId", + "required": false, + "type": "array" + }, + { + "default": 0, + "description": "Optional page index in email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails received after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails that are favourited", + "in": "query", + "name": "favourited", + "required": false, + "type": "boolean" + }, + { + "description": "Sync connectors", + "in": "query", + "name": "syncConnectors", + "required": false, + "type": "boolean" + }, + { + "description": "Optional plus address ID filter", + "format": "uuid", + "in": "query", + "name": "plusAddressId", + "required": false, + "type": "string" + }, + { + "collectionFormat": "multi", + "description": "Optional list of IDs to include in result", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "include", + "required": false, + "type": "array" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailProjection" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", + "operationId": "getEmailsOffsetPaginated", + "summary": "Get all emails in all inboxes in paginated form. Email API list all." + } + }, + "/emails/organization": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "collectionFormat": "multi", + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "inboxId", + "required": false, + "type": "array" + }, + { + "default": 0, + "description": "Optional page index in email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Optional search filter search filter for emails.", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails received after given date time. If unset will use time 24hours prior to now.", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Sync connectors", + "in": "query", + "name": "syncConnectors", + "required": false, + "type": "boolean" + }, + { + "description": "Search only favorited emails", + "in": "query", + "name": "favourited", + "required": false, + "type": "boolean" + }, + { + "description": "Optional plus address ID filter", + "format": "uuid", + "in": "query", + "name": "plusAddressId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailProjection" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "By default returns all emails across all team inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", + "operationId": "getOrganizationEmailsPaginated", + "summary": "Get all organization emails. List team or shared test email accounts" + } + }, + "/emails/read": { + "patch": { + "parameters": [ + { + "default": true, + "description": "What value to assign to email read property. Default true.", + "in": "query", + "name": "read", + "required": false, + "type": "boolean" + }, + { + "description": "Optional inbox ID filter", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "EmailController" + ], + "description": "Marks all emails as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread", + "operationId": "markAllAsRead", + "summary": "Mark all emails as read or unread" + } + }, + "/emails/search": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Sync connectors", + "in": "query", + "name": "syncConnectors", + "required": false, + "type": "boolean" + }, + { + "description": "Search only favourited emails", + "in": "query", + "name": "favourited", + "required": false, + "type": "boolean" + }, + { + "description": "Optional plus address ID filter", + "format": "uuid", + "in": "query", + "name": "plusAddressId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SearchEmailsOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailProjection" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Search emails by given criteria return matches in paginated format. Searches against email recipients, sender, subject, email address and ID. Does not search email body", + "operationId": "searchEmails", + "summary": "Get all emails by search criteria. Return in paginated form." + } + }, + "/emails/threads": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inbox filter", + "format": "uuid", + "in": "query", + "name": "htmlSelector", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in email thread pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in email thread pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter search filter for email threads.", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter email threads created since time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails threads created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailThreadProjection" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Return email message chains built from Message-ID, In-Reply-To, and References header.", + "operationId": "getEmailThreads", + "summary": "Return email threads in paginated form" + } + }, + "/emails/threads/{threadId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "threadId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailThreadDto" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Return email message thread summary from Message-ID, In-Reply-To, and References header. Get messages using items endpoint", + "operationId": "getEmailThread", + "summary": "Return email thread information. Use items endpoints to get messages for thread." + } + }, + "/emails/threads/{threadId}/items": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "threadId", + "required": true, + "type": "string" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailThreadItemsDto" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Return email thread messages based on Message-ID, In-Reply-To, and References header", + "operationId": "getEmailThreadItems", + "summary": "Return email thread items." + } + }, + "/emails/unreadCount": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inbox ID filter", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/UnreadCount" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get number of emails unread. Unread means has not been viewed in dashboard or returned in an email API response", + "operationId": "getUnreadEmailCount", + "summary": "Get unread email count" + } + }, + "/emails/{emailId}": { + "delete": { + "parameters": [ + { + "description": "ID of email to delete", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "EmailController" + ], + "description": "Deletes an email and removes it from the inbox. Deleted emails cannot be recovered.", + "operationId": "deleteEmail", + "summary": "Delete an email" + }, + "get": { + "produces": [ + "application/json;charset=UTF-8", + "application/xml;charset=UTF-8", + "application/json; charset=UTF-8", + "application/xml; charset=UTF-8" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Email" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns a email summary object with headers and content. To retrieve the raw unparsed email use the getRawEmail endpoints", + "operationId": "getEmail", + "summary": "Get email content including headers and body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController." + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the email that should be replied to", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ReplyToEmailOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentEmailDto" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Send the reply to the email sender or reply-to and include same subject cc bcc etc. Reply to an email and the contents will be sent with the existing subject to the emails `to`, `cc`, and `bcc`.", + "operationId": "replyToEmail", + "summary": "Reply to an email" + } + }, + "/emails/{emailId}/attachments": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/AttachmentMetaData" + }, + "type": "array" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns an array of attachment metadata such as name and content-type for a given email if present.", + "operationId": "getEmailAttachments", + "summary": "Get all email attachment metadata. Metadata includes name and size of attachments." + } + }, + "/emails/{emailId}/attachments/{attachmentId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, + "type": "string" + }, + { + "description": "Can pass apiKey in url for this request if you wish to download the file in a browser. Content type will be set to original content type of the attachment file. This is so that browsers can download the file correctly.", + "in": "query", + "name": "apiKey", + "required": false, + "type": "string" + } + ], + "responses": { + "default": { + "description": "default response", + "schema": { + "format": "byte", + "type": "string" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", + "operationId": "downloadAttachment", + "summary": "Get email attachment bytes. Returned as `octet-stream` with content type header. If you have trouble with byte responses try the `downloadAttachmentBase64` response endpoints and convert the base 64 encoded content to a file or string." + } + }, + "/emails/{emailId}/attachments/{attachmentId}/base64": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DownloadAttachmentDto" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the `downloadAttachment` method but allows some clients to get around issues with binary responses.", + "operationId": "downloadAttachmentBase64", + "summary": "Get email attachment as base64 encoded string as an alternative to binary responses. Decode the `base64FileContents` as a `utf-8` encoded string or array of bytes depending on the `contentType`." + } + }, + "/emails/{emailId}/attachments/{attachmentId}/metadata": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AttachmentMetaData" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns the metadata such as name and content-type for a given attachment and email.", + "operationId": "getAttachmentMetaData", + "summary": "Get email attachment metadata. This is the `contentType` and `contentLength` of an attachment. To get the individual attachments use the `downloadAttachment` methods." + } + }, + "/emails/{emailId}/body": { + "get": { + "produces": [ + "text/plain", + "text/html" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns the specified email body for a given email as a string", + "operationId": "downloadBody", + "summary": "Get email body as string. Returned as `plain/text` with content type header." + } + }, + "/emails/{emailId}/body-bytes": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "default": { + "description": "default response", + "schema": { + "format": "byte", + "type": "string" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns the specified email body for a given email as a stream / array of bytes.", + "operationId": "downloadBodyBytes", + "summary": "Get email body in bytes. Returned as `octet-stream` with content type header." + } + }, + "/emails/{emailId}/check-email-body": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CheckEmailBodyResults" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Find dead links, broken images, and spelling mistakes in email body. Will call included links via HTTP so do not invoke if your links are sensitive or stateful. Any resource that returns a 4xx or 5xx response or is not reachable via HEAD or GET HTTP operations will be considered unhealthy.", + "operationId": "checkEmailBody", + "summary": "Detect broken links, spelling, and images in email content" + } + }, + "/emails/{emailId}/check-email-body-feature-support": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CheckEmailBodyFeatureSupportResults" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Detect HTML and CSS features inside an email body and return a report of email client support across different platforms and versions.", + "operationId": "checkEmailBodyFeatureSupport", + "summary": "Show which mail clients support the HTML and CSS features used in an email body." + } + }, + "/emails/{emailId}/contentMatch": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email to match against", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ContentMatchOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailContentMatchResult" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Return the matches for a given Java style regex pattern. Do not include the typical `/` at start or end of regex in some languages. Given an example `your code is: 12345` the pattern to extract match looks like `code is: (\\d{6})`. This will return an array of matches with the first matching the entire pattern and the subsequent matching the groups: `['code is: 123456', '123456']` See https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html for more information of available patterns. ", + "operationId": "getEmailContentMatch", + "summary": "Get email content regex pattern match results. Runs regex against email body and returns match groups." + } + }, + "/emails/{emailId}/contentPart": { + "get": { + "produces": [ + "application/json;charset=UTF-8", + "application/xml;charset=UTF-8", + "application/json; charset=UTF-8", + "application/xml; charset=UTF-8" + ], + "parameters": [ + { + "description": "ID of email to match against", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "Content type", + "in": "query", + "name": "contentType", + "required": true, + "type": "string" + }, + { + "description": "Strict content type match", + "in": "query", + "name": "strict", + "required": false, + "type": "boolean" + }, + { + "description": "Index of content type part if multiple", + "format": "int32", + "in": "query", + "name": "index", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailContentPartResult" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get email body content parts from a multipart email message for a given content type", + "operationId": "getEmailContentPart", + "summary": "Get email content part by content type" + } + }, + "/emails/{emailId}/contentPart/raw": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email to match against", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "Content type", + "in": "query", + "name": "contentType", + "required": true, + "type": "string" + }, + { + "description": "Strict content type match", + "in": "query", + "name": "strict", + "required": false, + "type": "boolean" + }, + { + "description": "Index of content type part if multiple. Starts from 0 and applies to the result list after selecting for your content type. Content type parts are sorted by order found in original MIME message.", + "format": "int32", + "in": "query", + "name": "index", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get email body content parts from a multipart email message for a given content type and return as response", + "operationId": "getEmailContentPartContent", + "summary": "Get email content part by content type raw response" + } + }, + "/emails/{emailId}/favourite": { + "put": { + "parameters": [ + { + "description": "ID of email to set favourite state", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "favourited", + "required": true, + "type": "boolean" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "EmailController" + ], + "description": "Set and return new favorite state for an email", + "operationId": "setEmailFavourited", + "summary": "Set email favourited state" + } + }, + "/emails/{emailId}/forward": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ForwardEmailOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/SentEmailDto" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Forward an existing email to new recipients. The sender of the email will be the inbox that received the email you are forwarding. You can override the sender with the `from` option. Note you must have access to the from address in MailSlurp to use the override. For more control consider fetching the email and sending it a new using the send email endpoints.", + "operationId": "forwardEmail", + "summary": "Forward email to recipients" + } + }, + "/emails/{emailId}/html": { + "get": { + "produces": [ + "text/html;charset=utf-8", + "text/html" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "replaceCidImages", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Retrieve email content as HTML response for viewing in browsers. Decodes quoted-printable entities and converts charset to UTF-8. Pass your API KEY as a request parameter when viewing in a browser: `?apiKey=xxx`. Returns content-type `text/html;charset=utf-8` so you must call expecting that content response not JSON. For JSON response see the `getEmailHTMLJson` method.", + "operationId": "getEmailHTML", + "summary": "Get email content as HTML. For displaying emails in browser context." + } + }, + "/emails/{emailId}/html/json": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "replaceCidImages", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailHtmlDto" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Retrieve email content as HTML response. Decodes quoted-printable entities and converts charset to UTF-8. Returns content-type `application/json;charset=utf-8` so you must call expecting that content response not JSON.", + "operationId": "getEmailHTMLJson", + "summary": "Get email content as HTML in JSON wrapper. For fetching entity decoded HTML content" + } + }, + "/emails/{emailId}/htmlQuery": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email to perform HTML query on", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "HTML selector to search for. Uses JQuery/JSoup/CSS style selector like '.my-div' to match content. See https://jsoup.org/apidocs/org/jsoup/select/Selector.html for more information.", + "in": "query", + "name": "htmlSelector", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailTextLinesResult" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Parse an email body and return the content as an array of text. HTML parsing uses JSoup which supports JQuery/CSS style selectors", + "operationId": "getEmailHTMLQuery", + "summary": "Parse and return text from an email, stripping HTML and decoding encoded characters" + } + }, + "/emails/{emailId}/imap-flag-operation": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ImapFlagOperationOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailPreview" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Apply RFC3501 section-2.3.2 IMAP flag operations on an email", + "operationId": "applyImapFlagOperation", + "summary": "Set IMAP flags associated with a message. Only supports '\\Seen' flag." + } + }, + "/emails/{emailId}/links": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email to fetch text for", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "Optional HTML query selector for links", + "in": "query", + "name": "selector", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailLinksResult" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "HTML parsing uses JSoup and UNIX line separators. Searches content for href attributes", + "operationId": "getEmailLinks", + "summary": "Parse and return list of links found in an email (only works for HTML content)" + } + }, + "/emails/{emailId}/raw": { + "get": { + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns a raw, unparsed, and unprocessed email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawEmailJson endpoint", + "operationId": "getRawEmailContents", + "summary": "Get raw email string. Returns unparsed raw SMTP message with headers and body." + } + }, + "/emails/{emailId}/raw/json": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RawEmailJson" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns a raw, unparsed, and unprocessed email wrapped in a JSON response object for easier handling when compared with the getRawEmail text/plain response", + "operationId": "getRawEmailJson", + "summary": "Get raw email in JSON. Unparsed SMTP message in JSON wrapper format." + } + }, + "/emails/{emailId}/read": { + "patch": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "default": true, + "description": "What value to assign to email read property. Default true.", + "in": "query", + "name": "read", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailPreview" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Marks an email as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread", + "operationId": "markAsRead", + "summary": "Mark an email as read or unread" + } + }, + "/emails/{emailId}/screenshot/base64": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GetEmailScreenshotOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailScreenshotResult" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Capture image of email screenshot and return as base64 encoded string. Useful for embedding in HTML. Be careful as this may contain sensitive information.", + "operationId": "getEmailScreenshotAsBase64", + "summary": "Take a screenshot of an email in a browser and return base64 encoded string" + } + }, + "/emails/{emailId}/screenshot/binary": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GetEmailScreenshotOptions" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns binary octet-stream of screenshot of the given email", + "operationId": "getEmailScreenshotAsBinary", + "summary": "Take a screenshot of an email in a browser" + } + }, + "/emails/{emailId}/summary": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "decode", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailPreview" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns a email summary object with headers. To retrieve the body see getEmail and to get raw unparsed email use the getRawEmail endpoints", + "operationId": "getEmailSummary", + "summary": "Get email data including headers but not body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController." + } + }, + "/emails/{emailId}/textLines": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email to fetch text for", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "Decode HTML entities", + "in": "query", + "name": "decodeHtmlEntities", + "required": false, + "type": "boolean" + }, + { + "description": "Line separator character", + "in": "query", + "name": "lineSeparator", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailTextLinesResult" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Parse an email body and return the content as an array of strings. HTML parsing uses JSoup and UNIX line separators.", + "operationId": "getEmailTextLines", + "summary": "Parse and return text from an email, stripping HTML and decoding encoded characters" + } + }, + "/emails/{emailId}/urls": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailPreviewUrls" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get a list of URLs for email content as text/html or raw SMTP message for viewing the message in a browser.", + "operationId": "getEmailPreviewURLs", + "summary": "Get email URLs for viewing in browser or downloading" + } + }, + "/emails/{emailId}/validate": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ValidationDto" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Validate the HTML content of email if HTML is found. Considered valid if no HTML is present.", + "operationId": "validateEmail", + "summary": "Validate email HTML contents" + } + }, + "/emptyInbox": { + "delete": { + "parameters": [ + { + "description": "ID of inbox to empty", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "CommonActionsController" + ], + "description": "Deletes all emails", + "operationId": "emptyInbox", + "summary": "Delete all emails in an inbox" + } + }, + "/expired": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optionally filter by inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageExpiredInboxRecordProjection" + } + } + }, + "tags": [ + "ExpiredController" + ], + "description": "Inboxes created with an expiration date will expire after the given date. An ExpiredInboxRecord is created that records the inboxes old ID and email address. You can still read emails in the inbox (using the inboxes old ID) but the email address associated with the inbox can no longer send or receive emails. Fetch expired inbox records to view the old inboxes properties", + "operationId": "getExpiredInboxes", + "summary": "List records of expired inboxes" + } + }, + "/expired/defaults": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ExpirationDefaults" + } + } + }, + "tags": [ + "ExpiredController" + ], + "description": "Return default times used for inbox expiration", + "operationId": "getExpirationDefaults", + "summary": "Get default expiration settings" + } + }, + "/expired/inbox/{inboxId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox you want to retrieve (not the inbox ID)", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ExpiredInboxDto" + } + } + }, + "tags": [ + "ExpiredController" + ], + "description": "Use the inboxId to return an ExpiredInboxRecord if an inbox has expired. Inboxes expire and are disabled if an expiration date is set or plan requires. Returns 404 if no expired inbox is found for the inboxId", + "operationId": "getExpiredInboxByInboxId", + "summary": "Get expired inbox record for a previously existing inbox" + } + }, + "/expired/{expiredId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the ExpiredInboxRecord you want to retrieve. This is different from the ID of the inbox you are interested in. See other methods for getting ExpiredInboxRecord for an inbox inboxId", + "format": "uuid", + "in": "path", + "name": "expiredId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ExpiredInboxDto" + } + } + }, + "tags": [ + "ExpiredController" + ], + "description": "Inboxes created with an expiration date will expire after the given date and be moved to an ExpiredInbox entity. You can still read emails in the inbox but it can no longer send or receive emails. Fetch the expired inboxes to view the old inboxes properties", + "operationId": "getExpiredInboxRecord", + "summary": "Get an expired inbox record" + } + }, + "/export": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "enum": [ + "INBOXES", + "CONTACTS", + "ATTACHMENTS", + "EMAILS" + ], + "in": "query", + "name": "exportType", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "apiKey", + "required": true, + "type": "string" + }, + { + "enum": [ + "CSV_DEFAULT", + "CSV_EXCEL" + ], + "in": "query", + "name": "outputFormat", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "filter", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "listSeparatorToken", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "excludePreviouslyExported", + "required": false, + "type": "boolean" + }, + { + "format": "date-time", + "in": "query", + "name": "createdEarliestTime", + "required": false, + "type": "string" + }, + { + "format": "date-time", + "in": "query", + "name": "createdOldestTime", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "format": "byte", + "type": "string" + } + } + }, + "tags": [ + "ExportController" + ], + "operationId": "exportEntities", + "summary": "Export inboxes link callable via browser" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "enum": [ + "INBOXES", + "CONTACTS", + "ATTACHMENTS", + "EMAILS" + ], + "in": "query", + "name": "exportType", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "apiKey", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExportOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ExportLink" + } + } + }, + "tags": [ + "ExportController" + ], + "operationId": "getExportLink", + "summary": "Get export link" + } + }, + "/forms": { + "post": { + "consumes": [ + "application/x-www-form-urlencoded", + "multipart/form-data" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "The email address that submitted form should be sent to.", + "in": "formData", + "name": "_to", + "type": "string" + }, + { + "description": "Optional subject of the email that will be sent.", + "in": "formData", + "name": "_subject", + "type": "string" + }, + { + "description": "Email address of the submitting user. Include this if you wish to record the submitters email address and reply to it later.", + "in": "formData", + "name": "_emailAddress", + "type": "string" + }, + { + "description": "Optional success message to display if no _redirectTo present.", + "in": "formData", + "name": "_successMessage", + "type": "string" + }, + { + "description": "Optional but recommended field that catches spammers out. Include as a hidden form field but LEAVE EMPTY. Spam-bots will usually fill every field. If the _spamCheck field is filled the form submission will be ignored.", + "in": "formData", + "name": "_spamCheck", + "type": "string" + }, + { + "description": "All other parameters or fields will be accepted and attached to the sent email. This includes files and any HTML form field with a name. These fields will become the body of the email that is sent.", + "in": "formData", + "name": "otherParameters", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "tags": [ + "FormController" + ], + "description": "This endpoint allows you to submit HTML forms and receive the field values and files via email. \n\n#### Parameters\nThe endpoint looks for special meta parameters in the form fields OR in the URL request parameters. The meta parameters can be used to specify the behaviour of the email. \n\nYou must provide at-least a `_to` email address to tell the endpoint where the form should be emailed. These can be submitted as hidden HTML input fields with the corresponding `name` attributes or as URL query parameters such as `?_to=test@example.com`\n\nThe endpoint takes all other form fields that are named and includes them in the message body of the email. Files are sent as attachments.\n\n#### Submitting\nThis endpoint accepts form submission via POST method. It accepts `application/x-www-form-urlencoded`, and `multipart/form-data` content-types.\n\n#### HTML Example\n```html\n
\n \n \n \n
\n```\n\n#### URL Example\n```html\n
\n \n \n
\n```\n\n\n\nThe email address is specified by a `_to` field OR is extracted from an email alias specified by a `_toAlias` field (see the alias controller for more information). \nEndpoint accepts . \nYou can specify a content type in HTML forms using the `enctype` attribute, for instance: `
`.\n\n", + "operationId": "submitForm", + "summary": "Submit a form to be parsed and sent as an email to an address determined by the form fields" + } + }, + "/forwarders": { + "delete": { + "parameters": [ + { + "description": "Optional inbox id to attach forwarder to", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Delete inbox forwarders. Accepts optional inboxId filter.", + "operationId": "deleteInboxForwarders", + "summary": "Delete inbox forwarders" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inbox id to get forwarders from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox forwarder list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox forwarder list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxForwarderDto" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "List all forwarders attached to an inbox", + "operationId": "getInboxForwarders", + "summary": "List inbox forwarders" + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TestNewInboxForwarderOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxForwarderTestResult" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Test new inbox forwarder", + "operationId": "testNewInboxForwarder", + "summary": "Test new inbox forwarder" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox id to attach forwarder to", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateInboxForwarderOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxForwarderDto" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Create a new inbox rule for forwarding, blocking, and allowing emails when sending and receiving", + "operationId": "createNewInboxForwarder", + "summary": "Create an inbox forwarder" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InboxForwarderTestOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxForwarderTestResult" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Test inbox forwarders for inbox", + "operationId": "testInboxForwardersForInbox", + "summary": "Test inbox forwarders for inbox" + } + }, + "/forwarders/events": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in inbox forwarder event list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox forwarder event list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "description": "Optional inbox ID to filter for", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Optional email ID to filter for", + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "description": "Optional sent ID to filter for", + "format": "uuid", + "in": "query", + "name": "sentId", + "required": false, + "type": "string" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxForwarderEvents" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Get all inbox forwarder events", + "operationId": "getAllInboxForwarderEvents", + "summary": "Get all inbox forwarder events" + } + }, + "/forwarders/events/{eventId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox forwarder event", + "format": "uuid", + "in": "path", + "name": "eventId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxForwarderEventDto" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Get forwarder event", + "operationId": "getForwarderEvent", + "summary": "Get a forwarder event" + } + }, + "/forwarders/{id}": { + "delete": { + "parameters": [ + { + "description": "ID of inbox forwarder", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Delete inbox forwarder", + "operationId": "deleteInboxForwarder", + "summary": "Delete an inbox forwarder" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox forwarder", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxForwarderDto" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Get inbox forwarder", + "operationId": "getInboxForwarder", + "summary": "Get an inbox forwarder" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox forwarder", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateInboxForwarderOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxForwarderDto" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Update inbox forwarder", + "operationId": "updateInboxForwarder", + "summary": "Update an inbox forwarder" + } + }, + "/forwarders/{id}/events": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox forwarder", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox forwarder event list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox forwarder event list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxForwarderEvents" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Get inbox forwarder events", + "operationId": "getInboxForwarderEvents", + "summary": "Get an inbox forwarder event list" + } + }, + "/forwarders/{id}/events/{eventId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox forwarder", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "description": "ID of inbox forwarder event", + "format": "uuid", + "in": "path", + "name": "eventId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxForwarderEventDto" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Get inbox forwarder event", + "operationId": "getInboxForwarderEvent", + "summary": "Get an inbox forwarder event" + } + }, + "/forwarders/{id}/test": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox forwarder", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InboxForwarderTestOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxForwarderTestResult" + } + } + }, + "tags": [ + "InboxForwarderController" + ], + "description": "Test an inbox forwarder", + "operationId": "testInboxForwarder", + "summary": "Test an inbox forwarder" + } + }, + "/groups": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/GroupProjection" + }, + "type": "array" + } + } + }, + "tags": [ + "GroupController" + ], + "operationId": "getGroups", + "summary": "Get all groups" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateGroupOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/GroupDto" + } + } + }, + "tags": [ + "GroupController" + ], + "operationId": "createGroup", + "summary": "Create a group" + } + }, + "/groups/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageGroupProjection" + } + } + }, + "tags": [ + "GroupController" + ], + "operationId": "getAllGroups", + "summary": "Get all Contact Groups in paginated format" + } + }, + "/groups/{groupId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "groupId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "GroupController" + ], + "operationId": "deleteGroup", + "summary": "Delete group" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "groupId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GroupDto" + } + } + }, + "tags": [ + "GroupController" + ], + "operationId": "getGroup", + "summary": "Get group" + } + }, + "/groups/{groupId}/contacts": { + "delete": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "groupId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateGroupContacts" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GroupContactsDto" + } + } + }, + "tags": [ + "GroupController" + ], + "operationId": "removeContactsFromGroup", + "summary": "Remove contacts from a group" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "groupId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GroupContactsDto" + } + } + }, + "tags": [ + "GroupController" + ], + "operationId": "getGroupWithContacts", + "summary": "Get group and contacts belonging to it" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "groupId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateGroupContacts" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GroupContactsDto" + } + } + }, + "tags": [ + "GroupController" + ], + "operationId": "addContactsToGroup", + "summary": "Add contacts to a group" + } + }, + "/groups/{groupId}/contacts-paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "groupId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in group contact pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in group contact pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageContactProjection" + } + } + }, + "tags": [ + "GroupController" + ], + "description": "Get group and paginated contacts belonging to it", + "operationId": "getGroupWithContactsPaginated" + } + }, + "/guest-portal": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/GuestPortalDto" + }, + "type": "array" + } + } + }, + "tags": [ + "GuestPortalController" + ], + "description": "Get portals", + "operationId": "getGuestPortals", + "summary": "Get guest portals" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreatePortalOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GuestPortalDto" + } + } + }, + "tags": [ + "GuestPortalController" + ], + "description": "Create a guest login page for customers or clients to access assigned email addresses", + "operationId": "createGuestPortal", + "summary": "Create a portal page for your customers or clients to log into email accounts and view emails." + } + }, + "/guest-portal/user": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional portal ID", + "format": "uuid", + "in": "query", + "name": "portalId", + "required": false, + "type": "string" + }, + { + "description": "Optional search term", + "in": "query", + "name": "search", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageGuestPortalUsers" + } + } + }, + "tags": [ + "GuestPortalController" + ], + "description": "Get all customers for a portal", + "operationId": "getAllGuestPortalUsers", + "summary": "Get all guest users for portal" + } + }, + "/guest-portal/user/{guestId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "guestId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GuestPortalUserDto" + } + } + }, + "tags": [ + "GuestPortalController" + ], + "description": "Get customer by ID", + "operationId": "getGuestPortalUserById", + "summary": "Get guest user" + } + }, + "/guest-portal/{portalId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "portalId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GuestPortalDto" + } + } + }, + "tags": [ + "GuestPortalController" + ], + "description": "Fetch a customer guest portal", + "operationId": "getGuestPortal", + "summary": "Get a client email portal" + } + }, + "/guest-portal/{portalId}/user": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "portalId", + "required": true, + "type": "string" + }, + { + "description": "Optional search term", + "in": "query", + "name": "search", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageGuestPortalUsers" + } + } + }, + "tags": [ + "GuestPortalController" + ], + "description": "Get customers for a portal", + "operationId": "getGuestPortalUsers", + "summary": "Get all guest users for portal" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "portalId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreatePortalUserOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GuestPortalUserCreateDto" + } + } + }, + "tags": [ + "GuestPortalController" + ], + "description": "Add customer to portal", + "operationId": "createGuestPortalUser", + "summary": "Create a portal guest user" + } + }, + "/guest-portal/{portalId}/user/{guestId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "portalId", + "required": true, + "type": "string" + }, + { + "format": "uuid", + "in": "path", + "name": "guestId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GuestPortalUserDto" + } + } + }, + "tags": [ + "GuestPortalController" + ], + "description": "Get customer for portal", + "operationId": "getGuestPortalUser", + "summary": "Get guest user for portal" + } + }, + "/imap/server/fetch": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox ID to search", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "format": "int64", + "in": "query", + "name": "seqNum", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ImapServerFetchResult" + } + } + }, + "tags": [ + "ImapController" + ], + "operationId": "imapServerFetch", + "summary": "Fetch message in an inbox" + } + }, + "/imap/server/get": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Email ID to get", + "format": "uuid", + "in": "query", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "Inbox ID to search", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ImapServerGetResult" + } + } + }, + "tags": [ + "ImapController" + ], + "operationId": "imapServerGet", + "summary": "Get a message by email ID" + } + }, + "/imap/server/list": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox ID to list", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ImapServerListOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ImapServerListResult" + } + } + }, + "tags": [ + "ImapController" + ], + "operationId": "imapServerList", + "summary": "List messages in an inbox" + } + }, + "/imap/server/mailbox": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox email address to create", + "in": "query", + "name": "name", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ImapServerMailboxResult" + } + } + }, + "tags": [ + "ImapController" + ], + "operationId": "imapServerMailbox", + "summary": "Create a new mailbox if possible" + } + }, + "/imap/server/search": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox ID to search", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ImapServerSearchOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ImapServerSearchResult" + } + } + }, + "tags": [ + "ImapController" + ], + "operationId": "imapServerSearch", + "summary": "Search messages in an inbox" + } + }, + "/imap/server/status": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox ID to list", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ImapServerStatusOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ImapServerStatusResult" + } + } + }, + "tags": [ + "ImapController" + ], + "operationId": "imapServerStatus", + "summary": "Get status for mailbox" + } + }, + "/imap/server/update-flags": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ImapUpdateFlagsOptions" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "ImapController" + ], + "description": "Update message flags", + "operationId": "imapServerUpdateFlags" + } + }, + "/inboxes": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "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.", + "operationId": "deleteAllInboxes", + "summary": "Delete all inboxes" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 100, + "description": "Optional result size limit. Note an automatic limit of 100 results is applied. See the paginated `getAllEmails` for larger queries.", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional exclude catch all inboxes", + "in": "query", + "name": "excludeCatchAllInboxes", + "required": false, + "type": "boolean" + }, + { + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "collectionFormat": "multi", + "description": "Optional inboxIds to include in result", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "include", + "required": false, + "type": "array" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/InboxDto" + }, + "type": "array" + } + } + }, + "tags": [ + "InboxController" + ], + "deprecated": true, + "description": "List the inboxes you have created. Note use of the more advanced `getAllInboxes` is recommended and allows paginated access using a limit and sort parameter.", + "operationId": "getInboxes", + "summary": "List Inboxes and email addresses" + }, + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "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. Note domain types must match the inbox type - so `SMTP` inboxes will only work with `SMTP` type domains. Avoid `SMTP` inboxes if you need to send emails as they can only receive. 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.", + "in": "query", + "name": "emailAddress", + "required": false, + "type": "string" + }, + { + "collectionFormat": "multi", + "description": "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.", + "in": "query", + "items": { + "type": "string" + }, + "name": "tags", + "required": false, + "type": "array" + }, + { + "description": "Optional name of the inbox. Displayed in the dashboard for easier search and used as the sender name when sending emails.", + "in": "query", + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "Optional description of the inbox for labelling purposes. Is shown in the dashboard and can be used with", + "in": "query", + "name": "description", + "required": false, + "type": "string" + }, + { + "description": "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. Note this feature is only available for `HTTP` inbox types.", + "in": "query", + "name": "useDomainPool", + "required": false, + "type": "boolean" + }, + { + "description": "Is the inbox a favorite. Marking an inbox as a favorite is typically done in the dashboard for quick access or filtering", + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + }, + { + "description": "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.", + "format": "date-time", + "in": "query", + "name": "expiresAt", + "required": false, + "type": "string" + }, + { + "description": "Number of milliseconds that inbox should exist for", + "format": "int64", + "in": "query", + "name": "expiresIn", + "required": false, + "type": "integer" + }, + { + "description": "DEPRECATED (team access is always true). Grant team access to this inbox and the emails that belong to it for team members of your organization.", + "in": "query", + "name": "allowTeamAccess", + "required": false, + "type": "boolean" + }, + { + "description": "HTTP (default) or SMTP inbox type. HTTP inboxes are default and best solution for most cases. SMTP inboxes are more reliable for public inbound email consumption (but do not support sending emails). When using custom domains the domain type must match the inbox type. HTTP inboxes are processed by AWS SES while SMTP inboxes use a custom mail server running at `mxslurp.click`.", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "in": "query", + "name": "inboxType", + "required": false, + "type": "string" + }, + { + "description": "Virtual inbox prevents any outbound emails from being sent. It creates sent email records but will never send real emails to recipients. Great for testing and faking email sending.", + "in": "query", + "name": "virtualInbox", + "required": false, + "type": "boolean" + }, + { + "description": "Use a shorter email address under 31 characters", + "in": "query", + "name": "useShortAddress", + "required": false, + "type": "boolean" + }, + { + "description": "ID of custom domain to use for email address.", + "format": "uuid", + "in": "query", + "name": "domainId", + "required": false, + "type": "string" + }, + { + "description": "FQDN domain name for the domain you have verified. Will be appended with a randomly assigned recipient name. Use the `emailAddress` option instead to specify the full custom inbox.", + "in": "query", + "name": "domainName", + "required": false, + "type": "string" + }, + { + "description": "Prefix to add before the email address for easier labelling or identification.", + "in": "query", + "name": "prefix", + "required": false, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "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. ", + "operationId": "createInbox", + "summary": "Create an inbox email address. An inbox has a real email address and can send and receive emails. Inboxes can be either `SMTP` or `HTTP` inboxes." + } + }, + "/inboxes/automations": { + "get": { + "parameters": [], + "responses": { + "201": { + "description": "Created" + } + }, + "tags": [ + "InboxController" + ], + "description": "Check if an inbox has automations.", + "operationId": "doesInboxHaveAutomations", + "summary": "Does inbox have automations" + } + }, + "/inboxes/available": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "name": "emailAddress", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailAvailableResult" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Returns whether an email address is available", + "operationId": "isEmailAddressAvailable", + "summary": "Is email address available" + } + }, + "/inboxes/by-description": { + "delete": { + "parameters": [ + { + "in": "query", + "minLength": 1, + "name": "description", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "Permanently delete all inboxes by description", + "operationId": "deleteAllInboxesByDescription", + "summary": "Delete inboxes by description" + } + }, + "/inboxes/by-name": { + "delete": { + "parameters": [ + { + "in": "query", + "minLength": 1, + "name": "name", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "Permanently delete all inboxes by name", + "operationId": "deleteAllInboxesByName", + "summary": "Delete inboxes by name" + } + }, + "/inboxes/by-tag": { + "delete": { + "parameters": [ + { + "in": "query", + "minLength": 1, + "name": "tag", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "Permanently delete all inboxes by tag", + "operationId": "deleteAllInboxesByTag", + "summary": "Delete inboxes by tag" + } + }, + "/inboxes/byEmailAddress": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "minLength": 1, + "name": "emailAddress", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxByEmailAddressResult" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get a inbox result by email address", + "operationId": "getInboxByEmailAddress", + "summary": "Search for an inbox with the provided email address" + } + }, + "/inboxes/byName": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "minLength": 1, + "name": "name", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxByNameResult" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get a inbox result by name", + "operationId": "getInboxByName", + "summary": "Search for an inbox with the given name" + } + }, + "/inboxes/count": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } + } + }, + "tags": [ + "InboxController" + ], + "operationId": "getInboxCount", + "summary": "Get total inbox count" + } + }, + "/inboxes/exists": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Email address", + "in": "query", + "name": "emailAddress", + "required": true, + "type": "string" + }, + { + "description": "Allow catch all", + "in": "query", + "name": "allowCatchAll", + "required": false, + "type": "boolean" + }, + { + "description": "IP address", + "in": "query", + "name": "ipAddress", + "required": false, + "type": "string" + }, + { + "description": "Sender", + "in": "query", + "name": "sender", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxExistsDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Check if inboxes exist by email address. Useful if you are sending emails to mailslurp addresses", + "operationId": "doesInboxExist", + "summary": "Does inbox exist" + } + }, + "/inboxes/expired": { + "delete": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional expired at before flag to flush expired inboxes that have expired before the given time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FlushExpiredInboxesResult" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Remove any expired inboxes for your account (instead of waiting for scheduled removal on server)", + "operationId": "flushExpired", + "summary": "Remove expired inboxes" + } + }, + "/inboxes/getLatestEmail": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the inbox you want to get the latest email from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Timeout milliseconds to wait for latest email", + "format": "int64", + "in": "query", + "name": "timeoutMillis", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Email" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get the newest email in an inbox or wait for one to arrive", + "operationId": "getLatestEmailInInbox", + "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not have arrived yet." + } + }, + "/inboxes/ids": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxIdsResult" + } + } + }, + "tags": [ + "InboxController" + ], + "deprecated": true, + "description": "Get list of inbox IDs", + "operationId": "getInboxIds", + "summary": "Get all inbox IDs" + } + }, + "/inboxes/imap-access": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ImapAccessDetails" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get IMAP access usernames and passwords", + "operationId": "getImapAccess" + }, + "patch": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "Inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateImapAccessOptions" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "Update IMAP access usernames and passwords", + "operationId": "updateImapAccess" + } + }, + "/inboxes/imap-smtp-access": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ImapSmtpAccessDetails" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get IMAP and SMTP access usernames and passwords", + "operationId": "getImapSmtpAccess" + } + }, + "/inboxes/imap-smtp-access/env": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get IMAP and SMTP access details in .env format", + "operationId": "getImapSmtpAccessEnv" + } + }, + "/inboxes/imap-smtp-access/servers": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ImapSmtpAccessServers" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get IMAP and SMTP server hosts", + "operationId": "getImapSmtpAccessServers" + } + }, + "/inboxes/offset-paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optionally filter results for favourites only", + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + }, + { + "description": "Optionally filter by search words partial matching ID, tags, name, and email address", + "in": "query", + "name": "search", + "required": false, + "type": "string" + }, + { + "description": "Optionally filter by tags. Will return inboxes that include given tags", + "in": "query", + "name": "tag", + "required": false, + "type": "string" + }, + { + "deprecated": true, + "description": "DEPRECATED. Optionally filter by team access.", + "in": "query", + "name": "teamAccess", + "required": false, + "type": "boolean" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by inbox type", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "in": "query", + "name": "inboxType", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by inbox function", + "enum": [ + "ALIAS", + "THREAD", + "CATCH_ALL", + "CONNECTOR", + "ACCOUNT", + "GUEST", + "OAUTH_CONNECTION_GMAIL" + ], + "in": "query", + "name": "inboxFunction", + "required": false, + "type": "string" + }, + { + "description": "Optional domain ID filter", + "format": "uuid", + "in": "query", + "name": "domainId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "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.", + "operationId": "getAllInboxesOffsetPaginated", + "summary": "List All Inboxes Offset Paginated" + } + }, + "/inboxes/organization": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageOrganizationInboxProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "deprecated": true, + "description": "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). ", + "operationId": "getOrganizationInboxes", + "summary": "List Organization Inboxes Paginated" + } + }, + "/inboxes/outboxes": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "List inboxes that have sent emails", + "operationId": "getOutboxes", + "summary": "List all inboxes with sent emails" + } + }, + "/inboxes/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optionally filter results for favourites only", + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + }, + { + "description": "Optionally filter by search words partial matching ID, tags, name, and email address", + "in": "query", + "name": "search", + "required": false, + "type": "string" + }, + { + "description": "Optionally filter by tags. Will return inboxes that include given tags", + "in": "query", + "name": "tag", + "required": false, + "type": "string" + }, + { + "deprecated": true, + "description": "DEPRECATED. Optionally filter by team access.", + "in": "query", + "name": "teamAccess", + "required": false, + "type": "boolean" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by inbox type", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "in": "query", + "name": "inboxType", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by inbox function", + "enum": [ + "ALIAS", + "THREAD", + "CATCH_ALL", + "CONNECTOR", + "ACCOUNT", + "GUEST", + "OAUTH_CONNECTION_GMAIL" + ], + "in": "query", + "name": "inboxFunction", + "required": false, + "type": "string" + }, + { + "description": "Optional domain ID filter", + "format": "uuid", + "in": "query", + "name": "domainId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "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.", + "operationId": "getAllInboxes", + "summary": "List All Inboxes Paginated" + } + }, + "/inboxes/plus-addresses": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional inboxId filter", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PagePlusAddressProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Returns paginated list of all plus alias addresses found for in account based on received emails that used the inbox address with a +xyz alias.", + "operationId": "getAllPlusAddresses", + "summary": "Get all sub address plus address aliases for an inbox" + } + }, + "/inboxes/plus-addresses/{plusAddressId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the plus address you want to fetch", + "format": "uuid", + "in": "path", + "name": "plusAddressId", + "required": true, + "type": "string" + }, + { + "description": "ID of the inbox you want to filter for", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PlusAddressDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Returns a plus address object based on emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddressById", + "summary": "Get sub address plus address by ID" + } + }, + "/inboxes/scheduled-jobs": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in scheduled job list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in scheduled job list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageScheduledJobs" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Schedule sending of emails using scheduled jobs. These can be inbox or account level.", + "operationId": "getAllScheduledJobs", + "summary": "Get all scheduled email sending jobs for account" + } + }, + "/inboxes/scheduled-jobs/{jobId}": { + "delete": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "jobId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ScheduledJobDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get a scheduled email job and cancel it. Will fail if status of job is already cancelled, failed, or complete.", + "operationId": "cancelScheduledJob", + "summary": "Cancel a scheduled email job" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "jobId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ScheduledJobDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get a scheduled email job details.", + "operationId": "getScheduledJob", + "summary": "Get a scheduled email job" + } + }, + "/inboxes/search": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SearchInboxesOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Search inboxes and return 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.", + "operationId": "searchInboxes", + "summary": "Search all inboxes and return matching inboxes" + } + }, + "/inboxes/smtp-access": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SmtpAccessDetails" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get SMTP access usernames and passwords", + "operationId": "getSmtpAccess" + }, + "patch": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "Inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateSmtpAccessOptions" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "Update SMTP access usernames and passwords", + "operationId": "updateSmtpAccess" + } + }, + "/inboxes/tags": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get all inbox tags", + "operationId": "getInboxTags", + "summary": "Get inbox tags" + } + }, + "/inboxes/tags/inboxes": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Tag to filter by", + "in": "query", + "name": "tag", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get all inboxes for a given inbox tag", + "operationId": "getInboxesByTag", + "summary": "Get inboxes for a tag" + } + }, + "/inboxes/tags/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxTags" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get all inbox tags paginated", + "operationId": "getInboxTagsPaginated", + "summary": "Get inbox tags paginated" + } + }, + "/inboxes/withDefaults": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "InboxController" + ], + "operationId": "createInboxWithDefaults", + "summary": "Create an inbox with default options. Uses MailSlurp domain pool address and is private." + } + }, + "/inboxes/withOptions": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateInboxDto" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Additional endpoint that allows inbox creation with request body options. Can be more flexible that other methods for some clients.", + "operationId": "createInboxWithOptions", + "summary": "Create an inbox with options. Extended options for inbox creation." + } + }, + "/inboxes/{inboxId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "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.", + "operationId": "deleteInbox", + "summary": "Delete inbox" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Returns an inbox's properties, including its email address and ID.", + "operationId": "getInbox", + "summary": "Get Inbox. Returns properties of an inbox." + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateInboxOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Update editable fields on an inbox", + "operationId": "updateInbox", + "summary": "Update Inbox. Change name and description. Email address is not editable." + }, + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } + } + ], + "responses": { + "201": { + "description": "Created" + } + }, + "tags": [ + "InboxController" + ], + "description": "Send an email from an inbox's email address. \nThe 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`.", + "operationId": "sendEmail", + "summary": "Send Email" + } + }, + "/inboxes/{inboxId}/confirm": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/SentEmailDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Sister method for standard `sendEmail` method with the benefit of returning a `SentEmail` entity confirming the successful sending of the email with a link to the sent object created for it.", + "operationId": "sendEmailAndConfirm", + "summary": "Send email and return sent confirmation" + } + }, + "/inboxes/{inboxId}/deleteAllInboxEmails": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "Deletes all emails in an inbox. Be careful as emails cannot be recovered", + "operationId": "deleteAllInboxEmails", + "summary": "Delete all emails in a given inboxes." + } + }, + "/inboxes/{inboxId}/delivery-status": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in delivery status list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in delivery status list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageDeliveryStatus" + } + } + }, + "tags": [ + "InboxController" + ], + "deprecated": true, + "description": "Get all email delivery statuses for an inbox", + "operationId": "getDeliveryStatusesByInboxId" + } + }, + "/inboxes/{inboxId}/emails": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Id of inbox that emails belongs to", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Alias for limit. Assessed first before assessing any passed limit.", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "description": "Limit the result set, ordered by received date time sort direction. Maximum 100. For more listing options see the email controller", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "limit", + "required": false, + "type": "integer" + }, + { + "description": "Sort the results by received date and direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Maximum milliseconds to spend retrying inbox database until minCount emails are returned", + "format": "int64", + "in": "query", + "name": "retryTimeout", + "required": false, + "type": "integer" + }, + { + "format": "int64", + "in": "query", + "name": "delayTimeout", + "required": false, + "type": "integer" + }, + { + "description": "Minimum acceptable email count. Will cause request to hang (and retry) until minCount is satisfied or retryTimeout is reached.", + "format": "int64", + "in": "query", + "name": "minCount", + "required": false, + "type": "integer" + }, + { + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Exclude emails received after this ISO 8601 date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Exclude emails received before this ISO 8601 date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/EmailPreview" + }, + "type": "array" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "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", + "operationId": "getEmails", + "summary": "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." + } + }, + "/inboxes/{inboxId}/emails/count": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Id of inbox that emails belongs to", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } + } + }, + "tags": [ + "InboxController" + ], + "operationId": "getInboxEmailCount", + "summary": "Get email count in inbox" + } + }, + "/inboxes/{inboxId}/emails/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in inbox emails list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox emails list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by received after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Id of inbox that emails belongs to", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Sync connectors before fetching emails", + "in": "query", + "name": "syncConnectors", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailPreview" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get a paginated list of emails in an inbox. Does not hold connections open.", + "operationId": "getInboxEmailsPaginated", + "summary": "Get inbox emails paginated" + } + }, + "/inboxes/{inboxId}/favourite": { + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox to set favourite state", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SetInboxFavouritedOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Set and return new favorite state for an inbox", + "operationId": "setInboxFavourited", + "summary": "Set inbox favourited state" + } + }, + "/inboxes/{inboxId}/plus-addresses": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PagePlusAddressProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Returns paginated list of all plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddresses", + "summary": "Get sub address plus address aliases for an inbox" + } + }, + "/inboxes/{inboxId}/plus-addresses/emails": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "The plus address to fetch emails for. If your inbox address is `123@test.com` and the email was sent to `123+abc@test.com` then the plus address is `abc`", + "in": "query", + "name": "plusAddress", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailPreview" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Returns paginated list of all emails for a given plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddressEmails", + "summary": "Get emails for a given inbox plus address" + } + }, + "/inboxes/{inboxId}/plus-addresses/{plusAddressId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the plus address you want to fetch", + "format": "uuid", + "in": "path", + "name": "plusAddressId", + "required": true, + "type": "string" + }, + { + "description": "ID of the inbox you want to fetch", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PlusAddressDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Returns a plus address object based on emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddress", + "summary": "Get sub address plus address for an inbox" + } + }, + "/inboxes/{inboxId}/plus-addresses/{plusAddressId}/emails": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "The plus address ID to fetch emails for.", + "format": "uuid", + "in": "path", + "name": "plusAddressId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailPreview" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Returns paginated list of all emails for a given plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddressEmailsForPlusAddressId", + "summary": "Get emails for a given inbox plus address" + } + }, + "/inboxes/{inboxId}/rulesets": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox ruleset list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox ruleset list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageRulesetDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "List all rulesets attached to an inbox", + "operationId": "listInboxRulesets", + "summary": "List inbox rulesets" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "inboxId", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateRulesetOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RulesetDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Create a new inbox rule for forwarding, blocking, and allowing emails when sending and receiving", + "operationId": "createInboxRuleset", + "summary": "Create an inbox ruleset" + } + }, + "/inboxes/{inboxId}/scheduled-jobs": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in scheduled job list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in scheduled job list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageScheduledJobs" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Schedule sending of emails using scheduled jobs.", + "operationId": "getScheduledJobsByInboxId", + "summary": "Get all scheduled email sending jobs for the inbox" + } + }, + "/inboxes/{inboxId}/send-test-email": { + "post": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "Send an inbox a test email to test email receiving is working", + "operationId": "sendTestEmail", + "summary": "Send a test email to inbox" + } + }, + "/inboxes/{inboxId}/sent": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional sent email search", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by sent after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by sent before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageSentEmailProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "deprecated": true, + "description": "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.", + "operationId": "getInboxSentEmails", + "summary": "Get Inbox Sent Emails" + } + }, + "/inboxes/{inboxId}/sent/count": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Id of inbox that emails were sent from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } + } + }, + "tags": [ + "InboxController" + ], + "operationId": "getInboxSentCount", + "summary": "Get sent email count in inbox" + } + }, + "/inboxes/{inboxId}/smtp-envelope": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendSMTPEnvelopeOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/SentEmailDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Send email using an SMTP envelope containing RCPT TO, MAIL FROM, and a SMTP BODY.", + "operationId": "sendSmtpEnvelope", + "summary": "Send email using an SMTP mail envelope and message body and return sent confirmation" + } + }, + "/inboxes/{inboxId}/tracking-pixels": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageTrackingPixelProjection" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "List all tracking pixels sent from an inbox", + "operationId": "listInboxTrackingPixels", + "summary": "List inbox tracking pixels" + } + }, + "/inboxes/{inboxId}/webhooks": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/WebhookProjection" + }, + "type": "array" + } + } + }, + "tags": [ + "WebhookController" + ], + "deprecated": true, + "operationId": "getWebhooks", + "summary": "Get all webhooks for an Inbox" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateWebhookOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WebhookDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "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.", + "operationId": "createWebhook", + "summary": "Attach a WebHook URL to an inbox" + } + }, + "/inboxes/{inboxId}/webhooks/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter by webhook health", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "in": "query", + "name": "health", + "required": false, + "type": "string" + }, + { + "description": "Optional event type", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "eventType", + "required": false, + "type": "string" + }, + { + "description": "Include account scope inbox webhooks", + "in": "query", + "name": "includeAccountWide", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageWebhookProjection" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getInboxWebhooksPaginated", + "summary": "Get paginated webhooks for an Inbox" + } + }, + "/inboxes/{inboxId}/webhooks/{webhookId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "deleteWebhook", + "summary": "Delete and disable a Webhook for an Inbox" + } + }, + "/inboxes/{inboxId}/with-queue": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Validate before adding to queue", + "in": "query", + "name": "validateBeforeEnqueue", + "required": true, + "type": "boolean" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } + } + ], + "responses": { + "201": { + "description": "Created" + } + }, + "tags": [ + "InboxController" + ], + "description": "Send an email using a queue. Will place the email onto a queue that will then be processed and sent. Use this queue method to enable any failed email sending to be recovered. This will prevent lost emails when sending if your account encounters a block or payment issue.", + "operationId": "sendEmailWithQueue", + "summary": "Send email with queue" + } + }, + "/inboxes/{inboxId}/with-schedule": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Sending timestamp", + "format": "date-time", + "in": "query", + "name": "sendAtTimestamp", + "required": false, + "type": "string" + }, + { + "description": "Send after n seconds", + "format": "int64", + "in": "query", + "name": "sendAtNowPlusSeconds", + "required": false, + "type": "integer" + }, + { + "description": "Validate before adding to queue", + "in": "query", + "name": "validateBeforeEnqueue", + "required": false, + "type": "boolean" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ScheduledJobDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Send an email using a delay. Will place the email onto a scheduler that will then be processed and sent. Use delays to schedule email sending.", + "operationId": "sendWithSchedule", + "summary": "Send email with with delay or schedule" + } + }, + "/mail-server/describe/dns-lookup": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DNSLookupOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DNSLookupResults" + } + } + }, + "tags": [ + "MailServerController" + ], + "operationId": "getDnsLookup", + "summary": "Lookup DNS records for a domain" + } + }, + "/mail-server/describe/dns-lookups": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DNSLookupsOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DNSLookupResults" + } + } + }, + "tags": [ + "MailServerController" + ], + "operationId": "getDnsLookups", + "summary": "Lookup DNS records for multiple domains" + } + }, + "/mail-server/describe/domain": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DescribeDomainOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DescribeMailServerDomainResult" + } + } + }, + "tags": [ + "MailServerController" + ], + "operationId": "describeMailServerDomain", + "summary": "Get DNS Mail Server records for a domain" + } + }, + "/mail-server/describe/ip-address": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "name": "name", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IPAddressResult" + } + } + }, + "tags": [ + "MailServerController" + ], + "operationId": "getIpAddress", + "summary": "Get IP address for a domain" + } + }, + "/mail-server/verify/email-address": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VerifyEmailAddressOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailVerificationResult" + } + } + }, + "tags": [ + "MailServerController" + ], + "deprecated": true, + "operationId": "verifyEmailAddress", + "summary": "Deprecated. Use the EmailVerificationController methods for more accurate and reliable functionality. Verify the existence of an email address at a given mail server." + } + }, + "/mfa/totp/device/base32SecretKey": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateTotpDeviceBase32SecretKeyOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TotpDeviceDto" + } + } + }, + "tags": [ + "MFAController" + ], + "description": "Create a virtual TOTP device for a given secret key. This is usually present as an alternative login option when pairing OTP devices.", + "operationId": "createTotpDeviceForBase32SecretKey", + "summary": "Create a TOTP device from an base32 secret key" + } + }, + "/mfa/totp/device/by": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional name filter", + "in": "query", + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "Optional issuer filter", + "in": "query", + "name": "issuer", + "required": false, + "type": "string" + }, + { + "description": "Optional username filter", + "in": "query", + "name": "username", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TotpDeviceOptionalDto" + } + } + }, + "tags": [ + "MFAController" + ], + "description": "Get Time-Based One-Time Password (TOTP) device by its username and issuer mapping.", + "operationId": "getTotpDeviceBy", + "summary": "Get a TOTP device by username, issuer, or name. Returns empty if not found." + } + }, + "/mfa/totp/device/custom": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateTotpDeviceCustomOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TotpDeviceDto" + } + } + }, + "tags": [ + "MFAController" + ], + "description": "Create a virtual TOTP device for custom options specifying all parameters of the TOTP device.", + "operationId": "createTotpDeviceForCustom", + "summary": "Create a TOTP device from custom options" + } + }, + "/mfa/totp/device/otpAuthUrl": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateTotpDeviceOtpAuthUrlOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TotpDeviceDto" + } + } + }, + "tags": [ + "MFAController" + ], + "description": "Create a virtual TOTP device for a given OTP Auth URL such as otpauth://totp/MyApp:alice@example.com?secret=ABC123&issuer=MyApp&period=30&digits=6&algorithm=SHA1. You can provider overrides in the options for each component of the URL.", + "operationId": "createTotpDeviceForOtpAuthUrl", + "summary": "Create a TOTP device from an OTP Auth URL" + } + }, + "/mfa/totp/device/{id}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TotpDeviceDto" + } + } + }, + "tags": [ + "MFAController" + ], + "description": "Get Time-Based One-Time Password (TOTP) device by its ID.", + "operationId": "getTotpDevice", + "summary": "Get a TOTP device by ID" + } + }, + "/mfa/totp/device/{id}/code": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional time to get code for. If not provided, current time is used.", + "format": "date-time", + "in": "query", + "name": "at", + "required": false, + "type": "string" + }, + { + "default": 5, + "description": "Optional minimum time until code expires. Will hold thread open until period reached.", + "format": "int32", + "in": "query", + "maximum": 30, + "minimum": 1, + "name": "minSecondsUntilExpire", + "required": false, + "type": "integer" + }, + { + "description": "ID of the TOTP device to get the code for", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TotpDeviceCodeDto" + } + } + }, + "tags": [ + "MFAController" + ], + "description": "Get Time-Based One-Time Password for a device by its ID.", + "operationId": "getTotpDeviceCode", + "summary": "Get a TOTP device code by device ID" + } + }, + "/missed-emails": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional inbox ID filter", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageMissedEmailProjection" + } + } + }, + "tags": [ + "MissedEmailController" + ], + "operationId": "getAllMissedEmails", + "summary": "Get all MissedEmails in paginated format" + } + }, + "/missed-emails/restore": { + "post": { + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "MissedEmailController" + ], + "description": "If emails were missed due to a plan limit they are saved as missed emails. If support team enables the canRestore flag these emails can be reload into your account using this method.", + "operationId": "restoreMissedEmails", + "summary": "Restore missed emails" + } + }, + "/missed-emails/unknown": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional inbox ID filter", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageUnknownMissedEmailProjection" + } + } + }, + "tags": [ + "MissedEmailController" + ], + "description": "Unknown missed emails are emails that were sent to MailSlurp but could not be assigned to an existing inbox.", + "operationId": "getAllUnknownMissedEmails", + "summary": "Get all unknown missed emails in paginated format" + } + }, + "/missed-emails/waitForNthMissedEmail": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inbox ID filter", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Optional timeout milliseconds", + "format": "int64", + "in": "query", + "name": "timeout", + "required": false, + "type": "integer" + }, + { + "description": "Zero based index of the email to wait for. If 1 missed email already and you want to wait for the 2nd email pass index=1", + "format": "int32", + "in": "query", + "maximum": 2147483647, + "minimum": 0, + "name": "index", + "required": true, + "type": "integer" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/MissedEmailDto" + } + } + }, + "tags": [ + "MissedEmailController" + ], + "description": "Wait for 0 based index missed email", + "operationId": "waitForNthMissedEmail", + "summary": "Wait for Nth missed email" + } + }, + "/missed-emails/{missedEmailId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "missedEmailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/MissedEmailDto" + } + } + }, + "tags": [ + "MissedEmailController" + ], + "description": "List emails that were missed due to plan limits.", + "operationId": "getMissedEmail", + "summary": "Get MissedEmail" + } + }, + "/newEmailAddress": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "name": "allowTeamAccess", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "useDomainPool", + "required": false, + "type": "boolean" + }, + { + "format": "date-time", + "in": "query", + "name": "expiresAt", + "required": false, + "type": "string" + }, + { + "format": "int64", + "in": "query", + "name": "expiresIn", + "required": false, + "type": "integer" + }, + { + "in": "query", + "name": "emailAddress", + "required": false, + "type": "string" + }, + { + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "in": "query", + "name": "inboxType", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "description", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "name", + "required": false, + "type": "string" + }, + { + "collectionFormat": "multi", + "in": "query", + "items": { + "type": "string" + }, + "name": "tags", + "required": false, + "type": "array" + }, + { + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "virtualInbox", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "useShortAddress", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "domainName", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "domainId", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "prefix", + "required": false, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "CommonActionsController" + ], + "description": "Returns an Inbox with an `id` and an `emailAddress`", + "operationId": "createNewEmailAddress", + "summary": "Create new random inbox" + } + }, + "/phone": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreatePhoneNumberOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhoneNumberDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Create new phone number", + "operationId": "createPhoneNumber", + "summary": "Add phone number to your account. Only works if you have already added a plan and an initial phone number in your account and acknowledged the pricing and terms of service by enabling API phone creation." + } + }, + "/phone/consent": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConsentStatusDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Get the status of phone usage consent", + "operationId": "getConsentStatus", + "summary": "Get consent status" + }, + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "name": "agree", + "required": true, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ConsentStatusDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Give or revoke consent for phone usage", + "operationId": "setConsentStatus", + "summary": "Set consent status" + } + }, + "/phone/emergency-addresses": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/EmergencyAddressDto" + }, + "type": "array" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "List emergency addresses", + "operationId": "getEmergencyAddresses", + "summary": "Get emergency addresses" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateEmergencyAddressOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmergencyAddress" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Add an emergency address to a phone number", + "operationId": "createEmergencyAddress", + "summary": "Create an emergency address" + } + }, + "/phone/emergency-addresses/{addressId}": { + "delete": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "addressId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmptyResponseDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Delete an emergency address", + "operationId": "deleteEmergencyAddress", + "summary": "Delete an emergency address" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "addressId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmergencyAddress" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Fetch an emergency address by ID", + "operationId": "getEmergencyAddress", + "summary": "Get an emergency address" + } + }, + "/phone/numbers": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "PhoneController" + ], + "description": "Remove all phone number from account", + "operationId": "deleteAllPhoneNumber", + "summary": "Delete all phone numbers" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional phone country", + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], + "in": "query", + "name": "phoneCountry", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index for list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size for list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "search", + "required": false, + "type": "string" + }, + { + "collectionFormat": "multi", + "description": "Optional phoneIds to include in result", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "include", + "required": false, + "type": "array" + }, + { + "default": false, + "description": "Optionally filter results for favourites only", + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PagePhoneNumberProjection" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "List phone numbers for account", + "operationId": "getPhoneNumbers", + "summary": "Get phone numbers" + } + }, + "/phone/numbers/by-name": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "name": "name", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhoneNumberDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Get a phone number by name", + "operationId": "getPhoneNumberByName", + "summary": "Get a phone number by name" + } + }, + "/phone/numbers/by-phone-number": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "name": "phoneNumber", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhoneNumberDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Get a phone number by phone number", + "operationId": "getPhoneNumberByPhoneNumber", + "summary": "Get a phone number by phone number" + } + }, + "/phone/numbers/message-threads": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PagePhoneMessageThreadProjection" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "List all message threads for all phones", + "operationId": "getAllPhoneMessageThreads", + "summary": "Get the latest messages for all phones" + } + }, + "/phone/numbers/{phoneId}/webhooks/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "path", + "name": "phoneId", + "required": true, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional event type", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "eventType", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by webhook health", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "in": "query", + "name": "health", + "required": false, + "type": "string" + }, + { + "description": "Include account scope phone webhooks", + "in": "query", + "name": "includeAccountWide", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageWebhookProjection" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getPhoneNumberWebhooksPaginated", + "summary": "Get paginated webhooks for a phone number" + } + }, + "/phone/numbers/{phoneNumberId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "PhoneController" + ], + "description": "Remove phone number from account", + "operationId": "deletePhoneNumber", + "summary": "Delete a phone number" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhoneNumberDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Get a phone number by ID", + "operationId": "getPhoneNumber", + "summary": "Get a phone number by ID" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of phone to set favourite state", + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdatePhoneNumberOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhoneNumberDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Set field for phone number", + "operationId": "updatePhoneNumber", + "summary": "Update a phone number" + } + }, + "/phone/numbers/{phoneNumberId}/favourite": { + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of phone to set favourite state", + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SetPhoneFavouritedOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhoneNumberDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Set and return new favorite state for a phone", + "operationId": "setPhoneFavourited", + "summary": "Set phone favourited state" + } + }, + "/phone/numbers/{phoneNumberId}/message-threads": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "default": 0, + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PagePhoneMessageThreadProjection" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "List message threads for a phone", + "operationId": "getPhoneMessageThreads", + "summary": "Get the latest message preview for a thread" + } + }, + "/phone/numbers/{phoneNumberId}/message-threads/{otherNumber}": { + "delete": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "otherNumber", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content", + "schema": { + "$ref": "#/definitions/EmptyResponseDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Delete all messages in an SMS thread", + "operationId": "deletePhoneMessageThreadItems", + "summary": "Delete messages in a phone thread" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "otherNumber", + "required": true, + "type": "string" + }, + { + "default": 0, + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PagePhoneMessageThreadItemProjection" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "List message thread messages for a phone message thread", + "operationId": "getPhoneMessageThreadItems", + "summary": "Get messages in a phone thread" + } + }, + "/phone/numbers/{phoneNumberId}/sms": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in SMS list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optional filter for unread SMS only. All SMS are considered unread until they are viewed in the dashboard or requested directly", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Optional filter SMSs received after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter SMSs received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "search", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optionally filter results for favourites only", + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageSmsProjection" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Get SMS messages for a phone number", + "operationId": "getSmsByPhoneNumber", + "summary": "List SMS messages for a phone number" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SmsSendOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentSmsDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Send SMS from a phone number", + "operationId": "sendSmsFromPhoneNumber", + "summary": "Send TXT message from a phone number" + } + }, + "/phone/numbers/{phoneNumberId}/sms-sent": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in SMS list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional filter SMSs received after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter SMSs received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "search", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageSentSmsProjection" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Get sent SMS messages for a phone number", + "operationId": "getSentSmsByPhoneNumber", + "summary": "List sent TXT messages for a phone number" + } + }, + "/phone/numbers/{phoneNumberId}/test": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "header", + "name": "x-test-id", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TestPhoneNumberOptions" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "PhoneController" + ], + "description": "Test a phone number by sending an SMS to it", + "operationId": "testPhoneNumberSendSms", + "summary": "Test sending an SMS to a number" + } + }, + "/phone/numbers/{phoneNumberId}/webhooks": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateWebhookOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WebhookDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get notified whenever a phone number receives an SMS via a WebHook URL.", + "operationId": "createWebhookForPhoneNumber", + "summary": "Attach a WebHook URL to a phone number" + } + }, + "/phone/plans": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/PhonePlanDto" + }, + "type": "array" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Get phone number plans", + "operationId": "getPhonePlans", + "summary": "Get phone plans" + } + }, + "/phone/plans/availability": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhonePlanAvailability" + } + } + }, + "tags": [ + "PhoneController" + ], + "operationId": "getPhonePlansAvailability", + "summary": "Get phone plans availability" + } + }, + "/phone/validate": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ValidatePhoneNumberOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhoneNumberValidationDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Validate a phone number", + "operationId": "validatePhoneNumber", + "summary": "Verify validity of a phone number" + } + }, + "/repliers": { + "delete": { + "parameters": [ + { + "description": "Optional inbox id to attach replier to", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxReplierController" + ], + "description": "Delete inbox repliers. Accepts optional inboxId filter.", + "operationId": "deleteInboxRepliers", + "summary": "Delete inbox repliers" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inbox id to get repliers from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox replier list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox replier list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxReplierDto" + } + } + }, + "tags": [ + "InboxReplierController" + ], + "description": "List all repliers attached to an inbox", + "operationId": "getInboxRepliers", + "summary": "List inbox repliers" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateInboxReplierOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxReplierDto" + } + } + }, + "tags": [ + "InboxReplierController" + ], + "description": "Create a new inbox rule for reply toing, blocking, and allowing emails when sending and receiving", + "operationId": "createNewInboxReplier", + "summary": "Create an inbox replier" + } + }, + "/repliers/events": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox replier", + "format": "uuid", + "in": "query", + "name": "inboxReplierId", + "required": false, + "type": "string" + }, + { + "description": "ID of inbox", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "ID of email", + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "description": "ID of sent", + "format": "uuid", + "in": "query", + "name": "sentId", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox replier event list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox replier event list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxReplierEvents" + } + } + }, + "tags": [ + "InboxReplierController" + ], + "description": "Get all inbox ruleset events", + "operationId": "getAllInboxReplierEvents", + "summary": "Get inbox replier event list" + } + }, + "/repliers/{id}": { + "delete": { + "parameters": [ + { + "description": "ID of inbox replier", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxReplierController" + ], + "description": "Delete inbox replier", + "operationId": "deleteInboxReplier", + "summary": "Delete an inbox replier" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox replier", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxReplierDto" + } + } + }, + "tags": [ + "InboxReplierController" + ], + "description": "Get inbox ruleset", + "operationId": "getInboxReplier", + "summary": "Get an inbox replier" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox replier", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateInboxReplierOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxReplierDto" + } + } + }, + "tags": [ + "InboxReplierController" + ], + "description": "Update inbox ruleset", + "operationId": "updateInboxReplier", + "summary": "Update an inbox replier" + } + }, + "/repliers/{id}/events": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox replier", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox replier event list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox replier event list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxReplierEvents" + } + } + }, + "tags": [ + "InboxReplierController" + ], + "description": "Get inbox ruleset events", + "operationId": "getInboxReplierEvents", + "summary": "Get an inbox replier event list" + } + }, + "/rulesets": { + "delete": { + "parameters": [ + { + "description": "Optional inbox id to attach ruleset to", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "RulesetController" + ], + "description": "Delete rulesets. Accepts optional inboxId or phoneId filters.", + "operationId": "deleteRulesets", + "summary": "Delete rulesets" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inbox id to get rulesets from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Optional phone id to get rulesets from", + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox ruleset list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox ruleset list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageRulesetDto" + } + } + }, + "tags": [ + "RulesetController" + ], + "description": "List all rulesets attached to an inbox or phone or account", + "operationId": "getRulesets", + "summary": "List rulesets block and allow lists" + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TestNewInboxRulesetOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxRulesetTestResult" + } + } + }, + "tags": [ + "RulesetController" + ], + "description": "Test new ruleset", + "operationId": "testNewRuleset", + "summary": "Test new ruleset" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Inbox id to attach ruleset to", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Phone id to attach ruleset to", + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateRulesetOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RulesetDto" + } + } + }, + "tags": [ + "RulesetController" + ], + "description": "Create a new inbox or phone number rule for forwarding, blocking, and allowing emails or SMS when sending and receiving", + "operationId": "createNewRuleset", + "summary": "Create a ruleset" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of inbox", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RulesetTestOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxRulesetTestResult" + } + } + }, + "tags": [ + "RulesetController" + ], + "description": "Test inbox rulesets for inbox", + "operationId": "testInboxRulesetsForInbox", + "summary": "Test inbox rulesets for inbox" + } + }, + "/rulesets/test-receiving": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TestRulesetReceivingOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TestRulesetReceivingResult" + } + } + }, + "tags": [ + "RulesetController" + ], + "description": "Test whether inbound emails from an email address would be blocked or allowed by inbox rulesets or test if phone number can receive SMS", + "operationId": "testRulesetReceiving", + "summary": "Test receiving with rulesets" + } + }, + "/rulesets/test-sending": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TestInboxRulesetSendingOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TestRulesetSendingResult" + } + } + }, + "tags": [ + "RulesetController" + ], + "description": "Test whether outbound emails to an email address would be blocked or allowed by inbox rulesets or whether a phone number can send SMS", + "operationId": "testRulesetSending", + "summary": "Test sending with rulesets" + } + }, + "/rulesets/{id}": { + "delete": { + "parameters": [ + { + "description": "ID of ruleset", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "RulesetController" + ], + "description": "Delete ruleset", + "operationId": "deleteRuleset", + "summary": "Delete a ruleset" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of ruleset", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RulesetDto" + } + } + }, + "tags": [ + "RulesetController" + ], + "description": "Get ruleset", + "operationId": "getRuleset", + "summary": "Get a ruleset" + } + }, + "/rulesets/{id}/test": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of ruleset", + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RulesetTestOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxRulesetTestResult" + } + } + }, + "tags": [ + "RulesetController" + ], + "description": "Test an inbox or phone ruleset", + "operationId": "testRuleset", + "summary": "Test a ruleset" + } + }, + "/sendEmail": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SimpleSendEmailOptions" + } + } + ], + "responses": { + "201": { + "description": "Created" + } + }, + "tags": [ + "CommonActionsController" + ], + "description": "If no senderId or inboxId provided a random email address will be used to send from.", + "operationId": "sendEmailSimple", + "summary": "Send an email" + } + }, + "/sendEmailQuery": { + "post": { + "parameters": [ + { + "description": "ID of inbox to send from. If null an inbox will be created for sending", + "format": "uuid", + "in": "query", + "name": "senderId", + "required": false, + "type": "string" + }, + { + "description": "Email address to send to", + "in": "query", + "name": "to", + "required": true, + "type": "string" + }, + { + "description": "Body of the email message. Supports HTML", + "in": "query", + "name": "body", + "required": false, + "type": "string" + }, + { + "description": "Subject line of the email", + "in": "query", + "name": "subject", + "required": false, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Created" + } + }, + "tags": [ + "CommonActionsController" + ], + "description": "If no senderId or inboxId provided a random email address will be used to send from. Ensure your parameters are URL encoded.", + "operationId": "sendEmailQuery", + "summary": "Send an email using query parameters" + } + }, + "/sent": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SentEmailsController" + ], + "operationId": "deleteAllSentEmails", + "summary": "Delete all sent email receipts" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inboxId to filter sender of sent emails by", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageSentEmailProjection" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "operationId": "getSentEmails", + "summary": "Get all sent emails in paginated form" + } + }, + "/sent/delivery-status": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in delivery status list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in delivery status list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageDeliveryStatus" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Get all sent email delivery statuses", + "operationId": "getSentDeliveryStatuses" + } + }, + "/sent/delivery-status/wait-for": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional sent email ID filter", + "format": "uuid", + "in": "query", + "name": "sentId", + "required": false, + "type": "string" + }, + { + "description": "Optional inbox ID filter", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Optional timeout milliseconds", + "format": "int64", + "in": "query", + "name": "timeout", + "required": false, + "type": "integer" + }, + { + "description": "Zero based index of the delivery status to wait for. If 1 delivery status already and you want to wait for the 2nd pass index=1", + "format": "int32", + "in": "query", + "maximum": 2147483647, + "minimum": 0, + "name": "index", + "required": false, + "type": "integer" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeliveryStatusDto" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Wait for delivery statuses", + "operationId": "waitForDeliveryStatuses" + } + }, + "/sent/delivery-status/{deliveryId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "deliveryId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeliveryStatusDto" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Get a sent email delivery status", + "operationId": "getSentDeliveryStatus" + } + }, + "/sent/organization": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional inboxId to filter sender of sent emails by", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in sent email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in sent email list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageSentEmailProjection" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Get all sent organization emails in paginated form", + "operationId": "getSentOrganizationEmails" + } + }, + "/sent/queue-results": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageSentEmailWithQueueProjection" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "operationId": "getSentEmailsWithQueueResults", + "summary": "Get results of email sent with queues in paginated form" + } + }, + "/sent/tracking-pixels": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in sent email tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in sent email tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageTrackingPixelProjection" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Get all sent email tracking pixels in paginated form", + "operationId": "getAllSentTrackingPixels" + } + }, + "/sent/{emailId}/raw": { + "get": { + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Returns a raw, unparsed, and unprocessed sent email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawSentEmailJson endpoint", + "operationId": "getRawSentEmailContents", + "summary": "Get raw sent email string. Returns unparsed raw SMTP message with headers and body." + } + }, + "/sent/{emailId}/raw/json": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RawEmailJson" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Returns a raw, unparsed, and unprocessed sent email wrapped in a JSON response object for easier handling when compared with the getRawSentEmail text/plain response", + "operationId": "getRawSentEmailJson", + "summary": "Get raw sent email in JSON. Unparsed SMTP message in JSON wrapper format." + } + }, + "/sent/{id}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SentEmailsController" + ], + "operationId": "deleteSentEmail", + "summary": "Delete sent email receipt" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentEmailDto" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "operationId": "getSentEmail", + "summary": "Get sent email receipt" + } + }, + "/sent/{id}/html": { + "get": { + "produces": [ + "text/html" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "operationId": "getSentEmailHTMLContent", + "summary": "Get sent email HTML content" + } + }, + "/sent/{id}/tracking-pixels": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in sent email tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in sent email tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageTrackingPixelProjection" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Get all tracking pixels for a sent email in paginated form", + "operationId": "getSentEmailTrackingPixels" + } + }, + "/sent/{id}/urls": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailPreviewUrls" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Get a list of URLs for sent email content as text/html or raw SMTP message for viewing the message in a browser.", + "operationId": "getSentEmailPreviewURLs", + "summary": "Get sent email URL for viewing in browser or downloading" + } + }, + "/sent/{sentId}/delivery-status": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the sent email that you want to get the delivery status of. Sent email object is returned when sending an email", + "format": "uuid", + "in": "path", + "name": "sentId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in delivery status list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in delivery status list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageDeliveryStatus" + } + } + }, + "tags": [ + "SentEmailsController" + ], + "description": "Get all sent email delivery statuses", + "operationId": "getSentDeliveryStatusesBySentId" + } + }, + "/sms": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "phoneNumberId", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SmsController" + ], + "description": "Delete all SMS messages or all messages for a given phone number", + "operationId": "deleteSmsMessages", + "summary": "Delete all SMS messages" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional receiving phone number to filter SMS messages for", + "format": "uuid", + "in": "query", + "name": "phoneNumber", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in SMS list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional filter SMSs received after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter SMSs received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "search", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optionally filter results for favourites only", + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + }, + { + "collectionFormat": "multi", + "description": "Optional list of IDs to include in result", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "include", + "required": false, + "type": "array" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageSmsProjection" + } + } + }, + "tags": [ + "SmsController" + ], + "operationId": "getAllSmsMessages" + } + }, + "/sms/count": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Get number of SMS", + "operationId": "getSmsCount", + "summary": "Get SMS count" + } + }, + "/sms/send": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Phone number to send from in E.164 format", + "in": "query", + "name": "fromPhoneNumber", + "required": false, + "type": "string" + }, + { + "description": "Phone number ID to send from in UUID form", + "format": "uuid", + "in": "query", + "name": "fromPhoneId", + "required": false, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SmsSendOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentSmsDto" + } + } + }, + "tags": [ + "SmsController" + ], + "operationId": "sendSms" + } + }, + "/sms/sent": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "phoneNumberId", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SmsController" + ], + "description": "Delete all sent SMS messages or all messages for a given phone number", + "operationId": "deleteSentSmsMessages", + "summary": "Delete all sent SMS messages" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional phone number to filter sent SMS messages for", + "format": "uuid", + "in": "query", + "name": "phoneNumber", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in SMS list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional filter SMSs received after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter SMSs received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "search", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageSentSmsProjection" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "By default returns all SMS messages across all phone numbers sorted by ascending created at date. Responses are paginated. You can restrict results to a list of phone number IDs. You can also filter out read messages", + "operationId": "getSentSmsMessagesPaginated", + "summary": "Get all SMS messages in all phone numbers in paginated form. ." + } + }, + "/sms/sent/count": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Get number of sent SMS", + "operationId": "getSentSmsCount", + "summary": "Get sent SMS count" + } + }, + "/sms/sent/{sentSmsId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "sentSmsId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SmsController" + ], + "description": "Delete a sent SMS message", + "operationId": "deleteSentSmsMessage", + "summary": "Delete sent SMS message." + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "sentSmsId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentSmsDto" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Returns an SMS summary object with content.", + "operationId": "getSentSmsMessage", + "summary": "Get sent SMS content including body. Expects sent SMS to exist by ID." + } + }, + "/sms/unreadCount": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/UnreadCount" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Get number of SMS unread. Unread means has not been viewed in dashboard or returned in an email API response", + "operationId": "getUnreadSmsCount", + "summary": "Get unread SMS count" + } + }, + "/sms/{smsId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "smsId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SmsController" + ], + "description": "Delete an SMS message", + "operationId": "deleteSmsMessage", + "summary": "Delete SMS message." + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "smsId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SmsDto" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Returns a SMS summary object with content.", + "operationId": "getSmsMessage", + "summary": "Get SMS content including body. Expects SMS to exist by ID. For SMS that may not have arrived yet use the WaitForController." + } + }, + "/sms/{smsId}/favourite": { + "put": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of SMS to set favourite state", + "format": "uuid", + "in": "path", + "name": "smsId", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "favourited", + "required": true, + "type": "boolean" + } + ], + "responses": { + "204": { + "description": "No Content", + "schema": { + "$ref": "#/definitions/SmsDto" + } + } + }, + "tags": [ + "SmsController" + ], + "operationId": "setSmsFavourited" + } + }, + "/sms/{smsId}/reply": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "smsId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ReplyForSms" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Get reply for an SMS message.", + "operationId": "getReplyForSmsMessage", + "summary": "Get reply for an SMS message" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "smsId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SmsReplyOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentSmsDto" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Reply to an SMS message.", + "operationId": "replyToSmsMessage", + "summary": "Send a reply to a received SMS message. Replies are sent from the receiving number." + } + }, + "/templates": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/TemplateProjection" + }, + "type": "array" + } + } + }, + "tags": [ + "TemplateController" + ], + "description": "Get all templates", + "operationId": "getTemplates", + "summary": "List templates" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateTemplateOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/TemplateDto" + } + } + }, + "tags": [ + "TemplateController" + ], + "description": "Create an email template with variables for use with templated transactional emails.", + "operationId": "createTemplate", + "summary": "Create a Template" + } + }, + "/templates/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageTemplateProjection" + } + } + }, + "tags": [ + "TemplateController" + ], + "description": "Get all templates in paginated format", + "operationId": "getAllTemplates", + "summary": "List templates" + } + }, + "/templates/{templateId}": { + "delete": { + "parameters": [ + { + "description": "Template ID", + "format": "uuid", + "in": "path", + "name": "templateId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "TemplateController" + ], + "description": "Delete template", + "operationId": "deleteTemplate", + "summary": "Delete email template" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Template ID", + "format": "uuid", + "in": "path", + "name": "templateId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TemplateDto" + } + } + }, + "tags": [ + "TemplateController" + ], + "description": "Get email template", + "operationId": "getTemplate", + "summary": "Get template" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Template ID", + "format": "uuid", + "in": "path", + "name": "templateId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateTemplateOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/TemplateDto" + } + } + }, + "tags": [ + "TemplateController" + ], + "description": "Update email template", + "operationId": "updateTemplate", + "summary": "Update template" + } + }, + "/templates/{templateId}/preview/html": { + "get": { + "produces": [ + "text/html;charset=utf-8", + "text/html" + ], + "parameters": [ + { + "description": "Template ID", + "format": "uuid", + "in": "path", + "name": "templateId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "tags": [ + "TemplateController" + ], + "description": "Get email template preview with passed template variables in HTML format for browsers. Pass template variables as query params.", + "operationId": "getTemplatePreviewHtml", + "summary": "Get template preview HTML" + } + }, + "/templates/{templateId}/preview/json": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Template ID", + "format": "uuid", + "in": "path", + "name": "templateId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TemplatePreview" + } + } + }, + "tags": [ + "TemplateController" + ], + "description": "Get email template preview with passed template variables in JSON format. Pass template variables as query params.", + "operationId": "getTemplatePreviewJson", + "summary": "Get template preview Json" + } + }, + "/tools/check-email-features-client-support": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckEmailFeaturesClientSupportOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CheckEmailFeaturesClientSupportResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "checkEmailFeaturesClientSupport", + "summary": "Check email client support for email HTML and CSS features" + } + }, + "/tools/fake-email": { + "delete": { + "parameters": [ + { + "in": "query", + "name": "emailAddress", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "ToolsController" + ], + "description": "Delete a fake email address using the fake email domains", + "operationId": "deleteNewFakeEmailAddress", + "summary": "Delete a fake email address using the fake email domains" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FakeEmailResult" + } + } + }, + "tags": [ + "ToolsController" + ], + "description": "Get a fake email by its ID", + "operationId": "getFakeEmailById", + "summary": "Get a fake email by its ID" + }, + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/NewFakeEmailAddressResult" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "createNewFakeEmailAddress", + "summary": "Create a new email address using the fake email domains" + } + }, + "/tools/fake-email/byEmailAddress": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "query", + "name": "emailAddress", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FakeEmailResult" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "getFakeEmailByEmailAddress" + } + }, + "/tools/fake-email/html": { + "get": { + "produces": [ + "text/plain;charset=utf-8", + "text/html;charset=utf-8", + "text/plain; charset=utf-8", + "text/html; charset=utf-8" + ], + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "tags": [ + "ToolsController" + ], + "description": "Retrieve the raw content of a fake email by its ID", + "operationId": "getFakeEmailRaw", + "summary": "Get raw fake email content" + } + }, + "/tools/fake-emails": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "in": "query", + "name": "emailAddress", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/FakeEmailPreview" + }, + "type": "array" + } + } + }, + "tags": [ + "ToolsController" + ], + "description": "Get fake emails for an address", + "operationId": "getFakeEmailsForAddress", + "summary": "Get fake emails for an address" + } + }, + "/tools/generate-bimi-record": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GenerateBimiRecordOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GenerateBimiRecordResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "generateBimiRecord", + "summary": "Create a BIMI record policy" + } + }, + "/tools/generate-dmarc-record": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GenerateDmarcRecordOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GenerateDmarcRecordResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "generateDmarcRecord", + "summary": "Create a DMARC record policy" + } + }, + "/tools/generate-mta-sts-record": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GenerateMtaStsRecordOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GenerateMtaStsRecordResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "generateMtaStsRecord", + "summary": "Create a TLS reporting record policy" + } + }, + "/tools/generate-tls-reporting-record": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GenerateTlsReportingRecordOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GenerateTlsReportingRecordResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "generateTlsReportingRecord", + "summary": "Create a TLS reporting record policy" + } + }, + "/tools/lookup-bimi-domain": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LookupBimiDomainOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/LookupBimiDomainResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "lookupBimiDomain", + "summary": "Lookup a BIMI record policy" + } + }, + "/tools/lookup-dmarc-domain": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LookupDmarcDomainOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/LookupDmarcDomainResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "lookupDmarcDomain", + "summary": "Lookup a DMARC record policy" + } + }, + "/tools/lookup-mta-sts-domain": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LookupMtaStsDomainOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/LookupMtaStsDomainResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "lookupMtaStsDomain", + "summary": "Lookup a MTA-STS domain policy" + } + }, + "/tools/lookup-mx-records": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LookupMxRecordsOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/LookupMxRecordsResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "lookupMxRecord", + "summary": "Lookup a MX records for a domain" + } + }, + "/tools/lookup-tls-reporting-domain": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LookupTlsReportingDomainOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/LookupTlsReportingDomainResults" + } + } + }, + "tags": [ + "ToolsController" + ], + "operationId": "lookupTlsReportingDomain", + "summary": "Lookup a TLS reporting domain policy" + } + }, + "/tracking/pixels": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageTrackingPixelProjection" + } + } + }, + "tags": [ + "TrackingController" + ], + "description": "List tracking pixels in paginated form", + "operationId": "getAllTrackingPixels", + "summary": "Get tracking pixels" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateTrackingPixelOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/TrackingPixelDto" + } + } + }, + "tags": [ + "TrackingController" + ], + "description": "Create a tracking pixel. A tracking pixel is an image that can be embedded in an email. When the email is viewed and the image is seen MailSlurp will mark the pixel as seen. Use tracking pixels to monitor email open events. You can receive open notifications via webhook or by fetching the pixel.", + "operationId": "createTrackingPixel", + "summary": "Create tracking pixel" + } + }, + "/tracking/pixels/{id}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TrackingPixelDto" + } + } + }, + "tags": [ + "TrackingController" + ], + "operationId": "getTrackingPixel", + "summary": "Get pixel" + } + }, + "/user/automations": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "DESC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Optional phone ID", + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + }, + { + "description": "Optional automation type filter", + "enum": [ + "INBOX_FORWARDER", + "INBOX_REPLIER", + "INBOX_RULESET" + ], + "in": "query", + "name": "filter", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEntityAutomationItems" + } + } + }, + "tags": [ + "UserController" + ], + "operationId": "getEntityAutomations" + } + }, + "/user/events": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "DESC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Optional email ID", + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "description": "Optional phone ID", + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + }, + { + "description": "Optional SMS ID", + "format": "uuid", + "in": "query", + "name": "smsId", + "required": false, + "type": "string" + }, + { + "description": "Optional attachment ID", + "format": "uuid", + "in": "query", + "name": "attachmentId", + "required": false, + "type": "string" + }, + { + "description": "Optional type filter", + "enum": [ + "WEBHOOK_EVENT", + "INBOX_FORWARDER_EVENT", + "INBOX_REPLIER_EVENT", + "INBOX_RULESET_EVENT", + "ALIAS_EVENT" + ], + "in": "query", + "name": "filter", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEntityEventItems" + } + } + }, + "tags": [ + "UserController" + ], + "operationId": "getEntityEvents" + } + }, + "/user/favorites": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "DESC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional type filter", + "enum": [ + "INBOX", + "EMAIL", + "ATTACHMENT", + "PHONE", + "SMS" + ], + "in": "query", + "name": "filter", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEntityFavouriteItems" + } + } + }, + "tags": [ + "UserController" + ], + "operationId": "getEntityFavorites" + } + }, + "/user/inbox-retention-policies/account": { + "delete": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmptyResponseDto" + } + } + }, + "tags": [ + "UserController" + ], + "description": "Delete inbox retention policy for your global account", + "operationId": "deleteInboxRetentionPolicyForAccount" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxRetentionPolicyOptionalDto" + } + } + }, + "tags": [ + "UserController" + ], + "description": "Get inbox retention policy for your global account", + "operationId": "getInboxRetentionPolicyForAccount" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateInboxRetentionPolicyForAccountOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxRetentionPolicyDto" + } + } + }, + "tags": [ + "UserController" + ], + "description": "Create inbox retention policy for your global account", + "operationId": "createOrUpdateInboxRetentionPolicyForAccount" + } + }, + "/user/info": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/UserInfoDto" + } + } + }, + "tags": [ + "UserController" + ], + "description": "Get account information for your user", + "operationId": "getUserInfo" + } + }, + "/user/json/pluck": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "JSON property name or dot separated path selector such as `a.b.c`", + "in": "query", + "name": "property", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/JsonNode" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "tags": [ + "UserController" + ], + "description": "Utility function to extract properties from JSON objects in language where this is cumbersome.", + "operationId": "getJsonPropertyAsString" + } + }, + "/waitFor": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WaitForConditions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/EmailPreview" + }, + "type": "array" + } + } + }, + "tags": [ + "WaitForController" + ], + "description": "Generic waitFor method that will wait until an inbox meets given conditions or return immediately if already met", + "operationId": "waitFor", + "summary": "Wait for an email to match the provided filter conditions such as subject contains keyword." + } + }, + "/waitForEmailCount": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Id of the inbox we are fetching emails from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Number of emails to wait for. Must be greater that 1", + "format": "int32", + "in": "query", + "minimum": 1, + "name": "count", + "required": true, + "type": "integer" + }, + { + "description": "Max milliseconds to wait", + "format": "int64", + "in": "query", + "name": "timeout", + "required": false, + "type": "integer" + }, + { + "default": false, + "description": "Optional filter for unread only", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Filter for emails that were received before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter for emails that were received after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Sort direction", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Max milliseconds delay between calls", + "format": "int64", + "in": "query", + "name": "delay", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/EmailPreview" + }, + "type": "array" + } + } + }, + "tags": [ + "WaitForController" + ], + "description": "If inbox contains count or more emails at time of request then return count worth of emails. If not wait until the count is reached and return those or return an error if timeout is exceeded.", + "operationId": "waitForEmailCount", + "summary": "Wait for and return count number of emails. Hold connection until inbox count matches expected or timeout occurs" + } + }, + "/waitForLatestEmail": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Id of the inbox we are fetching emails from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Max milliseconds to wait", + "format": "int64", + "in": "query", + "name": "timeout", + "required": false, + "type": "integer" + }, + { + "default": false, + "description": "Optional filter for unread only.", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Filter for emails that were before after the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter for emails that were received after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Sort direction", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Max milliseconds delay between calls", + "format": "int64", + "in": "query", + "name": "delay", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Email" + } + } + }, + "tags": [ + "WaitForController" + ], + "description": "Will return either the last received email or wait for an email to arrive and return that. If you need to wait for an email for a non-empty inbox set `unreadOnly=true` or see the other receive methods such as `waitForNthEmail` or `waitForEmailCount`.", + "operationId": "waitForLatestEmail", + "summary": "Fetch inbox's latest email or if empty wait for an email to arrive" + } + }, + "/waitForLatestSms": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WaitForSingleSmsOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SmsDto" + } + } + }, + "tags": [ + "WaitForController" + ], + "description": "Wait until a phone number meets given conditions or return immediately if already met", + "operationId": "waitForLatestSms", + "summary": "Wait for the latest SMS message to match the provided filter conditions such as body contains keyword." + } + }, + "/waitForMatchingEmails": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Id of the inbox we are fetching emails from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Number of emails to wait for. Must be greater or equal to 1", + "format": "int32", + "in": "query", + "minimum": 1, + "name": "count", + "required": true, + "type": "integer" + }, + { + "description": "Filter for emails that were received before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter for emails that were received after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Sort direction", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Max milliseconds delay between calls", + "format": "int64", + "in": "query", + "name": "delay", + "required": false, + "type": "integer" + }, + { + "description": "Max milliseconds to wait", + "format": "int64", + "in": "query", + "name": "timeout", + "required": false, + "type": "integer" + }, + { + "default": false, + "description": "Optional filter for unread only", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MatchOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/EmailPreview" + }, + "type": "array" + } + } + }, + "tags": [ + "WaitForController" + ], + "description": "Perform a search of emails in an inbox with the given patterns. If results match expected count then return or else retry the search until results are found or timeout is reached. Match options allow simple CONTAINS or EQUALS filtering on SUBJECT, TO, BCC, CC, and FROM. See the `MatchOptions` object for options. An example payload is `{ matches: [{field: 'SUBJECT',should:'CONTAIN',value:'needle'}] }`. You can use an array of matches and they will be applied sequentially to filter out emails. If you want to perform matches and extractions of content using Regex patterns see the EmailController `getEmailContentMatch` method.", + "operationId": "waitForMatchingEmails", + "summary": "Wait or return list of emails that match simple matching patterns" + } + }, + "/waitForMatchingFirstEmail": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Id of the inbox we are matching an email for", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Max milliseconds to wait", + "format": "int64", + "in": "query", + "name": "timeout", + "required": false, + "type": "integer" + }, + { + "default": false, + "description": "Optional filter for unread only", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Filter for emails that were received after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter for emails that were received before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Sort direction", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Max milliseconds delay between calls", + "format": "int64", + "in": "query", + "name": "delay", + "required": false, + "type": "integer" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MatchOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Email" + } + } + }, + "tags": [ + "WaitForController" + ], + "description": "Perform a search of emails in an inbox with the given patterns. If a result if found then return or else retry the search until a result is found or timeout is reached. Match options allow simple CONTAINS or EQUALS filtering on SUBJECT, TO, BCC, CC, and FROM. See the `MatchOptions` object for options. An example payload is `{ matches: [{field: 'SUBJECT',should:'CONTAIN',value:'needle'}] }`. You can use an array of matches and they will be applied sequentially to filter out emails. If you want to perform matches and extractions of content using Regex patterns see the EmailController `getEmailContentMatch` method.", + "operationId": "waitForMatchingFirstEmail", + "summary": "Wait for or return the first email that matches provided MatchOptions array" + } + }, + "/waitForNthEmail": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Id of the inbox you are fetching emails from", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Zero based index of the email to wait for. If an inbox has 1 email already and you want to wait for the 2nd email pass index=1", + "format": "int32", + "in": "query", + "maximum": 2147483647, + "minimum": 0, + "name": "index", + "required": false, + "type": "integer" + }, + { + "description": "Max milliseconds to wait for the nth email if not already present", + "format": "int64", + "in": "query", + "name": "timeout", + "required": false, + "type": "integer" + }, + { + "default": false, + "description": "Optional filter for unread only", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Filter for emails that were received after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter for emails that were received before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Sort direction", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Max milliseconds delay between calls", + "format": "int64", + "in": "query", + "name": "delay", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Email" + } + } + }, + "tags": [ + "WaitForController" + ], + "description": "If nth email is already present in inbox then return it. If not hold the connection open until timeout expires or the nth email is received and returned.", + "operationId": "waitForNthEmail", + "summary": "Wait for or fetch the email with a given index in the inbox specified. If index doesn't exist waits for it to exist or timeout to occur." + } + }, + "/waitForSms": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WaitForSmsConditions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/SmsPreview" + }, + "type": "array" + } + } + }, + "tags": [ + "WaitForController" + ], + "description": "Generic waitFor method that will wait until a phone number meets given conditions or return immediately if already met", + "operationId": "waitForSms", + "summary": "Wait for an SMS message to match the provided filter conditions such as body contains keyword." + } + }, + "/webhooks": { + "delete": { + "parameters": [ + { + "description": "before", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "deleteAllWebhooks", + "summary": "Delete all webhooks" + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateWebhookOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WebhookDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get notified of account level events such as bounce and bounce recipient.", + "operationId": "createAccountWebhook", + "summary": "Attach a WebHook URL to an inbox" + } + }, + "/webhooks/account/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "maximum": 9223372036854776000, + "minimum": 0, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size for paginated result list.", + "format": "int32", + "in": "query", + "maximum": 100, + "minimum": 1, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "DESC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional event type", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "eventType", + "required": false, + "type": "string" + }, + { + "description": "Filter by webhook health", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "in": "query", + "name": "health", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageWebhookProjection" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "List account webhooks in paginated form. Allows for page index, page size, and sort direction.", + "operationId": "getAllAccountWebhooks", + "summary": "List account webhooks Paginated" + } + }, + "/webhooks/endpoints": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "maximum": 9223372036854776000, + "minimum": 0, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size for paginated result list.", + "format": "int32", + "in": "query", + "maximum": 100, + "minimum": 1, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "DESC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by inboxId", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Filter by phoneId", + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter by webhook health", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "in": "query", + "name": "health", + "required": false, + "type": "string" + }, + { + "description": "Optional event type", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "eventType", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageWebhookEndpointProjection" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "List webhooks URL in paginated form. Allows for page index, page size, and sort direction.", + "operationId": "getAllWebhookEndpoints", + "summary": "List Webhooks endpoints Paginated" + } + }, + "/webhooks/paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "maximum": 9223372036854776000, + "minimum": 0, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size for paginated result list.", + "format": "int32", + "in": "query", + "maximum": 100, + "minimum": 1, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "DESC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by inboxId", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Filter by aiTransformerId", + "format": "uuid", + "in": "query", + "name": "aiTransformerId", + "required": false, + "type": "string" + }, + { + "description": "Filter by phoneId", + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter by webhook health", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "in": "query", + "name": "health", + "required": false, + "type": "string" + }, + { + "description": "Optional event type", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "eventType", + "required": false, + "type": "string" + }, + { + "description": "Optional url endpoint filter", + "in": "query", + "name": "url", + "required": false, + "type": "string" + }, + { + "description": "Webhook source type category such as phone, inbox, aiTranformer", + "enum": [ + "INBOX", + "PHONE", + "AI_TRANSFORMER" + ], + "in": "query", + "name": "eventTypeSource", + "required": false, + "type": "string" + }, + { + "description": "Include account scope webhooks when passing phoneId, inboxId, or aiTransformerId filters", + "in": "query", + "name": "includeAccountWide", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageWebhookProjection" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "List webhooks in paginated form. Allows for page index, page size, and sort direction.", + "operationId": "getAllWebhooks", + "summary": "List Webhooks Paginated" + } + }, + "/webhooks/results": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter for unseen exceptions only", + "in": "query", + "name": "unseenOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Filter by result type", + "enum": [ + "BAD_RESPONSE", + "EXCEPTION", + "SUCCESS", + "REDRIVEN" + ], + "in": "query", + "name": "resultType", + "required": false, + "type": "string" + }, + { + "description": "Filter by event name", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "eventName", + "required": false, + "type": "string" + }, + { + "description": "Minimum response status", + "format": "int32", + "in": "query", + "name": "minStatusCode", + "required": false, + "type": "integer" + }, + { + "description": "Maximum response status", + "format": "int32", + "in": "query", + "name": "maxStatusCode", + "required": false, + "type": "integer" + }, + { + "description": "Inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Sms ID", + "format": "uuid", + "in": "query", + "name": "smsId", + "required": false, + "type": "string" + }, + { + "description": "Attachment ID", + "format": "uuid", + "in": "query", + "name": "attachmentId", + "required": false, + "type": "string" + }, + { + "description": "Email ID", + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "description": "Phone ID", + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + }, + { + "description": "AI Transformer ID", + "format": "uuid", + "in": "query", + "name": "aiTransformerId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageWebhookResult" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getAllWebhookResults", + "summary": "Get results for all webhooks" + } + }, + "/webhooks/results/redrive": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookRedriveAllResult" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Allows you to resend webhook payloads for any recorded webhook result that failed to deliver the payload.", + "operationId": "redriveAllWebhookResults", + "summary": "Redrive all webhook results that have failed status" + } + }, + "/webhooks/results/unseen-count": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/UnseenErrorCountDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getWebhookResultsUnseenErrorCount", + "summary": "Get count of unseen webhook results with error status" + } + }, + "/webhooks/results/{webhookResultId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Webhook Result ID", + "format": "uuid", + "in": "path", + "name": "webhookResultId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookResultDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getWebhookResult", + "summary": "Get a webhook result for a webhook" + } + }, + "/webhooks/results/{webhookResultId}/redrive": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Webhook Result ID", + "format": "uuid", + "in": "path", + "name": "webhookResultId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookRedriveResult" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Allows you to resend a webhook payload that was already sent. Webhooks that fail are retried automatically for 24 hours and then put in a dead letter queue. You can retry results manually using this method.", + "operationId": "redriveWebhookResult", + "summary": "Get a webhook result and try to resend the original webhook payload" + } + }, + "/webhooks/schema": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "event", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/JSONSchemaDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get JSON Schema definition for webhook payload by event", + "operationId": "getJsonSchemaForWebhookEvent" + } + }, + "/webhooks/test": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "eventName", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AbstractWebhookPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get test webhook payload example. Response content depends on eventName passed. Uses `EMAIL_RECEIVED` as default.", + "operationId": "getTestWebhookPayload" + } + }, + "/webhooks/test/delivery-status-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookDeliveryStatusPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getTestWebhookPayloadDeliveryStatus", + "summary": "Get webhook test payload for delivery status event" + } + }, + "/webhooks/test/email-bounce-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookBouncePayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get webhook test payload for bounce", + "operationId": "getTestWebhookPayloadBounce" + } + }, + "/webhooks/test/email-bounce-recipient-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookBounceRecipientPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get webhook test payload for bounce recipient", + "operationId": "getTestWebhookPayloadBounceRecipient" + } + }, + "/webhooks/test/email-opened-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookEmailOpenedPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get webhook test payload for email opened event", + "operationId": "getTestWebhookPayloadEmailOpened" + } + }, + "/webhooks/test/email-read-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookEmailReadPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get webhook test payload for email opened event", + "operationId": "getTestWebhookPayloadEmailRead" + } + }, + "/webhooks/test/new-ai-transform-result-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookNewAITransformResultPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getTestWebhookPayloadNewAITransformResult", + "summary": "Get webhook test payload for new ai transform result event" + } + }, + "/webhooks/test/new-attachment-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookNewAttachmentPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getTestWebhookPayloadNewAttachment", + "summary": "Get webhook test payload for new attachment event" + } + }, + "/webhooks/test/new-contact-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookNewContactPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getTestWebhookPayloadNewContact", + "summary": "Get webhook test payload for new contact event" + } + }, + "/webhooks/test/new-email-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookNewEmailPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getTestWebhookPayloadNewEmail", + "summary": "Get webhook test payload for new email event" + } + }, + "/webhooks/test/new-sms-payload": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookNewSmsPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getTestWebhookPayloadNewSms", + "summary": "Get webhook test payload for new sms event" + } + }, + "/webhooks/verify": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VerifyWebhookSignatureOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/VerifyWebhookSignatureResults" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Verify a webhook payload using the messageId and signature. This allows you to be sure that MailSlurp sent the payload and not another server.", + "operationId": "verifyWebhookSignature", + "summary": "Verify a webhook payload signature" + } + }, + "/webhooks/{webhookId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "deleteWebhookById", + "summary": "Delete a webhook" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getWebhook", + "summary": "Get a webhook" + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "aiTransformerId", + "required": false, + "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "phoneNumberId", + "required": false, + "type": "string" + }, + { + "in": "query", + "name": "overrideAuth", + "required": false, + "type": "boolean" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateWebhookOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "updateWebhook", + "summary": "Update a webhook" + } + }, + "/webhooks/{webhookId}/example": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/AbstractWebhookPayload" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get example payload for webhook", + "operationId": "getTestWebhookPayloadForWebhook" + } + }, + "/webhooks/{webhookId}/headers": { + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WebhookHeaders" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WebhookDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "updateWebhookHeaders", + "summary": "Update a webhook request headers" + } + }, + "/webhooks/{webhookId}/results": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of webhook to get results for", + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Filter for unseen exceptions only", + "in": "query", + "name": "unseenOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Filter by result type", + "enum": [ + "BAD_RESPONSE", + "EXCEPTION", + "SUCCESS", + "REDRIVEN" + ], + "in": "query", + "name": "resultType", + "required": false, + "type": "string" + }, + { + "description": "Filter by event name", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "eventName", + "required": false, + "type": "string" + }, + { + "description": "Minimum response status", + "format": "int32", + "in": "query", + "name": "minStatusCode", + "required": false, + "type": "integer" + }, + { + "description": "Maximum response status", + "format": "int32", + "in": "query", + "name": "maxStatusCode", + "required": false, + "type": "integer" + }, + { + "description": "Inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Sms ID", + "format": "uuid", + "in": "query", + "name": "smsId", + "required": false, + "type": "string" + }, + { + "description": "Attachment ID", + "format": "uuid", + "in": "query", + "name": "attachmentId", + "required": false, + "type": "string" + }, + { + "description": "Email ID", + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "description": "Phone ID", + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + }, + { + "description": "AI Transformer ID", + "format": "uuid", + "in": "query", + "name": "aiTransformerId", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageWebhookResult" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getWebhookResults", + "summary": "Get a webhook results for a webhook" + } + }, + "/webhooks/{webhookId}/results/count": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of webhook to get results for", + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "getWebhookResultsCount", + "summary": "Get a webhook results count for a webhook" + } + }, + "/webhooks/{webhookId}/schema": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/JSONSchemaDto" + } + } + }, + "tags": [ + "WebhookController" + ], + "description": "Get JSON Schema definition for webhook payload", + "operationId": "getJsonSchemaForWebhookPayload" + } + }, + "/webhooks/{webhookId}/test": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WebhookTestResult" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "sendTestData", + "summary": "Send webhook test data" + } + }, + "/webhooks/{webhookId}/wait": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of webhook to get results for", + "format": "uuid", + "in": "path", + "name": "webhookId", + "required": true, + "type": "string" + }, + { + "description": "Expected result count", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "expectedCount", + "required": true, + "type": "integer" + }, + { + "description": "Max time to wait in milliseconds", + "format": "int32", + "in": "query", + "maximum": 300000, + "minimum": 1000, + "name": "timeout", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/WebhookResultDto" + }, + "type": "array" + } + } + }, + "tags": [ + "WebhookController" + ], + "operationId": "waitForWebhookResults", + "summary": "Wait for webhook results for a webhook" + } + } + }, + "definitions": { + "AIMappingMatchOption": { + "description": "Options for matching when an AI transform mapping should trigger. Each match option object contains a `field`, `should` and `value` property. Together they form logical conditions such as `SUBJECT` should `CONTAIN` value.", + "properties": { + "field": { + "description": "Fields of an email, sms, or attachment object that can be used to filter results", + "enum": [ + "SUBJECT", + "TO", + "BCC", + "CC", + "FROM", + "HEADERS", + "FILENAME", + "SMS" + ], + "title": "AIMAppingMatchField", + "type": "string" + }, + "should": { + "description": "How the value of the field specified should be compared to the value given in the match options.", + "enum": [ + "MATCH", + "CONTAIN", + "EQUAL" + ], + "title": "AIMappingMatchShould", + "type": "string" + }, + "value": { + "description": "The value you wish to compare with the value of the field specified using the `should` value passed. For example `BODY` should `CONTAIN` a value passed. When should value is `MATCH` pass a regex", + "minLength": 1, + "type": "string" + } + }, + "required": [ + "field", + "should", + "value" + ], + "type": "object", + "x-nullable": true + }, + "AIMappingMatchOptions": { + "description": "Optional filter for matching emails based on fields. For instance filter results to only include emails whose `SUBJECT` value does `CONTAIN` given match value. An example payload would be `{ matches: [{ field: 'SUBJECT', should: 'CONTAIN', value: 'Welcome' }] }`. You can also pass conditions such as `HAS_ATTACHMENT`. If you wish to extract regex matches inside the email content see the `getEmailContentMatch` method in the EmailController.", + "properties": { + "matches": { + "description": "Zero or more match options such as `{ field: 'SUBJECT', should: 'CONTAIN', value: 'Welcome' }`. Options are additive so if one does not match the email is excluded from results", + "items": { + "$ref": "#/definitions/AIMappingMatchOption" + }, + "type": "array", + "x-nullable": true + } + }, + "type": "object", + "x-nullable": true + }, + "AITransformCreateOptions": { + "properties": { + "conditions": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "extractPrompt": { + "type": "string", + "x-nullable": true + }, + "instructions": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "name": { + "type": "string", + "x-nullable": true + }, + "outputSchema": { + "$ref": "#/definitions/StructuredOutputSchema" + }, + "outputSchemaId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "AITransformDto": { + "properties": { + "conditions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "instructions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "outputSchema": { + "$ref": "#/definitions/StructuredOutputSchema" + } + }, + "required": [ + "createdAt", + "id" + ], + "type": "object" + }, + "AITransformMappingDto": { + "properties": { + "aiTransformId": { + "format": "uuid", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "entityId": { + "format": "uuid", + "type": "string" + }, + "entityType": { + "enum": [ + "INBOX", + "PHONE" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "matchOptions": { + "$ref": "#/definitions/AIMappingMatchOptions" + }, + "name": { + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "aiTransformId", + "createdAt", + "entityType", + "id", + "userId" + ], + "type": "object" + }, + "AITransformMappingMatchResult": { + "properties": { + "isMatch": { + "type": "boolean" + } + }, + "required": [ + "isMatch" + ], + "type": "object" + }, + "AITransformMappingProjection": { + "properties": { + "aiTransformId": { + "format": "uuid", + "type": "string" + }, + "contentSelector": { + "enum": [ + "RAW", + "BODY", + "BODY_ATTACHMENTS" + ], + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "entityId": { + "format": "uuid", + "type": "string" + }, + "entityType": { + "enum": [ + "INBOX", + "PHONE" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "triggerSelector": { + "enum": [ + "PER_MESSAGE", + "PER_ATTACHMENT" + ], + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "aiTransformId", + "createdAt", + "entityType", + "id", + "userId" + ], + "type": "object" + }, + "AITransformProjection": { + "properties": { + "conditions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "instructions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "outputSchema": { + "$ref": "#/definitions/StructuredOutputSchema" + } + }, + "required": [ + "createdAt", + "id" + ], + "type": "object" + }, + "AITransformResultDto": { + "properties": { + "aiTransformId": { + "format": "uuid", + "type": "string" + }, + "aiTransformMappingId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "attachmentId": { + "type": "string", + "x-nullable": true + }, + "columns": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "entityId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "entityType": { + "enum": [ + "INBOX", + "PHONE" + ], + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "smsId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + }, + "value": { + "type": "object", + "x-nullable": true + } + }, + "required": [ + "aiTransformId", + "columns", + "createdAt", + "id", + "updatedAt", + "userId" + ], + "type": "object" + }, + "AITransformResultProjectionDto": { + "properties": { + "aiTransformId": { + "format": "uuid", + "type": "string" + }, + "aiTransformMappingId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "attachmentId": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "entityId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "entityType": { + "enum": [ + "INBOX", + "PHONE" + ], + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "smsId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string" + }, + "value": { + "type": "object", + "x-nullable": true + } + }, + "required": [ + "aiTransformId", + "createdAt", + "id", + "userId" + ], + "type": "object" + }, + "AbstractWebhookPayload": { + "description": "Abstract webhook payload. Use the correct payload type for your webhook event type in order to access all the specific properties for that event. See the `NEW_EMAIL`,`NEW_CONTACT`, `NEW_ATTACHMENT` and `EMAIL_OPENED` payloads for the properties available for those events.", + "properties": { + "eventName": { + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "messageId": { + "type": "string" + }, + "webhookId": { + "format": "uuid", + "type": "string" + }, + "webhookName": { + "type": "string" + } + }, + "required": [ + "eventName", + "messageId", + "webhookId" + ], + "type": "object" + }, + "AccountBounceBlockDto": { + "properties": { + "bounceCount": { + "format": "int64", + "type": "integer" + }, + "bounceCountToday": { + "format": "int64", + "type": "integer" + }, + "isFrozen": { + "type": "boolean" + }, + "isSendingBlocked": { + "type": "boolean" + }, + "maximumAccountBounces": { + "format": "int64", + "type": "integer" + }, + "maximumDailyBounces": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "bounceCount", + "bounceCountToday", + "isFrozen", + "isSendingBlocked", + "maximumAccountBounces", + "maximumDailyBounces" + ], + "type": "object" + }, + "AliasDto": { + "description": "Email alias representation", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "domainId": { + "description": "Domain ID associated with the alias", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "emailAddress": { + "description": "The alias's email address for receiving email", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "description": "Inbox that is associated with the alias", + "format": "uuid", + "type": "string" + }, + "isVerified": { + "description": "Has the alias been verified. You must verify an alias if the masked email address has not yet been verified by your account", + "type": "boolean" + }, + "maskedEmailAddress": { + "description": "The underlying email address that is hidden and will received forwarded email", + "type": "string", + "x-nullable": true + }, + "name": { + "type": "string", + "x-nullable": true + }, + "updatedAt": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "useThreads": { + "description": "If alias will generate response threads or not when email are received by it", + "type": "boolean", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "emailAddress", + "id", + "inboxId", + "isVerified", + "userId" + ], + "type": "object" + }, + "AliasProjection": { + "description": "Representation of a alias", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "useThreads": { + "type": "boolean" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "emailAddress", + "id", + "inboxId", + "updatedAt", + "userId" + ], + "type": "object" + }, + "AliasThreadProjection": { + "description": "A thread is a message thread created for a message received by an alias", + "properties": { + "aliasId": { + "description": "Alias ID", + "format": "uuid", + "type": "string" + }, + "bcc": { + "description": "BCC recipients", + "items": { + "description": "BCC recipients", + "type": "string" + }, + "type": "array" + }, + "cc": { + "description": "CC recipients", + "items": { + "description": "CC recipients", + "type": "string" + }, + "type": "array" + }, + "createdAt": { + "description": "Created at DateTime", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of email thread", + "format": "uuid", + "type": "string" + }, + "inboxId": { + "description": "Inbox ID", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Name of thread", + "type": "string" + }, + "subject": { + "description": "Thread subject", + "type": "string" + }, + "to": { + "description": "To recipients", + "items": { + "description": "To recipients", + "type": "string" + }, + "type": "array" + }, + "updatedAt": { + "description": "Updated at DateTime", + "format": "date-time", + "type": "string" + }, + "userId": { + "description": "User ID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "aliasId", + "createdAt", + "id", + "inboxId", + "to", + "updatedAt", + "userId" + ], + "type": "object" + }, + "AttachmentEntityDto": { + "description": "DTO representation of an attachment.", + "properties": { + "attachmentId": { + "description": "The identifier of the attachment file", + "type": "string" + }, + "contentId": { + "description": "The content identifier, which is a unique ID for the content part of the email.", + "type": "string", + "x-nullable": true + }, + "contentLength": { + "description": "The content length of the attachment in bytes.", + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "contentType": { + "description": "The content type of the attachment.", + "type": "string", + "x-nullable": true + }, + "createdAt": { + "description": "The timestamp when this attachment was created.", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "The unique identifier for this attachment.", + "format": "uuid", + "type": "string" + }, + "inboxId": { + "description": "The inbox identifier associated with this attachment.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "name": { + "description": "The name of the attachment file.", + "type": "string", + "x-nullable": true + }, + "updatedAt": { + "description": "The timestamp when this attachment was last updated.", + "format": "date-time", + "type": "string" + }, + "userId": { + "description": "The user identifier associated with this attachment.", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "attachmentId", + "createdAt", + "id", + "updatedAt", + "userId" + ], + "type": "object" + }, + "AttachmentMetaData": { + "description": "Meta data associated with an attachment. Attachments are stored as byte blobs so the meta data is stored separately.", + "properties": { + "contentId": { + "description": "CID of attachment", + "title": "Content ID", + "type": "string", + "x-nullable": true + }, + "contentLength": { + "description": "Size of attachment in bytes", + "format": "int64", + "title": "Content length", + "type": "integer" + }, + "contentType": { + "description": "Content type of attachment such as `image/png`", + "title": "Content type", + "type": "string" + }, + "id": { + "description": "ID of attachment. Can be used to with attachment controller endpoints to download attachment or with sending methods to attach to an email.", + "title": "ID", + "type": "string" + }, + "name": { + "description": "Name of attachment if given", + "title": "Name", + "type": "string" + } + }, + "required": [ + "contentLength", + "contentType", + "id", + "name" + ], + "title": "Attachment meta data", + "type": "object" + }, + "AttachmentProjection": { + "description": "Email attachment data", + "properties": { + "attachmentId": { + "description": "Attachment ID", + "type": "string" + }, + "contentId": { + "description": "Content ID of attachment.", + "type": "string", + "x-nullable": true + }, + "contentLength": { + "description": "Content length of attachment in bytes", + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "contentType": { + "description": "Content type of attachment.", + "example": "image/png", + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID", + "format": "uuid", + "type": "string" + }, + "inboxId": { + "description": "Inbox ID", + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string", + "x-nullable": true + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "attachmentId", + "createdAt", + "id", + "updatedAt", + "userId" + ], + "type": "object" + }, + "BasicAuthOptions": { + "description": "Basic Authentication options for webhooks. Will be used is present when calling webhook endpoints.", + "properties": { + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "password", + "username" + ], + "type": "object", + "x-nullable": true + }, + "BounceProjection": { + "description": "Bounced email event", + "properties": { + "bounceMta": { + "type": "string", + "x-nullable": true + }, + "bounceType": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "sender": { + "type": "string" + }, + "subject": { + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "sender" + ], + "type": "object" + }, + "BounceRecipientProjection": { + "description": "Bounced recipient", + "properties": { + "action": { + "type": "string", + "x-nullable": true + }, + "bounceType": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "recipient": { + "type": "string" + }, + "sentEmailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "status": { + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "recipient" + ], + "type": "object" + }, + "BouncedEmailDto": { + "description": "Bounced email", + "properties": { + "bounceMta": { + "type": "string", + "x-nullable": true + }, + "bounceRecipients": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bounceSubType": { + "type": "string", + "x-nullable": true + }, + "bounceType": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "notificationType": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "sentEmailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "sentToRecipients": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "subject": { + "type": "string", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "notificationType", + "sender", + "userId" + ], + "type": "object" + }, + "BouncedRecipientDto": { + "description": "Bounced recipient", + "properties": { + "action": { + "type": "string", + "x-nullable": true + }, + "bounceType": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "diagnosticCode": { + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "recipient": { + "type": "string" + }, + "sentEmailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "status": { + "type": "string", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "id", + "recipient" + ], + "type": "object" + }, + "BulkSendEmailOptions": { + "description": "Options for bulk sending an email from multiple addresses. See regular `sendEmail` methods for more information.", + "properties": { + "inboxIds": { + "description": "Inboxes to send the email from", + "items": { + "description": "Inboxes to send the email from", + "format": "uuid", + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "sendEmailOptions": { + "$ref": "#/definitions/SendEmailOptions" + } + }, + "required": [ + "inboxIds", + "sendEmailOptions" + ], + "type": "object" + }, + "CanSendEmailResults": { + "properties": { + "isSendingPermitted": { + "type": "boolean" + }, + "message": { + "type": "string" + } + }, + "required": [ + "isSendingPermitted" + ], + "type": "object" + }, + "CheckEmailBodyFeatureSupportResults": { + "properties": { + "result": { + "$ref": "#/definitions/EmailFeatureSupportResult" + } + }, + "required": [ + "result" + ], + "type": "object" + }, + "CheckEmailBodyResults": { + "properties": { + "hasIssues": { + "type": "boolean" + }, + "imageIssues": { + "items": { + "$ref": "#/definitions/ImageIssue" + }, + "type": "array" + }, + "linkIssues": { + "items": { + "$ref": "#/definitions/LinkIssue" + }, + "type": "array" + }, + "spellingIssues": { + "items": { + "$ref": "#/definitions/SpellingIssue" + }, + "type": "array" + } + }, + "required": [ + "hasIssues", + "imageIssues", + "linkIssues", + "spellingIssues" + ], + "type": "object" + }, + "CheckEmailClientSupportOptions": { + "description": "Options for the email to be validated", + "properties": { + "emailBody": { + "type": "string" + } + }, + "required": [ + "emailBody" + ], + "type": "object" + }, + "CheckEmailClientSupportResults": { + "properties": { + "result": { + "$ref": "#/definitions/EmailFeatureSupportResult" + } + }, + "required": [ + "result" + ], + "type": "object" + }, + "CheckEmailFeaturesClientSupportOptions": { + "properties": { + "emailBody": { + "type": "string" + } + }, + "required": [ + "emailBody" + ], + "type": "object" + }, + "CheckEmailFeaturesClientSupportResults": { + "properties": { + "result": { + "$ref": "#/definitions/EmailFeatureSupportResult" + } + }, + "required": [ + "result" + ], + "type": "object" + }, + "Complaint": { + "properties": { + "complaintRecipient": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "eventType": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "mailMessageId": { + "type": "string" + }, + "mailSource": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "complaintRecipient", + "createdAt", + "id", + "updatedAt" + ], + "type": "object" + }, + "ConditionOption": { + "description": "Options for matching emails in an inbox based on a condition such as `HAS_ATTACHMENTS=TRUE`", + "properties": { + "condition": { + "description": "Condition of an email object that can be used to filter results", + "enum": [ + "HAS_ATTACHMENTS" + ], + "title": "ConditionField", + "type": "string" + }, + "value": { + "description": "Expected condition value", + "enum": [ + "TRUE", + "FALSE" + ], + "title": "ConditionValue", + "type": "string" + } + }, + "required": [ + "condition", + "value" + ], + "type": "object", + "x-nullable": true + }, + "ConditionalStructuredContentResult": { + "properties": { + "conditionsMatch": { + "type": "boolean" + }, + "result": { + "$ref": "#/definitions/JsonNode" + }, + "tokenCount": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "conditionsMatch" + ], + "type": "object" + }, + "ConnectorDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string", + "x-nullable": true + }, + "enabled": { + "type": "boolean" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "enabled", + "id", + "inboxId", + "userId" + ], + "type": "object" + }, + "ConnectorEventDto": { + "properties": { + "connectorId": { + "format": "uuid", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "eventType": { + "enum": [ + "SEND", + "SYNC" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "logs": { + "type": "string" + }, + "message": { + "type": "string" + }, + "seen": { + "type": "boolean" + }, + "size": { + "format": "int64", + "type": "integer" + }, + "status": { + "enum": [ + "SUCCESS", + "INTERNAL_ERROR", + "SUBSCRIPTION_ERROR", + "CONNECTION_ERROR", + "NOT_FOUND" + ], + "type": "string" + } + }, + "required": [ + "connectorId", + "createdAt", + "eventType", + "id", + "size", + "status" + ], + "type": "object" + }, + "ConnectorEventProjection": { + "description": "ConnectorEventProjection", + "properties": { + "connectorId": { + "format": "uuid", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "eventType": { + "enum": [ + "SEND", + "SYNC" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "message": { + "type": "string" + }, + "seen": { + "type": "boolean" + }, + "size": { + "format": "int64", + "type": "integer" + }, + "status": { + "enum": [ + "SUCCESS", + "INTERNAL_ERROR", + "SUBSCRIPTION_ERROR", + "CONNECTION_ERROR", + "NOT_FOUND" + ], + "type": "string" + } + }, + "required": [ + "connectorId", + "createdAt", + "eventType", + "size", + "status" + ], + "type": "object" + }, + "ConnectorImapConnectionDto": { + "properties": { + "connectorId": { + "format": "uuid", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "imapHost": { + "type": "string" + }, + "imapPassword": { + "type": "string" + }, + "imapPort": { + "format": "int32", + "type": "integer" + }, + "imapSsl": { + "type": "boolean" + }, + "imapUsername": { + "type": "string" + }, + "localHostName": { + "type": "string" + }, + "mechanisms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "proxyEnabled": { + "type": "boolean" + }, + "proxyHost": { + "type": "string" + }, + "proxyPort": { + "format": "int32", + "type": "integer" + }, + "searchTerms": { + "type": "string" + }, + "selectFolder": { + "type": "string" + }, + "sslProtocols": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sslTrust": { + "type": "string" + }, + "startTls": { + "type": "boolean" + } + }, + "required": [ + "connectorId", + "createdAt", + "id", + "imapHost" + ], + "type": "object" + }, + "ConnectorImapConnectionTestResult": { + "properties": { + "error": { + "type": "string" + }, + "logs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "message": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "required": [ + "success" + ], + "type": "object" + }, + "ConnectorProjection": { + "description": "Connector", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "inboxId", + "userId" + ], + "type": "object" + }, + "ConnectorProviderSettingsDto": { + "properties": { + "googleSettings": { + "$ref": "#/definitions/ProviderSettings" + }, + "microsoftSettings": { + "$ref": "#/definitions/ProviderSettings" + } + }, + "required": [ + "googleSettings", + "microsoftSettings" + ], + "type": "object" + }, + "ConnectorSmtpConnectionDto": { + "properties": { + "connectorId": { + "format": "uuid", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "enabled": { + "type": "boolean", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "localHostName": { + "type": "string", + "x-nullable": true + }, + "proxyEnabled": { + "type": "boolean", + "x-nullable": true + }, + "proxyHost": { + "type": "string", + "x-nullable": true + }, + "proxyPort": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "smtpHost": { + "type": "string" + }, + "smtpMechanisms": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "smtpPassword": { + "type": "string", + "x-nullable": true + }, + "smtpPort": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "smtpSsl": { + "type": "boolean", + "x-nullable": true + }, + "smtpUsername": { + "type": "string", + "x-nullable": true + }, + "sslProtocols": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "sslTrust": { + "type": "string", + "x-nullable": true + }, + "startTls": { + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "connectorId", + "createdAt", + "id", + "smtpHost" + ], + "type": "object" + }, + "ConnectorSmtpConnectionTestResult": { + "properties": { + "error": { + "type": "string" + }, + "logs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "message": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "required": [ + "success" + ], + "type": "object" + }, + "ConnectorSyncRequestResult": { + "properties": { + "eventId": { + "format": "uuid", + "type": "string" + }, + "exception": { + "type": "string" + }, + "syncResult": { + "$ref": "#/definitions/ConnectorSyncResult" + } + }, + "type": "object" + }, + "ConnectorSyncResult": { + "properties": { + "emailIds": { + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "emailSyncCount": { + "format": "int32", + "type": "integer" + }, + "logs": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "emailSyncCount" + ], + "type": "object" + }, + "ConnectorSyncSettingsDto": { + "properties": { + "connectorId": { + "format": "uuid", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "syncEnabled": { + "type": "boolean" + }, + "syncInterval": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "syncScheduleType": { + "enum": [ + "INTERVAL" + ], + "type": "string", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "connectorId", + "id", + "syncEnabled", + "userId" + ], + "type": "object" + }, + "ConsentStatusDto": { + "properties": { + "consented": { + "type": "boolean" + } + }, + "required": [ + "consented" + ], + "type": "object" + }, + "ContactDto": { + "description": "Contact object. For saving a user in contact book.", + "properties": { + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "company": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "firstName": { + "type": "string", + "x-nullable": true + }, + "groupId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "lastName": { + "type": "string", + "x-nullable": true + }, + "metaData": { + "$ref": "#/definitions/JsonNode" + }, + "optOut": { + "type": "boolean", + "x-nullable": true + }, + "primaryEmailAddress": { + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "emailAddresses", + "id", + "tags" + ], + "type": "object" + }, + "ContactProjection": { + "description": "Email contact for address book", + "properties": { + "company": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string", + "x-nullable": true + }, + "emailAddresses": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "firstName": { + "type": "string", + "x-nullable": true + }, + "groupId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "lastName": { + "type": "string", + "x-nullable": true + }, + "optOut": { + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "id" + ], + "type": "object" + }, + "ContentMatchOptions": { + "description": "Options for matching content using regex patterns based on Java Pattern syntax", + "properties": { + "pattern": { + "description": "Java style regex pattern. Do not include the typical `/` at start or end of regex in some languages. Given an example `your code is: 12345` the pattern to extract match looks like `code is: (\\d{6})`. This will return an array of matches with the first matching the entire pattern and the subsequent matching the groups: `['code is: 123456', '123456']` See https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html for more information of available patterns.", + "type": "string" + } + }, + "required": [ + "pattern" + ], + "type": "object" + }, + "CountDto": { + "description": "Number of elements", + "properties": { + "totalElements": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "totalElements" + ], + "type": "object" + }, + "CreateAITransformerMappingOptions": { + "properties": { + "aiTransformId": { + "format": "uuid", + "type": "string" + }, + "contentSelector": { + "enum": [ + "RAW", + "BODY", + "BODY_ATTACHMENTS" + ], + "type": "string", + "x-nullable": true + }, + "entityId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "entityType": { + "enum": [ + "INBOX", + "PHONE" + ], + "type": "string" + }, + "matchOptions": { + "$ref": "#/definitions/AIMappingMatchOptions" + }, + "name": { + "type": "string", + "x-nullable": true + }, + "spreadRootArray": { + "type": "boolean", + "x-nullable": true + }, + "triggerSelector": { + "enum": [ + "PER_MESSAGE", + "PER_ATTACHMENT" + ], + "type": "string", + "x-nullable": true + } + }, + "required": [ + "aiTransformId", + "entityType" + ], + "type": "object" + }, + "CreateAliasOptions": { + "description": "Create email alias options. Email aliases can be used to mask real email addresses behind an ID. You can also attach an inbox to an alias so that any email received by the inbox email address if forwarded to the alias email address.", + "properties": { + "domainId": { + "description": "Custom domain ID to use when generating alias email addresses", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "emailAddress": { + "description": "Email address to be hidden behind alias. Emails sent to the alias email address will be forwarded to this address. If you want to enable replies set useThreads true and the reply-to for the email will allow outbound communication via a thread. Some email addresses may require verification if they are not added as a contact first.", + "type": "string" + }, + "inboxId": { + "description": "Optional inbox ID to attach to alias. Null by default means an a new inbox will be created for the alias. Use a custom inbox to control what email address the alias uses. To use custom email addresses create a domain and an inbox, the use the inbox ID with this call. Emails received by this inbox will be forwarded to the alias email address", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Optional name for alias", + "type": "string", + "x-nullable": true + }, + "useThreads": { + "description": "Enable threads options. If true emails will be sent with a unique reply-to thread address. This means you can reply to the forwarded email and it will be sent to the recipients via your alias address. That way a thread conversation is preserved.", + "type": "boolean" + }, + "verifyEmailAddress": { + "description": "Whether to verify the masked email address exists before sending an email to it", + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "emailAddress", + "useThreads" + ], + "type": "object" + }, + "CreateConnectorImapConnectionOptions": { + "description": "Options for IMAP connection to external email inbox. Allows syncing emails via IMAP.", + "properties": { + "enabled": { + "description": "IMAP server enabled", + "type": "boolean", + "x-nullable": true + }, + "imapHost": { + "description": "IMAP server host", + "type": "string" + }, + "imapPassword": { + "type": "string", + "x-nullable": true + }, + "imapPort": { + "description": "IMAP server port", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "imapSsl": { + "type": "boolean", + "x-nullable": true + }, + "imapUsername": { + "type": "string", + "x-nullable": true + }, + "localHostName": { + "type": "string", + "x-nullable": true + }, + "mechanisms": { + "description": "List of IMAP mechanisms", + "items": { + "description": "List of IMAP mechanisms", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "proxyEnabled": { + "type": "boolean", + "x-nullable": true + }, + "proxyHost": { + "type": "string", + "x-nullable": true + }, + "proxyPort": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "searchTerms": { + "type": "string", + "x-nullable": true + }, + "selectFolder": { + "description": "Optional folder to select during IMAP connection", + "type": "string", + "x-nullable": true + }, + "sslProtocols": { + "description": "List of SSL protocols", + "items": { + "description": "List of SSL protocols", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "sslTrust": { + "type": "string", + "x-nullable": true + }, + "startTls": { + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "imapHost" + ], + "type": "object" + }, + "CreateConnectorOptions": { + "description": "Options for creating an inbox connection with an external mail provider", + "properties": { + "emailAddress": { + "description": "Email address of external inbox", + "type": "string", + "x-nullable": true + }, + "enabled": { + "description": "Is connector enabled", + "type": "boolean", + "x-nullable": true + }, + "name": { + "description": "Name of connector", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "CreateConnectorSmtpConnectionOptions": { + "properties": { + "enabled": { + "type": "boolean", + "x-nullable": true + }, + "localHostName": { + "type": "string", + "x-nullable": true + }, + "proxyEnabled": { + "type": "boolean", + "x-nullable": true + }, + "proxyHost": { + "type": "string", + "x-nullable": true + }, + "proxyPort": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "smtpHost": { + "type": "string" + }, + "smtpMechanisms": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "smtpPassword": { + "type": "string", + "x-nullable": true + }, + "smtpPort": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "smtpSsl": { + "type": "boolean", + "x-nullable": true + }, + "smtpUsername": { + "type": "string", + "x-nullable": true + }, + "sslProtocols": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "sslTrust": { + "type": "string", + "x-nullable": true + }, + "startTls": { + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "smtpHost" + ], + "type": "object" + }, + "CreateConnectorSyncSettingsOptions": { + "description": "Options for creating automatic syncing between an inbox connection and an external mail provider", + "properties": { + "syncEnabled": { + "description": "Enable automatic background sync", + "type": "boolean", + "x-nullable": true + }, + "syncInterval": { + "description": "Sync interval in minutes", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "syncScheduleType": { + "description": "Sync schedule type", + "enum": [ + "INTERVAL" + ], + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "CreateConnectorWithOptions": { + "description": "Options for creating an inbox connection with an external mail provider including extra settings", + "properties": { + "createConnectorImapConnectionOptions": { + "$ref": "#/definitions/CreateConnectorImapConnectionOptions" + }, + "createConnectorOptions": { + "$ref": "#/definitions/CreateConnectorOptions" + }, + "createConnectorSmtpConnectionOptions": { + "$ref": "#/definitions/CreateConnectorSmtpConnectionOptions" + }, + "createConnectorSyncSettingsOptions": { + "$ref": "#/definitions/CreateConnectorSyncSettingsOptions" + } + }, + "required": [ + "createConnectorOptions" + ], + "type": "object" + }, + "CreateContactOptions": { + "description": "Options for creating an email contact in address book", + "properties": { + "tags": { + "description": "Tags that can be used to search and group contacts", + "items": { + "description": "Tags that can be used to search and group contacts", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "company": { + "type": "string", + "x-nullable": true + }, + "emailAddresses": { + "description": "Set of email addresses belonging to the contact", + "items": { + "description": "Set of email addresses belonging to the contact", + "type": "string", + "x-nullable": true + }, + "maxItems": 1, + "minItems": 0, + "type": "array", + "x-nullable": true + }, + "firstName": { + "type": "string", + "x-nullable": true + }, + "groupId": { + "description": "Group IDs that contact belongs to", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "lastName": { + "type": "string", + "x-nullable": true + }, + "metaData": { + "$ref": "#/definitions/JsonNode" + }, + "optOut": { + "description": "Has the user explicitly or implicitly opted out of being contacted? If so MailSlurp will ignore them in all actions.", + "type": "boolean", + "x-nullable": true + }, + "verifyEmailAddresses": { + "description": "Whether to validate contact email address exists", + "type": "boolean", + "x-nullable": true + } + }, + "type": "object" + }, + "CreateDomainOptions": { + "description": "Options for creating a domain to use with MailSlurp. You must have ownership access to this domain in order to verify it. Domains will not function correctly until the domain has been verified. See https://www.mailslurp.com/guides/custom-domains for help. Domains can be either `HTTP` or `SMTP` type. The type of domain determines which inboxes can be used with it. `SMTP` inboxes use a mail server running `mxslurp.click` while `HTTP` inboxes are handled by AWS SES.", + "properties": { + "createdCatchAllInbox": { + "description": "Whether to create a catch all inbox for the domain. Any email sent to an address using your domain that cannot be matched to an existing inbox you created with the domain will be routed to the created catch all inbox. You can access emails using the regular methods on this inbox ID.", + "type": "boolean", + "x-nullable": true + }, + "description": { + "description": "Optional description of the domain.", + "type": "string", + "x-nullable": true + }, + "domain": { + "description": "The top level domain you wish to use with MailSlurp. Do not specify subdomain just the top level. So `test.com` covers all subdomains such as `mail.test.com`. Don't include a protocol such as `http://`. Once added you must complete the verification steps by adding the returned records to your domain.", + "minLength": 1, + "type": "string" + }, + "domainType": { + "description": "Type of domain. Dictates type of inbox that can be created with domain. HTTP means inboxes are processed using SES while SMTP inboxes use a custom SMTP mail server. SMTP does not support sending so use HTTP for sending emails.", + "enum": [ + "HTTP_INBOX", + "SMTP_DOMAIN" + ], + "type": "string", + "x-nullable": true + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "CreateEmergencyAddressOptions": { + "properties": { + "address1": { + "type": "string" + }, + "city": { + "type": "string" + }, + "customerName": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "isoCountryCode": { + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "required": [ + "address1", + "city", + "customerName", + "isoCountryCode", + "postalCode", + "region" + ], + "type": "object" + }, + "CreateGroupOptions": { + "description": "Create contact group options", + "properties": { + "description": { + "type": "string", + "x-nullable": true + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "CreateInboxDto": { + "externalDocs": { + "url": "https://www.mailslurp.com/guides/creating-inboxes/" + }, + "description": "Options for creating an inbox. An inbox has a real email address that can send and receive emails. Inboxes can be permanent or expire at a given time. Inboxes are either `SMTP` or `HTTP` mailboxes. `SMTP` inboxes are processed by a mail server running at `mailslurp.mx` while `HTTP` inboxes are processed by AWS SES backed mailservers. An inbox email address is randomly assigned by default ending in either `mailslurp.com` or (if `useDomainPool` is enabled) ending in a similar domain such as `mailslurp.xyz` (selected at random). To specify an address use a custom domain: either pass the `emailAddress` options with `@`. To create a randomized address for your domain set the `domainName` to the domain you have verified or pass the `domainId`. Virtual inboxes prevent outbound sending and instead trap mail.", + "properties": { + "tags": { + "description": "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.", + "items": { + "description": "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.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "allowTeamAccess": { + "description": "DEPRECATED (team access is always true). Grant team access to this inbox and the emails that belong to it for team members of your organization.", + "type": "boolean", + "x-deprecated": true, + "x-nullable": true + }, + "description": { + "description": "Optional description of the inbox for labelling purposes. Is shown in the dashboard and can be used with", + "type": "string", + "x-nullable": true + }, + "domainId": { + "description": "ID of custom domain to use for email address.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "domainName": { + "description": "FQDN domain name for the domain you have verified. Will be appended with a randomly assigned recipient name. Use the `emailAddress` option instead to specify the full custom inbox.", + "type": "string", + "x-nullable": true + }, + "emailAddress": { + "description": "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. Note domain types must match the inbox type - so `SMTP` inboxes will only work with `SMTP` type domains. Avoid `SMTP` inboxes if you need to send emails as they can only receive. 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.", + "type": "string", + "x-nullable": true + }, + "expiresAt": { + "description": "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.", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "expiresIn": { + "description": "Number of milliseconds that inbox should exist for", + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "favourite": { + "description": "Is the inbox a favorite. Marking an inbox as a favorite is typically done in the dashboard for quick access or filtering", + "type": "boolean", + "x-nullable": true + }, + "inboxType": { + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Optional name of the inbox. Displayed in the dashboard for easier search and used as the sender name when sending emails.", + "type": "string", + "x-nullable": true + }, + "prefix": { + "description": "Prefix to add before the email address for easier labelling or identification.", + "type": "string", + "x-nullable": true + }, + "useDomainPool": { + "description": "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. Note this feature is only available for `HTTP` inbox types.", + "type": "boolean", + "x-nullable": true + }, + "useShortAddress": { + "description": "Use a shorter email address under 31 characters", + "type": "boolean", + "x-nullable": true + }, + "virtualInbox": { + "description": "Virtual inbox prevents any outbound emails from being sent. It creates sent email records but will never send real emails to recipients. Great for testing and faking email sending.", + "type": "boolean", + "x-nullable": true + } + }, + "type": "object" + }, + "CreateInboxForwarderOptions": { + "description": "Options for creating an inbox forwarder", + "properties": { + "field": { + "description": "Field to match against to trigger inbox forwarding for inbound email", + "enum": [ + "RECIPIENTS", + "SENDER", + "SUBJECT", + "ATTACHMENTS" + ], + "type": "string" + }, + "forwardToRecipients": { + "description": "Email addresses to forward an email to if it matches the field and match criteria of the forwarder", + "items": { + "description": "Email addresses to forward an email to if it matches the field and match criteria of the forwarder", + "type": "string" + }, + "type": "array" + }, + "match": { + "description": "String or wildcard style match for field specified when evaluating forwarding rules", + "minLength": 1, + "type": "string" + } + }, + "required": [ + "field", + "forwardToRecipients", + "match" + ], + "type": "object" + }, + "CreateInboxReplierOptions": { + "externalDocs": { + "url": "https://docs.mailslurp.com/repliers/" + }, + "description": "Options for creating an inbox replier. Repliers can be attached to inboxes and send automated responses when an inbound email matches given criteria.", + "properties": { + "body": { + "description": "Email body for reply", + "type": "string", + "x-nullable": true + }, + "charset": { + "description": "Email reply charset", + "type": "string", + "x-nullable": true + }, + "field": { + "description": "Field to match against to trigger inbox replier for inbound email", + "enum": [ + "RECIPIENTS", + "SENDER", + "SUBJECT", + "ATTACHMENTS" + ], + "type": "string" + }, + "from": { + "description": "Send email from address", + "type": "string", + "x-nullable": true + }, + "ignoreReplyTo": { + "description": "Ignore sender replyTo when responding. Send directly to the sender if enabled.", + "type": "boolean", + "x-nullable": true + }, + "inboxId": { + "description": "Inbox ID to attach replier to", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "isHTML": { + "description": "Send HTML email", + "type": "boolean", + "x-nullable": true + }, + "match": { + "description": "String or wildcard style match for field specified when evaluating reply rules. Use `*` to match anything.", + "minLength": 1, + "type": "string" + }, + "name": { + "description": "Name for replier", + "type": "string", + "x-nullable": true + }, + "replyTo": { + "description": "Reply-to email address when sending replying", + "type": "string", + "x-nullable": true + }, + "subject": { + "description": "Subject override when replying to email", + "type": "string", + "x-nullable": true + }, + "templateId": { + "description": "ID of template to use when sending a reply", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "templateVariables": { + "additionalProperties": { + "description": "Template variable values", + "nullable": true, + "type": "object" + }, + "description": "Template variable values", + "type": "object", + "x-nullable": true + } + }, + "required": [ + "field", + "match" + ], + "type": "object" + }, + "CreateInboxRetentionPolicyForAccountOptions": { + "properties": { + "retentionDays": { + "format": "int32", + "maximum": 730, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "retentionDays" + ], + "type": "object" + }, + "CreatePhoneNumberOptions": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "phoneCountry": { + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], + "type": "string" + }, + "schedule": { + "enum": [ + "MONTHLY", + "YEARLY" + ], + "type": "string" + } + }, + "required": [ + "phoneCountry" + ], + "type": "object" + }, + "CreatePortalOptions": { + "properties": { + "description": { + "type": "string" + }, + "domainId": { + "format": "uuid", + "type": "string" + }, + "linkHelp": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "CreatePortalUserOptions": { + "properties": { + "createInboxOptions": { + "$ref": "#/definitions/CreateInboxDto" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "skipInboxCreation": { + "type": "boolean" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "CreateRulesetOptions": { + "externalDocs": { + "url": "https://www.mailslurp.com/guides/inbox-rulesets/" + }, + "description": "Options for creating inbox rulesets. Inbox rulesets can be used to block, allow, filter, or forward emails when sending or receiving using the inbox.", + "properties": { + "action": { + "description": "Action to be taken when the ruleset matches an email for the given scope. For example: `BLOCK` action with target `*` and scope `SENDING_EMAILS` blocks sending to all recipients. Note `ALLOW` takes precedent over `BLOCK`. `FILTER_REMOVE` is like block but will remove offending email addresses during a send or receive event instead of blocking the action.", + "enum": [ + "BLOCK", + "ALLOW", + "FILTER_REMOVE", + "BOUNCE_SOFT", + "BOUNCE_HARD" + ], + "type": "string" + }, + "scope": { + "description": "What type of emails actions to apply ruleset to. Either `SENDING_EMAILS` or `RECEIVING_EMAILS` will apply action and target to any sending or receiving of emails respectively.", + "enum": [ + "RECEIVING_EMAILS", + "SENDING_EMAILS", + "RECEIVING_SMS", + "SENDING_SMS" + ], + "type": "string" + }, + "target": { + "description": "Target to match emails with. Can be a wild-card type pattern or a valid email address. For instance `*@gmail.com` matches all gmail addresses while `test@gmail.com` matches one address exactly. The target is applied to every recipient field email address when `SENDING_EMAILS` is the scope and is applied to sender of email when `RECEIVING_EMAILS`.", + "type": "string" + } + }, + "required": [ + "action", + "scope", + "target" + ], + "type": "object" + }, + "CreateTemplateOptions": { + "description": "Create template options", + "properties": { + "content": { + "description": "Template content. Can include moustache style variables such as {{var_name}}", + "type": "string" + }, + "name": { + "description": "Name of template", + "type": "string" + } + }, + "required": [ + "content", + "name" + ], + "type": "object" + }, + "CreateTotpDeviceBase32SecretKeyOptions": { + "properties": { + "algorithm": { + "description": "Optional algorithm override", + "example": "SHA1", + "type": "string", + "x-nullable": true + }, + "base32SecretKey": { + "description": "Base32 secret key for TOTP device as alternative to OTP Auth URI or QR code.", + "example": "EVJWGYZUIVGECOSWGBKGSRTBPE3FQVDQ", + "type": "string" + }, + "digits": { + "default": 6, + "description": "Optional number of digits in TOTP code", + "format": "int32", + "maximum": 255, + "minimum": 0, + "type": "integer", + "x-nullable": true + }, + "issuer": { + "description": "Optional issuer override for the TOTP device", + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Name for labeling the TOTP device", + "type": "string", + "x-nullable": true + }, + "period": { + "default": 30, + "description": "Optional period in seconds for TOTP code expiration", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "username": { + "description": "Optional username for the TOTP device", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "base32SecretKey" + ], + "type": "object" + }, + "CreateTotpDeviceCustomOptions": { + "properties": { + "algorithm": { + "description": "Optional algorithm override", + "example": "SHA1", + "type": "string", + "x-nullable": true + }, + "digits": { + "default": 6, + "description": "Optional number of digits in TOTP code", + "format": "int32", + "maximum": 255, + "minimum": 0, + "type": "integer", + "x-nullable": true + }, + "issuer": { + "description": "Optional issuer override for the TOTP device", + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Name for labeling the TOTP device", + "type": "string", + "x-nullable": true + }, + "period": { + "default": 30, + "description": "Optional period in seconds for TOTP code expiration", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "secret": { + "description": "The base32 encoded secret provided by the identity provider for the TOTP device.", + "example": "LJCTOYKGGBAWCMSHJRZGITCVLIXCG4JY", + "type": "string" + }, + "username": { + "description": "Optional username for the TOTP device", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "secret" + ], + "type": "object" + }, + "CreateTotpDeviceOtpAuthUrlOptions": { + "properties": { + "algorithm": { + "description": "Optional algorithm override", + "example": "SHA1", + "type": "string", + "x-nullable": true + }, + "digits": { + "default": 6, + "description": "Optional number of digits in TOTP code", + "format": "int32", + "maximum": 255, + "minimum": 0, + "type": "integer", + "x-nullable": true + }, + "issuer": { + "description": "Optional issuer override for the TOTP device", + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Name for labeling the TOTP device", + "type": "string", + "x-nullable": true + }, + "otpAuthUrl": { + "description": "OTP Auth URI for connecting a TOTP device.", + "example": "otpauth://totp/your-app:contact%40mailslurp.dev?secret=LJCTOYKGGBAWCMSHJRZGITCVLIXCG4JY&issuer=your-app&algorithm=SHA1&digits=6&period=30", + "type": "string" + }, + "period": { + "default": 30, + "description": "Optional period in seconds for TOTP code expiration", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "username": { + "description": "Optional username for the TOTP device", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "otpAuthUrl" + ], + "type": "object" + }, + "CreateTrackingPixelOptions": { + "description": "Options for creating a tracking pixel for email open tracking", + "properties": { + "name": { + "type": "string", + "x-nullable": true + }, + "recipient": { + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "CreateWebhookOptions": { + "description": "Options for creating a webhook. Webhooks can be attached to inboxes and MailSlurp will POST a webhook payload to the URL specified whenever the webhook's event is triggered. Webhooks are great for processing many inbound emails and responding to other events at scale. Customize the payload sent to your endpoint by setting the `requestBodyTemplate` property to a string with moustache style variables. Property names from the standard payload model for the given event are available as variables.", + "properties": { + "tags": { + "description": "Optional list of tags", + "items": { + "description": "Optional list of tags", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "aiTransformId": { + "description": "AI Transform ID to apply to the webhook event and send a payload matching transform output schema", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "basicAuth": { + "$ref": "#/definitions/BasicAuthOptions" + }, + "eventName": { + "description": "Optional webhook event name. Default is `EMAIL_RECEIVED` and is triggered when an email is received by the inbox associated with the webhook. Payload differ according to the webhook event name.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string", + "x-nullable": true + }, + "ignoreInsecureSslCertificates": { + "description": "Ignore insecure SSL certificates when sending request. Useful for self-signed certs.", + "type": "boolean", + "x-nullable": true + }, + "includeHeaders": { + "$ref": "#/definitions/WebhookHeaders" + }, + "name": { + "description": "Optional name for the webhook", + "type": "string", + "x-nullable": true + }, + "requestBodyTemplate": { + "description": "Template for the JSON body of the webhook request that will be sent to your server. Use Moustache style `{{variableName}}` templating to use parts of the standard webhook payload for the given event.", + "type": "string", + "x-nullable": true + }, + "url": { + "description": "Public URL on your server that MailSlurp can post WebhookNotification payload to when an email is received or an event is trigger. The payload of the submitted JSON is dependent on the webhook event type. See docs.mailslurp.com/webhooks for event payload documentation.", + "type": "string" + }, + "useStaticIpRange": { + "default": false, + "description": "Use static IP range when calling webhook endpoint", + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "DNSLookupOptions": { + "description": "Options for DNS query.", + "properties": { + "hostname": { + "description": "List of record types you wish to query such as MX, DNS, TXT, NS, A etc.", + "minLength": 1, + "type": "string" + }, + "omitFinalDNSDot": { + "description": "Optionally control whether to omit the final dot in full DNS name values.", + "type": "boolean" + }, + "recordTypes": { + "description": "List of record types you wish to query such as MX, DNS, TXT, NS, A etc.", + "items": { + "description": "Domain Name Server Record Types", + "enum": [ + "A", + "NS", + "MD", + "MF", + "CNAME", + "SOA", + "MB", + "MG", + "MR", + "NULL", + "WKS", + "PTR", + "HINFO", + "MINFO", + "MX", + "TXT", + "RP", + "AFSDB", + "X25", + "ISDN", + "RT", + "NSAP", + "NSAP_PTR", + "SIG", + "KEY", + "PX", + "GPOS", + "AAAA", + "LOC", + "NXT", + "EID", + "NIMLOC", + "SRV", + "ATMA", + "NAPTR", + "KX", + "CERT", + "A6", + "DNAME", + "SINK", + "OPT", + "APL", + "DS", + "SSHFP", + "IPSECKEY", + "RRSIG", + "NSEC", + "DNSKEY", + "DHCID", + "NSEC3", + "NSEC3PARAM", + "TLSA", + "SMIMEA", + "HIP", + "NINFO", + "RKEY", + "TALINK", + "CDS", + "CDNSKEY", + "OPENPGPKEY", + "CSYNC", + "ZONEMD", + "SVCB", + "HTTPS", + "SPF", + "UINFO", + "UID", + "GID", + "UNSPEC", + "NID", + "L32", + "L64", + "LP", + "EUI48", + "EUI64", + "TKEY", + "TSIG", + "IXFR", + "AXFR", + "MAILB", + "MAILA", + "ANY", + "URI", + "CAA", + "AVC", + "DOA", + "AMTRELAY", + "TA", + "DLV" + ], + "type": "string" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "hostname", + "omitFinalDNSDot", + "recordTypes" + ], + "type": "object" + }, + "DNSLookupResult": { + "description": "DNS lookup result. Includes record type, time to live, raw response, and name value for the name server response.", + "properties": { + "name": { + "type": "string" + }, + "recordEntries": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recordType": { + "description": "Domain Name Server Record Types", + "enum": [ + "A", + "NS", + "MD", + "MF", + "CNAME", + "SOA", + "MB", + "MG", + "MR", + "NULL", + "WKS", + "PTR", + "HINFO", + "MINFO", + "MX", + "TXT", + "RP", + "AFSDB", + "X25", + "ISDN", + "RT", + "NSAP", + "NSAP_PTR", + "SIG", + "KEY", + "PX", + "GPOS", + "AAAA", + "LOC", + "NXT", + "EID", + "NIMLOC", + "SRV", + "ATMA", + "NAPTR", + "KX", + "CERT", + "A6", + "DNAME", + "SINK", + "OPT", + "APL", + "DS", + "SSHFP", + "IPSECKEY", + "RRSIG", + "NSEC", + "DNSKEY", + "DHCID", + "NSEC3", + "NSEC3PARAM", + "TLSA", + "SMIMEA", + "HIP", + "NINFO", + "RKEY", + "TALINK", + "CDS", + "CDNSKEY", + "OPENPGPKEY", + "CSYNC", + "ZONEMD", + "SVCB", + "HTTPS", + "SPF", + "UINFO", + "UID", + "GID", + "UNSPEC", + "NID", + "L32", + "L64", + "LP", + "EUI48", + "EUI64", + "TKEY", + "TSIG", + "IXFR", + "AXFR", + "MAILB", + "MAILA", + "ANY", + "URI", + "CAA", + "AVC", + "DOA", + "AMTRELAY", + "TA", + "DLV" + ], + "type": "string" + }, + "ttl": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "name", + "recordEntries", + "recordType", + "ttl" + ], + "type": "object" + }, + "DNSLookupResults": { + "description": "Results of query on domain name servers", + "properties": { + "results": { + "items": { + "$ref": "#/definitions/DNSLookupResult" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" + }, + "DNSLookupsOptions": { + "description": "Options for multiple DNS queries", + "properties": { + "lookups": { + "items": { + "$ref": "#/definitions/DNSLookupOptions" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "lookups" + ], + "type": "object" + }, + "DeliveryStatusDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "processingTimeMillis": { + "format": "int64", + "type": "integer" + }, + "received": { + "format": "date-time", + "type": "string" + }, + "recipients": { + "items": { + "type": "string" + }, + "type": "array" + }, + "remoteMtaIp": { + "type": "string" + }, + "reportingMta": { + "type": "string" + }, + "sentId": { + "format": "uuid", + "type": "string" + }, + "smtpResponse": { + "type": "string" + }, + "smtpStatusCode": { + "format": "int32", + "type": "integer" + }, + "subject": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "updatedAt", + "userId" + ], + "type": "object" + }, + "DescribeDomainOptions": { + "description": "Domain record description", + "properties": { + "domain": { + "minLength": 1, + "type": "string" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "DescribeMailServerDomainResult": { + "description": "Name Server lookup result", + "properties": { + "domain": { + "type": "string" + }, + "message": { + "type": "string", + "x-nullable": true + }, + "mxRecords": { + "items": { + "$ref": "#/definitions/NameServerRecord" + }, + "type": "array" + } + }, + "required": [ + "domain", + "mxRecords" + ], + "type": "object" + }, + "DomainDto": { + "description": "Domain plus verification records and status", + "properties": { + "catchAllInboxId": { + "description": "The optional catch all inbox that will receive emails sent to the domain that cannot be matched.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "dkimTokens": { + "description": "Unique token DKIM tokens", + "items": { + "description": "Unique token DKIM tokens", + "type": "string" + }, + "type": "array" + }, + "domain": { + "description": "Custom domain name", + "type": "string" + }, + "domainNameRecords": { + "description": "List of DNS domain name records (C, MX, TXT) etc that you must add to the DNS server associated with your domain provider.", + "items": { + "$ref": "#/definitions/DomainNameRecord" + }, + "type": "array" + }, + "domainType": { + "description": "Type of domain. Dictates type of inbox that can be created with domain. HTTP means inboxes are processed using SES while SMTP inboxes use a custom SMTP mail server. SMTP does not support sending so use HTTP for sending emails.", + "enum": [ + "HTTP_INBOX", + "SMTP_DOMAIN" + ], + "type": "string" + }, + "duplicateRecordsMessage": { + "description": "If the domain is duplicate records.", + "type": "string", + "x-nullable": true + }, + "hasDuplicateRecords": { + "description": "Whether the domain has duplicated required records. If true then see the domain in the dashboard app.", + "type": "boolean" + }, + "hasMissingRecords": { + "description": "Whether the domain has missing required records. If true then see the domain in the dashboard app.", + "type": "boolean" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "isVerified": { + "description": "Whether domain has been verified or not. If the domain is not verified after 72 hours there is most likely an issue with the domains DNS records.", + "type": "boolean" + }, + "missingRecordsMessage": { + "description": "If the domain is missing records then show which pairs are missing.", + "type": "string", + "x-nullable": true + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + }, + "verificationToken": { + "description": "Verification tokens", + "type": "string" + } + }, + "required": [ + "createdAt", + "dkimTokens", + "domain", + "domainNameRecords", + "domainType", + "hasDuplicateRecords", + "hasMissingRecords", + "id", + "isVerified", + "updatedAt", + "userId", + "verificationToken" + ], + "type": "object" + }, + "DomainGroup": { + "properties": { + "domains": { + "items": { + "$ref": "#/definitions/DomainInformation" + }, + "type": "array" + }, + "label": { + "enum": [ + "DEFAULT", + "DOMAIN_POOL", + "CUSTOM" + ], + "type": "string" + } + }, + "required": [ + "domains", + "label" + ], + "type": "object" + }, + "DomainGroupsDto": { + "properties": { + "domainGroups": { + "items": { + "$ref": "#/definitions/DomainGroup" + }, + "type": "array" + } + }, + "required": [ + "domainGroups" + ], + "type": "object" + }, + "DomainInformation": { + "properties": { + "domainName": { + "type": "string" + }, + "domainType": { + "description": "Type of domain. Dictates type of inbox that can be created with domain. HTTP means inboxes are processed using SES while SMTP inboxes use a custom SMTP mail server. SMTP does not support sending so use HTTP for sending emails.", + "enum": [ + "HTTP_INBOX", + "SMTP_DOMAIN" + ], + "type": "string" + }, + "verified": { + "type": "boolean" + } + }, + "required": [ + "domainName", + "domainType", + "verified" + ], + "type": "object" + }, + "DomainIssuesDto": { + "properties": { + "hasIssues": { + "type": "boolean" + } + }, + "required": [ + "hasIssues" + ], + "type": "object" + }, + "DomainNameRecord": { + "description": "DNS Record required for verification of a domain. Record vary depending on domain type.", + "properties": { + "alternativeRecordEntries": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "label": { + "description": "Domain Name Server Record Label", + "enum": [ + "VERIFICATION", + "MX", + "SPF", + "DKIM", + "DMARC" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "recordEntries": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recordType": { + "description": "Domain Name Server Record Types", + "enum": [ + "A", + "NS", + "MD", + "MF", + "CNAME", + "SOA", + "MB", + "MG", + "MR", + "NULL", + "WKS", + "PTR", + "HINFO", + "MINFO", + "MX", + "TXT", + "RP", + "AFSDB", + "X25", + "ISDN", + "RT", + "NSAP", + "NSAP_PTR", + "SIG", + "KEY", + "PX", + "GPOS", + "AAAA", + "LOC", + "NXT", + "EID", + "NIMLOC", + "SRV", + "ATMA", + "NAPTR", + "KX", + "CERT", + "A6", + "DNAME", + "SINK", + "OPT", + "APL", + "DS", + "SSHFP", + "IPSECKEY", + "RRSIG", + "NSEC", + "DNSKEY", + "DHCID", + "NSEC3", + "NSEC3PARAM", + "TLSA", + "SMIMEA", + "HIP", + "NINFO", + "RKEY", + "TALINK", + "CDS", + "CDNSKEY", + "OPENPGPKEY", + "CSYNC", + "ZONEMD", + "SVCB", + "HTTPS", + "SPF", + "UINFO", + "UID", + "GID", + "UNSPEC", + "NID", + "L32", + "L64", + "LP", + "EUI48", + "EUI64", + "TKEY", + "TSIG", + "IXFR", + "AXFR", + "MAILB", + "MAILA", + "ANY", + "URI", + "CAA", + "AVC", + "DOA", + "AMTRELAY", + "TA", + "DLV" + ], + "type": "string" + }, + "required": { + "type": "boolean" + }, + "ttl": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "label", + "name", + "recordEntries", + "recordType", + "required", + "ttl" + ], + "type": "object" + }, + "DomainPreview": { + "description": "Preview object for domain entity", + "properties": { + "catchAllInboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "domain": { + "type": "string" + }, + "domainType": { + "description": "Type of domain. Dictates type of inbox that can be created with domain. HTTP means inboxes are processed using SES while SMTP inboxes use a custom SMTP mail server. SMTP does not support sending so use HTTP for sending emails.", + "enum": [ + "HTTP_INBOX", + "SMTP_DOMAIN" + ], + "type": "string" + }, + "hasMissingRecords": { + "type": "boolean" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "isVerified": { + "type": "boolean" + } + }, + "required": [ + "createdAt", + "domain", + "domainType", + "hasMissingRecords", + "id", + "isVerified" + ], + "type": "object" + }, + "DownloadAttachmentDto": { + "description": "Content of attachment", + "properties": { + "base64FileContents": { + "description": "Base64 encoded string of attachment bytes. Decode the base64 encoded string to get the raw contents. If the file has a content type such as `text/html` you can read the contents directly by converting it to string using `utf-8` encoding.", + "type": "string" + }, + "contentType": { + "description": "Content type of attachment. Examples are `image/png`, `application/msword`, `text/csv` etc.", + "type": "string" + }, + "sizeBytes": { + "description": "Size in bytes of attachment content", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "base64FileContents", + "contentType", + "sizeBytes" + ], + "type": "object" + }, + "Email": { + "description": "Email entity (also known as EmailDto). When an SMTP email message is received by MailSlurp it is parsed. The body and attachments are written to disk and the fields such as to, from, subject etc are stored in a database. The `body` contains the email content. If you want the original SMTP message see the `getRawEmail` endpoints. The attachments can be fetched using the AttachmentController", + "properties": { + "analysis": { + "$ref": "#/definitions/EmailAnalysis" + }, + "attachments": { + "description": "List of IDs of attachments found in the email. Use these IDs with the Inbox and Email Controllers to download attachments and attachment meta data such as filesize, name, extension.", + "items": { + "description": "List of IDs of attachments found in the email. Use these IDs with the Inbox and Email Controllers to download attachments and attachment meta data such as filesize, name, extension.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bcc": { + "description": "List of `BCC` recipients email addresses that the email was addressed to. See recipients object for names.", + "items": { + "description": "List of `BCC` recipients email addresses that the email was addressed to. See recipients object for names.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "body": { + "description": "The body of the email message as text parsed from the SMTP message body (does not include attachments). Fetch the raw content to access the SMTP message and use the attachments property to access attachments. The body is stored separately to the email entity so the body is not returned in paginated results only in full single email or wait requests.", + "type": "string", + "x-nullable": true + }, + "bodyExcerpt": { + "description": "An excerpt of the body of the email message for quick preview. Takes HTML content part if exists falls back to TEXT content part if not", + "type": "string", + "x-nullable": true + }, + "bodyMD5Hash": { + "description": "A hash signature of the email message using MD5. Useful for comparing emails without fetching full body.", + "type": "string", + "x-nullable": true + }, + "bodyPartContentTypes": { + "description": "A list of detected multipart mime message body part content types such as text/plain and text/html. Can be used with email bodyPart endpoints to fetch individual body parts.", + "items": { + "description": "A list of detected multipart mime message body part content types such as text/plain and text/html. Can be used with email bodyPart endpoints to fetch individual body parts.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "cc": { + "description": "List of `CC` recipients email addresses that the email was addressed to. See recipients object for names.", + "items": { + "description": "List of `CC` recipients email addresses that the email was addressed to. See recipients object for names.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "charset": { + "description": "Detected character set of the email body such as UTF-8", + "type": "string", + "x-nullable": true + }, + "createdAt": { + "description": "When was the email received by MailSlurp", + "format": "date-time", + "type": "string" + }, + "domainId": { + "description": "ID of the domain that received the email", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "externalId": { + "description": "UID used by external IMAP server to identify email", + "type": "string", + "x-nullable": true + }, + "favourite": { + "description": "Is email favourited", + "type": "boolean", + "x-nullable": true + }, + "from": { + "description": "Who the email was sent from. An email address - see fromName for the sender name.", + "type": "string", + "x-nullable": true + }, + "headers": { + "additionalProperties": { + "deprecated": true, + "description": "Collection of SMTP headers attached to email", + "nullable": true, + "type": "string" + }, + "description": "Collection of SMTP headers attached to email", + "type": "object", + "x-deprecated": true, + "x-nullable": true + }, + "headersMap": { + "additionalProperties": { + "description": "Multi-value map of SMTP headers attached to email", + "items": { + "description": "Multi-value map of SMTP headers attached to email", + "nullable": true, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "description": "Multi-value map of SMTP headers attached to email", + "type": "object", + "x-nullable": true + }, + "html": { + "type": "boolean" + }, + "id": { + "description": "ID of the email entity", + "format": "uuid", + "type": "string" + }, + "inReplyTo": { + "description": "Parsed value of In-Reply-To header. A Message-ID in a thread.", + "type": "string", + "x-nullable": true + }, + "inboxId": { + "description": "ID of the inbox that received the email", + "format": "uuid", + "type": "string" + }, + "isHTML": { + "description": "Is the email body content type HTML?", + "type": "boolean", + "x-nullable": true + }, + "isXAmpHtml": { + "description": "Is the email body content type x-amp-html Amp4Email?", + "type": "boolean", + "x-nullable": true + }, + "messageId": { + "description": "RFC 5322 Message-ID header value without angle brackets.", + "type": "string", + "x-nullable": true + }, + "read": { + "description": "Read flag. Has the email ever been viewed in the dashboard or fetched via the API with a hydrated body? If so the email is marked as read. Paginated results do not affect read status. Read status is different to email opened event as it depends on your own account accessing the email. Email opened is determined by tracking pixels sent to other uses if enable during sending. You can listened for both email read and email opened events using webhooks.", + "type": "boolean" + }, + "recipients": { + "$ref": "#/definitions/EmailRecipients" + }, + "replyTo": { + "description": "The `replyTo` field on the received email message", + "type": "string", + "x-nullable": true + }, + "sender": { + "$ref": "#/definitions/Sender" + }, + "sizeBytes": { + "description": "Size of raw email message in bytes", + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "subject": { + "description": "The subject line of the email message as specified by SMTP subject header", + "type": "string", + "x-nullable": true + }, + "teamAccess": { + "description": "Can the email be accessed by organization team members", + "type": "boolean" + }, + "textExcerpt": { + "description": "An excerpt of the body of the email message for quick preview. Takes TEXT content part if exists", + "type": "string", + "x-nullable": true + }, + "threadId": { + "description": "MailSlurp thread ID for email chain that enables lookup for In-Reply-To and References fields.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "to": { + "description": "List of `To` recipient email addresses that the email was addressed to. See recipients object for names.", + "items": { + "description": "List of `To` recipient email addresses that the email was addressed to. See recipients object for names.", + "type": "string" + }, + "type": "array" + }, + "updatedAt": { + "description": "When was the email last updated", + "format": "date-time", + "type": "string" + }, + "userId": { + "description": "ID of user that email belongs to", + "format": "uuid", + "type": "string" + }, + "xampHtml": { + "type": "boolean" + } + }, + "required": [ + "createdAt", + "id", + "inboxId", + "read", + "teamAccess", + "to", + "updatedAt", + "userId" + ], + "type": "object" + }, + "EmailAnalysis": { + "description": "Analysis result for email. Each verdict property is a string PASS|FAIL|GRAY or dynamic error message", + "properties": { + "dkimVerdict": { + "description": "Verdict of DomainKeys Identified Mail analysis", + "type": "string", + "x-nullable": true + }, + "dmarcVerdict": { + "description": "Verdict of Domain-based Message Authentication Reporting and Conformance analysis", + "type": "string", + "x-nullable": true + }, + "spamVerdict": { + "description": "Verdict of spam ranking analysis", + "type": "string", + "x-nullable": true + }, + "spfVerdict": { + "description": "Verdict of Send Policy Framework record spoofing analysis", + "type": "string", + "x-nullable": true + }, + "virusVerdict": { + "description": "Verdict of virus scan analysis", + "type": "string", + "x-nullable": true + } + }, + "type": "object", + "x-nullable": true + }, + "EmailAvailableResult": { + "properties": { + "available": { + "type": "boolean" + } + }, + "required": [ + "available" + ], + "type": "object" + }, + "EmailContentMatchResult": { + "description": "Matches for the given pattern", + "properties": { + "matches": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pattern": { + "type": "string" + } + }, + "required": [ + "matches", + "pattern" + ], + "type": "object" + }, + "EmailContentPartResult": { + "properties": { + "content": { + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "EmailFeatureCategoryName": { + "properties": { + "name": { + "type": "string" + }, + "slug": { + "enum": [ + "css", + "html", + "image", + "others" + ], + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "type": "object" + }, + "EmailFeatureFamilyName": { + "properties": { + "name": { + "type": "string" + }, + "slug": { + "enum": [ + "aol", + "apple-mail", + "fastmail", + "free-fr", + "gmail", + "gmx", + "hey", + "ionos-1and1", + "laposte", + "mail-ru", + "microsoft", + "orange", + "outlook", + "protonmail", + "rainloop", + "samsung-email", + "sfr", + "t-online-de", + "thunderbird", + "web-de", + "yahoo" + ], + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "type": "object" + }, + "EmailFeatureFamilyStatistics": { + "properties": { + "family": { + "enum": [ + "aol", + "apple-mail", + "fastmail", + "free-fr", + "gmail", + "gmx", + "hey", + "ionos-1and1", + "laposte", + "mail-ru", + "microsoft", + "orange", + "outlook", + "protonmail", + "rainloop", + "samsung-email", + "sfr", + "t-online-de", + "thunderbird", + "web-de", + "yahoo" + ], + "type": "string" + }, + "feature": { + "enum": [ + "amp", + "css-accent-color", + "css-align-items", + "css-animation", + "css-aspect-ratio", + "css-at-font-face", + "css-at-import", + "css-at-keyframes", + "css-at-media", + "css-at-supports", + "css-background-blend-mode", + "css-background-clip", + "css-background-color", + "css-background-image", + "css-background-origin", + "css-background-position", + "css-background-repeat", + "css-background-size", + "css-background", + "css-block-inline-size", + "css-border-image", + "css-border-inline-block-individual", + "css-border-inline-block-longhand", + "css-border-inline-block", + "css-border-radius-logical", + "css-border-radius", + "css-border", + "css-box-shadow", + "css-box-sizing", + "css-caption-side", + "css-clip-path", + "css-column-count", + "css-column-layout-properties", + "css-direction", + "css-display-flex", + "css-display-grid", + "css-display-none", + "css-display", + "css-filter", + "css-flex-direction", + "css-flex-wrap", + "css-float", + "css-font-kerning", + "css-font-weight", + "css-font", + "css-gap", + "css-grid-template", + "css-height", + "css-hyphens", + "css-inline-size", + "css-justify-content", + "css-left-right-top-bottom", + "css-letter-spacing", + "css-line-height", + "css-list-style-image", + "css-list-style-position", + "css-list-style-type", + "css-list-style", + "css-margin-block-start-end", + "css-margin-inline-block", + "css-margin-inline-start-end", + "css-margin-inline", + "css-margin", + "css-max-block-size", + "css-max-height", + "css-max-width", + "css-min-height", + "css-min-inline-size", + "css-min-width", + "css-mix-blend-mode", + "css-object-fit", + "css-object-position", + "css-opacity", + "css-outline-offset", + "css-outline", + "css-overflow-wrap", + "css-overflow", + "css-padding-block-start-end", + "css-padding-inline-block", + "css-padding-inline-start-end", + "css-padding", + "css-position", + "css-tab-size", + "css-table-layout", + "css-text-align-last", + "css-text-align", + "css-text-decoration-color", + "css-text-decoration-thickness", + "css-text-decoration", + "css-text-emphasis-position", + "css-text-emphasis", + "css-text-indent", + "css-text-overflow", + "css-text-shadow", + "css-text-transform", + "css-text-underline-offset", + "css-transform", + "css-vertical-align", + "css-visibility", + "css-white-space", + "css-width", + "css-word-break", + "css-writing-mode", + "css-z-index", + "html-abbr", + "html-address", + "html-align", + "html-anchor-links", + "html-aria-describedby", + "html-aria-hidden", + "html-aria-label", + "html-aria-labelledby", + "html-aria-live", + "html-audio", + "html-background", + "html-base", + "html-blockquote", + "html-body", + "html-button-reset", + "html-button-submit", + "html-code", + "html-del", + "html-dfn", + "html-dialog", + "html-dir", + "html-div", + "html-doctype", + "html-form", + "html-h1-h6", + "html-height", + "html-image-maps", + "html-input-checkbox", + "html-input-hidden", + "html-input-radio", + "html-input-reset", + "html-input-submit", + "html-input-text", + "html-lang", + "html-link", + "html-lists", + "html-loading-attribute", + "html-mailto-links", + "html-marquee", + "html-meter", + "html-object", + "html-p", + "html-picture", + "html-pre", + "html-progress", + "html-required", + "html-role", + "html-rp", + "html-rt", + "html-ruby", + "html-select", + "html-semantics", + "html-small", + "html-span", + "html-srcset", + "html-strike", + "html-strong", + "html-style", + "html-svg", + "html-table", + "html-target", + "html-textarea", + "html-valign", + "html-video", + "html-wbr", + "html-width", + "image-avif", + "image-base64", + "image-bmp", + "image-gif", + "image-ico", + "image-jpg", + "image-png", + "image-svg", + "image-webp", + "unsupported" + ], + "type": "string" + }, + "platforms": { + "items": { + "$ref": "#/definitions/EmailFeaturePlatformStatistics" + }, + "type": "array" + } + }, + "required": [ + "family", + "feature", + "platforms" + ], + "type": "object" + }, + "EmailFeatureNames": { + "properties": { + "category": { + "items": { + "$ref": "#/definitions/EmailFeatureCategoryName" + }, + "type": "array" + }, + "family": { + "items": { + "$ref": "#/definitions/EmailFeatureFamilyName" + }, + "type": "array" + }, + "platform": { + "items": { + "$ref": "#/definitions/EmailFeaturePlatformName" + }, + "type": "array" + } + }, + "required": [ + "category", + "family", + "platform" + ], + "type": "object" + }, + "EmailFeatureOverview": { + "properties": { + "category": { + "enum": [ + "css", + "html", + "image", + "others" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "feature": { + "enum": [ + "amp", + "css-accent-color", + "css-align-items", + "css-animation", + "css-aspect-ratio", + "css-at-font-face", + "css-at-import", + "css-at-keyframes", + "css-at-media", + "css-at-supports", + "css-background-blend-mode", + "css-background-clip", + "css-background-color", + "css-background-image", + "css-background-origin", + "css-background-position", + "css-background-repeat", + "css-background-size", + "css-background", + "css-block-inline-size", + "css-border-image", + "css-border-inline-block-individual", + "css-border-inline-block-longhand", + "css-border-inline-block", + "css-border-radius-logical", + "css-border-radius", + "css-border", + "css-box-shadow", + "css-box-sizing", + "css-caption-side", + "css-clip-path", + "css-column-count", + "css-column-layout-properties", + "css-direction", + "css-display-flex", + "css-display-grid", + "css-display-none", + "css-display", + "css-filter", + "css-flex-direction", + "css-flex-wrap", + "css-float", + "css-font-kerning", + "css-font-weight", + "css-font", + "css-gap", + "css-grid-template", + "css-height", + "css-hyphens", + "css-inline-size", + "css-justify-content", + "css-left-right-top-bottom", + "css-letter-spacing", + "css-line-height", + "css-list-style-image", + "css-list-style-position", + "css-list-style-type", + "css-list-style", + "css-margin-block-start-end", + "css-margin-inline-block", + "css-margin-inline-start-end", + "css-margin-inline", + "css-margin", + "css-max-block-size", + "css-max-height", + "css-max-width", + "css-min-height", + "css-min-inline-size", + "css-min-width", + "css-mix-blend-mode", + "css-object-fit", + "css-object-position", + "css-opacity", + "css-outline-offset", + "css-outline", + "css-overflow-wrap", + "css-overflow", + "css-padding-block-start-end", + "css-padding-inline-block", + "css-padding-inline-start-end", + "css-padding", + "css-position", + "css-tab-size", + "css-table-layout", + "css-text-align-last", + "css-text-align", + "css-text-decoration-color", + "css-text-decoration-thickness", + "css-text-decoration", + "css-text-emphasis-position", + "css-text-emphasis", + "css-text-indent", + "css-text-overflow", + "css-text-shadow", + "css-text-transform", + "css-text-underline-offset", + "css-transform", + "css-vertical-align", + "css-visibility", + "css-white-space", + "css-width", + "css-word-break", + "css-writing-mode", + "css-z-index", + "html-abbr", + "html-address", + "html-align", + "html-anchor-links", + "html-aria-describedby", + "html-aria-hidden", + "html-aria-label", + "html-aria-labelledby", + "html-aria-live", + "html-audio", + "html-background", + "html-base", + "html-blockquote", + "html-body", + "html-button-reset", + "html-button-submit", + "html-code", + "html-del", + "html-dfn", + "html-dialog", + "html-dir", + "html-div", + "html-doctype", + "html-form", + "html-h1-h6", + "html-height", + "html-image-maps", + "html-input-checkbox", + "html-input-hidden", + "html-input-radio", + "html-input-reset", + "html-input-submit", + "html-input-text", + "html-lang", + "html-link", + "html-lists", + "html-loading-attribute", + "html-mailto-links", + "html-marquee", + "html-meter", + "html-object", + "html-p", + "html-picture", + "html-pre", + "html-progress", + "html-required", + "html-role", + "html-rp", + "html-rt", + "html-ruby", + "html-select", + "html-semantics", + "html-small", + "html-span", + "html-srcset", + "html-strike", + "html-strong", + "html-style", + "html-svg", + "html-table", + "html-target", + "html-textarea", + "html-valign", + "html-video", + "html-wbr", + "html-width", + "image-avif", + "image-base64", + "image-bmp", + "image-gif", + "image-ico", + "image-jpg", + "image-png", + "image-svg", + "image-webp", + "unsupported" + ], + "type": "string" + }, + "featureStatistics": { + "items": { + "$ref": "#/definitions/EmailFeatureFamilyStatistics" + }, + "type": "array" + }, + "notes": { + "type": "string" + }, + "notesNumbers": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "statuses": { + "items": { + "enum": [ + "SUPPORTED", + "PARTIAL", + "NOT_SUPPORTED", + "UNKNOWN" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "title": { + "type": "string" + } + }, + "required": [ + "feature", + "statuses" + ], + "type": "object" + }, + "EmailFeaturePlatformName": { + "properties": { + "name": { + "type": "string" + }, + "slug": { + "enum": [ + "android", + "desktop-app", + "desktop-webmail", + "ios", + "macos", + "mobile-webmail", + "outlook-com", + "webmail", + "windows", + "windows-mail" + ], + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "type": "object" + }, + "EmailFeaturePlatformStatistics": { + "properties": { + "platform": { + "enum": [ + "android", + "desktop-app", + "desktop-webmail", + "ios", + "macos", + "mobile-webmail", + "outlook-com", + "webmail", + "windows", + "windows-mail" + ], + "type": "string" + }, + "versions": { + "items": { + "$ref": "#/definitions/EmailFeatureVersionStatistics" + }, + "type": "array" + } + }, + "required": [ + "platform", + "versions" + ], + "type": "object" + }, + "EmailFeatureSupportFlags": { + "properties": { + "notes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "status": { + "enum": [ + "SUPPORTED", + "PARTIAL", + "NOT_SUPPORTED", + "UNKNOWN" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "EmailFeatureSupportResult": { + "properties": { + "detectedFeatures": { + "items": { + "enum": [ + "amp", + "css-accent-color", + "css-align-items", + "css-animation", + "css-aspect-ratio", + "css-at-font-face", + "css-at-import", + "css-at-keyframes", + "css-at-media", + "css-at-supports", + "css-background-blend-mode", + "css-background-clip", + "css-background-color", + "css-background-image", + "css-background-origin", + "css-background-position", + "css-background-repeat", + "css-background-size", + "css-background", + "css-block-inline-size", + "css-border-image", + "css-border-inline-block-individual", + "css-border-inline-block-longhand", + "css-border-inline-block", + "css-border-radius-logical", + "css-border-radius", + "css-border", + "css-box-shadow", + "css-box-sizing", + "css-caption-side", + "css-clip-path", + "css-column-count", + "css-column-layout-properties", + "css-direction", + "css-display-flex", + "css-display-grid", + "css-display-none", + "css-display", + "css-filter", + "css-flex-direction", + "css-flex-wrap", + "css-float", + "css-font-kerning", + "css-font-weight", + "css-font", + "css-gap", + "css-grid-template", + "css-height", + "css-hyphens", + "css-inline-size", + "css-justify-content", + "css-left-right-top-bottom", + "css-letter-spacing", + "css-line-height", + "css-list-style-image", + "css-list-style-position", + "css-list-style-type", + "css-list-style", + "css-margin-block-start-end", + "css-margin-inline-block", + "css-margin-inline-start-end", + "css-margin-inline", + "css-margin", + "css-max-block-size", + "css-max-height", + "css-max-width", + "css-min-height", + "css-min-inline-size", + "css-min-width", + "css-mix-blend-mode", + "css-object-fit", + "css-object-position", + "css-opacity", + "css-outline-offset", + "css-outline", + "css-overflow-wrap", + "css-overflow", + "css-padding-block-start-end", + "css-padding-inline-block", + "css-padding-inline-start-end", + "css-padding", + "css-position", + "css-tab-size", + "css-table-layout", + "css-text-align-last", + "css-text-align", + "css-text-decoration-color", + "css-text-decoration-thickness", + "css-text-decoration", + "css-text-emphasis-position", + "css-text-emphasis", + "css-text-indent", + "css-text-overflow", + "css-text-shadow", + "css-text-transform", + "css-text-underline-offset", + "css-transform", + "css-vertical-align", + "css-visibility", + "css-white-space", + "css-width", + "css-word-break", + "css-writing-mode", + "css-z-index", + "html-abbr", + "html-address", + "html-align", + "html-anchor-links", + "html-aria-describedby", + "html-aria-hidden", + "html-aria-label", + "html-aria-labelledby", + "html-aria-live", + "html-audio", + "html-background", + "html-base", + "html-blockquote", + "html-body", + "html-button-reset", + "html-button-submit", + "html-code", + "html-del", + "html-dfn", + "html-dialog", + "html-dir", + "html-div", + "html-doctype", + "html-form", + "html-h1-h6", + "html-height", + "html-image-maps", + "html-input-checkbox", + "html-input-hidden", + "html-input-radio", + "html-input-reset", + "html-input-submit", + "html-input-text", + "html-lang", + "html-link", + "html-lists", + "html-loading-attribute", + "html-mailto-links", + "html-marquee", + "html-meter", + "html-object", + "html-p", + "html-picture", + "html-pre", + "html-progress", + "html-required", + "html-role", + "html-rp", + "html-rt", + "html-ruby", + "html-select", + "html-semantics", + "html-small", + "html-span", + "html-srcset", + "html-strike", + "html-strong", + "html-style", + "html-svg", + "html-table", + "html-target", + "html-textarea", + "html-valign", + "html-video", + "html-wbr", + "html-width", + "image-avif", + "image-base64", + "image-bmp", + "image-gif", + "image-ico", + "image-jpg", + "image-png", + "image-svg", + "image-webp", + "unsupported" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "featureOverviews": { + "items": { + "$ref": "#/definitions/EmailFeatureOverview" + }, + "type": "array" + }, + "featurePercentages": { + "items": { + "$ref": "#/definitions/EmailFeatureSupportStatusPercentage" + }, + "type": "array" + }, + "names": { + "$ref": "#/definitions/EmailFeatureNames" + } + }, + "required": [ + "detectedFeatures", + "featureOverviews", + "featurePercentages", + "names" + ], + "type": "object" + }, + "EmailFeatureSupportStatusPercentage": { + "properties": { + "percentage": { + "format": "float", + "type": "number" + }, + "status": { + "enum": [ + "SUPPORTED", + "PARTIAL", + "NOT_SUPPORTED", + "UNKNOWN" + ], + "type": "string" + } + }, + "required": [ + "percentage", + "status" + ], + "type": "object" + }, + "EmailFeatureVersionStatistics": { + "properties": { + "supportFlags": { + "$ref": "#/definitions/EmailFeatureSupportFlags" + }, + "version": { + "type": "string" + } + }, + "required": [ + "supportFlags", + "version" + ], + "type": "object" + }, + "EmailHtmlDto": { + "properties": { + "body": { + "type": "string" + }, + "subject": { + "type": "string" + } + }, + "type": "object" + }, + "EmailLinksResult": { + "description": "Links found in HTML", + "properties": { + "body": { + "type": "string" + }, + "links": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "body", + "links" + ], + "type": "object" + }, + "EmailPreview": { + "description": "Preview of an email message. For full message (including body and attachments) call the `getEmail` or other email endpoints with the provided email ID.", + "properties": { + "attachments": { + "description": "List of IDs of attachments found in the email. Use these IDs with the Inbox and Email Controllers to download attachments and attachment meta data such as filesize, name, extension.", + "items": { + "description": "List of IDs of attachments found in the email. Use these IDs with the Inbox and Email Controllers to download attachments and attachment meta data such as filesize, name, extension.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bcc": { + "description": "List of `BCC` recipients email addresses that the email was addressed to. See recipients object for names.", + "items": { + "description": "List of `BCC` recipients email addresses that the email was addressed to. See recipients object for names.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bodyPartContentTypes": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "cc": { + "description": "List of `CC` recipients email addresses that the email was addressed to. See recipients object for names.", + "items": { + "description": "List of `CC` recipients email addresses that the email was addressed to. See recipients object for names.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "createdAt": { + "description": "When was the email received by MailSlurp", + "format": "date-time", + "type": "string" + }, + "domainId": { + "description": "ID of the domain that received the email", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "favourite": { + "type": "boolean", + "x-nullable": true + }, + "from": { + "description": "Who the email was sent from. An email address - see fromName for the sender name.", + "type": "string", + "x-nullable": true + }, + "id": { + "description": "ID of the email entity", + "format": "uuid", + "type": "string" + }, + "inReplyTo": { + "description": "Parsed value of In-Reply-To header. A Message-ID in a thread.", + "type": "string", + "x-nullable": true + }, + "inboxId": { + "description": "ID of the inbox that received the email", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "messageId": { + "description": "RFC 5322 Message-ID header value without angle brackets.", + "type": "string", + "x-nullable": true + }, + "plusAddress": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "read": { + "description": "Read flag. Has the email ever been viewed in the dashboard or fetched via the API with a hydrated body? If so the email is marked as read. Paginated results do not affect read status. Read status is different to email opened event as it depends on your own account accessing the email. Email opened is determined by tracking pixels sent to other uses if enable during sending. You can listened for both email read and email opened events using webhooks.", + "type": "boolean" + }, + "recipients": { + "$ref": "#/definitions/EmailRecipients" + }, + "sender": { + "$ref": "#/definitions/Sender" + }, + "sizeBytes": { + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "subject": { + "description": "The subject line of the email message as specified by SMTP subject header", + "type": "string", + "x-nullable": true + }, + "threadId": { + "description": "MailSlurp thread ID for email chain that enables lookup for In-Reply-To and References fields.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "to": { + "description": "List of `To` recipient email addresses that the email was addressed to. See recipients object for names.", + "items": { + "description": "List of `To` recipient email addresses that the email was addressed to. See recipients object for names.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "id", + "read", + "to" + ], + "type": "object" + }, + "EmailPreviewUrls": { + "description": "URLs for email body", + "properties": { + "origin": { + "type": "string" + }, + "plainHtmlBodyUrl": { + "type": "string" + }, + "rawSmtpMessageUrl": { + "type": "string" + } + }, + "required": [ + "origin", + "plainHtmlBodyUrl", + "rawSmtpMessageUrl" + ], + "type": "object" + }, + "EmailProjection": { + "description": "A compact representation of a full email. Used in list endpoints to keep response sizes low. Body and attachments are not included. To get all fields of the email use the `getEmail` method with the email projection's ID. See `EmailDto` for documentation on projection properties.", + "properties": { + "attachments": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bcc": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bodyExcerpt": { + "type": "string", + "x-nullable": true + }, + "bodyMD5Hash": { + "type": "string", + "x-nullable": true + }, + "bodyPartContentTypes": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "cc": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "domainId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "favourite": { + "type": "boolean", + "x-nullable": true + }, + "from": { + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "imapUid": { + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "inReplyTo": { + "type": "string", + "x-nullable": true + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "messageId": { + "type": "string", + "x-nullable": true + }, + "plusAddress": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "read": { + "type": "boolean" + }, + "recipients": { + "$ref": "#/definitions/EmailRecipients" + }, + "sender": { + "$ref": "#/definitions/Sender" + }, + "sizeBytes": { + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "subject": { + "type": "string", + "x-nullable": true + }, + "teamAccess": { + "type": "boolean" + }, + "textExcerpt": { + "type": "string", + "x-nullable": true + }, + "threadId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "to": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "createdAt", + "from", + "id", + "inboxId", + "read", + "teamAccess", + "to" + ], + "type": "object" + }, + "EmailRecipients": { + "description": "The `To`,`CC`,`BCC` recipients stored in object form with email address and name accessible.", + "properties": { + "bcc": { + "items": { + "$ref": "#/definitions/Recipient" + }, + "type": "array" + }, + "cc": { + "items": { + "$ref": "#/definitions/Recipient" + }, + "type": "array" + }, + "to": { + "items": { + "$ref": "#/definitions/Recipient" + }, + "type": "array" + } + }, + "type": "object", + "x-nullable": true + }, + "EmailRecipientsProjection": { + "description": "Recipients of original email in thread", + "properties": { + "bcc": { + "items": { + "$ref": "#/definitions/RecipientProjection" + }, + "type": "array" + }, + "cc": { + "items": { + "$ref": "#/definitions/RecipientProjection" + }, + "type": "array" + }, + "to": { + "items": { + "$ref": "#/definitions/RecipientProjection" + }, + "type": "array" + } + }, + "type": "object" + }, + "EmailScreenshotResult": { + "properties": { + "base64EncodedImage": { + "type": "string" + } + }, + "required": [ + "base64EncodedImage" + ], + "type": "object" + }, + "EmailTextLinesResult": { + "description": "Parsed text of an email", + "properties": { + "body": { + "type": "string" + }, + "lines": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "body", + "lines" + ], + "type": "object" + }, + "EmailThreadDto": { + "properties": { + "bcc": { + "description": "BCC recipients", + "items": { + "description": "BCC recipients", + "type": "string" + }, + "type": "array" + }, + "cc": { + "description": "CC recipients", + "items": { + "description": "CC recipients", + "type": "string" + }, + "type": "array" + }, + "createdAt": { + "description": "Created at DateTime", + "format": "date-time", + "type": "string" + }, + "from": { + "description": "From sender", + "type": "string" + }, + "id": { + "description": "ID of email thread", + "format": "uuid", + "type": "string" + }, + "inboxId": { + "description": "Inbox ID", + "format": "uuid", + "type": "string" + }, + "recipients": { + "$ref": "#/definitions/EmailRecipients" + }, + "sender": { + "$ref": "#/definitions/Sender" + }, + "subject": { + "description": "Thread topic subject", + "type": "string" + }, + "to": { + "description": "To recipients", + "items": { + "description": "To recipients", + "type": "string" + }, + "type": "array" + }, + "updatedAt": { + "description": "Updated at DateTime", + "format": "date-time", + "type": "string" + }, + "userId": { + "description": "User ID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "to", + "updatedAt", + "userId" + ], + "type": "object" + }, + "EmailThreadItem": { + "properties": { + "attachments": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bcc": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bodyExcerpt": { + "type": "string", + "x-nullable": true + }, + "cc": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "entityId": { + "format": "uuid", + "type": "string" + }, + "from": { + "type": "string", + "x-nullable": true + }, + "inReplyTo": { + "type": "string", + "x-nullable": true + }, + "itemType": { + "enum": [ + "RECEIVED_EMAIL", + "SENT_EMAIL" + ], + "type": "string" + }, + "messageId": { + "type": "string", + "x-nullable": true + }, + "read": { + "type": "boolean" + }, + "recipients": { + "$ref": "#/definitions/EmailRecipients" + }, + "sender": { + "$ref": "#/definitions/Sender" + }, + "subject": { + "type": "string", + "x-nullable": true + }, + "textExcerpt": { + "type": "string", + "x-nullable": true + }, + "threadId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "to": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "createdAt", + "entityId", + "itemType", + "read", + "to" + ], + "type": "object" + }, + "EmailThreadItemsDto": { + "properties": { + "items": { + "items": { + "$ref": "#/definitions/EmailThreadItem" + }, + "type": "array" + } + }, + "required": [ + "items" + ], + "type": "object" + }, + "EmailThreadProjection": { + "description": "An email thread is a message thread created for a email based on Message-ID, In-Reply-To, and References headers", + "properties": { + "bcc": { + "description": "BCC recipients", + "items": { + "description": "BCC recipients", + "type": "string" + }, + "type": "array" + }, + "cc": { + "description": "CC recipients", + "items": { + "description": "CC recipients", + "type": "string" + }, + "type": "array" + }, + "createdAt": { + "description": "Created at DateTime", + "format": "date-time", + "type": "string" + }, + "from": { + "description": "From sender", + "type": "string" + }, + "hasAttachments": { + "description": "Has attachments", + "type": "boolean" + }, + "id": { + "description": "ID of email thread", + "format": "uuid", + "type": "string" + }, + "inboxId": { + "description": "Inbox ID", + "format": "uuid", + "type": "string" + }, + "lastBodyExcerpt": { + "description": "Last body excerpt", + "type": "string" + }, + "lastCreatedAt": { + "description": "Last email created time", + "format": "date-time", + "type": "string" + }, + "lastFrom": { + "description": "Last sender", + "type": "string" + }, + "lastSender": { + "$ref": "#/definitions/SenderProjection" + }, + "lastTextExcerpt": { + "description": "Last text excerpt", + "type": "string" + }, + "messageCount": { + "description": "Number of messages in the thread", + "format": "int32", + "type": "integer" + }, + "recipients": { + "$ref": "#/definitions/EmailRecipientsProjection" + }, + "sender": { + "$ref": "#/definitions/SenderProjection" + }, + "subject": { + "description": "Thread topic subject", + "type": "string" + }, + "to": { + "description": "To recipients", + "items": { + "description": "To recipients", + "type": "string" + }, + "type": "array" + }, + "unread": { + "description": "Has unread", + "type": "boolean" + }, + "updatedAt": { + "description": "Updated at DateTime", + "format": "date-time", + "type": "string" + }, + "userId": { + "description": "User ID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "hasAttachments", + "id", + "messageCount", + "to", + "unread", + "updatedAt", + "userId" + ], + "type": "object" + }, + "EmailValidationRequestDto": { + "description": "Email validation request", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "isValid": { + "type": "boolean" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "emailAddress", + "id", + "isValid", + "updatedAt", + "userId" + ], + "type": "object" + }, + "EmailVerificationResult": { + "description": "Email verification result. Valid means email address exists according to response from mail server running at the domain and port given.", + "properties": { + "domainName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "error": { + "type": "string", + "x-nullable": true + }, + "isValid": { + "type": "boolean" + }, + "port": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "domainName", + "emailAddress", + "isValid", + "port" + ], + "type": "object" + }, + "EmergencyAddress": { + "properties": { + "accountSid": { + "type": "string" + }, + "address1": { + "type": "string" + }, + "city": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "customerName": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "phoneCountry": { + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "region": { + "type": "string" + }, + "sid": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "accountSid", + "address1", + "city", + "createdAt", + "customerName", + "displayName", + "id", + "phoneCountry", + "postalCode", + "region", + "sid", + "updatedAt", + "userId" + ], + "type": "object" + }, + "EmergencyAddressDto": { + "properties": { + "address1": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "phoneCountry": { + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], + "type": "string" + } + }, + "required": [ + "address1", + "id", + "phoneCountry" + ], + "type": "object" + }, + "EmptyResponseDto": { + "properties": { + "message": { + "type": "string" + } + }, + "type": "object" + }, + "EntityAutomationItemProjection": { + "properties": { + "action": { + "type": "string" + }, + "automationType": { + "enum": [ + "INBOX_FORWARDER", + "INBOX_REPLIER", + "INBOX_RULESET" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "phoneId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "automationType", + "id" + ], + "type": "object" + }, + "EntityEventItemProjection": { + "properties": { + "eventType": { + "enum": [ + "WEBHOOK_EVENT", + "INBOX_FORWARDER_EVENT", + "INBOX_REPLIER_EVENT", + "INBOX_RULESET_EVENT", + "ALIAS_EVENT" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "phoneId": { + "format": "uuid", + "type": "string" + }, + "severity": { + "enum": [ + "INFO", + "SUCCESS", + "WARNING", + "DANGER" + ], + "type": "string" + } + }, + "required": [ + "eventType", + "id", + "severity" + ], + "type": "object" + }, + "EntityFavouriteItemProjection": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "description": { + "type": "string" + }, + "entityType": { + "enum": [ + "INBOX", + "EMAIL", + "ATTACHMENT", + "PHONE", + "SMS" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "createdAt", + "entityType", + "id", + "name" + ], + "type": "object" + }, + "ExpirationDefaults": { + "description": "Expiration defaults for your account", + "properties": { + "canPermanentInbox": { + "description": "Use nextInboxAllowsPermanent instead", + "type": "boolean", + "x-deprecated": true + }, + "defaultExpirationMillis": { + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "defaultExpiresAt": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "maxExpirationMillis": { + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "nextInboxAllowsPermanent": { + "type": "boolean" + } + }, + "required": [ + "canPermanentInbox", + "nextInboxAllowsPermanent" + ], + "type": "object" + }, + "ExpiredInboxDto": { + "description": "Expired inbox", + "properties": { + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "emailAddress", + "id", + "inboxId" + ], + "type": "object" + }, + "ExpiredInboxRecordProjection": { + "description": "Record of inbox expiration", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "emailAddress", + "id", + "userId" + ], + "type": "object" + }, + "ExportLink": { + "description": "Export download link", + "properties": { + "downloadLink": { + "type": "string" + } + }, + "required": [ + "downloadLink" + ], + "type": "object" + }, + "ExportOptions": { + "description": "Options for exporting user data", + "properties": { + "createdEarliestTime": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "createdOldestTime": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "excludePreviouslyExported": { + "type": "boolean", + "x-nullable": true + }, + "filter": { + "type": "string", + "x-nullable": true + }, + "listSeparatorToken": { + "type": "string", + "x-nullable": true + }, + "outputFormat": { + "enum": [ + "CSV_DEFAULT", + "CSV_EXCEL" + ], + "type": "string" + } + }, + "required": [ + "outputFormat" + ], + "type": "object" + }, + "ExportTransformerOptions": { + "properties": { + "aiMappingId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "aiTransformId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "arraySeparator": { + "type": "string", + "x-nullable": true + }, + "attachmentId": { + "type": "string", + "x-nullable": true + }, + "before": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "delimiter": { + "type": "string", + "x-nullable": true + }, + "emailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "flattenArrays": { + "type": "boolean" + }, + "format": { + "enum": [ + "CSV", + "EXCEL", + "XML", + "JSON" + ], + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "includeMetaData": { + "type": "boolean" + }, + "includeMetaDataColumns": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "phoneId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "since": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "smsId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "flattenArrays", + "format", + "includeMetaData" + ], + "type": "object" + }, + "ExportTransformerResponse": { + "properties": { + "jobId": { + "format": "uuid", + "type": "string" + }, + "status": { + "enum": [ + "PENDING", + "IN_PROGRESS", + "ERROR", + "SUCCESS" + ], + "type": "string" + } + }, + "required": [ + "jobId", + "status" + ], + "type": "object" + }, + "ExportTransformerResultJobDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "downloadUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "format": { + "enum": [ + "CSV", + "EXCEL", + "XML", + "JSON" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "status": { + "enum": [ + "PENDING", + "IN_PROGRESS", + "ERROR", + "SUCCESS" + ], + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "createdAt", + "format", + "id", + "status", + "updatedAt" + ], + "type": "object" + }, + "FakeEmailDto": { + "properties": { + "attachmentNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "body": { + "description": "use read content endpoints instead", + "type": "string", + "x-deprecated": true + }, + "bodyUrl": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "preview": { + "type": "string" + }, + "recipients": { + "$ref": "#/definitions/EmailRecipients" + }, + "seen": { + "type": "boolean" + }, + "sender": { + "$ref": "#/definitions/Sender" + }, + "subject": { + "type": "string" + } + }, + "required": [ + "attachmentNames", + "body", + "bodyUrl", + "contentType", + "createdAt", + "emailAddress", + "id", + "seen" + ], + "type": "object" + }, + "FakeEmailPreview": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "hasAttachments": { + "type": "boolean" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "preview": { + "type": "string" + }, + "recipients": { + "$ref": "#/definitions/EmailRecipients" + }, + "seen": { + "type": "boolean" + }, + "sender": { + "$ref": "#/definitions/Sender" + }, + "subject": { + "type": "string" + } + }, + "required": [ + "createdAt", + "emailAddress", + "hasAttachments", + "id", + "seen" + ], + "type": "object" + }, + "FakeEmailResult": { + "properties": { + "email": { + "$ref": "#/definitions/FakeEmailDto" + } + }, + "type": "object" + }, + "FilterBouncedRecipientsOptions": { + "description": "Options for filtering bounced email recipients", + "properties": { + "emailRecipients": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "emailRecipients" + ], + "type": "object" + }, + "FilterBouncedRecipientsResult": { + "description": "Remaining recipients that were filtered to remove bounced recipients", + "properties": { + "filteredRecipients": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "filteredRecipients" + ], + "type": "object" + }, + "FlushExpiredInboxesResult": { + "description": "Result from calling expire on any inboxes that have applicable expiration dates given current time.", + "properties": { + "expireBefore": { + "description": "DateTime to filter inboxes so that those expiring before this time are expired", + "format": "date-time", + "type": "string" + }, + "inboxIds": { + "description": "Inbox IDs affected by expiration", + "items": { + "description": "Inbox IDs affected by expiration", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "expireBefore", + "inboxIds" + ], + "type": "object" + }, + "ForwardEmailOptions": { + "description": "Options for forwarding an email", + "properties": { + "bcc": { + "description": "Optional bcc recipients", + "items": { + "description": "Optional bcc recipients", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "cc": { + "description": "Optional cc recipients", + "items": { + "description": "Optional cc recipients", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "filterBouncedRecipients": { + "description": "Filter recipients to remove any bounced recipients from to, bcc, and cc before sending", + "type": "boolean", + "x-nullable": true + }, + "from": { + "description": "Optional from override", + "type": "string", + "x-nullable": true + }, + "subject": { + "description": "Subject for forwarded email", + "type": "string", + "x-nullable": true + }, + "to": { + "description": "To recipients for forwarded email", + "items": { + "description": "To recipients for forwarded email", + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "useInboxName": { + "description": "Optionally use inbox name as display name for sender email address", + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "to" + ], + "type": "object" + }, + "GenerateBimiRecordOptions": { + "properties": { + "domain": { + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "version": { + "enum": [ + "BIMI1" + ], + "type": "string" + }, + "vmcUrl": { + "type": "string" + } + }, + "required": [ + "domain", + "logoUrl", + "version" + ], + "type": "object" + }, + "GenerateBimiRecordResults": { + "properties": { + "name": { + "type": "string" + }, + "ttl": { + "format": "int32", + "type": "integer" + }, + "type": { + "description": "Domain Name Server Record Types", + "enum": [ + "A", + "NS", + "MD", + "MF", + "CNAME", + "SOA", + "MB", + "MG", + "MR", + "NULL", + "WKS", + "PTR", + "HINFO", + "MINFO", + "MX", + "TXT", + "RP", + "AFSDB", + "X25", + "ISDN", + "RT", + "NSAP", + "NSAP_PTR", + "SIG", + "KEY", + "PX", + "GPOS", + "AAAA", + "LOC", + "NXT", + "EID", + "NIMLOC", + "SRV", + "ATMA", + "NAPTR", + "KX", + "CERT", + "A6", + "DNAME", + "SINK", + "OPT", + "APL", + "DS", + "SSHFP", + "IPSECKEY", + "RRSIG", + "NSEC", + "DNSKEY", + "DHCID", + "NSEC3", + "NSEC3PARAM", + "TLSA", + "SMIMEA", + "HIP", + "NINFO", + "RKEY", + "TALINK", + "CDS", + "CDNSKEY", + "OPENPGPKEY", + "CSYNC", + "ZONEMD", + "SVCB", + "HTTPS", + "SPF", + "UINFO", + "UID", + "GID", + "UNSPEC", + "NID", + "L32", + "L64", + "LP", + "EUI48", + "EUI64", + "TKEY", + "TSIG", + "IXFR", + "AXFR", + "MAILB", + "MAILA", + "ANY", + "URI", + "CAA", + "AVC", + "DOA", + "AMTRELAY", + "TA", + "DLV" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "ttl", + "type", + "value" + ], + "type": "object" + }, + "GenerateDmarcRecordOptions": { + "properties": { + "adkim": { + "enum": [ + "STRICT", + "RELAXED" + ], + "type": "string" + }, + "aspf": { + "enum": [ + "STRICT", + "RELAXED" + ], + "type": "string" + }, + "domain": { + "type": "string" + }, + "fo": { + "enum": [ + "FO_0", + "FO_1", + "FO_D", + "FO_S" + ], + "type": "string" + }, + "forensicEmailAddress": { + "items": { + "type": "string" + }, + "type": "array" + }, + "percentage": { + "format": "int32", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "policy": { + "enum": [ + "NONE", + "QUARANTINE", + "REJECT" + ], + "type": "string" + }, + "reportEmailAddress": { + "items": { + "type": "string" + }, + "type": "array" + }, + "reportFormat": { + "enum": [ + "AFRF" + ], + "type": "string" + }, + "secondsBetweenReports": { + "format": "int32", + "type": "integer" + }, + "subdomainPolicy": { + "enum": [ + "NONE", + "QUARANTINE", + "REJECT" + ], + "type": "string" + }, + "version": { + "enum": [ + "DMARC1" + ], + "type": "string" + } + }, + "required": [ + "domain", + "policy", + "version" + ], + "type": "object" + }, + "GenerateDmarcRecordResults": { + "properties": { + "name": { + "type": "string" + }, + "ttl": { + "format": "int32", + "type": "integer" + }, + "type": { + "description": "Domain Name Server Record Types", + "enum": [ + "A", + "NS", + "MD", + "MF", + "CNAME", + "SOA", + "MB", + "MG", + "MR", + "NULL", + "WKS", + "PTR", + "HINFO", + "MINFO", + "MX", + "TXT", + "RP", + "AFSDB", + "X25", + "ISDN", + "RT", + "NSAP", + "NSAP_PTR", + "SIG", + "KEY", + "PX", + "GPOS", + "AAAA", + "LOC", + "NXT", + "EID", + "NIMLOC", + "SRV", + "ATMA", + "NAPTR", + "KX", + "CERT", + "A6", + "DNAME", + "SINK", + "OPT", + "APL", + "DS", + "SSHFP", + "IPSECKEY", + "RRSIG", + "NSEC", + "DNSKEY", + "DHCID", + "NSEC3", + "NSEC3PARAM", + "TLSA", + "SMIMEA", + "HIP", + "NINFO", + "RKEY", + "TALINK", + "CDS", + "CDNSKEY", + "OPENPGPKEY", + "CSYNC", + "ZONEMD", + "SVCB", + "HTTPS", + "SPF", + "UINFO", + "UID", + "GID", + "UNSPEC", + "NID", + "L32", + "L64", + "LP", + "EUI48", + "EUI64", + "TKEY", + "TSIG", + "IXFR", + "AXFR", + "MAILB", + "MAILA", + "ANY", + "URI", + "CAA", + "AVC", + "DOA", + "AMTRELAY", + "TA", + "DLV" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "ttl", + "type", + "value" + ], + "type": "object" + }, + "GenerateMtaStsRecordOptions": { + "properties": { + "host": { + "type": "string" + }, + "maxAgeSeconds": { + "format": "int32", + "type": "integer" + }, + "mode": { + "enum": [ + "TESTING", + "ENFORCE", + "NONE" + ], + "type": "string" + }, + "mxRecords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ttl": { + "format": "int32", + "type": "integer" + }, + "version": { + "enum": [ + "STSv1" + ], + "type": "string" + } + }, + "required": [ + "host", + "maxAgeSeconds", + "mode", + "mxRecords", + "ttl", + "version" + ], + "type": "object" + }, + "GenerateMtaStsRecordResults": { + "properties": { + "name": { + "type": "string" + }, + "ttl": { + "format": "int32", + "type": "integer" + }, + "type": { + "description": "Domain Name Server Record Types", + "enum": [ + "A", + "NS", + "MD", + "MF", + "CNAME", + "SOA", + "MB", + "MG", + "MR", + "NULL", + "WKS", + "PTR", + "HINFO", + "MINFO", + "MX", + "TXT", + "RP", + "AFSDB", + "X25", + "ISDN", + "RT", + "NSAP", + "NSAP_PTR", + "SIG", + "KEY", + "PX", + "GPOS", + "AAAA", + "LOC", + "NXT", + "EID", + "NIMLOC", + "SRV", + "ATMA", + "NAPTR", + "KX", + "CERT", + "A6", + "DNAME", + "SINK", + "OPT", + "APL", + "DS", + "SSHFP", + "IPSECKEY", + "RRSIG", + "NSEC", + "DNSKEY", + "DHCID", + "NSEC3", + "NSEC3PARAM", + "TLSA", + "SMIMEA", + "HIP", + "NINFO", + "RKEY", + "TALINK", + "CDS", + "CDNSKEY", + "OPENPGPKEY", + "CSYNC", + "ZONEMD", + "SVCB", + "HTTPS", + "SPF", + "UINFO", + "UID", + "GID", + "UNSPEC", + "NID", + "L32", + "L64", + "LP", + "EUI48", + "EUI64", + "TKEY", + "TSIG", + "IXFR", + "AXFR", + "MAILB", + "MAILA", + "ANY", + "URI", + "CAA", + "AVC", + "DOA", + "AMTRELAY", + "TA", + "DLV" + ], + "type": "string" + }, + "value": { + "type": "string" + }, + "wellKnownUrl": { + "type": "string" + }, + "wellKnownValue": { + "type": "string" + } + }, + "required": [ + "name", + "ttl", + "type", + "value", + "wellKnownUrl", + "wellKnownValue" + ], + "type": "object" + }, + "GenerateStructuredContentAttachmentOptions": { + "description": "Options for generating structured content output from an attachment", + "properties": { + "attachmentId": { + "description": "Attachment ID to read and pass to AI", + "type": "string" + }, + "emailId": { + "description": "Optional email ID for more context", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "instructions": { + "description": "Optional instructions for the AI to follow. Try to be precise and clear. You can include examples and hints.", + "type": "string", + "x-nullable": true + }, + "outputSchema": { + "$ref": "#/definitions/StructuredOutputSchema" + }, + "transformId": { + "description": "ID of transformer to apply", + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "attachmentId" + ], + "type": "object" + }, + "GenerateStructuredContentEmailOptions": { + "description": "Options for generating structured content output from an email", + "properties": { + "contentSelector": { + "description": "Content selector to select part of email to operate on", + "enum": [ + "RAW", + "BODY", + "BODY_ATTACHMENTS" + ], + "type": "string", + "x-nullable": true + }, + "emailId": { + "description": "Email ID to read and pass to AI", + "format": "uuid", + "type": "string" + }, + "instructions": { + "description": "Optional instructions for the AI to follow. Try to be precise and clear. You can include examples and hints.", + "type": "string", + "x-nullable": true + }, + "outputSchema": { + "$ref": "#/definitions/StructuredOutputSchema" + }, + "transformId": { + "description": "ID of transformer to apply", + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "emailId" + ], + "type": "object" + }, + "GenerateStructuredContentSmsOptions": { + "description": "Options for generating structured content output from an SMS", + "properties": { + "instructions": { + "description": "Optional instructions for the AI to follow. Try to be precise and clear. You can include examples and hints.", + "type": "string", + "x-nullable": true + }, + "outputSchema": { + "$ref": "#/definitions/StructuredOutputSchema" + }, + "smsId": { + "description": "SMS ID to read and pass to AI", + "format": "uuid", + "type": "string" + }, + "transformId": { + "description": "ID of transformer to apply", + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "smsId" + ], + "type": "object" + }, + "GenerateTlsReportingRecordOptions": { + "properties": { + "host": { + "type": "string" + }, + "reportingAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "reportingUrl": { + "type": "string" + }, + "ttl": { + "format": "int32", + "type": "integer" + }, + "version": { + "enum": [ + "TLSRPTv1" + ], + "type": "string" + } + }, + "required": [ + "host", + "reportingAddresses", + "ttl", + "version" + ], + "type": "object" + }, + "GenerateTlsReportingRecordResults": { + "properties": { + "name": { + "type": "string" + }, + "ttl": { + "format": "int32", + "type": "integer" + }, + "type": { + "description": "Domain Name Server Record Types", + "enum": [ + "A", + "NS", + "MD", + "MF", + "CNAME", + "SOA", + "MB", + "MG", + "MR", + "NULL", + "WKS", + "PTR", + "HINFO", + "MINFO", + "MX", + "TXT", + "RP", + "AFSDB", + "X25", + "ISDN", + "RT", + "NSAP", + "NSAP_PTR", + "SIG", + "KEY", + "PX", + "GPOS", + "AAAA", + "LOC", + "NXT", + "EID", + "NIMLOC", + "SRV", + "ATMA", + "NAPTR", + "KX", + "CERT", + "A6", + "DNAME", + "SINK", + "OPT", + "APL", + "DS", + "SSHFP", + "IPSECKEY", + "RRSIG", + "NSEC", + "DNSKEY", + "DHCID", + "NSEC3", + "NSEC3PARAM", + "TLSA", + "SMIMEA", + "HIP", + "NINFO", + "RKEY", + "TALINK", + "CDS", + "CDNSKEY", + "OPENPGPKEY", + "CSYNC", + "ZONEMD", + "SVCB", + "HTTPS", + "SPF", + "UINFO", + "UID", + "GID", + "UNSPEC", + "NID", + "L32", + "L64", + "LP", + "EUI48", + "EUI64", + "TKEY", + "TSIG", + "IXFR", + "AXFR", + "MAILB", + "MAILA", + "ANY", + "URI", + "CAA", + "AVC", + "DOA", + "AMTRELAY", + "TA", + "DLV" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "ttl", + "type", + "value" + ], + "type": "object" + }, + "GetEmailScreenshotOptions": { + "description": "Options taking a screenshot capture of a rendered email", + "properties": { + "height": { + "description": "Window height in pixels", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "width": { + "description": "Window width in pixels", + "format": "int32", + "type": "integer", + "x-nullable": true + } + }, + "type": "object" + }, + "GravatarUrl": { + "description": "User image", + "properties": { + "hash": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "hash", + "url" + ], + "type": "object" + }, + "GroupContactsDto": { + "description": "Describes contacts attached to a contact group", + "properties": { + "contacts": { + "items": { + "$ref": "#/definitions/ContactDto" + }, + "type": "array" + }, + "group": { + "$ref": "#/definitions/GroupDto" + } + }, + "required": [ + "contacts", + "group" + ], + "type": "object" + }, + "GroupDto": { + "description": "Contact group data", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "description": { + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "name" + ], + "type": "object" + }, + "GroupProjection": { + "description": "Data for contact group", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "description": { + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "name" + ], + "type": "object" + }, + "GuestPortalDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "description": { + "type": "string" + }, + "domainId": { + "format": "uuid", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "linkHelp": { + "type": "string" + }, + "loginUrl": { + "type": "string" + }, + "name": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "loginUrl", + "updatedAt", + "userId" + ], + "type": "object" + }, + "GuestPortalUserCreateDto": { + "properties": { + "guest": { + "$ref": "#/definitions/GuestPortalUserDto" + }, + "password": { + "type": "string" + } + }, + "required": [ + "guest", + "password" + ], + "type": "object" + }, + "GuestPortalUserDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "loginUrl": { + "type": "string" + }, + "name": { + "type": "string" + }, + "portalId": { + "format": "uuid", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "loginUrl", + "portalId", + "updatedAt", + "userId", + "username" + ], + "type": "object" + }, + "GuestPortalUserProjection": { + "description": "Representation of a guest portal user", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "portalId": { + "format": "uuid", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "portalId", + "updatedAt", + "userId", + "username" + ], + "type": "object" + }, + "HTMLValidationResult": { + "description": "HTML Validation Results", + "properties": { + "errors": { + "description": "Optional errors resulting from HTML validation", + "items": { + "$ref": "#/definitions/ValidationMessage" + }, + "type": "array" + }, + "infos": { + "description": "Optional infos resulting from HTML validation", + "items": { + "$ref": "#/definitions/ValidationMessage" + }, + "type": "array" + }, + "isValid": { + "description": "Is HTML validation result valid", + "type": "boolean" + }, + "warnings": { + "description": "Optional warnings resulting from HTML validation", + "items": { + "$ref": "#/definitions/ValidationMessage" + }, + "type": "array" + } + }, + "required": [ + "errors", + "infos", + "isValid", + "warnings" + ], + "type": "object" + }, + "IPAddressResult": { + "description": "IP Address look up result for a given domain / hostname", + "properties": { + "address": { + "type": "string" + }, + "hostname": { + "type": "string" + } + }, + "required": [ + "address", + "hostname" + ], + "type": "object" + }, + "ImageIssue": { + "properties": { + "message": { + "type": "string" + }, + "responseStatus": { + "format": "int32", + "type": "integer" + }, + "severity": { + "enum": [ + "Warning", + "Error" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "message", + "severity", + "url" + ], + "type": "object" + }, + "ImapAccessDetails": { + "description": "Access details for inbox using IMAP", + "properties": { + "imapMailbox": { + "description": "IMAP mailbox to SELECT", + "type": "string" + }, + "imapPassword": { + "description": "IMAP password for login", + "type": "string" + }, + "imapServerHost": { + "description": "IMAP server host domain", + "type": "string" + }, + "imapServerPort": { + "description": "IMAP server host port", + "format": "int32", + "type": "integer" + }, + "imapUsername": { + "description": "IMAP username for login", + "type": "string" + }, + "secureImapPassword": { + "description": "Secure TLS IMAP password for login", + "type": "string" + }, + "secureImapServerHost": { + "description": "Secure TLS IMAP server host domain", + "type": "string" + }, + "secureImapServerPort": { + "description": "Secure TLS IMAP server host port", + "format": "int32", + "type": "integer" + }, + "secureImapUsername": { + "description": "Secure TLS IMAP username for login", + "type": "string" + } + }, + "required": [ + "imapMailbox", + "imapPassword", + "imapServerHost", + "imapServerPort", + "imapUsername", + "secureImapPassword", + "secureImapServerHost", + "secureImapServerPort", + "secureImapUsername" + ], + "type": "object" + }, + "ImapEmailProjection": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "read": { + "type": "boolean", + "x-nullable": true + }, + "seqNum": { + "format": "int64", + "type": "integer" + }, + "uid": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "createdAt", + "id", + "seqNum", + "uid" + ], + "type": "object" + }, + "ImapFlagOperationOptions": { + "description": "IMAP operation flags", + "properties": { + "flagOperation": { + "enum": [ + "SET_FLAGS", + "ADD_FLAGS", + "REMOVE_FLAGS" + ], + "type": "string" + }, + "flags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "flagOperation", + "flags" + ], + "type": "object" + }, + "ImapMailboxStatus": { + "properties": { + "appendLimit": { + "description": "Per-mailbox limit of message size. Set only if server supports the APPENDLIMIT extension", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "flags": { + "description": "The mailbox flags.", + "items": { + "description": "The mailbox flags.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "items": { + "description": "Results map", + "type": "object", + "x-nullable": true + }, + "messages": { + "description": "The number of messages in this mailbox.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "The mailbox name.", + "type": "string" + }, + "permanentFlags": { + "description": "The mailbox permanent flags.", + "items": { + "description": "The mailbox permanent flags.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "readOnly": { + "description": "True if the mailbox is open in read-only mode.", + "type": "boolean" + }, + "recent": { + "description": "The number of messages not seen since the last time the mailbox was opened.", + "format": "int32", + "type": "integer" + }, + "uidNext": { + "description": "The next UID.", + "format": "int64", + "type": "integer" + }, + "uidValidity": { + "description": "Together with a UID, it is a unique identifier for a message. Must be greater than or equal to 1.", + "format": "int32", + "type": "integer" + }, + "unseen": { + "description": "The number of unread messages.", + "format": "int32", + "type": "integer" + }, + "unseenSeqNum": { + "description": "The sequence number of the first unseen message in the mailbox.", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "flags", + "items", + "messages", + "name", + "permanentFlags", + "readOnly", + "recent", + "uidNext", + "uidValidity", + "unseen", + "unseenSeqNum" + ], + "type": "object", + "x-nullable": true + }, + "ImapServerFetchItem": { + "description": "IMAP fetch content in raw format", + "properties": { + "content": { + "description": "Content of the email", + "type": "string" + }, + "id": { + "description": "ID of the email", + "format": "uuid", + "type": "string" + }, + "read": { + "description": "Read status of the email", + "type": "boolean" + }, + "seqNum": { + "description": "Sequence number of the email", + "format": "int64", + "type": "integer" + }, + "uid": { + "description": "UID of the email", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "content", + "id", + "read", + "seqNum", + "uid" + ], + "type": "object", + "x-nullable": true + }, + "ImapServerFetchResult": { + "description": "IMAP fetch email result", + "properties": { + "result": { + "$ref": "#/definitions/ImapServerFetchItem" + } + }, + "type": "object" + }, + "ImapServerGetResult": { + "properties": { + "result": { + "$ref": "#/definitions/ImapEmailProjection" + } + }, + "type": "object" + }, + "ImapServerListOptions": { + "properties": { + "seqSet": { + "type": "string", + "x-nullable": true + }, + "uidSet": { + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "ImapServerListResult": { + "properties": { + "results": { + "items": { + "$ref": "#/definitions/ImapEmailProjection" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" + }, + "ImapServerMailboxResult": { + "properties": { + "message": { + "type": "string", + "x-nullable": true + }, + "success": { + "type": "boolean" + } + }, + "required": [ + "success" + ], + "type": "object" + }, + "ImapServerSearchOptions": { + "description": "IMAP server search options", + "properties": { + "before": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "body": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "header": { + "additionalProperties": { + "items": { + "nullable": true, + "type": "string" + }, + "nullable": true, + "type": "array" + }, + "type": "object", + "x-nullable": true + }, + "sentBefore": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "sentSince": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "seqNum": { + "type": "string", + "x-nullable": true + }, + "since": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "text": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "uid": { + "type": "string", + "x-nullable": true + }, + "withFlags": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "withoutFlags": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + } + }, + "type": "object" + }, + "ImapServerSearchResult": { + "properties": { + "results": { + "items": { + "$ref": "#/definitions/ImapEmailProjection" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" + }, + "ImapServerStatusOptions": { + "properties": { + "name": { + "type": "string", + "x-nullable": true + }, + "statusItems": { + "items": { + "enum": [ + "MESSAGES", + "RECENT", + "UIDNEXT", + "UIDVALIDITY", + "UNSEEN", + "APPENDLIMIT" + ], + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + } + }, + "type": "object" + }, + "ImapServerStatusResult": { + "properties": { + "result": { + "$ref": "#/definitions/ImapMailboxStatus" + } + }, + "type": "object" + }, + "ImapSmtpAccessDetails": { + "description": "Access details for inbox using SMTP or IMAP", + "properties": { + "emailAddress": { + "description": "Email address for SMTP/IMAP login", + "type": "string" + }, + "imapMailbox": { + "description": "IMAP mailbox to SELECT", + "type": "string" + }, + "imapPassword": { + "description": "IMAP password for login", + "type": "string" + }, + "imapServerHost": { + "description": "IMAP server host domain", + "type": "string" + }, + "imapServerPort": { + "description": "IMAP server host port", + "format": "int32", + "type": "integer" + }, + "imapUsername": { + "description": "IMAP username for login", + "type": "string" + }, + "mailFromDomain": { + "description": "Mail from domain or SMTP HELO value", + "type": "string", + "x-nullable": true + }, + "secureImapPassword": { + "description": "Secure TLS IMAP password for login", + "type": "string" + }, + "secureImapServerHost": { + "description": "Secure TLS IMAP server host domain", + "type": "string" + }, + "secureImapServerPort": { + "description": "Secure TLS IMAP server host port", + "format": "int32", + "type": "integer" + }, + "secureImapUsername": { + "description": "Secure TLS IMAP username for login", + "type": "string" + }, + "secureSmtpPassword": { + "description": "Secure TLS SMTP password for login", + "type": "string" + }, + "secureSmtpServerHost": { + "description": "Secure TLS SMTP server host domain", + "type": "string" + }, + "secureSmtpServerPort": { + "description": "Secure TLS SMTP server host port", + "format": "int32", + "type": "integer" + }, + "secureSmtpUsername": { + "description": "Secure TLS SMTP username for login", + "type": "string" + }, + "smtpPassword": { + "description": "SMTP password for login", + "type": "string" + }, + "smtpServerHost": { + "description": "SMTP server host domain", + "type": "string" + }, + "smtpServerPort": { + "description": "SMTP server host port", + "format": "int32", + "type": "integer" + }, + "smtpUsername": { + "description": "SMTP username for login", + "type": "string" + } + }, + "required": [ + "emailAddress", + "imapMailbox", + "imapPassword", + "imapServerHost", + "imapServerPort", + "imapUsername", + "secureImapPassword", + "secureImapServerHost", + "secureImapServerPort", + "secureImapUsername", + "secureSmtpPassword", + "secureSmtpServerHost", + "secureSmtpServerPort", + "secureSmtpUsername", + "smtpPassword", + "smtpServerHost", + "smtpServerPort", + "smtpUsername" + ], + "type": "object" + }, + "ImapSmtpAccessServers": { + "description": "IMAP and SMTP server endpoints for MailSlurp", + "properties": { + "imapServer": { + "$ref": "#/definitions/ServerEndpoints" + }, + "secureImapServer": { + "$ref": "#/definitions/ServerEndpoints" + }, + "secureSmtpServer": { + "$ref": "#/definitions/ServerEndpoints" + }, + "smtpServer": { + "$ref": "#/definitions/ServerEndpoints" + } + }, + "required": [ + "imapServer", + "secureImapServer", + "secureSmtpServer", + "smtpServer" + ], + "type": "object" + }, + "ImapUpdateFlagsOptions": { + "properties": { + "flags": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "operation": { + "type": "string" + }, + "seqSet": { + "type": "string", + "x-nullable": true + }, + "uidSet": { + "type": "string", + "x-nullable": true + } + }, + "required": [ + "operation" + ], + "type": "object" + }, + "InboxByEmailAddressResult": { + "description": "Result of search for inbox by email address", + "properties": { + "exists": { + "type": "boolean" + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "exists" + ], + "type": "object" + }, + "InboxByNameResult": { + "description": "Result of search for inbox by name", + "properties": { + "exists": { + "type": "boolean" + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "exists" + ], + "type": "object" + }, + "InboxDto": { + "description": "Representation of a MailSlurp inbox. An inbox has an ID and a real email address. Emails can be sent to or from this email address. Inboxes are either `SMTP` or `HTTP` mailboxes. The default, `HTTP` inboxes, use AWS SES to process emails and are best suited as test email accounts and do not support IMAP or POP3. `SMTP` inboxes use a custom mail server at `mxslurp.click` and support SMTP login, IMAP and POP3. Use the `EmailController` or the `InboxController` methods to send and receive emails and attachments. Inboxes may have a description, name, and tags for display purposes. You can also favourite an inbox for easier searching.", + "properties": { + "tags": { + "description": "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.", + "items": { + "description": "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.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-deprecated": true, + "x-nullable": true + }, + "accountRegion": { + "description": "Region of the inbox", + "enum": [ + "US_WEST_2" + ], + "type": "string", + "x-nullable": true + }, + "createdAt": { + "description": "When the inbox was created. Time stamps are in ISO DateTime Format `yyyy-MM-dd'T'HH:mm:ss.SSSXXX` e.g. `2000-10-31T01:30:00.000-05:00`.", + "format": "date-time", + "type": "string" + }, + "description": { + "description": "Description of an inbox for labelling and searching purposes", + "type": "string", + "x-nullable": true + }, + "domain": { + "description": "Domain name of the email address", + "type": "string", + "x-nullable": true + }, + "domainId": { + "description": "ID of custom domain used by the inbox if any", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "emailAddress": { + "description": "The inbox's email address. Inbox projections and previews may not include the email address. To view the email address fetch the inbox entity directly. Send an email to this address and the inbox will receive and store it for you. Note the email address in MailSlurp match characters exactly and are case sensitive so `+123` additions are considered different addresses. To retrieve the email use the Inbox and Email Controller endpoints with the inbox ID.", + "type": "string" + }, + "expiresAt": { + "description": "Inbox expiration time. When, if ever, the inbox should expire and be deleted. If null then this inbox is permanent and the emails in it won't be deleted. This is the default behavior unless expiration date is set. If an expiration date is set and the time is reached MailSlurp will expire the inbox and move it to an expired inbox entity. You can still access the emails belonging to it but it can no longer send or receive email.", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "favourite": { + "description": "Is the inbox a favorite inbox. Make an inbox a favorite is typically done in the dashboard for quick access or filtering", + "type": "boolean" + }, + "functionsAs": { + "description": "Inbox function if used as a primitive for another system.", + "enum": [ + "ALIAS", + "THREAD", + "CATCH_ALL", + "CONNECTOR", + "ACCOUNT", + "GUEST", + "OAUTH_CONNECTION_GMAIL" + ], + "type": "string", + "x-nullable": true + }, + "id": { + "description": "ID of the inbox. The ID is a UUID-V4 format string. Use the inboxId for calls to Inbox and Email Controller endpoints. See the emailAddress property for the email address or the inbox. To get emails in an inbox use the WaitFor and Inbox Controller methods `waitForLatestEmail` and `getEmails` methods respectively. Inboxes can be used with aliases to forward emails automatically.", + "format": "uuid", + "type": "string" + }, + "inboxType": { + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "type": "string", + "x-nullable": true + }, + "localPart": { + "description": "Local part of email addresses before the @ symbol", + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Name of the inbox and used as the sender name when sending emails .Displayed in the dashboard for easier search", + "type": "string", + "x-nullable": true + }, + "readOnly": { + "description": "Is the inbox readOnly for the caller. Read only means can not be deleted or modified. This flag is present when using team accounts and shared inboxes.", + "type": "boolean" + }, + "userId": { + "description": "ID of user that inbox belongs to", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "virtualInbox": { + "description": "Virtual inbox can receive email but will not send emails to real recipients. Will save sent email record but never send an actual email. Perfect for testing mail server actions.", + "type": "boolean" + } + }, + "required": [ + "createdAt", + "emailAddress", + "favourite", + "id", + "readOnly", + "userId", + "virtualInbox" + ], + "title": "Inbox", + "type": "object" + }, + "InboxExistsDto": { + "description": "Result of email exists query", + "properties": { + "exists": { + "type": "boolean" + }, + "hardBounce": { + "description": "Inbox is blocking receiving emails or simulating a hard bounce via inbox replier or rulesets", + "type": "boolean", + "x-nullable": true + }, + "softBounce": { + "description": "Inbox is full or simulating a soft bounce via inbox replier or rulesets", + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "exists" + ], + "type": "object" + }, + "InboxForwarderDto": { + "externalDocs": { + "url": "https://docs.mailslurp.com/forwarders" + }, + "description": "Inbox forwarder. Describes how an inbox will forward matching emails to designated recipients.", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "field": { + "description": "Which field to match against", + "enum": [ + "RECIPIENTS", + "SENDER", + "SUBJECT", + "ATTACHMENTS" + ], + "type": "string" + }, + "forwardToRecipients": { + "description": "Who to send forwarded email to", + "items": { + "description": "Who to send forwarded email to", + "type": "string" + }, + "type": "array" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "match": { + "description": "Wild-card type pattern to apply to field", + "type": "string" + }, + "name": { + "description": "Name of inbox forwarder", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "field", + "forwardToRecipients", + "id", + "match" + ], + "type": "object" + }, + "InboxForwarderEventDto": { + "externalDocs": { + "url": "https://docs.mailslurp.com/forwarding/" + }, + "description": "Inbox forwarder event. Describes how an email was handled by an inbox forwarder.", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "forwarderId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "message": { + "type": "string", + "x-nullable": true + }, + "sentId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "status": { + "enum": [ + "SUCCESS", + "FAILURE" + ], + "type": "string", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt" + ], + "type": "object" + }, + "InboxForwarderEventProjection": { + "description": "Inbox forwarder event", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "forwarderId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "message": { + "type": "string", + "x-nullable": true + }, + "sentId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "status": { + "enum": [ + "SUCCESS", + "FAILURE" + ], + "type": "string", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt" + ], + "type": "object" + }, + "InboxForwarderTestOptions": { + "description": "Options for testing an inbox forwarder against a value", + "properties": { + "testValue": { + "type": "string" + } + }, + "required": [ + "testValue" + ], + "type": "object" + }, + "InboxForwarderTestResult": { + "description": "Results of inbox forwarder test", + "properties": { + "doesMatch": { + "type": "boolean" + }, + "matches": { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + } + }, + "required": [ + "doesMatch", + "matches" + ], + "type": "object" + }, + "InboxIdItem": { + "description": "Inbox ID and email address pair", + "properties": { + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "emailAddress", + "id" + ], + "type": "object" + }, + "InboxIdsResult": { + "description": "List of inbox IDs and email addresses", + "properties": { + "inboxIds": { + "items": { + "$ref": "#/definitions/InboxIdItem" + }, + "type": "array" + } + }, + "required": [ + "inboxIds" + ], + "type": "object" + }, + "InboxPreview": { + "description": "Inbox data preview element.", + "properties": { + "tags": { + "description": "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.", + "items": { + "description": "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.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-deprecated": true, + "x-nullable": true + }, + "accountRegion": { + "description": "Region of the inbox", + "enum": [ + "US_WEST_2" + ], + "type": "string", + "x-nullable": true + }, + "createdAt": { + "description": "When the inbox was created. Time stamps are in ISO DateTime Format `yyyy-MM-dd'T'HH:mm:ss.SSSXXX` e.g. `2000-10-31T01:30:00.000-05:00`.", + "format": "date-time", + "type": "string" + }, + "description": { + "description": "Description of an inbox for labelling and searching purposes", + "type": "string", + "x-nullable": true + }, + "domainId": { + "description": "ID of custom domain used by the inbox if any", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "emailAddress": { + "description": "The inbox's email address. Inbox projections and previews may not include the email address. To view the email address fetch the inbox entity directly. Send an email to this address and the inbox will receive and store it for you. Note the email address in MailSlurp match characters exactly and are case sensitive so `+123` additions are considered different addresses. To retrieve the email use the Inbox and Email Controller endpoints with the inbox ID.", + "type": "string", + "x-nullable": true + }, + "expiresAt": { + "description": "Inbox expiration time. When, if ever, the inbox should expire and be deleted. If null then this inbox is permanent and the emails in it won't be deleted. This is the default behavior unless expiration date is set. If an expiration date is set and the time is reached MailSlurp will expire the inbox and move it to an expired inbox entity. You can still access the emails belonging to it but it can no longer send or receive email.", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "favourite": { + "description": "Is the inbox a favorite inbox. Make an inbox a favorite is typically done in the dashboard for quick access or filtering", + "type": "boolean" + }, + "functionsAs": { + "description": "Inbox function if used as a primitive for another system.", + "enum": [ + "ALIAS", + "THREAD", + "CATCH_ALL", + "CONNECTOR", + "ACCOUNT", + "GUEST", + "OAUTH_CONNECTION_GMAIL" + ], + "type": "string", + "x-nullable": true + }, + "id": { + "description": "ID of the inbox. The ID is a UUID-V4 format string. Use the inboxId for calls to Inbox and Email Controller endpoints. See the emailAddress property for the email address or the inbox. To get emails in an inbox use the WaitFor and Inbox Controller methods `waitForLatestEmail` and `getEmails` methods respectively. Inboxes can be used with aliases to forward emails automatically.", + "format": "uuid", + "type": "string" + }, + "inboxType": { + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Name of the inbox and used as the sender name when sending emails .Displayed in the dashboard for easier search", + "type": "string", + "x-nullable": true + }, + "teamAccess": { + "description": "Does inbox permit team access for organization team members. If so team users can use inbox and emails associated with it. See the team access guide at https://www.mailslurp.com/guides/team-email-account-sharing/", + "type": "boolean" + }, + "userId": { + "description": "ID of user that inbox belongs to", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "virtualInbox": { + "description": "Virtual inbox can receive email but will not send emails to real recipients. Will save sent email record but never send an actual email. Perfect for testing mail server actions.", + "type": "boolean" + } + }, + "required": [ + "createdAt", + "emailAddress", + "favourite", + "id", + "teamAccess", + "userId", + "virtualInbox" + ], + "type": "object" + }, + "InboxReplierDto": { + "description": "Inbox replier. Will automatically reply to inbound emails that match given field for an inbox.", + "properties": { + "charset": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "field": { + "enum": [ + "RECIPIENTS", + "SENDER", + "SUBJECT", + "ATTACHMENTS" + ], + "type": "string" + }, + "from": { + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "ignoreReplyTo": { + "type": "boolean" + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "isHTML": { + "type": "boolean" + }, + "match": { + "type": "string" + }, + "name": { + "type": "string", + "x-nullable": true + }, + "replyTo": { + "type": "string", + "x-nullable": true + }, + "subject": { + "type": "string", + "x-nullable": true + }, + "templateId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "templateVariables": { + "additionalProperties": { + "nullable": true, + "type": "object" + }, + "type": "object", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "field", + "id", + "ignoreReplyTo", + "isHTML", + "match" + ], + "type": "object" + }, + "InboxReplierEventProjection": { + "description": "Inbox replier event", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "message": { + "type": "string", + "x-nullable": true + }, + "recipients": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "replierId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "sentId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "status": { + "enum": [ + "SUCCESS", + "FAILURE" + ], + "type": "string", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt" + ], + "type": "object" + }, + "InboxRetentionPolicyDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "retentionDays": { + "format": "int32", + "type": "integer" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "retentionDays", + "updatedAt" + ], + "type": "object" + }, + "InboxRetentionPolicyOptionalDto": { + "properties": { + "policy": { + "$ref": "#/definitions/InboxRetentionPolicyDto" + } + }, + "type": "object" + }, + "InboxRulesetTestResult": { + "description": "Result of test of inbox ruleset", + "properties": { + "matches": { + "type": "boolean" + }, + "rulesetMatches": { + "additionalProperties": { + "description": "Map of inbox ruleset ID to boolean of if target matches", + "type": "boolean" + }, + "description": "Map of inbox ruleset ID to boolean of if target matches", + "type": "object" + } + }, + "required": [ + "matches", + "rulesetMatches" + ], + "type": "object" + }, + "InvokeTransformerOptions": { + "properties": { + "aiTransformId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "aiTransformMappingId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "contentSelector": { + "enum": [ + "RAW", + "BODY", + "BODY_ATTACHMENTS" + ], + "type": "string", + "x-nullable": true + }, + "entityId": { + "type": "string", + "x-nullable": true + }, + "entityType": { + "enum": [ + "EMAIL", + "SMS", + "ATTACHMENT" + ], + "type": "string", + "x-nullable": true + }, + "rawConditions": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "rawInput": { + "type": "string", + "x-nullable": true + }, + "rawInstructions": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "rawOutputSchema": { + "$ref": "#/definitions/StructuredOutputSchema" + }, + "saveResults": { + "type": "boolean", + "x-nullable": true + } + }, + "type": "object" + }, + "JSONSchemaDto": { + "description": "JSONSchema for payload", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "JsonNode": { + "type": "object", + "x-nullable": true + }, + "LinkIssue": { + "properties": { + "message": { + "type": "string" + }, + "responseStatus": { + "format": "int32", + "type": "integer" + }, + "severity": { + "enum": [ + "Warning", + "Error" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "message", + "severity", + "url" + ], + "type": "object" + }, + "ListUnsubscribeRecipientProjection": { + "description": "List unsubscribe recipient", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "domainId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "emailAddress", + "id" + ], + "type": "object" + }, + "LookupBimiDomainOptions": { + "properties": { + "host": { + "type": "string" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "LookupBimiDomainResults": { + "properties": { + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "query": { + "$ref": "#/definitions/DNSLookupOptions" + }, + "records": { + "items": { + "$ref": "#/definitions/DNSLookupResult" + }, + "type": "array" + }, + "valid": { + "type": "boolean" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "errors", + "query", + "records", + "valid", + "warnings" + ], + "type": "object" + }, + "LookupDmarcDomainOptions": { + "properties": { + "host": { + "type": "string" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "LookupDmarcDomainResults": { + "properties": { + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "query": { + "$ref": "#/definitions/DNSLookupOptions" + }, + "records": { + "items": { + "$ref": "#/definitions/DNSLookupResult" + }, + "type": "array" + }, + "valid": { + "type": "boolean" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "errors", + "query", + "records", + "valid", + "warnings" + ], + "type": "object" + }, + "LookupMtaStsDomainOptions": { + "properties": { + "host": { + "type": "string" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "LookupMtaStsDomainResults": { + "properties": { + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "query": { + "$ref": "#/definitions/DNSLookupOptions" + }, + "records": { + "items": { + "$ref": "#/definitions/DNSLookupResult" + }, + "type": "array" + }, + "valid": { + "type": "boolean" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + }, + "wellKnownPresent": { + "type": "boolean" + }, + "wellKnownQuery": { + "type": "string" + }, + "wellKnownValue": { + "type": "string" + } + }, + "required": [ + "errors", + "query", + "records", + "valid", + "warnings", + "wellKnownPresent", + "wellKnownQuery", + "wellKnownValue" + ], + "type": "object" + }, + "LookupMxRecordsOptions": { + "properties": { + "host": { + "type": "string" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "LookupMxRecordsResults": { + "properties": { + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "records": { + "items": { + "$ref": "#/definitions/DNSLookupResult" + }, + "type": "array" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "errors", + "records", + "warnings" + ], + "type": "object" + }, + "LookupTlsReportingDomainOptions": { + "properties": { + "host": { + "type": "string" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "LookupTlsReportingDomainResults": { + "properties": { + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "query": { + "$ref": "#/definitions/DNSLookupOptions" + }, + "records": { + "items": { + "$ref": "#/definitions/DNSLookupResult" + }, + "type": "array" + }, + "valid": { + "type": "boolean" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "errors", + "query", + "records", + "valid", + "warnings" + ], + "type": "object" + }, + "MatchOption": { + "description": "Options for matching emails in an inbox. Each match option object contains a `field`, `should` and `value` property. Together they form logical conditions such as `SUBJECT` should `CONTAIN` value.", + "properties": { + "field": { + "description": "Fields of an email object that can be used to filter results", + "enum": [ + "SUBJECT", + "TO", + "BCC", + "CC", + "FROM", + "HEADERS" + ], + "title": "MatchField", + "type": "string" + }, + "should": { + "description": "How the value of the email field specified should be compared to the value given in the match options.", + "enum": [ + "MATCH", + "CONTAIN", + "EQUAL" + ], + "title": "MatchShould", + "type": "string" + }, + "value": { + "description": "The value you wish to compare with the value of the field specified using the `should` value passed. For example `BODY` should `CONTAIN` a value passed.", + "minLength": 1, + "type": "string" + } + }, + "required": [ + "field", + "should", + "value" + ], + "type": "object", + "x-nullable": true + }, + "MatchOptions": { + "description": "Optional filter for matching emails based on fields. For instance filter results to only include emails whose `SUBJECT` value does `CONTAIN` given match value. An example payload would be `{ matches: [{ field: 'SUBJECT', should: 'CONTAIN', value: 'Welcome' }] }`. You can also pass conditions such as `HAS_ATTACHMENT`. If you wish to extract regex matches inside the email content see the `getEmailContentMatch` method in the EmailController.", + "properties": { + "conditions": { + "description": "Zero or more conditions such as `{ condition: 'HAS_ATTACHMENTS', value: 'TRUE' }`. Note the values are the strings `TRUE|FALSE` not booleans.", + "items": { + "$ref": "#/definitions/ConditionOption" + }, + "type": "array", + "x-nullable": true + }, + "matches": { + "description": "Zero or more match options such as `{ field: 'SUBJECT', should: 'CONTAIN', value: 'Welcome' }`. Options are additive so if one does not match the email is excluded from results", + "items": { + "$ref": "#/definitions/MatchOption" + }, + "type": "array", + "x-nullable": true + } + }, + "type": "object" + }, + "MissedEmailDto": { + "description": "Missed email", + "properties": { + "attachmentCount": { + "format": "int32", + "type": "integer" + }, + "bcc": { + "items": { + "type": "string" + }, + "type": "array" + }, + "bodyExcerpt": { + "type": "string", + "x-nullable": true + }, + "canRestore": { + "type": "boolean", + "x-nullable": true + }, + "cc": { + "items": { + "type": "string" + }, + "type": "array" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "from": { + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxIds": { + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "rawBucket": { + "type": "string", + "x-nullable": true + }, + "rawKey": { + "type": "string", + "x-nullable": true + }, + "rawUrl": { + "description": "use raw key and raw bucket", + "type": "string", + "x-deprecated": true, + "x-nullable": true + }, + "subject": { + "type": "string", + "x-nullable": true + }, + "to": { + "items": { + "type": "string" + }, + "type": "array" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "attachmentCount", + "bcc", + "cc", + "createdAt", + "id", + "inboxIds", + "to", + "updatedAt" + ], + "type": "object" + }, + "MissedEmailProjection": { + "description": "Missed email data", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "from": { + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "subject": { + "type": "string", + "x-nullable": true + }, + "userId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "id" + ], + "type": "object" + }, + "NameServerRecord": { + "description": "Name Server Record", + "properties": { + "priority": { + "type": "string" + }, + "raw": { + "type": "string" + }, + "recordType": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "priority", + "raw", + "recordType", + "value" + ], + "type": "object" + }, + "NewFakeEmailAddressResult": { + "properties": { + "emailAddress": { + "type": "string" + } + }, + "required": [ + "emailAddress" + ], + "type": "object" + }, + "OptInConsentOptions": { + "properties": { + "companyName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "sendOptInOptions": { + "$ref": "#/definitions/SendOptInConsentEmailOptions" + } + }, + "required": [ + "emailAddress" + ], + "type": "object" + }, + "OptInConsentSendResult": { + "properties": { + "sent": { + "type": "boolean" + } + }, + "required": [ + "sent" + ], + "type": "object" + }, + "OptInIdentityProjection": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "verified": { + "type": "boolean" + } + }, + "required": [ + "createdAt", + "emailAddress", + "id", + "updatedAt" + ], + "type": "object" + }, + "OptInSendingConsentDto": { + "properties": { + "canSend": { + "type": "boolean" + }, + "userHasConsented": { + "type": "boolean" + }, + "verificationCodeSent": { + "type": "boolean" + } + }, + "required": [ + "canSend", + "userHasConsented", + "verificationCodeSent" + ], + "type": "object" + }, + "OptionalConnectorDto": { + "properties": { + "present": { + "type": "boolean" + }, + "result": { + "$ref": "#/definitions/ConnectorDto" + } + }, + "required": [ + "present" + ], + "type": "object" + }, + "OptionalConnectorImapConnectionDto": { + "properties": { + "present": { + "type": "boolean" + }, + "result": { + "$ref": "#/definitions/ConnectorImapConnectionDto" + } + }, + "required": [ + "present" + ], + "type": "object" + }, + "OptionalConnectorSmtpConnectionDto": { + "properties": { + "present": { + "type": "boolean" + }, + "result": { + "$ref": "#/definitions/ConnectorSmtpConnectionDto" + } + }, + "required": [ + "present" + ], + "type": "object" + }, + "OptionalConnectorSyncSettingsDto": { + "properties": { + "present": { + "type": "boolean" + }, + "result": { + "$ref": "#/definitions/ConnectorSyncSettingsDto" + } + }, + "required": [ + "present" + ], + "type": "object" + }, + "OrganizationInboxProjection": { + "description": "Organization team inbox", + "properties": { + "tags": { + "description": "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.", + "items": { + "description": "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.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-deprecated": true, + "x-nullable": true + }, + "accountRegion": { + "description": "Region of the inbox", + "enum": [ + "US_WEST_2" + ], + "type": "string", + "x-nullable": true + }, + "createdAt": { + "description": "When the inbox was created. Time stamps are in ISO DateTime Format `yyyy-MM-dd'T'HH:mm:ss.SSSXXX` e.g. `2000-10-31T01:30:00.000-05:00`.", + "format": "date-time", + "type": "string" + }, + "description": { + "description": "Description of an inbox for labelling and searching purposes", + "type": "string", + "x-nullable": true + }, + "domainId": { + "description": "ID of custom domain used by the inbox if any", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "emailAddress": { + "description": "The inbox's email address. Inbox projections and previews may not include the email address. To view the email address fetch the inbox entity directly. Send an email to this address and the inbox will receive and store it for you. Note the email address in MailSlurp match characters exactly and are case sensitive so `+123` additions are considered different addresses. To retrieve the email use the Inbox and Email Controller endpoints with the inbox ID.", + "type": "string", + "x-nullable": true + }, + "expiresAt": { + "description": "Inbox expiration time. When, if ever, the inbox should expire and be deleted. If null then this inbox is permanent and the emails in it won't be deleted. This is the default behavior unless expiration date is set. If an expiration date is set and the time is reached MailSlurp will expire the inbox and move it to an expired inbox entity. You can still access the emails belonging to it but it can no longer send or receive email.", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "favourite": { + "description": "Is the inbox a favorite inbox. Make an inbox a favorite is typically done in the dashboard for quick access or filtering", + "type": "boolean" + }, + "functionsAs": { + "description": "Inbox function if used as a primitive for another system.", + "enum": [ + "ALIAS", + "THREAD", + "CATCH_ALL", + "CONNECTOR", + "ACCOUNT", + "GUEST", + "OAUTH_CONNECTION_GMAIL" + ], + "type": "string", + "x-nullable": true + }, + "id": { + "description": "ID of the inbox. The ID is a UUID-V4 format string. Use the inboxId for calls to Inbox and Email Controller endpoints. See the emailAddress property for the email address or the inbox. To get emails in an inbox use the WaitFor and Inbox Controller methods `waitForLatestEmail` and `getEmails` methods respectively. Inboxes can be used with aliases to forward emails automatically.", + "format": "uuid", + "type": "string" + }, + "inboxType": { + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Name of the inbox and used as the sender name when sending emails .Displayed in the dashboard for easier search", + "type": "string", + "x-nullable": true + }, + "readOnly": { + "description": "Is the inbox readOnly for the caller. Read only means can not be deleted or modified. This flag is present when using team accounts and shared inboxes.", + "type": "boolean" + }, + "teamAccess": { + "description": "Does inbox permit team access for organization team members. If so team users can use inbox and emails associated with it. See the team access guide at https://www.mailslurp.com/guides/team-email-account-sharing/", + "type": "boolean" + }, + "userId": { + "description": "ID of user that inbox belongs to", + "format": "uuid", + "type": "string" + }, + "virtualInbox": { + "description": "Virtual inbox can receive email but will not send emails to real recipients. Will save sent email record but never send an actual email. Perfect for testing mail server actions.", + "type": "boolean" + } + }, + "required": [ + "createdAt", + "emailAddress", + "favourite", + "id", + "readOnly", + "teamAccess", + "userId", + "virtualInbox" + ], + "type": "object" + }, + "PageAITransformMappingProjection": { + "description": "Paginated AI Transform mapping entities. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/AITransformMappingProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageAITransformProjection": { + "description": "Paginated AI Transform entity. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/AITransformProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageAITransformResultProjection": { + "description": "Paginated AI Transform result entities. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "columns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "content": { + "items": { + "$ref": "#/definitions/AITransformResultProjectionDto" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "columns", + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageAlias": { + "description": "Paginated email alias results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/AliasProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageAliasThreadProjection": { + "description": "Paginated alias thread projection results.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/AliasThreadProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageAttachmentEntity": { + "description": "Paginated attachment entity results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/AttachmentProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageBouncedEmail": { + "description": "Paginated bounced email. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/BounceProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageBouncedRecipients": { + "description": "Paginated bounced recipients. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/BounceRecipientProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageComplaint": { + "description": "Paginated complaint email. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/Complaint" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageConnector": { + "description": "Paginated inbox connectors. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/ConnectorProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageConnectorEvents": { + "description": "Paginated inbox connector events. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/ConnectorEventProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageContactProjection": { + "description": "Paginated contact results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/ContactProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageDeliveryStatus": { + "description": "Paginated delivery status results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/DeliveryStatusDto" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageEmailPreview": { + "description": "Paginated email preview results. EmailProjections and EmailPreviews are essentially the same but have legacy naming issues. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls. For emails there are several methods for fetching message bodies and attachments.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/EmailPreview" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageEmailProjection": { + "description": "Paginated email projection results. EmailProjections and EmailPreviews are essentially the same but have legacy naming issues. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full email entity use the projection ID with individual method calls. For emails there are several methods for fetching message bodies and attachments.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/EmailProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageEmailThreadProjection": { + "description": "Paginated email thread projection results.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/EmailThreadProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageEmailValidationRequest": { + "description": "Paginated email validation request records. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/EmailValidationRequestDto" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageEntityAutomationItems": { + "description": "Paginated automation items like auto-repliers, forwarders, and rulesets. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/EntityAutomationItemProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageEntityEventItems": { + "description": "Paginated event items like webhook events and forwarding. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/EntityEventItemProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageEntityFavouriteItems": { + "description": "Paginated favourite items like inboxes, phones, sms, emails. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/EntityFavouriteItemProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageExpiredInboxRecordProjection": { + "description": "Paginated expired inbox results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/ExpiredInboxRecordProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageGroupProjection": { + "description": "Paginated missed email results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/GroupProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageGuestPortalUsers": { + "description": "Paginated guest portal users", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/GuestPortalUserProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageInboxForwarderDto": { + "description": "Paginated inbox forwarder results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/InboxForwarderDto" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageInboxForwarderEvents": { + "description": "Paginated inbox forwarder events. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/InboxForwarderEventProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageInboxProjection": { + "description": "Paginated inbox results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/InboxPreview" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageInboxReplierDto": { + "description": "Paginated inbox replier results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/InboxReplierDto" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageInboxReplierEvents": { + "description": "Paginated inbox replier events. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/InboxReplierEventProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageInboxTags": { + "description": "Paginated inbox tags. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "type": "string" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageListUnsubscribeRecipients": { + "description": "Paginated list unsubscribe recipients. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/ListUnsubscribeRecipientProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageMissedEmailProjection": { + "description": "Paginated MissedEmail results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/MissedEmailProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageOptInIdentityProjection": { + "description": "Paginated opt in identity projections reflecting users who have verified double-opt in consent to receive emails from your account.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/OptInIdentityProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageOrganizationInboxProjection": { + "description": "Paginated organization inbox results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/OrganizationInboxProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PagePhoneMessageThreadItemProjection": { + "description": "Paginated phone message thread items. These are messages in a phone thread. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/PhoneMessageThreadItemProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PagePhoneMessageThreadProjection": { + "description": "Paginated phone message threads. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/PhoneMessageThreadProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PagePhoneNumberProjection": { + "description": "Paginated phone numbers. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/PhoneNumberProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PagePlusAddressProjection": { + "description": "Paginated inbox plus addresses. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/PlusAddressProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageReputationItems": { + "description": "Paginated reputation items like complaints and bounces. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/ReputationItemProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageRulesetDto": { + "description": "Paginated ruleset results to deny or permit inbound or outbound SMS and email. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/RulesetDto" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageScheduledJobs": { + "description": "Paginated scheduled jobs results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/ScheduledJob" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageSentEmailProjection": { + "description": "Paginated sent email results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full sent email entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/SentEmailProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageSentEmailWithQueueProjection": { + "description": "Paginated sent email results for emails sent with queue. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full sent email entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/SendWithQueueResult" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageSentSmsProjection": { + "description": "Paginated sent SMS messages. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/SentSmsProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageSmsProjection": { + "description": "Paginated SMS messages. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/SmsProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageTableData": { + "properties": { + "headers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pagination": { + "$ref": "#/definitions/Pagination" + }, + "rows": { + "items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "array" + } + }, + "required": [ + "headers", + "pagination", + "rows" + ], + "type": "object" + }, + "PageTemplateProjection": { + "description": "Paginated email template results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/TemplateProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageTrackingPixelProjection": { + "description": "Paginated TrackingPixel results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/TrackingPixelProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageUnknownMissedEmailProjection": { + "description": "Paginated unknown MissedEmail results. Unknown missed emails are emails that were sent to MailSlurp /Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/UnknownMissedEmailProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageWebhookEndpointProjection": { + "description": "Paginated webhook endpoint with latest health status. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/WebhookEndpointProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageWebhookProjection": { + "description": "Paginated webhook entity. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/WebhookProjection" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageWebhookResult": { + "description": "Paginated webhook results. Page index starts at zero. Projection results may omit larger entity fields. For fetching a full entity use the projection ID with individual method calls.", + "properties": { + "content": { + "items": { + "$ref": "#/definitions/WebhookResultDto" + }, + "type": "array" + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "format": "int32", + "type": "integer" + }, + "numberOfElements": { + "format": "int32", + "type": "integer" + }, + "pageable": { + "$ref": "#/definitions/PageableObject" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "totalElements": { + "format": "int64", + "type": "integer" + }, + "totalPages": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "totalElements", + "totalPages" + ], + "type": "object" + }, + "PageableObject": { + "properties": { + "offset": { + "format": "int64", + "type": "integer" + }, + "pageNumber": { + "format": "int32", + "type": "integer" + }, + "pageSize": { + "format": "int32", + "type": "integer" + }, + "paged": { + "type": "boolean" + }, + "sort": { + "$ref": "#/definitions/SortObject" + }, + "unpaged": { + "type": "boolean" + } + }, + "type": "object" + }, + "Pagination": { + "properties": { + "pageNumber": { + "format": "int32", + "type": "integer" + }, + "pageSize": { + "format": "int32", + "type": "integer" + } + }, + "required": [ + "pageNumber", + "pageSize" + ], + "type": "object" + }, + "PhoneMessageThreadItemProjection": { + "properties": { + "body": { + "type": "string" + }, + "created": { + "format": "date-time", + "type": "string" + }, + "fromPhoneNumber": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "messageDirection": { + "enum": [ + "OUTBOUND", + "INBOUND" + ], + "type": "string" + }, + "phoneNumberId": { + "format": "uuid", + "type": "string" + }, + "toPhoneNumber": { + "type": "string" + } + }, + "required": [ + "body", + "created", + "fromPhoneNumber", + "id", + "messageDirection", + "phoneNumberId", + "toPhoneNumber" + ], + "type": "object" + }, + "PhoneMessageThreadProjection": { + "properties": { + "lastBody": { + "type": "string" + }, + "lastCreated": { + "format": "date-time", + "type": "string" + }, + "lastMessageDirection": { + "enum": [ + "OUTBOUND", + "INBOUND" + ], + "type": "string" + }, + "otherPhoneNumber": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "phoneNumberId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "lastBody", + "lastCreated", + "lastMessageDirection", + "phoneNumberId" + ], + "type": "object" + }, + "PhoneNumberDto": { + "properties": { + "complianceAddress": { + "format": "uuid", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "description": { + "type": "string" + }, + "emergencyAddress": { + "format": "uuid", + "type": "string" + }, + "favourite": { + "type": "boolean" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "phoneCountry": { + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "phonePlan": { + "format": "uuid", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "favourite", + "id", + "phoneCountry", + "phoneNumber", + "phonePlan", + "updatedAt", + "userId" + ], + "type": "object" + }, + "PhoneNumberProjection": { + "description": "Phone number projection", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "phoneCountry": { + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "phoneCountry", + "phoneNumber", + "userId" + ], + "type": "object" + }, + "PhoneNumberValidationDto": { + "properties": { + "countryCode": { + "type": "string" + }, + "countryPrefix": { + "type": "string" + }, + "isValid": { + "type": "boolean" + }, + "phoneNumber": { + "type": "string" + }, + "validationErrors": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "isValid", + "phoneNumber" + ], + "type": "object" + }, + "PhonePlanAvailability": { + "properties": { + "items": { + "items": { + "$ref": "#/definitions/PhonePlanAvailabilityItem" + }, + "type": "array" + } + }, + "required": [ + "items" + ], + "type": "object" + }, + "PhonePlanAvailabilityItem": { + "properties": { + "availabilityStatus": { + "enum": [ + "AVAILABLE", + "NON_MATCHING_SUBSCRIPTION_CURRENCY", + "NON_MATCHING_SUBSCRIPTION_TYPE", + "ALREADY_ASSIGNED" + ], + "type": "string" + }, + "phoneCountry": { + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], + "type": "string" + } + }, + "required": [ + "availabilityStatus", + "phoneCountry" + ], + "type": "object" + }, + "PhonePlanDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "phoneCountry": { + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "phoneCountry", + "userId" + ], + "type": "object" + }, + "PlusAddressDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "fullAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "plusAddress": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "fullAddress", + "id", + "inboxId", + "plusAddress", + "updatedAt", + "userId" + ], + "type": "object" + }, + "PlusAddressProjection": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "fullAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "plusAddress": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "fullAddress", + "id", + "inboxId", + "plusAddress", + "updatedAt", + "userId" + ], + "type": "object" + }, + "ProviderSettings": { + "properties": { + "imapHost": { + "type": "string" + }, + "imapPort": { + "format": "int32", + "type": "integer" + }, + "imapSsl": { + "type": "boolean" + }, + "imapStartTls": { + "type": "boolean" + }, + "mailProvider": { + "enum": [ + "GOOGLE", + "MICROSOFT" + ], + "type": "string" + }, + "smtpHost": { + "type": "string" + }, + "smtpPort": { + "format": "int32", + "type": "integer" + }, + "smtpSsl": { + "type": "boolean" + }, + "smtpStartTls": { + "type": "boolean" + } + }, + "required": [ + "imapHost", + "imapPort", + "imapSsl", + "mailProvider", + "smtpHost", + "smtpPort", + "smtpSsl" + ], + "type": "object" + }, + "RawEmailJson": { + "description": "Content in raw format", + "properties": { + "content": { + "type": "string" + } + }, + "required": [ + "content" + ], + "type": "object" + }, + "Recipient": { + "description": "Email recipient", + "properties": { + "emailAddress": { + "type": "string" + }, + "name": { + "type": "string", + "x-nullable": true + }, + "rawValue": { + "type": "string" + } + }, + "required": [ + "emailAddress", + "rawValue" + ], + "type": "object" + }, + "RecipientProjection": { + "properties": { + "emailAddress": { + "type": "string" + }, + "name": { + "type": "string" + }, + "rawValue": { + "type": "string" + } + }, + "required": [ + "emailAddress", + "rawValue" + ], + "type": "object" + }, + "ReplyForSms": { + "properties": { + "reply": { + "$ref": "#/definitions/SentSmsDto" + } + }, + "type": "object" + }, + "ReplyToAliasEmailOptions": { + "description": "Options for replying to an alias email using the alias inbox", + "properties": { + "attachments": { + "description": "List of uploaded attachments to send with the reply. Optional.", + "items": { + "description": "List of uploaded attachments to send with the reply. Optional.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "body": { + "description": "Body of the reply email you want to send", + "type": "string" + }, + "charset": { + "description": "The charset that your message should be sent with. Optional. Default is UTF-8", + "type": "string", + "x-nullable": true + }, + "customHeaders": { + "additionalProperties": { + "description": "Optional custom headers", + "nullable": true, + "type": "string" + }, + "description": "Optional custom headers", + "type": "object", + "x-nullable": true + }, + "html": { + "type": "boolean" + }, + "isHTML": { + "description": "Is the reply HTML", + "type": "boolean" + }, + "sendStrategy": { + "description": "How an email should be sent based on its recipients", + "enum": [ + "SINGLE_MESSAGE" + ], + "type": "string", + "x-nullable": true + }, + "template": { + "description": "Template ID to use instead of body. Will use template variable map to fill defined variable slots.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "templateVariables": { + "additionalProperties": { + "description": "Template variables if using a template", + "nullable": true, + "type": "object" + }, + "description": "Template variables if using a template", + "type": "object", + "x-nullable": true + }, + "useInboxName": { + "description": "Optionally use inbox name as display name for sender email address", + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "body", + "isHTML" + ], + "type": "object" + }, + "ReplyToEmailOptions": { + "description": "Options for replying to email with API", + "properties": { + "attachments": { + "description": "List of uploaded attachments to send with the reply. Optional.", + "items": { + "description": "List of uploaded attachments to send with the reply. Optional.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "body": { + "description": "Body of the reply email you want to send", + "type": "string" + }, + "charset": { + "description": "The charset that your message should be sent with. Optional. Default is UTF-8", + "type": "string", + "x-nullable": true + }, + "customHeaders": { + "additionalProperties": { + "description": "Optional custom headers", + "nullable": true, + "type": "string" + }, + "description": "Optional custom headers", + "type": "object", + "x-nullable": true + }, + "from": { + "description": "The from header that should be used. Optional", + "type": "string", + "x-nullable": true + }, + "html": { + "type": "boolean" + }, + "isHTML": { + "description": "Is the reply HTML", + "type": "boolean" + }, + "replyTo": { + "description": "The replyTo header that should be used. Optional", + "type": "string", + "x-nullable": true + }, + "sendStrategy": { + "description": "How an email should be sent based on its recipients", + "enum": [ + "SINGLE_MESSAGE" + ], + "type": "string", + "x-nullable": true + }, + "template": { + "description": "Template ID to use instead of body. Will use template variable map to fill defined variable slots.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "templateVariables": { + "additionalProperties": { + "description": "Template variables if using a template", + "nullable": true, + "type": "object" + }, + "description": "Template variables if using a template", + "type": "object", + "x-nullable": true + }, + "useInboxName": { + "description": "Optionally use inbox name as display name for sender email address", + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "body", + "isHTML" + ], + "type": "object" + }, + "ReputationItemProjection": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "recipient": { + "type": "string" + }, + "reputationType": { + "enum": [ + "COMPLAINT", + "BOUNCE" + ], + "type": "string" + }, + "severity": { + "enum": [ + "INFO", + "WARNING", + "DANGER" + ], + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "reputationType", + "severity" + ], + "type": "object" + }, + "RulesetDto": { + "description": "Rules for an inbox or phone number. Rulesets can be used to block, allow, filter, or bounce emails or SMS when sending or receiving.", + "properties": { + "action": { + "enum": [ + "BLOCK", + "ALLOW", + "FILTER_REMOVE", + "BOUNCE_SOFT", + "BOUNCE_HARD" + ], + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "handler": { + "enum": [ + "EXCEPTION" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "phoneId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "scope": { + "enum": [ + "RECEIVING_EMAILS", + "SENDING_EMAILS", + "RECEIVING_SMS", + "SENDING_SMS" + ], + "type": "string" + }, + "target": { + "type": "string" + } + }, + "required": [ + "action", + "createdAt", + "handler", + "id", + "scope", + "target" + ], + "type": "object" + }, + "RulesetTestOptions": { + "description": "Test options for inbox ruleset", + "properties": { + "testTarget": { + "type": "string" + } + }, + "required": [ + "testTarget" + ], + "type": "object" + }, + "ScheduledJob": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "groupId": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "jobId": { + "type": "string" + }, + "sendAtTimestamp": { + "format": "date-time", + "type": "string" + }, + "status": { + "enum": [ + "SUBMITTED", + "COMPLETED", + "ABORTED", + "FAILED", + "CANCELLED" + ], + "type": "string" + }, + "triggerId": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "groupId", + "id", + "inboxId", + "jobId", + "sendAtTimestamp", + "status", + "triggerId", + "updatedAt", + "userId" + ], + "type": "object" + }, + "ScheduledJobDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "groupId": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "jobId": { + "type": "string" + }, + "sendAtTimestamp": { + "format": "date-time", + "type": "string" + }, + "status": { + "enum": [ + "SUBMITTED", + "COMPLETED", + "ABORTED", + "FAILED", + "CANCELLED" + ], + "type": "string" + }, + "triggerId": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "groupId", + "id", + "inboxId", + "jobId", + "sendAtTimestamp", + "status", + "triggerId", + "updatedAt", + "userId" + ], + "type": "object" + }, + "SearchEmailsOptions": { + "properties": { + "before": { + "description": "Optional filter emails received before given date time", + "format": "date-time", + "type": "string" + }, + "inboxIds": { + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", + "items": { + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "pageIndex": { + "description": "Optional page index in email list pagination", + "format": "int32", + "type": "integer" + }, + "pageSize": { + "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "maximum": 100, + "type": "integer" + }, + "searchFilter": { + "description": "Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body", + "type": "string" + }, + "since": { + "description": "Optional filter emails received after given date time", + "format": "date-time", + "type": "string" + }, + "sortDirection": { + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + }, + "unreadOnly": { + "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", + "type": "boolean" + } + }, + "type": "object" + }, + "SearchInboxesOptions": { + "properties": { + "before": { + "description": "Optional filter by created before given date time", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "domainId": { + "description": "Optional domain ID filter", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "favourite": { + "description": "Optionally filter results for favourites only", + "type": "boolean", + "x-nullable": true + }, + "inboxFunction": { + "description": "Optional filter by inbox function", + "enum": [ + "ALIAS", + "THREAD", + "CATCH_ALL", + "CONNECTOR", + "ACCOUNT", + "GUEST", + "OAUTH_CONNECTION_GMAIL" + ], + "type": "string", + "x-nullable": true + }, + "inboxType": { + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "type": "string", + "x-nullable": true + }, + "pageIndex": { + "description": "Optional page index in list pagination", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "pageSize": { + "description": "Optional page size in list pagination", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "search": { + "description": "Optionally filter by search words partial matching ID, tags, name, and email address", + "type": "string", + "x-nullable": true + }, + "since": { + "description": "Optional filter by created after given date time", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "sortDirection": { + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "type": "string", + "x-nullable": true + }, + "tag": { + "description": "Optionally filter by tags. Will return inboxes that include given tags", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "SendEmailBodyPart": { + "description": "Email body content parts for multipart mime message. Will override body.", + "properties": { + "contentBody": { + "type": "string" + }, + "contentType": { + "type": "string" + } + }, + "required": [ + "contentBody", + "contentType" + ], + "type": "object", + "x-nullable": true + }, + "SendEmailOptions": { + "description": "Options for the email to be sent", + "properties": { + "addTrackingPixel": { + "description": "Add tracking pixel to email", + "type": "boolean", + "x-nullable": true + }, + "attachments": { + "description": "Optional list of attachment IDs to send with this email. You must first upload each attachment separately via method call or dashboard in order to obtain attachment IDs. This way you can reuse attachments with different emails once uploaded. There are several ways to upload that support `multi-part form`, `base64 file encoding`, and octet stream binary uploads. See the `UploadController` for available methods. ", + "items": { + "description": "Optional list of attachment IDs to send with this email. You must first upload each attachment separately via method call or dashboard in order to obtain attachment IDs. This way you can reuse attachments with different emails once uploaded. There are several ways to upload that support `multi-part form`, `base64 file encoding`, and octet stream binary uploads. See the `UploadController` for available methods. ", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bcc": { + "description": "Optional list of bcc destination email addresses", + "items": { + "description": "Optional list of bcc destination email addresses", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "body": { + "description": "Optional contents of email. If body contains HTML then set `isHTML` to true to ensure that email clients render it correctly. You can use moustache template syntax in the email body in conjunction with `toGroup` contact variables or `templateVariables` data. If you need more templating control consider creating a template and using the `template` property instead of the body.", + "type": "string", + "x-nullable": true + }, + "bodyParts": { + "description": "Email body content parts for multipart mime message. Will override body.", + "items": { + "$ref": "#/definitions/SendEmailBodyPart" + }, + "type": "array", + "x-nullable": true + }, + "cc": { + "description": "Optional list of cc destination email addresses", + "items": { + "description": "Optional list of cc destination email addresses", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "charset": { + "description": "Optional charset", + "type": "string", + "x-nullable": true + }, + "customHeaders": { + "additionalProperties": { + "description": "Optional custom headers", + "nullable": true, + "type": "string" + }, + "description": "Optional custom headers", + "type": "object", + "x-nullable": true + }, + "filterBouncedRecipients": { + "description": "Filter recipients to remove any bounced recipients from to, bcc, and cc before sending", + "type": "boolean", + "x-nullable": true + }, + "from": { + "description": "Optional from address. Email address is RFC 5322 format and may include a display name and email in angle brackets (`my@address.com` or `My inbox `). If no sender is set the source inbox address will be used for this field. If you set `useInboxName` to `true` the from field will include the inbox name as a display name: `inbox_name `. For this to work use the name field when creating an inbox. Beware of potential spam penalties when setting the from field to an address not used by the inbox. Your emails may get blocked by services if you impersonate another address. To use a custom email addresses use a custom domain. You can create domains with the DomainController. The domain must be verified in the dashboard before it can be used.", + "type": "string", + "x-nullable": true + }, + "fromName": { + "description": "Optional from name if not passed with address. If you set `useInboxName` to `true` the from field will include the inbox name as a display name", + "type": "string", + "x-nullable": true + }, + "html": { + "description": "Optional HTML flag to indicate that contents is HTML. Set's a `content-type: text/html` for email. (Deprecated: use `isHTML` instead.)", + "type": "boolean", + "x-nullable": true + }, + "ignoreEmptyRecipients": { + "description": "Ignore empty recipients after validation removes all recipients as invalid and fail silently", + "type": "boolean", + "x-nullable": true + }, + "isHTML": { + "description": "Optional HTML flag. If true the `content-type` of the email will be `text/html`. Set to true when sending HTML to ensure proper rending on email clients", + "type": "boolean", + "x-nullable": true + }, + "isXAmpHtml": { + "description": "Is content AMP4EMAIL compatible. If set will send as x-amp-html part.", + "type": "boolean", + "x-nullable": true + }, + "replyTo": { + "description": "Optional replyTo header", + "type": "string", + "x-nullable": true + }, + "sendStrategy": { + "description": "How an email should be sent based on its recipients", + "enum": [ + "SINGLE_MESSAGE" + ], + "type": "string", + "x-nullable": true + }, + "subject": { + "description": "Optional email subject line", + "type": "string", + "x-nullable": true + }, + "template": { + "description": "Optional template ID to use for body. Will override body if provided. When using a template make sure you pass the corresponding map of `templateVariables`. You can find which variables are needed by fetching the template itself or viewing it in the dashboard.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "templateVariables": { + "additionalProperties": { + "description": "Optional map of template variables. Will replace moustache syntax variables in subject and body or template with the associated values if found.", + "nullable": true, + "type": "object" + }, + "description": "Optional map of template variables. Will replace moustache syntax variables in subject and body or template with the associated values if found.", + "type": "object", + "x-nullable": true + }, + "to": { + "description": "List of destination email addresses. Each email address must be RFC 5322 format. Even single recipients must be in array form. Maximum recipients per email depends on your plan. If you need to send many emails try using contacts or contact groups or use a non standard sendStrategy to ensure that spam filters are not triggered (many recipients in one email can affect your spam rating). Be cautious when sending emails that your recipients exist. High bounce rates (meaning a high percentage of emails cannot be delivered because an address does not exist) can result in account freezing.", + "items": { + "description": "List of destination email addresses. Each email address must be RFC 5322 format. Even single recipients must be in array form. Maximum recipients per email depends on your plan. If you need to send many emails try using contacts or contact groups or use a non standard sendStrategy to ensure that spam filters are not triggered (many recipients in one email can affect your spam rating). Be cautious when sending emails that your recipients exist. High bounce rates (meaning a high percentage of emails cannot be delivered because an address does not exist) can result in account freezing.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "toContacts": { + "description": "Optional list of contact IDs to send email to. Manage your contacts via the API or dashboard. When contacts are used the email is sent to each contact separately so they will not see other recipients.", + "items": { + "description": "Optional list of contact IDs to send email to. Manage your contacts via the API or dashboard. When contacts are used the email is sent to each contact separately so they will not see other recipients.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "toGroup": { + "description": "Optional contact group ID to send email to. You can create contacts and contact groups in the API or dashboard and use them for email campaigns. When contact groups are used the email is sent to each contact separately so they will not see other recipients", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "useInboxName": { + "description": "Use name of inbox as sender email address name. Will construct RFC 5322 email address with `Inbox name ` if the inbox has a name.", + "type": "boolean", + "x-nullable": true + }, + "validateEmailAddresses": { + "description": "Validate recipient email addresses before sending", + "enum": [ + "VALIDATE_FILTER_REMOVE_INVALID", + "VALIDATE_ERROR_IF_INVALID", + "NO_VALIDATION" + ], + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "SendOptInConsentEmailOptions": { + "properties": { + "senderInbox": { + "format": "uuid", + "type": "string" + }, + "subject": { + "type": "string" + }, + "templateHtml": { + "type": "string" + } + }, + "required": [ + "subject", + "templateHtml" + ], + "type": "object" + }, + "SendSMTPEnvelopeOptions": { + "description": "Options for the email envelope", + "properties": { + "data": { + "type": "string" + }, + "mailFrom": { + "type": "string" + }, + "rcptTo": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "data", + "mailFrom", + "rcptTo" + ], + "type": "object" + }, + "SendWithQueueResult": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "delivered": { + "type": "boolean" + }, + "exceptionName": { + "type": "string" + }, + "headerId": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "message": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "delivered", + "headerId", + "id", + "updatedAt", + "userId" + ], + "type": "object" + }, + "Sender": { + "description": "Sender object containing from email address and from personal name if provided in address", + "properties": { + "emailAddress": { + "type": "string" + }, + "name": { + "type": "string" + }, + "rawValue": { + "type": "string" + } + }, + "required": [ + "emailAddress", + "rawValue" + ], + "type": "object", + "x-nullable": true + }, + "SenderProjection": { + "description": "Last sender object", + "properties": { + "emailAddress": { + "type": "string" + }, + "name": { + "type": "string" + }, + "rawValue": { + "type": "string" + } + }, + "required": [ + "emailAddress", + "rawValue" + ], + "type": "object" + }, + "SentEmailDto": { + "description": "Sent email details", + "properties": { + "attachments": { + "description": "Array of IDs of attachments that were sent with this email", + "items": { + "description": "Array of IDs of attachments that were sent with this email", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bcc": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "body": { + "description": "Sent email body", + "type": "string", + "x-nullable": true + }, + "bodyExcerpt": { + "description": "An excerpt of the body of the email message for quick preview. Takes HTML content part if exists falls back to TEXT content part if not", + "type": "string", + "x-nullable": true + }, + "bodyMD5Hash": { + "description": "MD5 Hash", + "type": "string", + "x-nullable": true + }, + "cc": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "charset": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "domainId": { + "description": "Domain ID", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "favourite": { + "description": "Is email favourited", + "type": "boolean", + "x-nullable": true + }, + "from": { + "description": "Sent from address", + "type": "string", + "x-nullable": true + }, + "headers": { + "additionalProperties": { + "nullable": true, + "type": "string" + }, + "type": "object", + "x-nullable": true + }, + "html": { + "type": "boolean" + }, + "id": { + "description": "ID of sent email", + "format": "uuid", + "type": "string" + }, + "inReplyTo": { + "description": "Parsed value of In-Reply-To header. A Message-ID in a thread.", + "type": "string", + "x-nullable": true + }, + "inboxId": { + "description": "Inbox ID email was sent from", + "format": "uuid", + "type": "string" + }, + "isHTML": { + "type": "boolean", + "x-nullable": true + }, + "messageId": { + "description": "RFC 5322 Message-ID header value without angle brackets.", + "type": "string", + "x-nullable": true + }, + "messageIds": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "pixelIds": { + "items": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "recipients": { + "$ref": "#/definitions/EmailRecipients" + }, + "replyTo": { + "type": "string", + "x-nullable": true + }, + "sender": { + "$ref": "#/definitions/Sender" + }, + "sentAt": { + "format": "date-time", + "type": "string" + }, + "sizeBytes": { + "description": "Size of raw email message in bytes", + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "subject": { + "type": "string", + "x-nullable": true + }, + "templateId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "templateVariables": { + "additionalProperties": { + "nullable": true, + "type": "object" + }, + "type": "object", + "x-nullable": true + }, + "textExcerpt": { + "description": "An excerpt of the body of the email message for quick preview. Takes TEXT content part if exists", + "type": "string", + "x-nullable": true + }, + "threadId": { + "description": "MailSlurp thread ID for email chain that enables lookup for In-Reply-To and References fields.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "to": { + "description": "Recipients email was sent to", + "items": { + "description": "Recipients email was sent to", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "toContacts": { + "items": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "toGroup": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "userId": { + "description": "User ID", + "format": "uuid", + "type": "string" + }, + "virtualSend": { + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "id", + "inboxId", + "sentAt", + "userId" + ], + "type": "object" + }, + "SentEmailProjection": { + "properties": { + "attachments": { + "items": { + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "bcc": { + "items": { + "type": "string" + }, + "type": "array" + }, + "bodyExcerpt": { + "type": "string", + "x-nullable": true + }, + "bodyMD5Hash": { + "type": "string", + "x-nullable": true + }, + "cc": { + "items": { + "type": "string" + }, + "type": "array" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "from": { + "type": "string", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inReplyTo": { + "type": "string", + "x-nullable": true + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "messageId": { + "type": "string", + "x-nullable": true + }, + "recipients": { + "$ref": "#/definitions/EmailRecipients" + }, + "sender": { + "$ref": "#/definitions/Sender" + }, + "subject": { + "type": "string", + "x-nullable": true + }, + "textExcerpt": { + "type": "string", + "x-nullable": true + }, + "threadId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "to": { + "items": { + "type": "string" + }, + "type": "array" + }, + "userId": { + "format": "uuid", + "type": "string" + }, + "virtualSend": { + "type": "boolean" + } + }, + "required": [ + "createdAt", + "id", + "inboxId", + "userId", + "virtualSend" + ], + "type": "object" + }, + "SentSmsDto": { + "properties": { + "body": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "fromNumber": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "phoneNumber": { + "format": "uuid", + "type": "string" + }, + "replyToId": { + "format": "uuid", + "type": "string" + }, + "replyToSid": { + "type": "string" + }, + "sid": { + "type": "string" + }, + "toNumber": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "body", + "createdAt", + "fromNumber", + "id", + "phoneNumber", + "sid", + "toNumber", + "updatedAt", + "userId" + ], + "type": "object" + }, + "SentSmsProjection": { + "description": "Sent SMS projection", + "properties": { + "body": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "fromNumber": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "phoneNumber": { + "format": "uuid", + "type": "string" + }, + "replyToId": { + "type": "string" + }, + "toNumber": { + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "body", + "createdAt", + "fromNumber", + "id", + "phoneNumber", + "toNumber", + "userId" + ], + "type": "object" + }, + "ServerEndpoints": { + "properties": { + "host": { + "type": "string" + }, + "altPorts": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "tls": { + "type": "boolean" + } + }, + "required": [ + "altPorts", + "host", + "port", + "tls" + ], + "type": "object" + }, + "SetInboxFavouritedOptions": { + "description": "Options for setting inbox favourite state", + "properties": { + "state": { + "description": "Is the inbox a favorite. Marking an inbox as a favorite is typically done in the dashboard for quick access or filtering", + "type": "boolean" + } + }, + "required": [ + "state" + ], + "type": "object" + }, + "SetPhoneFavouritedOptions": { + "description": "Options for setting phone favourite state", + "properties": { + "state": { + "description": "Phone favourite state", + "type": "boolean" + } + }, + "required": [ + "state" + ], + "type": "object" + }, + "SimpleSendEmailOptions": { + "description": "Simplified send email options", + "properties": { + "body": { + "description": "Body of the email message. Supports HTML", + "type": "string", + "x-nullable": true + }, + "senderId": { + "description": "ID of inbox to send from. If null an inbox will be created for sending", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "subject": { + "description": "Subject line of the email", + "type": "string", + "x-nullable": true + }, + "to": { + "description": "Email address to send to", + "type": "string" + } + }, + "required": [ + "to" + ], + "type": "object" + }, + "SmsDto": { + "properties": { + "body": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "favourite": { + "type": "boolean" + }, + "fromNumber": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "phoneNumber": { + "format": "uuid", + "type": "string" + }, + "read": { + "type": "boolean" + }, + "toNumber": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "body", + "createdAt", + "favourite", + "fromNumber", + "id", + "phoneNumber", + "read", + "updatedAt", + "userId" + ], + "type": "object" + }, + "SmsMatchOption": { + "description": "Options for matching SMS messages in a phone number. Each match option object contains a `field`, `should` and `value` property. Together they form logical conditions such as `BODY` should `CONTAIN` value.", + "properties": { + "field": { + "description": "Fields of an SMS object that can be used to filter results", + "enum": [ + "BODY", + "FROM" + ], + "title": "SmsMatchField", + "type": "string" + }, + "should": { + "description": "How the value of the email field specified should be compared to the value given in the match options.", + "enum": [ + "MATCH", + "CONTAIN", + "EQUAL" + ], + "title": "MatchShould", + "type": "string" + }, + "value": { + "description": "The value you wish to compare with the value of the field specified using the `should` value passed. For example `BODY` should `CONTAIN` a value passed.", + "minLength": 1, + "type": "string" + } + }, + "required": [ + "field", + "should", + "value" + ], + "type": "object", + "x-nullable": true + }, + "SmsPreview": { + "properties": { + "body": { + "description": "TXT message content", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "fromNumber": { + "description": "Sender number", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "phoneNumber": { + "description": "ID of the phone number that received this SMS", + "format": "uuid", + "type": "string" + }, + "read": { + "description": "Is the message read or unread", + "type": "boolean" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "body", + "createdAt", + "fromNumber", + "id", + "phoneNumber", + "read", + "userId" + ], + "type": "object" + }, + "SmsProjection": { + "description": "SMS projection", + "properties": { + "body": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "fromNumber": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "phoneNumber": { + "format": "uuid", + "type": "string" + }, + "read": { + "type": "boolean" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "body", + "createdAt", + "fromNumber", + "id", + "phoneNumber", + "read", + "userId" + ], + "type": "object" + }, + "SmsReplyOptions": { + "properties": { + "body": { + "type": "string" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "SmsSendOptions": { + "properties": { + "body": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "required": [ + "body", + "to" + ], + "type": "object" + }, + "SmtpAccessDetails": { + "description": "Access details for inbox using SMTP", + "properties": { + "mailFromDomain": { + "description": "Mail from domain or SMTP HELO value", + "type": "string", + "x-nullable": true + }, + "secureSmtpPassword": { + "description": "Secure TLS SMTP password for login", + "type": "string" + }, + "secureSmtpServerHost": { + "description": "Secure TLS SMTP server host domain", + "type": "string" + }, + "secureSmtpServerPort": { + "description": "Secure TLS SMTP server host port", + "format": "int32", + "type": "integer" + }, + "secureSmtpUsername": { + "description": "Secure TLS SMTP username for login", + "type": "string" + }, + "smtpPassword": { + "description": "SMTP password for login", + "type": "string" + }, + "smtpServerHost": { + "description": "SMTP server host domain", + "type": "string" + }, + "smtpServerPort": { + "description": "SMTP server host port", + "format": "int32", + "type": "integer" + }, + "smtpUsername": { + "description": "SMTP username for login", + "type": "string" + } + }, + "required": [ + "secureSmtpPassword", + "secureSmtpServerHost", + "secureSmtpServerPort", + "secureSmtpUsername", + "smtpPassword", + "smtpServerHost", + "smtpServerPort", + "smtpUsername" + ], + "type": "object" + }, + "SortObject": { + "properties": { + "empty": { + "type": "boolean" + }, + "sorted": { + "type": "boolean" + }, + "unsorted": { + "type": "boolean" + } + }, + "type": "object" + }, + "SpellingIssue": { + "properties": { + "group": { + "type": "string" + }, + "message": { + "type": "string" + }, + "severity": { + "enum": [ + "Warning", + "Error" + ], + "type": "string" + }, + "suggestion": { + "type": "string" + } + }, + "required": [ + "group", + "message", + "severity", + "suggestion" + ], + "type": "object" + }, + "StructuredContentResultDto": { + "properties": { + "result": { + "type": "object" + } + }, + "required": [ + "result" + ], + "type": "object" + }, + "StructuredOutputSchema": { + "description": "JSON output schema for structured content repsonses. This schema dictates the format that an AI should use when responding to your instructions.", + "properties": { + "anyOf": { + "items": { + "$ref": "#/definitions/StructuredOutputSchema" + }, + "type": "array", + "x-nullable": true + }, + "default": { + "$ref": "#/definitions/JsonNode" + }, + "description": { + "description": "Provide a description of the schema to help the AI understand the schema.", + "type": "string", + "x-nullable": true + }, + "enumValues": { + "description": "When using type string and format enum pass a collection of enum values here.", + "items": { + "description": "When using type string and format enum pass a collection of enum values here.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "example": { + "$ref": "#/definitions/JsonNode" + }, + "format": { + "description": "Format for string types. Can be null, date-time or enum.", + "type": "string", + "x-nullable": true + }, + "items": { + "$ref": "#/definitions/StructuredOutputSchema" + }, + "maxItems": { + "format": "int64", + "minimum": 0, + "type": "integer", + "x-nullable": true + }, + "maxLength": { + "format": "int64", + "minimum": 0, + "type": "integer", + "x-nullable": true + }, + "maxProperties": { + "format": "int64", + "minimum": 0, + "type": "integer", + "x-nullable": true + }, + "maximum": { + "type": "number", + "x-nullable": true + }, + "minItems": { + "format": "int64", + "minimum": 0, + "type": "integer", + "x-nullable": true + }, + "minLength": { + "format": "int64", + "minimum": 0, + "type": "integer", + "x-nullable": true + }, + "minProperties": { + "format": "int64", + "minimum": 0, + "type": "integer", + "x-nullable": true + }, + "minimum": { + "type": "number", + "x-nullable": true + }, + "nullable": { + "type": "boolean", + "x-nullable": true + }, + "pattern": { + "description": "Regex pattern for STRING type", + "type": "string", + "x-nullable": true + }, + "properties": { + "additionalProperties": { + "$ref": "#/definitions/StructuredOutputSchema" + }, + "description": "Properties of an OBJECT schema. These are key value pairs where the key is the property name and the value is the schema for that property.", + "type": "object", + "x-nullable": true + }, + "propertyOrdering": { + "description": "Pass an array of property names to specify the order of properties in the generated JSON object if required.", + "items": { + "description": "Pass an array of property names to specify the order of properties in the generated JSON object if required.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "required": { + "description": "Is field required", + "items": { + "description": "Is field required", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "title": { + "type": "string", + "x-nullable": true + }, + "type": { + "description": "Primitive JSON schema types with a fallback CUSTOM for unknown values.", + "enum": [ + "string", + "number", + "integer", + "boolean", + "object", + "array", + "null" + ], + "type": "string", + "x-nullable": true + } + }, + "type": "object", + "x-nullable": true + }, + "StructuredOutputSchemaValidation": { + "properties": { + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "exampleOutput": { + "type": "string" + }, + "valid": { + "type": "boolean" + } + }, + "required": [ + "valid" + ], + "type": "object" + }, + "TemplateDto": { + "description": "Email template", + "properties": { + "content": { + "description": "Content of the template", + "type": "string" + }, + "createdAt": { + "description": "Created at time", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "ID of template", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Template name", + "type": "string" + }, + "variables": { + "description": "Variables available in template that can be replaced with values", + "items": { + "$ref": "#/definitions/TemplateVariable" + }, + "type": "array" + } + }, + "required": [ + "content", + "createdAt", + "id", + "name", + "variables" + ], + "type": "object" + }, + "TemplatePreview": { + "properties": { + "preview": { + "type": "string" + } + }, + "required": [ + "preview" + ], + "type": "object" + }, + "TemplateProjection": { + "description": "Email template data", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "variables": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "createdAt", + "id", + "name", + "updatedAt", + "variables" + ], + "type": "object" + }, + "TemplateVariable": { + "description": "Variable for use with email template", + "properties": { + "name": { + "description": "Name of variable. This can be used in a template as {{name}}", + "type": "string" + }, + "variableType": { + "description": "The type of variable", + "enum": [ + "STRING" + ], + "type": "string" + } + }, + "required": [ + "name", + "variableType" + ], + "type": "object" + }, + "TestInboxRulesetSendingOptions": { + "description": "Test options for ruleset sending test", + "properties": { + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "phoneId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "recipient": { + "type": "string" + } + }, + "required": [ + "recipient" + ], + "type": "object" + }, + "TestNewInboxForwarderOptions": { + "description": "Options for testing new inbox forwarder rules", + "properties": { + "createInboxForwarderOptions": { + "$ref": "#/definitions/CreateInboxForwarderOptions" + }, + "inboxForwarderTestOptions": { + "$ref": "#/definitions/InboxForwarderTestOptions" + } + }, + "required": [ + "createInboxForwarderOptions", + "inboxForwarderTestOptions" + ], + "type": "object" + }, + "TestNewInboxRulesetOptions": { + "description": "Test inbox ruleset options", + "properties": { + "createRulesetOptions": { + "$ref": "#/definitions/CreateRulesetOptions" + }, + "inboxRulesetTestOptions": { + "$ref": "#/definitions/RulesetTestOptions" + } + }, + "required": [ + "createRulesetOptions", + "inboxRulesetTestOptions" + ], + "type": "object" + }, + "TestPhoneNumberOptions": { + "properties": { + "message": { + "type": "string" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "TestRulesetReceivingOptions": { + "description": "Test options for inbox ruleset receiving test or phone number receiving test", + "properties": { + "fromSender": { + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "phoneId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "fromSender" + ], + "type": "object" + }, + "TestRulesetReceivingResult": { + "properties": { + "canReceive": { + "type": "boolean" + } + }, + "required": [ + "canReceive" + ], + "type": "object" + }, + "TestRulesetSendingResult": { + "properties": { + "canSend": { + "type": "boolean" + } + }, + "required": [ + "canSend" + ], + "type": "object" + }, + "TotpDeviceCodeDto": { + "properties": { + "code": { + "type": "string" + }, + "expiresAt": { + "format": "date-time", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "code" + ], + "type": "object" + }, + "TotpDeviceDto": { + "properties": { + "algorithm": { + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "digits": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "id": { + "format": "uuid", + "type": "string" + }, + "issuer": { + "type": "string", + "x-nullable": true + }, + "name": { + "type": "string", + "x-nullable": true + }, + "period": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "username": { + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "id", + "updatedAt" + ], + "type": "object" + }, + "TotpDeviceOptionalDto": { + "properties": { + "device": { + "$ref": "#/definitions/TotpDeviceDto" + } + }, + "type": "object" + }, + "TrackingPixelDto": { + "description": "Tracking pixel", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "html": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "recipient": { + "type": "string", + "x-nullable": true + }, + "seen": { + "type": "boolean" + }, + "seenAt": { + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "sentEmailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "url": { + "type": "string" + } + }, + "required": [ + "createdAt", + "html", + "id", + "seen", + "url" + ], + "type": "object" + }, + "TrackingPixelProjection": { + "description": "Tracking pixel data", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "seen": { + "type": "boolean" + }, + "seenAt": { + "format": "date-time", + "type": "string" + }, + "sentEmailId": { + "format": "uuid", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "seen", + "userId" + ], + "type": "object" + }, + "UnknownMissedEmailProjection": { + "description": "Unknown missed email projection", + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "from": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "subject": { + "type": "string" + }, + "to": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "createdAt", + "id" + ], + "type": "object" + }, + "UnreadCount": { + "description": "Number of unread entities", + "properties": { + "count": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "count" + ], + "type": "object" + }, + "UnseenErrorCountDto": { + "description": "Number of unseen errors", + "properties": { + "count": { + "format": "int64", + "type": "integer" + } + }, + "required": [ + "count" + ], + "type": "object" + }, + "UpdateAliasOptions": { + "description": "Update an email alias", + "properties": { + "name": { + "description": "Optional name for alias", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "UpdateDomainOptions": { + "description": "Options for creating a domain to use with MailSlurp. You must have ownership access to this domain in order to verify it. Domains will not functionally currently until the domain has been verified. See https://www.mailslurp.com/guides/custom-domains for help.", + "properties": { + "catchAllInboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "UpdateGroupContacts": { + "description": "Update group contacts options. Pass a list of contact ids to replace existing group contacts.", + "properties": { + "contactIds": { + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "contactIds" + ], + "type": "object" + }, + "UpdateImapAccessOptions": { + "description": "Edit access details for inbox using IMAP", + "properties": { + "imapPassword": { + "description": "IMAP password for login", + "type": "string", + "x-nullable": true + }, + "imapUsername": { + "description": "IMAP username for login", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "UpdateInboxOptions": { + "description": "Options for updating inbox properties", + "properties": { + "tags": { + "description": "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.", + "items": { + "description": "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.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "description": { + "description": "Description of an inbox for labelling and searching purposes", + "type": "string", + "x-nullable": true + }, + "expiresAt": { + "description": "Inbox expiration time. When, if ever, the inbox should expire and be deleted. If null then this inbox is permanent and the emails in it won't be deleted. This is the default behavior unless expiration date is set. If an expiration date is set and the time is reached MailSlurp will expire the inbox and move it to an expired inbox entity. You can still access the emails belonging to it but it can no longer send or receive email.", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "favourite": { + "description": "Is the inbox a favorite inbox. Make an inbox a favorite is typically done in the dashboard for quick access or filtering", + "type": "boolean", + "x-nullable": true + }, + "name": { + "description": "Name of the inbox and used as the sender name when sending emails .Displayed in the dashboard for easier search", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "UpdateInboxReplierOptions": { + "description": "Options for updating an inbox replier", + "properties": { + "body": { + "description": "Email body for reply", + "type": "string", + "x-nullable": true + }, + "charset": { + "description": "Email reply charset", + "type": "string", + "x-nullable": true + }, + "field": { + "description": "Field to match against to trigger inbox replier for inbound email", + "enum": [ + "RECIPIENTS", + "SENDER", + "SUBJECT", + "ATTACHMENTS" + ], + "type": "string" + }, + "from": { + "description": "Send email from address", + "type": "string", + "x-nullable": true + }, + "ignoreReplyTo": { + "description": "Ignore sender replyTo when responding. Send directly to the sender if enabled.", + "type": "boolean", + "x-nullable": true + }, + "inboxId": { + "description": "Inbox ID to attach replier to", + "format": "uuid", + "type": "string" + }, + "isHTML": { + "description": "Send HTML email", + "type": "boolean", + "x-nullable": true + }, + "match": { + "description": "String or wildcard style match for field specified when evaluating reply rules", + "minLength": 1, + "type": "string" + }, + "name": { + "description": "Name for replier", + "type": "string", + "x-nullable": true + }, + "replyTo": { + "description": "Reply-to email address when sending replying", + "type": "string", + "x-nullable": true + }, + "subject": { + "description": "Subject override when replying to email", + "type": "string", + "x-nullable": true + }, + "templateId": { + "description": "ID of template to use when sending a reply", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "templateVariables": { + "additionalProperties": { + "description": "Template variable values", + "nullable": true, + "type": "object" + }, + "description": "Template variable values", + "type": "object", + "x-nullable": true + } + }, + "required": [ + "field", + "inboxId", + "match" + ], + "type": "object" + }, + "UpdatePhoneNumberOptions": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "UpdateSmtpAccessOptions": { + "description": "Edit access details for inbox using SMTP", + "properties": { + "smtpPassword": { + "description": "SMTP password for login", + "type": "string", + "x-nullable": true + }, + "smtpUsername": { + "description": "SMTP username for login", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "UploadAttachmentOptions": { + "description": "Options for uploading files for attachments. When sending emails with the API that require attachments first upload each attachment. Then use the returned attachment ID in your `SendEmailOptions` when sending an email. This way you can use attachments multiple times once they have been uploaded.", + "properties": { + "base64Contents": { + "description": "Base64 encoded string of file contents. Typically this means reading the bytes or string content of a file and then converting that to a base64 encoded string. For examples of how to do this see https://www.mailslurp.com/guides/base64-file-uploads/", + "minLength": 1, + "title": "Base 64 file contents", + "type": "string" + }, + "contentId": { + "description": "Optional contentId for file.", + "title": "Content ID", + "type": "string", + "x-nullable": true + }, + "contentType": { + "description": "Optional contentType for file. For instance `application/pdf`", + "title": "Content type", + "type": "string", + "x-nullable": true + }, + "filename": { + "description": "Optional filename to save upload with. Will be the name that is shown in email clients", + "title": "File name", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "base64Contents" + ], + "type": "object" + }, + "UserInfoDto": { + "properties": { + "accountState": { + "enum": [ + "FROZEN", + "ACTIVE" + ], + "type": "string" + }, + "accountType": { + "enum": [ + "SOLO", + "CHILD_SOLO", + "CHILD_TEAM", + "CHILD_ADMIN" + ], + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "subscriptionType": { + "enum": [ + "PRO_MONTHLY", + "STARTER", + "PRO", + "TEAM", + "ENTERPRISE" + ], + "type": "string" + } + }, + "required": [ + "accountState", + "accountType", + "createdAt", + "emailAddress", + "id" + ], + "type": "object" + }, + "ValidateEmailAddressListOptions": { + "description": "Options for validating a list of email addresses", + "properties": { + "emailAddressList": { + "items": { + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "ignoreOldResults": { + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "emailAddressList" + ], + "type": "object" + }, + "ValidateEmailAddressListResult": { + "description": "Result of validating a list of email addresses", + "properties": { + "invalidEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "resultMapEmailAddressIsValid": { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + }, + "validEmailAddresses": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "invalidEmailAddresses", + "resultMapEmailAddressIsValid", + "validEmailAddresses" + ], + "type": "object" + }, + "ValidatePhoneNumberOptions": { + "properties": { + "phoneNumber": { + "type": "string" + } + }, + "required": [ + "phoneNumber" + ], + "type": "object" + }, + "ValidationDto": { + "description": "Response object for email validation operation", + "properties": { + "emailId": { + "description": "ID of the email validated", + "format": "uuid", + "type": "string" + }, + "html": { + "$ref": "#/definitions/HTMLValidationResult" + } + }, + "required": [ + "emailId", + "html" + ], + "type": "object" + }, + "ValidationMessage": { + "description": "Optional warnings resulting from HTML validation", + "properties": { + "lineNumber": { + "format": "int32", + "type": "integer" + }, + "message": { + "type": "string" + } + }, + "required": [ + "lineNumber" + ], + "type": "object" + }, + "VerifyEmailAddressOptions": { + "description": "Options for verifying that an email address exists at a remote mail server.", + "properties": { + "emailAddress": { + "type": "string" + }, + "mailServerDomain": { + "type": "string", + "x-nullable": true + }, + "port": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "senderEmailAddress": { + "type": "string", + "x-nullable": true + } + }, + "required": [ + "emailAddress" + ], + "type": "object" + }, + "VerifyWebhookSignatureOptions": { + "properties": { + "messageId": { + "type": "string" + }, + "signature": { + "type": "string" + } + }, + "required": [ + "messageId", + "signature" + ], + "type": "object" + }, + "VerifyWebhookSignatureResults": { + "properties": { + "isValid": { + "type": "boolean" + } + }, + "required": [ + "isValid" + ], + "type": "object" + }, + "WaitForConditions": { + "description": "Conditions to apply to emails that you are waiting for", + "properties": { + "before": { + "description": "ISO Date Time latest time of email to consider. Filter for matching emails that were received before this date", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "count": { + "description": "Number of results that should match conditions. Either exactly or at least this amount based on the `countType`. If count condition is not met and the timeout has not been reached the `waitFor` method will retry the operation.", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "countType": { + "description": "How result size should be compared with the expected size. Exactly or at-least matching result?", + "enum": [ + "EXACTLY", + "ATLEAST" + ], + "title": "CountType", + "type": "string", + "x-nullable": true + }, + "delayTimeout": { + "description": "Max time in milliseconds to wait between retries if a `timeout` is specified.", + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "inboxId": { + "description": "ID of inbox to search within and apply conditions to. Essentially filtering the emails found to give a count.", + "format": "uuid", + "type": "string" + }, + "matches": { + "description": "Conditions that should be matched for an email to qualify for results. Each condition will be applied in order to each email within an inbox to filter a result list of matching emails you are waiting for.", + "items": { + "$ref": "#/definitions/MatchOption" + }, + "type": "array", + "x-nullable": true + }, + "since": { + "description": "ISO Date Time earliest time of email to consider. Filter for matching emails that were received after this date", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "sortDirection": { + "description": "Direction to sort matching emails by created time", + "enum": [ + "ASC", + "DESC" + ], + "type": "string", + "x-nullable": true + }, + "timeout": { + "description": "Max time in milliseconds to retry the `waitFor` operation until conditions are met.", + "format": "int64", + "type": "integer" + }, + "unreadOnly": { + "description": "Apply conditions only to **unread** emails. All emails begin with `read=false`. An email is marked `read=true` when an `EmailDto` representation of it has been returned to the user at least once. For example you have called `getEmail` or `waitForLatestEmail` etc., or you have viewed the email in the dashboard.", + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "inboxId", + "timeout" + ], + "type": "object" + }, + "WaitForSingleSmsOptions": { + "properties": { + "before": { + "format": "date-time", + "type": "string" + }, + "delay": { + "format": "int64", + "type": "integer" + }, + "phoneNumberId": { + "format": "uuid", + "type": "string" + }, + "since": { + "format": "date-time", + "type": "string" + }, + "sortDirection": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + }, + "timeout": { + "format": "int64", + "type": "integer" + }, + "unreadOnly": { + "type": "boolean" + } + }, + "required": [ + "phoneNumberId", + "timeout" + ], + "type": "object" + }, + "WaitForSmsConditions": { + "description": "Conditions to apply to emails that you are waiting for", + "properties": { + "before": { + "description": "ISO Date Time latest time of SMS to consider. Filter for matching SMSs that were received before this date", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "count": { + "description": "Number of results that should match conditions. Either exactly or at least this amount based on the `countType`. If count condition is not met and the timeout has not been reached the `waitFor` method will retry the operation.", + "format": "int64", + "type": "integer" + }, + "countType": { + "description": "How result size should be compared with the expected size. Exactly or at-least matching result?", + "enum": [ + "EXACTLY", + "ATLEAST" + ], + "title": "CountType", + "type": "string", + "x-nullable": true + }, + "delayTimeout": { + "description": "Max time in milliseconds to wait between retries if a `timeout` is specified.", + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "limit": { + "description": "Limit results", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "matches": { + "description": "Conditions that should be matched for an SMS to qualify for results. Each condition will be applied in order to each SMS within a phone number to filter a result list of matching SMSs you are waiting for.", + "items": { + "$ref": "#/definitions/SmsMatchOption" + }, + "type": "array", + "x-nullable": true + }, + "phoneNumberId": { + "description": "ID of phone number to search within and apply conditions to. Essentially filtering the SMS found to give a count.", + "format": "uuid", + "type": "string" + }, + "since": { + "description": "ISO Date Time earliest time of SMS to consider. Filter for matching SMSs that were received after this date", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "sortDirection": { + "description": "Direction to sort matching SMSs by created time", + "enum": [ + "ASC", + "DESC" + ], + "type": "string", + "x-nullable": true + }, + "timeout": { + "description": "Max time in milliseconds to retry the `waitFor` operation until conditions are met.", + "format": "int64", + "type": "integer" + }, + "unreadOnly": { + "description": "Apply conditions only to **unread** SMS. All SMS messages begin with `read=false`. An SMS is marked `read=true` when an `SMS` has been returned to the user at least once. For example you have called `getSms`, or you have viewed the SMS in the dashboard.", + "type": "boolean", + "x-nullable": true + } + }, + "required": [ + "count", + "phoneNumberId", + "timeout" + ], + "type": "object" + }, + "WebhookBouncePayload": { + "description": "BOUNCE webhook payload. Sent to your webhook url endpoint via HTTP POST when an email bounced or was rejected by a recipient. Save the recipients to a ban list on your server and avoid emailing them again. It is recommended you also listen to the BOUNCE_RECIPIENT payload.", + "properties": { + "bounceId": { + "description": "ID of the bounce email record. Use the ID with the bounce controller to view more information", + "format": "uuid", + "type": "string" + }, + "bounceRecipients": { + "description": "Email addresses that resulted in a bounce or email being rejected. Please save these recipients and avoid emailing them in the future to maintain your reputation.", + "items": { + "description": "Email addresses that resulted in a bounce or email being rejected. Please save these recipients and avoid emailing them in the future to maintain your reputation.", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "sender": { + "description": "Sender causing bounce", + "type": "string" + }, + "sentToRecipients": { + "description": "Email sent to recipients", + "items": { + "description": "Email sent to recipients", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "bounceId", + "eventName", + "messageId", + "sender", + "webhookId" + ], + "type": "object" + }, + "WebhookBounceRecipientPayload": { + "description": "BOUNCE_RECIPIENT webhook payload. Sent to your webhook url endpoint via HTTP POST when an email caused a bounce to occur for a recipient. Save the recipient to a ban list of your server and avoid email them again.", + "properties": { + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "recipient": { + "description": "Email address that caused a bounce. Make note of the address and try not to message it again to preserve your reputation.", + "type": "string" + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "eventName", + "messageId", + "recipient", + "webhookId" + ], + "type": "object" + }, + "WebhookDeliveryStatusPayload": { + "description": "DELIVERY_STATUS webhook payload. Sent to your webhook url endpoint via HTTP POST when an email delivery status is created. This could be a successful delivery or a delivery failure.", + "properties": { + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "id": { + "description": "ID of delivery status", + "format": "uuid", + "type": "string" + }, + "inboxId": { + "description": "Id of the inbox", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "processingTimeMillis": { + "description": "Time in milliseconds for delivery processing", + "format": "int64", + "type": "integer", + "x-nullable": true + }, + "received": { + "description": "Time event was received", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "recipients": { + "description": "Recipients for delivery", + "items": { + "description": "Recipients for delivery", + "type": "string", + "x-nullable": true + }, + "type": "array", + "x-nullable": true + }, + "remoteMtaIp": { + "description": "IP address of the remote Mail Transfer Agent", + "type": "string", + "x-nullable": true + }, + "reportingMta": { + "description": "Mail Transfer Agent reporting delivery status", + "type": "string", + "x-nullable": true + }, + "sentId": { + "description": "ID of sent email", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "smtpResponse": { + "description": "SMTP server response message", + "type": "string", + "x-nullable": true + }, + "smtpStatusCode": { + "description": "SMTP server status", + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "subject": { + "description": "Email subject", + "type": "string", + "x-nullable": true + }, + "userId": { + "description": "User ID of event", + "format": "uuid", + "type": "string" + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "eventName", + "id", + "messageId", + "userId", + "webhookId" + ], + "type": "object" + }, + "WebhookDto": { + "description": "Representation of a webhook for an inbox. The URL specified will be using by MailSlurp whenever an email is received by the attached inbox. A webhook entity should have a URL that points to your server. Your server should accept HTTP/S POST requests and return a success 200. MailSlurp will retry your webhooks if they fail. See https://api.mailslurp.com/schemas/webhook-payload for the payload schema.", + "properties": { + "aiTransformId": { + "description": "ID of AI transformer for payload", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "basicAuth": { + "description": "Does webhook expect basic authentication? If true it means you created this webhook with a username and password. MailSlurp will use these in the URL to authenticate itself.", + "type": "boolean" + }, + "createdAt": { + "description": "When the webhook was created", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "eventName": { + "description": "Webhook trigger event name", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string", + "x-nullable": true + }, + "healthStatus": { + "description": "Webhook health", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "type": "string", + "x-nullable": true + }, + "id": { + "description": "ID of the Webhook", + "format": "uuid", + "type": "string" + }, + "ignoreInsecureSslCertificates": { + "description": "Should notifier ignore insecure SSL certificates", + "type": "boolean", + "x-nullable": true + }, + "inboxId": { + "description": "The inbox that the Webhook will be triggered by. If null then webhook triggered at account level or phone level if phoneId set", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "method": { + "description": "HTTP method that your server endpoint must listen for", + "enum": [ + "POST", + "DELETE", + "GET", + "PUT", + "PATCH", + "HEAD", + "OPTIONS", + "TRACE" + ], + "type": "string" + }, + "name": { + "description": "Name of the webhook", + "type": "string", + "x-nullable": true + }, + "payloadJsonSchema": { + "description": "Deprecated. Fetch JSON Schema for webhook using the getJsonSchemaForWebhookPayload method", + "type": "string" + }, + "phoneId": { + "description": "The phoneNumberId that the Webhook will be triggered by. If null then webhook triggered at account level or inbox level if inboxId set", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "requestBodyTemplate": { + "description": "Request body template for HTTP request that will be sent for the webhook. Use Moustache style template variables to insert values from the original event payload.", + "type": "string", + "x-nullable": true + }, + "requestHeaders": { + "$ref": "#/definitions/WebhookHeaders" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "url": { + "description": "URL of your server that the webhook will be sent to. The schema of the JSON that is sent is described by the payloadJsonSchema.", + "type": "string" + }, + "useStaticIpRange": { + "description": "Should notifier use static IP range when sending webhook payload", + "type": "boolean", + "x-nullable": true + }, + "userId": { + "description": "User ID of the Webhook", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "basicAuth", + "createdAt", + "id", + "method", + "payloadJsonSchema", + "updatedAt", + "url", + "userId" + ], + "type": "object" + }, + "WebhookEmailOpenedPayload": { + "description": "EMAIL_OPENED webhook payload. Sent to your webhook url endpoint via HTTP POST when an email containing a tracking pixel is opened and the pixel image is loaded by a reader.", + "properties": { + "createdAt": { + "description": "Date time of event creation", + "format": "date-time", + "type": "string" + }, + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "inboxId": { + "description": "Id of the inbox", + "format": "uuid", + "type": "string" + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "pixelId": { + "description": "ID of the tracking pixel", + "format": "uuid", + "type": "string" + }, + "recipient": { + "description": "Email address for the recipient of the tracking pixel", + "type": "string" + }, + "sentEmailId": { + "description": "ID of sent email", + "format": "uuid", + "type": "string" + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "eventName", + "inboxId", + "messageId", + "pixelId", + "recipient", + "sentEmailId", + "webhookId" + ], + "type": "object" + }, + "WebhookEmailReadPayload": { + "description": "EMAIL_READ webhook payload. Sent to your webhook url endpoint via HTTP POST when an email is read. This happens when an email is requested in full from the API or a user views the email in the dashboard.", + "properties": { + "createdAt": { + "description": "Date time of event creation", + "format": "date-time", + "type": "string" + }, + "emailId": { + "description": "ID of the email that was received. Use this ID for fetching the email with the `EmailController`.", + "format": "uuid", + "type": "string" + }, + "emailIsRead": { + "description": "Is the email read", + "type": "boolean" + }, + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "inboxId": { + "description": "Id of the inbox", + "format": "uuid", + "type": "string" + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "createdAt", + "emailId", + "emailIsRead", + "eventName", + "inboxId", + "messageId", + "webhookId" + ], + "type": "object" + }, + "WebhookEndpointProjection": { + "properties": { + "health": { + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "health", + "url" + ], + "type": "object" + }, + "WebhookHeaderNameValue": { + "description": "Name value pair for webhook header", + "properties": { + "name": { + "description": "Name of header", + "type": "string" + }, + "value": { + "description": "Value of header", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "WebhookHeaders": { + "description": "Webhook HTTP headers to include with each request from MailSlurp to your server", + "properties": { + "headers": { + "description": "List of header name value pairs to include with webhook requests", + "items": { + "$ref": "#/definitions/WebhookHeaderNameValue" + }, + "type": "array" + } + }, + "required": [ + "headers" + ], + "type": "object" + }, + "WebhookNewAITransformResultPayload": { + "description": "NEW_AI_TRANSFORM_RESULT webhook payload. Sent to your webhook url endpoint via HTTP POST when a structured data result is generated by the AI Transformer that your webhook is attached to. Use the AI Transform Result ID to fetch the full details.", + "properties": { + "aiTransformId": { + "description": "ID of AI Transform", + "format": "uuid", + "type": "string" + }, + "aiTransformMappingId": { + "description": "ID of AI Transform mapping", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "aiTransformResultId": { + "description": "AI Transform ID of event", + "format": "uuid", + "type": "string" + }, + "entityId": { + "description": "ID of entity that triggered the transformation", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "entityType": { + "description": "Entity type that triggered the transformation", + "enum": [ + "INBOX", + "PHONE" + ], + "type": "string", + "x-nullable": true + }, + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "result": { + "description": "JSON string result of the AI transformation", + "type": "string", + "x-nullable": true + }, + "userId": { + "description": "User ID of event", + "format": "uuid", + "type": "string" + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "aiTransformId", + "aiTransformResultId", + "eventName", + "messageId", + "userId", + "webhookId" + ], + "type": "object" + }, + "WebhookNewAttachmentPayload": { + "description": "NEW_ATTACHMENT webhook payload. Sent to your webhook url endpoint via HTTP POST when an email is received by the inbox that your webhook is attached to that contains an attachment. You can use the attachmentId to download the attachment.", + "properties": { + "attachmentId": { + "description": "ID of attachment. Use the `AttachmentController` to", + "type": "string" + }, + "contentLength": { + "description": "Size of attachment in bytes", + "format": "int64", + "type": "integer" + }, + "contentType": { + "description": "Content type of attachment such as 'image/png' or 'application/pdf", + "type": "string" + }, + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "name": { + "description": "Filename of the attachment if present", + "type": "string" + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "attachmentId", + "contentLength", + "contentType", + "eventName", + "messageId", + "name", + "webhookId" + ], + "type": "object" + }, + "WebhookNewContactPayload": { + "description": "NEW_CONTACT webhook payload. Sent to your webhook url endpoint via HTTP POST when an email is received by the inbox that your webhook is attached to that contains a recipient that has not been saved as a contact.", + "properties": { + "tags": { + "description": "Tags for contact", + "items": { + "description": "Tags for contact", + "type": "string" + }, + "type": "array" + }, + "company": { + "description": "Contact company name", + "type": "string", + "x-nullable": true + }, + "contactId": { + "description": "Contact ID", + "format": "uuid", + "type": "string" + }, + "createdAt": { + "description": "Date time of event creation", + "format": "date-time", + "type": "string" + }, + "emailAddresses": { + "description": "Email addresses for contact", + "items": { + "description": "Email addresses for contact", + "type": "string" + }, + "type": "array" + }, + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "firstName": { + "description": "Contact first name", + "type": "string", + "x-nullable": true + }, + "groupId": { + "description": "Contact group ID", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "lastName": { + "description": "Contact last name", + "type": "string", + "x-nullable": true + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "metaData": { + "$ref": "#/definitions/JsonNode" + }, + "optOut": { + "description": "Has contact opted out of emails", + "type": "boolean" + }, + "primaryEmailAddress": { + "description": "Primary email address for contact", + "type": "string", + "x-nullable": true + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "contactId", + "createdAt", + "emailAddresses", + "eventName", + "messageId", + "optOut", + "tags", + "webhookId" + ], + "type": "object" + }, + "WebhookNewEmailPayload": { + "description": "NEW_EMAIL webhook payload. Sent to your webhook url endpoint via HTTP POST when an email is received by the inbox that your webhook is attached to. Use the email ID to fetch the full email body or attachments.", + "properties": { + "attachmentMetaDatas": { + "description": "List of attachment meta data objects if attachments present", + "items": { + "$ref": "#/definitions/AttachmentMetaData" + }, + "type": "array" + }, + "bcc": { + "description": "List of `BCC` recipients email addresses that the email was addressed to. See recipients object for names.", + "items": { + "description": "List of `BCC` recipients email addresses that the email was addressed to. See recipients object for names.", + "type": "string" + }, + "type": "array" + }, + "cc": { + "description": "List of `CC` recipients email addresses that the email was addressed to. See recipients object for names.", + "items": { + "description": "List of `CC` recipients email addresses that the email was addressed to. See recipients object for names.", + "type": "string" + }, + "type": "array" + }, + "createdAt": { + "description": "Date time of event creation", + "format": "date-time", + "type": "string" + }, + "domainId": { + "description": "Id of the domain that received an email", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "emailId": { + "description": "ID of the email that was received. Use this ID for fetching the email with the `EmailController`.", + "format": "uuid", + "type": "string" + }, + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "from": { + "description": "Who the email was sent from. An email address - see fromName for the sender name.", + "type": "string" + }, + "inboxId": { + "description": "Id of the inbox", + "format": "uuid", + "type": "string" + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "subject": { + "description": "The subject line of the email message as specified by SMTP subject header", + "type": "string", + "x-nullable": true + }, + "to": { + "description": "List of `To` recipient email addresses that the email was addressed to. See recipients object for names.", + "items": { + "description": "List of `To` recipient email addresses that the email was addressed to. See recipients object for names.", + "type": "string" + }, + "type": "array" + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "attachmentMetaDatas", + "bcc", + "cc", + "createdAt", + "emailId", + "eventName", + "from", + "inboxId", + "messageId", + "to", + "webhookId" + ], + "type": "object" + }, + "WebhookNewSmsPayload": { + "description": "NEW_SMS webhook payload. Sent to your webhook url endpoint via HTTP POST when an sms is received by the phone number that your webhook is attached to. Use the SMS ID to fetch the full SMS details.", + "properties": { + "body": { + "description": "SMS message body", + "type": "string" + }, + "eventName": { + "description": "Name of the event type webhook is being triggered for.", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "fromNumber": { + "description": "Sender phone number", + "type": "string" + }, + "messageId": { + "description": "Idempotent message ID. Store this ID locally or in a database to prevent message duplication.", + "type": "string" + }, + "phoneNumber": { + "description": "ID of phone number receiving SMS", + "format": "uuid", + "type": "string" + }, + "read": { + "description": "SMS has been read", + "type": "boolean" + }, + "smsId": { + "description": "ID of SMS message", + "format": "uuid", + "type": "string" + }, + "toNumber": { + "description": "Recipient phone number", + "type": "string" + }, + "userId": { + "description": "User ID of event", + "format": "uuid", + "type": "string" + }, + "webhookId": { + "description": "ID of webhook entity being triggered", + "format": "uuid", + "type": "string" + }, + "webhookName": { + "description": "Name of the webhook being triggered", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "body", + "eventName", + "fromNumber", + "messageId", + "phoneNumber", + "read", + "smsId", + "toNumber", + "userId", + "webhookId" + ], + "type": "object" + }, + "WebhookProjection": { + "description": "Representation of a webhook", + "properties": { + "aiTransformId": { + "format": "uuid", + "type": "string" + }, + "aiTransformerId": { + "format": "uuid", + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "eventName": { + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "healthStatus": { + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "inboxId": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "phoneNumberId": { + "format": "uuid", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "url": { + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "createdAt", + "id", + "updatedAt", + "url", + "userId" + ], + "type": "object" + }, + "WebhookRedriveAllResult": { + "description": "Result of retrying all failed webhook", + "properties": { + "message": { + "type": "string", + "x-nullable": true + }, + "success": { + "type": "boolean" + } + }, + "required": [ + "success" + ], + "type": "object" + }, + "WebhookRedriveResult": { + "description": "Result of retrying webhook", + "properties": { + "message": { + "type": "string", + "x-nullable": true + }, + "success": { + "type": "boolean" + }, + "webhookResultId": { + "format": "uuid", + "type": "string" + } + }, + "required": [ + "success", + "webhookResultId" + ], + "type": "object" + }, + "WebhookResultDto": { + "description": "Result of a webhook notification", + "properties": { + "aiTransformerId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "attachmentId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "emailId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "httpMethod": { + "enum": [ + "POST", + "DELETE", + "GET", + "PUT", + "PATCH", + "HEAD", + "OPTIONS", + "TRACE" + ], + "type": "string" + }, + "id": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "inboxId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "messageId": { + "type": "string" + }, + "phoneId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "redriveId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "responseBodyExtract": { + "type": "string", + "x-nullable": true + }, + "responseStatus": { + "format": "int32", + "type": "integer", + "x-nullable": true + }, + "responseTimeMillis": { + "format": "int64", + "type": "integer" + }, + "resultType": { + "enum": [ + "BAD_RESPONSE", + "EXCEPTION", + "SUCCESS", + "REDRIVEN" + ], + "type": "string", + "x-nullable": true + }, + "seen": { + "type": "boolean" + }, + "smsId": { + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "updatedAt": { + "format": "date-time", + "type": "string" + }, + "userId": { + "format": "uuid", + "type": "string" + }, + "webhookEvent": { + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "type": "string" + }, + "webhookId": { + "format": "uuid", + "type": "string" + }, + "webhookUrl": { + "type": "string" + } + }, + "required": [ + "createdAt", + "httpMethod", + "messageId", + "responseTimeMillis", + "seen", + "updatedAt", + "userId", + "webhookEvent", + "webhookId", + "webhookUrl" + ], + "type": "object" + }, + "WebhookTestRequest": { + "description": "Result of webhook test request", + "properties": { + "headers": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "method": { + "enum": [ + "POST", + "DELETE", + "GET", + "PUT", + "PATCH", + "HEAD", + "OPTIONS", + "TRACE" + ], + "type": "string" + }, + "payload": { + "type": "string", + "x-nullable": true + }, + "url": { + "type": "string" + } + }, + "required": [ + "headers", + "method", + "url" + ], + "type": "object" + }, + "WebhookTestResponse": { + "description": "Response from webhook test request", + "properties": { + "message": { + "type": "string", + "x-nullable": true + }, + "statusCode": { + "format": "int32", + "type": "integer", + "x-nullable": true + } + }, + "type": "object" + }, + "WebhookTestResult": { + "description": "Results of testing a webhook", + "properties": { + "message": { + "type": "string", + "x-nullable": true + }, + "request": { + "$ref": "#/definitions/WebhookTestRequest" + }, + "response": { + "$ref": "#/definitions/WebhookTestResponse" + } + }, + "required": [ + "request", + "response" + ], + "type": "object" + } + }, + "securityDefinitions": { + "API_KEY": { + "description": "Set x-api-key API KEY header in your client to your MailSlurp API Key value.", + "in": "header", + "name": "x-api-key", + "type": "apiKey" + } + }, + "security": [ + { + "API_KEY": [] + } + ], + "tags": [ + { + "description": "\"Endpoints for creating, listing, and deleting email aliases. Aliases must be validated. Email aliases can be used to hide real email addresses behind an alias. If you wish to receive emails with an alias attach an inbox to the alias.\n Whenever the inbox receives an email the email will be forwarded to the alias email address. See related `threads`. Threads can be used with aliases to enable replying to a proxied email. This means that when threads are enabled an email alias will \n create a new email thread for the message and set the replyTo and from headers on the subsequently proxied email to point to the threads unique email address. \n By replying to this address the thread will forward it to the original emails sender or replyTo and use the same subject and bcc and cc contacts as the email you are replying to. For more advanced email operations using aliases use the inboxId for the given alias.\n", + "name": "AliasController" + }, + { + "description": "Endpoints for managing email entities. Send and read email using the email API. You can fetch emails and attachments, reply to emails, and send new emails with this controller. Emails belong to inboxes. \nEach inbox can contain unlimited emails that are either permanent or temporary depending on your setup. Because emails can be quite large when attachments and content are fetched most responses only include a preview of the email and its most important features, like subject, recipients etc and an ID. Many list results are in a paginated form using an index (zero based) and a page size. To receive email decide on either `waitFor` methods (such as `waitForLatestEmail` on the `WaitForController`) to wait for emails to arrive. Use `getEmails` on `EmailController` or `getInboxEmails` on the `InboxController` to list existing emails. To access the body or attachments of an email you need to use the `getEmail` and `getAttachment` endpoints with specific inbox and email IDs. The body is returned on full email entities and contains the parsed body of the email. The email headers (such as recipients, subject etc.) are stored on the email object. You can access the RAW SMTP message via various `raw` methods. Attachments are treated as separate entities that have an ID and belong to the email. To fetch email attachments first fetch the full email then use a `downloadAttachment` method for each `attachmentID`. Attachments are transferred in a number of ways as either `application/octect-stream` byte arrays or as base64 encoded strings with meta data. You may prefer either depending on the environment you are in but the base64 implementations are typically safer. See the `AttachmentController`, `InboxController`, and `WaitForController` for similar methods. \n ", + "name": "EmailController" + }, + { + "description": "Form controller for submitting email-able forms", + "name": "FormController" + }, + { + "description": "Endpoints for managing double opt-in consent for sending promotional material to external email accounts.", + "name": "ConsentController" + }, + { + "description": "Endpoints for creating and managing inbox rulesets. Inbox rulesets are sets of rules that can be automatically applied to inbound and outbound emails for an inbox. Rulesets can have a scope, action, and target. The scope is receiving or sending emails. The action is to block, allow, or forward an email. The target is pattern or email address depending on the action. The handler can be used to handle rules silently or trigger an exception when they occur. See inbox controller for similar methods.\n", + "name": "RulesetController" + }, + { + "description": "Endpoints for viewing sent email receipts. These can be used to verify that an email has been sent or for historical records. Email content and attachments are stored. For legacy reasons the default send endpoint does not return a sent email. Use the `sendEmailAndConfirm` methods to receive a sent email receipt after sending.", + "name": "SentEmailsController" + }, + { + "description": "\"Endpoints for managing guest portals and customer access to shareable email accounts. Use portals to grant your customers access to unique email accounts with a separate login and viewing endpoint.\n", + "name": "GuestPortalController" + }, + { + "description": "Endpoints for creating and managing inbox repliers. Repliers can automatically reply to emails received by inboxes using rules.", + "name": "InboxReplierController" + }, + { + "description": "View and manage expired inbox records. If an inbox has an expiration date when it is created it will expire at that time and an ExpiredInboxRecord will be created for it listing the email address and inbox ID. You can still view emails belonging to the inbox by using the inbox ID but the inbox can no longer send or receive emails once expired.", + "name": "ExpiredController" + }, + { + "description": "Other endpoints including advanced receive options", + "name": "BulkActionsController" + }, + { + "description": "Endpoints for managing inbox connectors that can sync external emails in MailSlurp inboxes", + "name": "ConnectorController" + }, + { + "description": "Endpoints for managing contacts. Contacts can be used for sending emails to individuals and groups.", + "name": "ContactController" + }, + { + "description": "Endpoints for managing groups. Groups can be used for sending emails to individuals and groups.", + "name": "GroupController" + }, + { + "description": "Endpoints for miscellaneous tools.", + "name": "ToolsController" + }, + { + "description": "Endpoints for creating and managing inboxes. Also includes endpoints for listing emails within inboxes. \nInboxes are a core feature of MailSlurp. Each inbox has a unique ID and emailAddress. If your plan allows custom domains you can create inboxes with custom addresses that end in your domain. \nBy default inboxes are assigned a random email address ending in `@mailslurp.biz`. Use the domainPool options to use a randomly selected domain from a pool of available domains. Whenever you create an inbox MailSlurp will register the address and store any emails sent to the address within your inbox. \nYou can use the `InboxController` endpoints to list the emails in an inbox. To get the contents or attachments of an email use the ID returned from `InboxController` methods to call the `EmailController` endpoints.\"\n", + "name": "InboxController" + }, + { + "description": "Multi-factor authentication (MFA) endpoints for MailSlurp. For controlling virtual TOTP devices..", + "name": "MFAController" + }, + { + "externalDocs": { + "description": "Phone number documentation", + "url": "https://docs.mailslurp.com/txt-sms/" + }, + "description": "Endpoints for managing phone numbers and addresses", + "name": "PhoneController" + }, + { + "description": "Endpoints for managing custom domains. Once you create a custom domain you must add the returned verification records to your hosting provider. See support or guides for more information.", + "name": "DomainController" + }, + { + "description": "Endpoints for managing tracking entities such as email open and read tracking pixels.", + "name": "TrackingController" + }, + { + "description": "Endpoints for receiving emails using waitFor methods. The endpoints are perfect for synchronous blocking calls, long-polling, or tests (see webhooks if you need to respond to email events as they happen using HTTP notification). These wait endpoints are all built around a common idea - that you ask for an expected number of emails from an inbox and MailSlurp will either: A) Return the matching emails if they are present; B) Hold a connection open until the matching emails are are received or until a timeout occurs. For test suites we recommend that you create a new inbox for each test run and use the waitForLatestEmail to hold the connection until the email you expect arrives. Note if your inbox is not already empty waitFor methods may return immediately depending on their implementation. See each endpoint for more details.", + "name": "WaitForController" + }, + { + "description": "Endpoints for creating and managing inbox forwarders. Automatically forward emails received by inboxes using rules.", + "name": "InboxForwarderController" + }, + { + "description": "Endpoints for managing MissedEmails. Missed emails are saved whenever your account cannot persist a received email because your plan had exceeded a given usage at the time. Missed emails can be restored with the assistance of the support team.", + "name": "MissedEmailController" + }, + { + "description": "A collection of common actions. Groups together several controllers behind a facade with convenience methods. Not recommended. It is better in most cases to call the individual controllers directly as they are where many new features are added. The controllers are better documented too. This controller is maintained for backwards compatibility.", + "name": "CommonActionsController" + }, + { + "description": "Endpoints for performing IMAP like commands on inboxes", + "name": "ImapController" + }, + { + "description": "Endpoints for exporting user data to CSV, XML and other formats.", + "name": "ExportController" + }, + { + "description": "Endpoints for managing SMS", + "name": "SmsController" + }, + { + "description": "Endpoints for managing Templates. Templates can be used when sending emails and support moustache syntax template variables. Variables can be passed with send email options or implicitly available if Contact Groups are used.", + "name": "TemplateController" + }, + { + "description": "Endpoints for uploading attachments. Attachments can be uploaded in a number of ways: as base64 encoded strings, as byte array octet streams, and as multipart form requests. Each upload method returns an array whose first element is the ID of the attachment. Use this Id to send the attachment with emails. See the EmailController `download` endpoints for downloading attachments. Attachment downloads are based on the email ID they belong to and can be downloaded using the email controller.", + "name": "AttachmentController" + }, + { + "description": "Endpoints for access to bounced emails and bounced recipients", + "name": "BounceController" + }, + { + "description": "Endpoint for interacting with webhooks. Webhooks have a URL that points to your server. Useful for email forwarding, email API processing and more. They can be added to inboxes and when an inbox receives an email the email ID and inbox ID will be posted to the URL endpoint at your server. The schema of the webhook payload is available at https://api.mailslurp.com/schemas/webhook-payload or by calling https://api.mailslurp.com/webhooks/test. Use webhooks to react in real-time to inbound emails. Use the webhook payload posted to your server to fetch the full emails or attachments if you need them. Use the event ID as an idempotent record. The ID identifies the webhook payload uniquely. MailSlurp tracks webhook processing. It will try not to send the same event twice but it can happen. If you receive the same event more than once you can ignore it and assume it is the same. It is recommended that you use a store or database to track webhooks you have processed to avoid processing events more than once.", + "name": "WebhookController" + }, + { + "description": "AI endpoints for generating structured content, automations, and analyzing emails and SMS.", + "name": "AIController" + } + ], + "externalDocs": { + "description": "MailSlurp API documentation", + "url": "https://www.mailslurp.com" + }, + "x-components": {}, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.mailslurp.com/" + }, + { + "propertyName": "Privacy Policy", + "propertyValue": "https://www.mailslurp.com/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "IT Operations;Productivity" + } + ] +} diff --git a/certified-connectors/MailSlurp/apiProperties.json b/certified-connectors/MailSlurp/apiProperties.json new file mode 100644 index 0000000000..8304fbcb39 --- /dev/null +++ b/certified-connectors/MailSlurp/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "MailSlurp API Key", + "description": "Your MailSlurp API key. This can be found at https://app.mailslurp.com", + "tooltip": "Provide your MailSlurp API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#059669", + "capabilities": [], + "publisher": "MailSlurp", + "stackOwner": "MailSlurp" + } +} From 7b8dea56ed294bf574a50d501679fa428e2b17a2 Mon Sep 17 00:00:00 2001 From: jackmahoney Date: Sun, 16 Nov 2025 14:01:06 +1300 Subject: [PATCH 2/8] fix-swagger --- .../MailSlurp/.idea/.gitignore | 8 + .../MailSlurp/.idea/MailSlurp.iml | 9 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + .../.idea/copilot.data.migration.agent.xml | 6 + .../.idea/copilot.data.migration.ask.xml | 6 + .../copilot.data.migration.ask2agent.xml | 6 + .../.idea/copilot.data.migration.edit.xml | 6 + .../inspectionProfiles/Project_Default.xml | 1522 ++ certified-connectors/MailSlurp/.idea/misc.xml | 6 + .../MailSlurp/.idea/modules.xml | 8 + certified-connectors/MailSlurp/.idea/vcs.xml | 6 + .../MailSlurp/apiDefinition.swagger.json | 17108 ++++------------ 12 files changed, 5956 insertions(+), 12740 deletions(-) create mode 100644 certified-connectors/MailSlurp/.idea/.gitignore create mode 100644 certified-connectors/MailSlurp/.idea/MailSlurp.iml create mode 100644 certified-connectors/MailSlurp/.idea/codeStyles/codeStyleConfig.xml create mode 100644 certified-connectors/MailSlurp/.idea/copilot.data.migration.agent.xml create mode 100644 certified-connectors/MailSlurp/.idea/copilot.data.migration.ask.xml create mode 100644 certified-connectors/MailSlurp/.idea/copilot.data.migration.ask2agent.xml create mode 100644 certified-connectors/MailSlurp/.idea/copilot.data.migration.edit.xml create mode 100644 certified-connectors/MailSlurp/.idea/inspectionProfiles/Project_Default.xml create mode 100644 certified-connectors/MailSlurp/.idea/misc.xml create mode 100644 certified-connectors/MailSlurp/.idea/modules.xml create mode 100644 certified-connectors/MailSlurp/.idea/vcs.xml diff --git a/certified-connectors/MailSlurp/.idea/.gitignore b/certified-connectors/MailSlurp/.idea/.gitignore new file mode 100644 index 0000000000..13566b81b0 --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/certified-connectors/MailSlurp/.idea/MailSlurp.iml b/certified-connectors/MailSlurp/.idea/MailSlurp.iml new file mode 100644 index 0000000000..d6ebd48059 --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/MailSlurp.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/codeStyles/codeStyleConfig.xml b/certified-connectors/MailSlurp/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000000..a55e7a179b --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/copilot.data.migration.agent.xml b/certified-connectors/MailSlurp/.idea/copilot.data.migration.agent.xml new file mode 100644 index 0000000000..4ea72a911a --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/copilot.data.migration.agent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask.xml b/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask.xml new file mode 100644 index 0000000000..7ef04e2ea0 --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask2agent.xml b/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask2agent.xml new file mode 100644 index 0000000000..1f2ea11e7f --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask2agent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/copilot.data.migration.edit.xml b/certified-connectors/MailSlurp/.idea/copilot.data.migration.edit.xml new file mode 100644 index 0000000000..8648f9401a --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/copilot.data.migration.edit.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/inspectionProfiles/Project_Default.xml b/certified-connectors/MailSlurp/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000000..ed02ff28b8 --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,1522 @@ + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/misc.xml b/certified-connectors/MailSlurp/.idea/misc.xml new file mode 100644 index 0000000000..188022c407 --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/modules.xml b/certified-connectors/MailSlurp/.idea/modules.xml new file mode 100644 index 0000000000..2377006bb2 --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/vcs.xml b/certified-connectors/MailSlurp/.idea/vcs.xml new file mode 100644 index 0000000000..b2bdec2d71 --- /dev/null +++ b/certified-connectors/MailSlurp/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/certified-connectors/MailSlurp/apiDefinition.swagger.json b/certified-connectors/MailSlurp/apiDefinition.swagger.json index 1ee9957106..9262c1fe82 100644 --- a/certified-connectors/MailSlurp/apiDefinition.swagger.json +++ b/certified-connectors/MailSlurp/apiDefinition.swagger.json @@ -247,7 +247,6 @@ "type": "string" }, { - "collectionFormat": "multi", "description": "Optional list of IDs to include in result", "in": "query", "items": { @@ -936,22 +935,29 @@ "summary": "Get a transformer" } }, - "/aliases": { + "/attachments": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "AttachmentController" + ], + "description": "Delete all attachments", + "operationId": "deleteAllAttachments", + "summary": "Delete all attachments" + }, "get": { "produces": [ "application/octet-stream" ], "parameters": [ - { - "description": "Optional search term", - "in": "query", - "name": "search", - "required": false, - "type": "string" - }, { "default": 0, - "description": "Optional page index in alias list pagination", + "description": "Optional page index for list pagination", "format": "int32", "in": "query", "name": "page", @@ -960,7 +966,7 @@ }, { "default": 20, - "description": "Optional page size in alias list pagination", + "description": "Optional page size for list pagination", "format": "int32", "in": "query", "name": "size", @@ -979,6 +985,13 @@ "required": false, "type": "string" }, + { + "description": "Optional file name and content type search filter", + "in": "query", + "name": "fileNameFilter", + "required": false, + "type": "string" + }, { "description": "Filter by created at after the given timestamp", "format": "date-time", @@ -994,22 +1007,56 @@ "name": "before", "required": false, "type": "string" + }, + { + "description": "Optional inboxId to filter attachments by", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Optional emailId to filter attachments by", + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "description": "Optional sentEmailId to filter attachments by", + "format": "uuid", + "in": "query", + "name": "sentEmailId", + "required": false, + "type": "string" + }, + { + "description": "Optional list of IDs to include in result", + "in": "query", + "items": { + "type": "string" + }, + "name": "include", + "required": false, + "type": "array" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageAlias" + "$ref": "#/definitions/PageAttachmentEntity" } } }, "tags": [ - "AliasController" + "AttachmentController" ], - "description": "Get all email aliases in paginated form", - "operationId": "getAliases", - "summary": "Get all email aliases you have created" + "description": "Get all attachments in paginated response. Each entity contains meta data for the attachment such as `name` and `content-type`. Use the `attachmentId` and the download endpoints to get the file contents.", + "operationId": "getAttachments", + "summary": "Get email attachments" }, "post": { "consumes": [ @@ -1024,7 +1071,7 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/CreateAliasOptions" + "$ref": "#/definitions/UploadAttachmentOptions" } } ], @@ -1032,124 +1079,187 @@ "201": { "description": "Created", "schema": { - "$ref": "#/definitions/AliasDto" + "items": { + "type": "string" + }, + "type": "array" } } }, "tags": [ - "AliasController" + "AttachmentController" ], - "description": "Email aliases use a MailSlurp randomly generated email address (or a custom domain inbox that you provide) to mask or proxy a real email address. Emails sent to the alias address will be forwarded to the hidden email address it was created for. If you want to send a reply use the threadId attached", - "operationId": "createAlias", - "summary": "Create an email alias. Must be verified by clicking link inside verification email that will be sent to the address. Once verified the alias will be active." + "operationId": "uploadAttachment", + "summary": "Upload an attachment for sending using base64 file encoding. Returns an array whose first element is the ID of the uploaded attachment." } }, - "/aliases/threads": { - "get": { + "/attachments/bytes": { + "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { - "default": 0, - "description": "Optional page index in thread list pagination", - "format": "int32", - "in": "query", - "name": "page", + "in": "header", + "name": "contentType", "required": false, - "type": "integer" + "type": "string" }, { - "default": 20, - "description": "Optional page size in thread list pagination", - "format": "int32", + "description": "Optional contentType for file. For instance `application/pdf`", "in": "query", - "name": "size", + "name": "contentType", "required": false, - "type": "integer" + "type": "string" }, { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], + "description": "Optional content ID (CID) to save upload with", "in": "query", - "name": "sort", + "name": "contentId", "required": false, "type": "string" }, { - "description": "Optional filter by sent after given date time", - "format": "date-time", + "description": "Optional filename to save upload with", "in": "query", - "name": "since", + "name": "filename", "required": false, "type": "string" }, { - "description": "Optional filter by sent before given date time", - "format": "date-time", + "description": "Optional byte length to save upload with", + "format": "int64", "in": "query", - "name": "before", + "name": "fileSize", + "required": false, + "type": "integer" + }, + { + "in": "header", + "name": "filename", "required": false, "type": "string" } ], "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "schema": { - "$ref": "#/definitions/PageAliasThreadProjection" + "items": { + "type": "string" + }, + "type": "array" } } }, "tags": [ - "AliasController" + "AttachmentController" ], - "description": "Returns threads created for all aliases in paginated form", - "operationId": "getThreadsPaginated", - "summary": "Get all threads" + "operationId": "uploadAttachmentBytes", + "summary": "Upload an attachment for sending using file byte stream input octet stream. Returns an array whose first element is the ID of the uploaded attachment." } }, - "/aliases/threads/{threadId}": { - "get": { + "/attachments/multipart": { + "post": { + "consumes": [ + "application/json" + ], "produces": [ "application/octet-stream" ], "parameters": [ { - "format": "uuid", - "in": "path", - "name": "threadId", - "required": true, + "description": "Optional content ID of attachment", + "in": "query", + "name": "contentId", + "required": false, + "type": "string" + }, + { + "description": "Optional content type of attachment", + "in": "query", + "name": "contentType", + "required": false, + "type": "string" + }, + { + "description": "Optional name of file", + "in": "query", + "name": "filename", + "required": false, + "type": "string" + }, + { + "description": "Optional content type header of attachment", + "in": "query", + "name": "contentTypeHeader", + "required": false, + "type": "string" + }, + { + "description": "Optional filename header of attachment", + "in": "query", + "name": "x-filename", + "required": false, + "type": "string" + }, + { + "description": "Optional raw filename header of attachment that will be converted to punycode", + "in": "query", + "name": "x-filename-raw", + "required": false, "type": "string" + }, + { + "description": "Optional content size of attachment", + "format": "int64", + "in": "query", + "name": "x-filesize", + "required": false, + "type": "integer" + }, + { + "in": "body", + "name": "body", + "schema": { + "properties": { + "file": { + "format": "binary", + "type": "string" + } + }, + "required": [ + "file" + ], + "type": "object" + } } ], "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "schema": { - "$ref": "#/definitions/AliasThreadProjection" + "items": { + "type": "string" + }, + "type": "array" } } }, "tags": [ - "AliasController" + "AttachmentController" ], - "description": "Return a thread associated with an alias", - "operationId": "getThread", - "summary": "Get a thread" + "operationId": "uploadMultipartForm", + "summary": "Upload an attachment for sending using a Multipart Form request. Returns an array whose first element is the ID of the uploaded attachment." } }, - "/aliases/{aliasId}": { + "/attachments/{attachmentId}": { "delete": { "parameters": [ { - "format": "uuid", + "description": "ID of attachment", "in": "path", - "name": "aliasId", + "name": "attachmentId", "required": true, "type": "string" } @@ -1160,10 +1270,11 @@ } }, "tags": [ - "AliasController" + "AttachmentController" ], - "operationId": "deleteAlias", - "summary": "Delete an email alias" + "description": "Delete an attachment", + "operationId": "deleteAttachment", + "summary": "Delete an attachment" }, "get": { "produces": [ @@ -1171,9 +1282,9 @@ ], "parameters": [ { - "format": "uuid", + "description": "ID of attachment", "in": "path", - "name": "aliasId", + "name": "attachmentId", "required": true, "type": "string" } @@ -1182,421 +1293,363 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/AliasDto" + "$ref": "#/definitions/AttachmentEntityDto" } } }, "tags": [ - "AliasController" - ], - "description": "Get an email alias by ID", - "operationId": "getAlias", - "summary": "Get an email alias" - }, - "put": { - "consumes": [ - "application/json" + "AttachmentController" ], + "operationId": "getAttachment", + "summary": "Get an attachment entity" + } + }, + "/attachments/{attachmentId}/base64": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "format": "uuid", + "description": "ID of attachment", "in": "path", - "name": "aliasId", + "name": "attachmentId", "required": true, "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateAliasOptions" - } } ], "responses": { - "202": { - "description": "Accepted", + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/AliasDto" + "$ref": "#/definitions/DownloadAttachmentDto" } } }, "tags": [ - "AliasController" + "AttachmentController" ], - "operationId": "updateAlias", - "summary": "Update an email alias" + "description": "Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the `downloadAttachment` method but allows some clients to get around issues with binary responses.", + "operationId": "downloadAttachmentAsBase64Encoded", + "summary": "Get email attachment as base64 encoded string as alternative to binary responses. To read the content decode the Base64 encoded contents." } }, - "/aliases/{aliasId}/emails": { + "/attachments/{attachmentId}/bytes": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "format": "uuid", + "description": "ID of attachment", "in": "path", - "name": "aliasId", + "name": "attachmentId", "required": true, "type": "string" - }, - { - "default": 0, - "description": "Optional page index alias email list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size alias email list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by sent after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by sent before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" } ], "responses": { - "200": { - "description": "OK", + "default": { + "description": "default response", "schema": { - "$ref": "#/definitions/PageEmailProjection" + "format": "byte", + "type": "string" } } }, "tags": [ - "AliasController" - ], - "description": "Get paginated emails for an alias by ID", - "operationId": "getAliasEmails", - "summary": "Get emails for an alias" - }, - "post": { - "consumes": [ - "application/json" + "AttachmentController" ], + "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", + "operationId": "downloadAttachmentAsBytes", + "summary": "Download attachments. Get email attachment bytes. If you have trouble with byte responses try the `downloadAttachmentBase64` response endpoints." + } + }, + "/attachments/{attachmentId}/metadata": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "format": "uuid", + "description": "ID of attachment", "in": "path", - "name": "aliasId", + "name": "attachmentId", "required": true, "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SendEmailOptions" - } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/SentEmailDto" + "$ref": "#/definitions/AttachmentMetaData" } } }, "tags": [ - "AliasController" + "AttachmentController" ], - "description": "Send an email from an alias. Replies to the email will be forwarded to the alias masked email address", - "operationId": "sendAliasEmail", - "summary": "Send an email from an alias inbox" + "description": "Returns the metadata for an attachment. It is saved separately to the content of the attachment. Contains properties `name` and `content-type` and `content-length` in bytes for a given attachment.", + "operationId": "getAttachmentInfo", + "summary": "Get email attachment metadata information" } }, - "/aliases/{aliasId}/emails/{emailId}": { - "put": { + "/bulk/inboxes": { + "delete": { "consumes": [ "application/json" ], - "produces": [ - "application/octet-stream" - ], "parameters": [ - { - "description": "ID of the alias that email belongs to", - "format": "uuid", - "in": "path", - "name": "aliasId", - "required": true, - "type": "string" - }, - { - "description": "ID of the email that should be replied to", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, { "in": "body", "name": "body", "required": true, "schema": { - "$ref": "#/definitions/ReplyToAliasEmailOptions" + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" } } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SentEmailDto" - } + "204": { + "description": "No Content" } }, "tags": [ - "AliasController" + "BulkActionsController" ], - "description": "Send the reply to the email sender or reply-to and include same subject cc bcc etc. Reply to an email and the contents will be sent with the existing subject to the emails `to`, `cc`, and `bcc`.", - "operationId": "replyToAliasEmail", - "summary": "Reply to an email" - } - }, - "/aliases/{aliasId}/threads": { - "get": { + "operationId": "bulkDeleteInboxes", + "summary": "Bulk Delete Inboxes" + }, + "post": { "produces": [ "application/octet-stream" ], "parameters": [ { - "format": "uuid", - "in": "path", - "name": "aliasId", - "required": true, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in thread list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in thread list pagination", + "description": "Number of inboxes to be created in bulk", "format": "int32", "in": "query", - "name": "size", - "required": false, + "name": "count", + "required": true, "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by sent after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by sent before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" } ], "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "schema": { - "$ref": "#/definitions/PageAliasThreadProjection" + "items": { + "$ref": "#/definitions/InboxDto" + }, + "type": "array" } } }, "tags": [ - "AliasController" + "BulkActionsController" ], - "description": "Returns threads created for an email alias in paginated form", - "operationId": "getAliasThreads", - "summary": "Get threads created for an alias" + "operationId": "bulkCreateInboxes", + "summary": "Bulk create Inboxes (email addresses)" } }, - "/attachments": { - "delete": { - "parameters": [], + "/bulk/send": { + "post": { + "consumes": [ + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BulkSendEmailOptions" + } + } + ], "responses": { - "204": { - "description": "No Content" + "201": { + "description": "Created" } }, "tags": [ - "AttachmentController" + "BulkActionsController" ], - "description": "Delete all attachments", - "operationId": "deleteAllAttachments", - "summary": "Delete all attachments" - }, - "get": { + "operationId": "bulkSendEmails", + "summary": "Bulk Send Emails" + } + }, + "/createInbox": { + "post": { "produces": [ "application/octet-stream" ], "parameters": [ { - "default": 0, - "description": "Optional page index for list pagination", - "format": "int32", "in": "query", - "name": "page", + "name": "allowTeamAccess", "required": false, - "type": "integer" + "type": "boolean" }, { - "default": 20, - "description": "Optional page size for list pagination", - "format": "int32", "in": "query", - "name": "size", + "name": "useDomainPool", "required": false, - "type": "integer" + "type": "boolean" }, { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], + "format": "date-time", "in": "query", - "name": "sort", + "name": "expiresAt", "required": false, "type": "string" }, { - "description": "Optional file name and content type search filter", + "format": "int64", "in": "query", - "name": "fileNameFilter", + "name": "expiresIn", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", "in": "query", - "name": "since", + "name": "emailAddress", "required": false, "type": "string" }, { - "description": "Filter by created at before the given timestamp", - "format": "date-time", + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], "in": "query", - "name": "before", + "name": "inboxType", "required": false, "type": "string" }, { - "description": "Optional inboxId to filter attachments by", - "format": "uuid", "in": "query", - "name": "inboxId", + "name": "description", "required": false, "type": "string" }, { - "description": "Optional emailId to filter attachments by", - "format": "uuid", "in": "query", - "name": "emailId", + "name": "name", + "required": false, + "type": "string" + }, + { + "in": "query", + "items": { + "type": "string" + }, + "name": "tags", + "required": false, + "type": "array" + }, + { + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "virtualInbox", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "useShortAddress", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "domainName", "required": false, "type": "string" }, { - "description": "Optional sentEmailId to filter attachments by", "format": "uuid", "in": "query", - "name": "sentEmailId", + "name": "domainId", "required": false, "type": "string" }, { - "collectionFormat": "multi", - "description": "Optional list of IDs to include in result", "in": "query", - "items": { - "type": "string" - }, - "name": "include", + "name": "prefix", "required": false, - "type": "array" + "type": "string" } ], "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "schema": { - "$ref": "#/definitions/PageAttachmentEntity" + "$ref": "#/definitions/InboxDto" } } }, "tags": [ - "AttachmentController" + "CommonActionsController" ], - "description": "Get all attachments in paginated response. Each entity contains meta data for the attachment such as `name` and `content-type`. Use the `attachmentId` and the download endpoints to get the file contents.", - "operationId": "getAttachments", - "summary": "Get email attachments" - }, + "description": "Returns an Inbox with an `id` and an `emailAddress`", + "operationId": "createRandomInbox", + "summary": "Create new random inbox" + } + }, + "/deleteEmailAddress": { + "delete": { + "parameters": [ + { + "description": "ID of inbox to delete", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "CommonActionsController" + ], + "description": "Deletes inbox email address", + "operationId": "deleteEmailAddress", + "summary": "Delete inbox email address by inbox id" + } + }, + "/email-verification": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "EmailVerificationController" + ], + "description": "Remove validation requests", + "operationId": "deleteAllValidationRequests", + "summary": "Delete all validation requests" + } + }, + "/email-verification/email-address-list": { "post": { "consumes": [ "application/json" @@ -1610,210 +1663,151 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/UploadAttachmentOptions" + "$ref": "#/definitions/ValidateEmailAddressListOptions" } } ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "OK", "schema": { - "items": { - "type": "string" - }, - "type": "array" + "$ref": "#/definitions/ValidateEmailAddressListResult" } } }, "tags": [ - "AttachmentController" + "EmailVerificationController" ], - "operationId": "uploadAttachment", - "summary": "Upload an attachment for sending using base64 file encoding. Returns an array whose first element is the ID of the uploaded attachment." + "description": "Verify a list of email addresses is valid and can be contacted.", + "operationId": "validateEmailAddressList", + "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing." } }, - "/attachments/bytes": { - "post": { + "/email-verification/validation-requests": { + "get": { "produces": [ - "application/json" + "application/octet-stream" ], "parameters": [ { - "in": "header", - "name": "contentType", + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "maximum": 9223372036854776000, + "minimum": 0, + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Optional contentType for file. For instance `application/pdf`", + "default": 20, + "description": "Optional page size for paginated result list.", + "format": "int32", "in": "query", - "name": "contentType", + "maximum": 100, + "minimum": 1, + "name": "size", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Optional content ID (CID) to save upload with", + "default": "DESC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], "in": "query", - "name": "contentId", + "name": "sort", "required": false, "type": "string" }, { - "description": "Optional filename to save upload with", + "description": "Optional search filter", "in": "query", - "name": "filename", + "name": "searchFilter", "required": false, "type": "string" }, { - "description": "Optional byte length to save upload with", - "format": "int64", + "description": "Filter by created at after the given timestamp", + "format": "date-time", "in": "query", - "name": "fileSize", + "name": "since", "required": false, - "type": "integer" + "type": "string" }, { - "in": "header", - "name": "filename", + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", "required": false, "type": "string" + }, + { + "description": "Filter where email is valid is true or false", + "in": "query", + "name": "isValid", + "required": false, + "type": "boolean" } ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "OK", "schema": { - "items": { - "type": "string" - }, - "type": "array" + "$ref": "#/definitions/PageEmailValidationRequest" } } }, "tags": [ - "AttachmentController" + "EmailVerificationController" ], - "operationId": "uploadAttachmentBytes", - "summary": "Upload an attachment for sending using file byte stream input octet stream. Returns an array whose first element is the ID of the uploaded attachment." + "description": "List email verification requests", + "operationId": "getValidationRequests", + "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing." } }, - "/attachments/multipart": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], + "/email-verification/{id}": { + "delete": { "parameters": [ { - "description": "Optional content ID of attachment", - "in": "query", - "name": "contentId", - "required": false, - "type": "string" - }, - { - "description": "Optional content type of attachment", - "in": "query", - "name": "contentType", - "required": false, - "type": "string" - }, - { - "description": "Optional name of file", - "in": "query", - "name": "filename", - "required": false, + "format": "uuid", + "in": "path", + "name": "id", + "required": true, "type": "string" - }, - { - "description": "Optional content type header of attachment", - "in": "query", - "name": "contentTypeHeader", - "required": false, - "type": "string" - }, - { - "description": "Optional filename header of attachment", - "in": "query", - "name": "x-filename", - "required": false, - "type": "string" - }, - { - "description": "Optional raw filename header of attachment that will be converted to punycode", - "in": "query", - "name": "x-filename-raw", - "required": false, - "type": "string" - }, - { - "description": "Optional content size of attachment", - "format": "int64", - "in": "query", - "name": "x-filesize", - "required": false, - "type": "integer" - }, - { - "in": "body", - "name": "body", - "schema": { - "properties": { - "file": { - "format": "binary", - "type": "string" - } - }, - "required": [ - "file" - ], - "type": "object" - } } ], "responses": { - "201": { - "description": "Created", - "schema": { - "items": { - "type": "string" - }, - "type": "array" - } + "204": { + "description": "No Content" } }, "tags": [ - "AttachmentController" + "EmailVerificationController" ], - "operationId": "uploadMultipartForm", - "summary": "Upload an attachment for sending using a Multipart Form request. Returns an array whose first element is the ID of the uploaded attachment." + "description": "Delete a validation record", + "operationId": "deleteValidationRequest", + "summary": "Delete a validation record" } }, - "/attachments/{attachmentId}": { + "/emails": { "delete": { - "parameters": [ - { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string" - } - ], + "parameters": [], "responses": { "204": { "description": "No Content" } }, "tags": [ - "AttachmentController" + "EmailController" ], - "description": "Delete an attachment", - "operationId": "deleteAttachment", - "summary": "Delete an attachment" + "description": "Deletes all emails in your account. Be careful as emails cannot be recovered", + "operationId": "deleteAllEmails", + "summary": "Delete all emails in all inboxes." }, "get": { "produces": [ @@ -1821,150 +1815,19 @@ ], "parameters": [ { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AttachmentEntityDto" - } - } - }, - "tags": [ - "AttachmentController" - ], - "operationId": "getAttachment", - "summary": "Get an attachment entity" - } - }, - "/attachments/{attachmentId}/base64": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/DownloadAttachmentDto" - } - } - }, - "tags": [ - "AttachmentController" - ], - "description": "Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the `downloadAttachment` method but allows some clients to get around issues with binary responses.", - "operationId": "downloadAttachmentAsBase64Encoded", - "summary": "Get email attachment as base64 encoded string as alternative to binary responses. To read the content decode the Base64 encoded contents." - } - }, - "/attachments/{attachmentId}/bytes": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string" - } - ], - "responses": { - "default": { - "description": "default response", - "schema": { - "format": "byte", + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", + "in": "query", + "items": { + "format": "uuid", "type": "string" - } - } - }, - "tags": [ - "AttachmentController" - ], - "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", - "operationId": "downloadAttachmentAsBytes", - "summary": "Download attachments. Get email attachment bytes. If you have trouble with byte responses try the `downloadAttachmentBase64` response endpoints." - } - }, - "/attachments/{attachmentId}/metadata": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AttachmentMetaData" - } - } - }, - "tags": [ - "AttachmentController" - ], - "description": "Returns the metadata for an attachment. It is saved separately to the content of the attachment. Contains properties `name` and `content-type` and `content-length` in bytes for a given attachment.", - "operationId": "getAttachmentInfo", - "summary": "Get email attachment metadata information" - } - }, - "/bounce/account-block": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AccountBounceBlockDto" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "Check if account block status prevents sending", - "operationId": "getAccountBounceBlockStatus", - "summary": "Can account send email" - } - }, - "/bounce/complaints": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ + }, + "name": "inboxId", + "required": false, + "type": "array" + }, { "default": 0, - "description": "Optional page index ", + "description": "Optional page index in email list pagination", "format": "int32", "in": "query", "name": "page", @@ -1973,7 +1836,7 @@ }, { "default": 20, - "description": "Optional page size ", + "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", "format": "int32", "in": "query", "maximum": 100, @@ -1994,8383 +1857,136 @@ "type": "string" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", + "default": false, + "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", "in": "query", - "name": "since", + "name": "unreadOnly", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Filter by created at before the given timestamp", - "format": "date-time", + "description": "Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body", "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageComplaint" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "SMTP complaints made against your account", - "operationId": "getComplaints", - "summary": "Get paginated list of complaints." - } - }, - "/bounce/complaints/{id}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of the complaint", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Complaint" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "Get complaint", - "operationId": "getComplaint", - "summary": "Get complaint" - } - }, - "/bounce/emails": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size ", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageBouncedEmail" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "Bounced emails are email you have sent that were rejected by a recipient", - "operationId": "getBouncedEmails", - "summary": "Get paginated list of bounced emails." - } - }, - "/bounce/emails/{id}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of the bounced email to fetch", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/BouncedEmailDto" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "Bounced emails are email you have sent that were rejected by a recipient", - "operationId": "getBouncedEmail", - "summary": "Get a bounced email." - } - }, - "/bounce/filter-recipients": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/FilterBouncedRecipientsOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/FilterBouncedRecipientsResult" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "Prevent email sending errors by remove recipients who have resulted in past email bounces or complaints", - "operationId": "filterBouncedRecipient", - "summary": "Filter a list of email recipients and remove those who have bounced" - } - }, - "/bounce/list-unsubscribe-recipients": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size ", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by domainId", - "format": "uuid", - "in": "query", - "name": "domainId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageListUnsubscribeRecipients" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "Unsubscribed recipient have unsubscribed from a mailing list for a user or domain and cannot be contacted again.", - "operationId": "getListUnsubscribeRecipients", - "summary": "Get paginated list of unsubscribed recipients." - } - }, - "/bounce/recipients": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index ", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size ", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageBouncedRecipients" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "Bounced recipients are email addresses that you have sent emails to that did not accept the sent email. Once a recipient is bounced you cannot send emails to that address.", - "operationId": "getBouncedRecipients", - "summary": "Get paginated list of bounced recipients." - } - }, - "/bounce/recipients/{id}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of the bounced recipient", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/BouncedRecipientDto" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "Bounced emails are email you have sent that were rejected by a recipient", - "operationId": "getBouncedRecipient", - "summary": "Get a bounced email." - } - }, - "/bounce/reputation-items": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "DESC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageReputationItems" - } - } - }, - "tags": [ - "BounceController" - ], - "description": "List of complaints and bounces", - "operationId": "getReputationItems", - "summary": "Get paginated list of reputation items." - } - }, - "/bulk/inboxes": { - "delete": { - "consumes": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "items": { - "format": "uuid", - "type": "string" - }, - "type": "array" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "BulkActionsController" - ], - "operationId": "bulkDeleteInboxes", - "summary": "Bulk Delete Inboxes" - }, - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Number of inboxes to be created in bulk", - "format": "int32", - "in": "query", - "name": "count", - "required": true, - "type": "integer" - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "items": { - "$ref": "#/definitions/InboxDto" - }, - "type": "array" - } - } - }, - "tags": [ - "BulkActionsController" - ], - "operationId": "bulkCreateInboxes", - "summary": "Bulk create Inboxes (email addresses)" - } - }, - "/bulk/send": { - "post": { - "consumes": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BulkSendEmailOptions" - } - } - ], - "responses": { - "201": { - "description": "Created" - } - }, - "tags": [ - "BulkActionsController" - ], - "operationId": "bulkSendEmails", - "summary": "Bulk Send Emails" - } - }, - "/connectors": { - "delete": { - "parameters": [], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "ConnectorController" - ], - "operationId": "deleteAllConnector", - "summary": "Delete all inbox connectors" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in connector list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in connector list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageConnector" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "List inbox connectors that sync external emails to MailSlurp inboxes", - "operationId": "getConnectors", - "summary": "Get inbox connectors" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Optional inbox ID to associate with the connector", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/ConnectorDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Sync emails between external mailboxes and MailSlurp inboxes", - "operationId": "createConnector", - "summary": "Create an inbox connector" - } - }, - "/connectors/by-email-address": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Email address to search for connector by", - "in": "query", - "name": "emailAddress", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OptionalConnectorDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Find an inbox connector by email address", - "operationId": "getConnectorByEmailAddress", - "summary": "Get connector by email address" - } - }, - "/connectors/by-inbox-id": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox ID to search for connector by", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OptionalConnectorDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Find an inbox connector by inbox ID", - "operationId": "getConnectorByInboxId", - "summary": "Get connector by inbox ID" - } - }, - "/connectors/by-name": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Name to search for connector by", - "in": "query", - "name": "name", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OptionalConnectorDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Find an inbox connector by name", - "operationId": "getConnectorByName", - "summary": "Get connector by name" - } - }, - "/connectors/connections/imap/test": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorImapConnectionOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorImapConnectionTestResult" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Test the IMAP connection options for a connector", - "operationId": "testConnectorImapConnectionOptions", - "summary": "Test an inbox connector IMAP connection options" - } - }, - "/connectors/connections/smtp/test": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorSmtpConnectionOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorSmtpConnectionTestResult" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Test the SMTP connection options for a connector", - "operationId": "testConnectorSmtpConnectionOptions", - "summary": "Test an inbox connector SMTP connection options" - } - }, - "/connectors/events": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Optional connector ID", - "format": "uuid", - "in": "query", - "name": "id", - "required": false, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in connector list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in connector list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Filter by event type", - "enum": [ - "SEND", - "SYNC" - ], - "in": "query", - "name": "eventType", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageConnectorEvents" - } - } - }, - "tags": [ - "ConnectorController" - ], - "operationId": "getAllConnectorEvents", - "summary": "Get all inbox connector events" - } - }, - "/connectors/events/{id}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorEventDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "operationId": "getConnectorEvent", - "summary": "Get an inbox connector event" - } - }, - "/connectors/provider-settings": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorProviderSettingsDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Get common mail provider SMTP and IMAP connection settings", - "operationId": "getConnectorProviderSettings", - "summary": "Get SMTP and IMAP connection settings for common mail providers" - } - }, - "/connectors/withOptions": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Optional inbox ID to associate with the connector", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorWithOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/ConnectorDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Sync emails between external mailboxes and MailSlurp inboxes", - "operationId": "createConnectorWithOptions", - "summary": "Create an inbox connector with options" - } - }, - "/connectors/{id}": { - "delete": { - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "ConnectorController" - ], - "operationId": "deleteConnector", - "summary": "Delete an inbox connector" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "operationId": "getConnector", - "summary": "Get an inbox connector" - }, - "put": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "operationId": "updateConnector", - "summary": "Update an inbox connector" - } - }, - "/connectors/{id}/events": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in connector list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in connector list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Filter by event type", - "enum": [ - "SEND", - "SYNC" - ], - "in": "query", - "name": "eventType", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageConnectorEvents" - } - } - }, - "tags": [ - "ConnectorController" - ], - "operationId": "getConnectorEvents", - "summary": "Get an inbox connector events" - } - }, - "/connectors/{id}/imap": { - "delete": { - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Delete IMAP connection for external inbox", - "operationId": "deleteConnectorImapConnection", - "summary": "Delete an inbox connector IMAP connection" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OptionalConnectorImapConnectionDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Get IMAP connection for external inbox", - "operationId": "getConnectorImapConnection", - "summary": "Get an inbox connector IMAP connection" - }, - "patch": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorImapConnectionOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorImapConnectionDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Update IMAP connection for external inbox", - "operationId": "updateConnectorImapConnection", - "summary": "Update an inbox connector IMAP connection" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorImapConnectionOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/ConnectorImapConnectionDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Allows the reading of emails in an external mailbox and syncing to a MailSlurp inbox", - "operationId": "createConnectorImapConnection", - "summary": "Create an inbox connector IMAP connection" - } - }, - "/connectors/{id}/imap/test": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/CreateConnectorImapConnectionOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorImapConnectionTestResult" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Test the IMAP connection for a connector", - "operationId": "testConnectorImapConnection", - "summary": "Test an inbox connector IMAP connection" - } - }, - "/connectors/{id}/send": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "query", - "name": "useFallback", - "required": false, - "type": "boolean" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SendEmailOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SentEmailDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "operationId": "sendEmailFromConnector", - "summary": "Send from an inbox connector" - } - }, - "/connectors/{id}/smtp": { - "delete": { - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Delete SMTP connection for external inbox", - "operationId": "deleteConnectorSmtpConnection", - "summary": "Delete an inbox connector SMTP connection" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OptionalConnectorSmtpConnectionDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Get SMTP connection for external inbox", - "operationId": "getConnectorSmtpConnection", - "summary": "Get an inbox connector SMTP connection" - }, - "patch": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorSmtpConnectionOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorSmtpConnectionDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Update SMTP connection for external inbox", - "operationId": "updateConnectorSmtpConnection", - "summary": "Update an inbox connector SMTP connection" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorSmtpConnectionOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/ConnectorSmtpConnectionDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Allows sending via connector and email is routed to connected inbox and sent via SMTP", - "operationId": "createConnectorSmtpConnection", - "summary": "Create an inbox connector SMTP connection" - } - }, - "/connectors/{id}/smtp/test": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "schema": { - "$ref": "#/definitions/CreateConnectorSmtpConnectionOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorSmtpConnectionTestResult" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Test the SMTP connection for a connector", - "operationId": "testConnectorSmtpConnection", - "summary": "Test an inbox connector SMTP connection" - } - }, - "/connectors/{id}/sync": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "description": "Date to request emails since", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Which folder to sync emails with", - "in": "query", - "name": "folder", - "required": false, - "type": "string" - }, - { - "description": "Enable or disable logging for the sync operation", - "in": "query", - "name": "logging", - "required": false, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConnectorSyncRequestResult" - } - } - }, - "tags": [ - "ConnectorController" - ], - "operationId": "syncConnector", - "summary": "Sync an inbox connector" - } - }, - "/connectors/{id}/sync-settings": { - "delete": { - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Configure automatic pull or emails from external inboxes using an interval or schedule", - "operationId": "deleteConnectorSyncSettings", - "summary": "Create an inbox connector sync settings" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OptionalConnectorSyncSettingsDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Get sync settings for connection with external inbox", - "operationId": "getConnectorSyncSettings", - "summary": "Get an inbox connector sync settings" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateConnectorSyncSettingsOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/ConnectorSyncSettingsDto" - } - } - }, - "tags": [ - "ConnectorController" - ], - "description": "Configure automatic pull or emails from external inboxes using an interval or schedule", - "operationId": "createConnectorSyncSettings", - "summary": "Create an inbox connector sync settings" - } - }, - "/consent/opt-in": { - "delete": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Email address to revoke consent for", - "in": "query", - "name": "emailAddress", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OptInSendingConsentDto" - } - } - }, - "tags": [ - "ConsentController" - ], - "operationId": "revokeOptInConsentForEmailAddress" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageOptInIdentityProjection" - } - } - }, - "tags": [ - "ConsentController" - ], - "operationId": "getOptInIdentities" - } - }, - "/consent/opt-in/send": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/OptInConsentOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OptInConsentSendResult" - } - } - }, - "tags": [ - "ConsentController" - ], - "description": "Send double-opt in consent for an email address", - "operationId": "sendOptInConsentForEmailAddress", - "summary": "Send a verification code to a user once they have explicitly submitted their email address" - } - }, - "/consent/opt-in/sending-consent": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Email address to check consent for", - "in": "query", - "name": "emailAddress", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OptInSendingConsentDto" - } - } - }, - "tags": [ - "ConsentController" - ], - "operationId": "checkSendingConsentForEmailAddress" - } - }, - "/contacts": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "items": { - "$ref": "#/definitions/ContactProjection" - }, - "type": "array" - } - } - }, - "tags": [ - "ContactController" - ], - "operationId": "getContacts", - "summary": "Get all contacts" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateContactOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/ContactDto" - } - } - }, - "tags": [ - "ContactController" - ], - "operationId": "createContact", - "summary": "Create a contact" - } - }, - "/contacts/paginated": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Search terms", - "in": "query", - "name": "search", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageContactProjection" - } - } - }, - "tags": [ - "ContactController" - ], - "operationId": "getAllContacts", - "summary": "Get all contacts" - } - }, - "/contacts/{contactId}": { - "delete": { - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "contactId", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "ContactController" - ], - "operationId": "deleteContact", - "summary": "Delete contact" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "contactId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ContactDto" - } - } - }, - "tags": [ - "ContactController" - ], - "operationId": "getContact", - "summary": "Get contact" - } - }, - "/contacts/{contactId}/download": { - "get": { - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "contactId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK" - } - }, - "tags": [ - "ContactController" - ], - "deprecated": true, - "operationId": "getContactVCard", - "summary": "Get contact vCard vcf file" - } - }, - "/createInbox": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "query", - "name": "allowTeamAccess", - "required": false, - "type": "boolean" - }, - { - "in": "query", - "name": "useDomainPool", - "required": false, - "type": "boolean" - }, - { - "format": "date-time", - "in": "query", - "name": "expiresAt", - "required": false, - "type": "string" - }, - { - "format": "int64", - "in": "query", - "name": "expiresIn", - "required": false, - "type": "integer" - }, - { - "in": "query", - "name": "emailAddress", - "required": false, - "type": "string" - }, - { - "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", - "enum": [ - "HTTP_INBOX", - "SMTP_INBOX" - ], - "in": "query", - "name": "inboxType", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "description", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "name", - "required": false, - "type": "string" - }, - { - "collectionFormat": "multi", - "in": "query", - "items": { - "type": "string" - }, - "name": "tags", - "required": false, - "type": "array" - }, - { - "in": "query", - "name": "favourite", - "required": false, - "type": "boolean" - }, - { - "in": "query", - "name": "virtualInbox", - "required": false, - "type": "boolean" - }, - { - "in": "query", - "name": "useShortAddress", - "required": false, - "type": "boolean" - }, - { - "in": "query", - "name": "domainName", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "domainId", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "prefix", - "required": false, - "type": "string" - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/InboxDto" - } - } - }, - "tags": [ - "CommonActionsController" - ], - "description": "Returns an Inbox with an `id` and an `emailAddress`", - "operationId": "createRandomInbox", - "summary": "Create new random inbox" - } - }, - "/deleteEmailAddress": { - "delete": { - "parameters": [ - { - "description": "ID of inbox to delete", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "CommonActionsController" - ], - "description": "Deletes inbox email address", - "operationId": "deleteEmailAddress", - "summary": "Delete inbox email address by inbox id" - } - }, - "/domains": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "items": { - "$ref": "#/definitions/DomainPreview" - }, - "type": "array" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "List all custom domains you have created", - "operationId": "getDomains", - "summary": "Get domains" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateDomainOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/DomainDto" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "Link a domain that you own with MailSlurp so you can create email addresses using it. Endpoint returns DNS records used for validation. You must add these verification records to your host provider's DNS setup to verify the domain.", - "operationId": "createDomain", - "summary": "Create Domain" - } - }, - "/domains/available-domains": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", - "enum": [ - "HTTP_INBOX", - "SMTP_INBOX" - ], - "in": "query", - "name": "inboxType", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/DomainGroupsDto" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "List all domains available for use with email address creation", - "operationId": "getAvailableDomains", - "summary": "Get all usable domains" - } - }, - "/domains/issues": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/DomainIssuesDto" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "List domain issues for domains you have created", - "operationId": "getDomainIssues", - "summary": "Get domain issues" - } - }, - "/domains/mailslurp-domains": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", - "enum": [ - "HTTP_INBOX", - "SMTP_INBOX" - ], - "in": "query", - "name": "inboxType", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/DomainGroupsDto" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "List all MailSlurp domains used with non-custom email addresses", - "operationId": "getMailSlurpDomains", - "summary": "Get MailSlurp domains" - } - }, - "/domains/{id}": { - "delete": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content", - "schema": { - "items": { - "type": "string" - }, - "type": "array" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "Delete a domain. This will disable any existing inboxes that use this domain.", - "operationId": "deleteDomain", - "summary": "Delete a domain" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "query", - "name": "checkForErrors", - "required": false, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/DomainDto" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "Returns domain verification status and tokens for a given domain", - "operationId": "getDomain", - "summary": "Get a domain" - }, - "put": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateDomainOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/DomainDto" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "Update values on a domain. Note you cannot change the domain name as it is immutable. Recreate the domain if you need to alter this.", - "operationId": "updateDomain", - "summary": "Update a domain" - } - }, - "/domains/{id}/wildcard": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxDto" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "Get the catch all inbox for a domain for missed emails", - "operationId": "getDomainWildcardCatchAllInbox", - "summary": "Get catch all wild card inbox for domain" - }, - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/DomainDto" - } - } - }, - "tags": [ - "DomainController" - ], - "description": "Add a catch all inbox to a domain so that any emails sent to it that cannot be matched will be sent to the catch all inbox generated", - "operationId": "addDomainWildcardCatchAll", - "summary": "Add catch all wild card inbox to domain" - } - }, - "/email-verification": { - "delete": { - "parameters": [], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "EmailVerificationController" - ], - "description": "Remove validation requests", - "operationId": "deleteAllValidationRequests", - "summary": "Delete all validation requests" - } - }, - "/email-verification/email-address-list": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ValidateEmailAddressListOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ValidateEmailAddressListResult" - } - } - }, - "tags": [ - "EmailVerificationController" - ], - "description": "Verify a list of email addresses is valid and can be contacted.", - "operationId": "validateEmailAddressList", - "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing." - } - }, - "/email-verification/validation-requests": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "maximum": 9223372036854776000, - "minimum": 0, - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size for paginated result list.", - "format": "int32", - "in": "query", - "maximum": 100, - "minimum": 1, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "DESC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional search filter", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Filter where email is valid is true or false", - "in": "query", - "name": "isValid", - "required": false, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageEmailValidationRequest" - } - } - }, - "tags": [ - "EmailVerificationController" - ], - "description": "List email verification requests", - "operationId": "getValidationRequests", - "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing." - } - }, - "/email-verification/{id}": { - "delete": { - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "EmailVerificationController" - ], - "description": "Delete a validation record", - "operationId": "deleteValidationRequest", - "summary": "Delete a validation record" - } - }, - "/emails": { - "delete": { - "parameters": [], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "EmailController" - ], - "description": "Deletes all emails in your account. Be careful as emails cannot be recovered", - "operationId": "deleteAllEmails", - "summary": "Delete all emails in all inboxes." - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "collectionFormat": "multi", - "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", - "in": "query", - "items": { - "format": "uuid", - "type": "string" - }, - "name": "inboxId", - "required": false, - "type": "array" - }, - { - "default": 0, - "description": "Optional page index in email list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "default": false, - "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", - "in": "query", - "name": "unreadOnly", - "required": false, - "type": "boolean" - }, - { - "description": "Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Optional filter emails received after given date time. If unset will use time 24hours prior to now.", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter emails received before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Sync connectors", - "in": "query", - "name": "syncConnectors", - "required": false, - "type": "boolean" - }, - { - "description": "Optional plus address ID filter", - "format": "uuid", - "in": "query", - "name": "plusAddressId", - "required": false, - "type": "string" - }, - { - "description": "Optional filter emails that are favourited", - "in": "query", - "name": "favourited", - "required": false, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageEmailProjection" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", - "operationId": "getEmailsPaginated", - "summary": "Get all emails in all inboxes in paginated form. Email API list all." - }, - "post": { - "consumes": [ - "application/json" - ], - "parameters": [ - { - "description": "ID of the inbox you want to send the email from", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "description": "Use domain pool. Optionally create inbox to send from using the mailslurp domain pool.", - "in": "query", - "name": "useDomainPool", - "required": false, - "type": "boolean" - }, - { - "description": "Optionally create inbox to send from that is a virtual inbox and won't send to external addresses", - "in": "query", - "name": "virtualSend", - "required": false, - "type": "boolean" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SendEmailOptions" - } - } - ], - "responses": { - "201": { - "description": "Created" - } - }, - "tags": [ - "EmailController" - ], - "description": "Alias for `InboxController.sendEmail` method - see original method for full details. Sends an email from a given inbox that you have created. If no inbox is supplied a random inbox will be created for you and used to send the email.", - "operationId": "sendEmailSourceOptional", - "summary": "Send email" - } - }, - "/emails/can-send": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of the inbox you want to send the email from", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SendEmailOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/CanSendEmailResults" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Can user send email to given recipient or is the recipient blocked", - "operationId": "canSend", - "summary": "Check if email can be sent and options are valid." - } - }, - "/emails/check-email-client-support": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CheckEmailClientSupportOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/CheckEmailClientSupportResults" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Evaluate the features used in an email body and return a report of email client support across different platforms and versions.", - "operationId": "checkEmailClientSupport", - "summary": "Show which email programs and devices support the features used in an email body." - } - }, - "/emails/emails/count": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/CountDto" - } - } - }, - "tags": [ - "EmailController" - ], - "operationId": "getEmailCount", - "summary": "Get email count" - } - }, - "/emails/gravatarFor": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "query", - "name": "emailAddress", - "required": true, - "type": "string" - }, - { - "in": "query", - "name": "size", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GravatarUrl" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Get gravatar url for email address", - "operationId": "getGravatarUrlForEmailAddress" - } - }, - "/emails/latest": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "collectionFormat": "multi", - "description": "Optional set of inboxes to filter by. Only get the latest email from these inbox IDs. If not provided will search across all inboxes", - "in": "query", - "items": { - "format": "uuid", - "type": "string" - }, - "name": "inboxIds", - "required": false, - "type": "array" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Email" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Get the newest email in all inboxes or in a passed set of inbox IDs", - "operationId": "getLatestEmail", - "summary": "Get latest email in all inboxes. Most recently received." - } - }, - "/emails/latestIn": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of the inbox you want to get the latest email from", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Email" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Get the newest email in all inboxes or in a passed set of inbox IDs", - "operationId": "getLatestEmailInInbox_1", - "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not have arrived yet." - } - }, - "/emails/offset-paginated": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "collectionFormat": "multi", - "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", - "in": "query", - "items": { - "format": "uuid", - "type": "string" - }, - "name": "inboxId", - "required": false, - "type": "array" - }, - { - "default": 0, - "description": "Optional page index in email list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "default": false, - "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", - "in": "query", - "name": "unreadOnly", - "required": false, - "type": "boolean" - }, - { - "description": "Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Optional filter emails received after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter emails received before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Optional filter emails that are favourited", - "in": "query", - "name": "favourited", - "required": false, - "type": "boolean" - }, - { - "description": "Sync connectors", - "in": "query", - "name": "syncConnectors", - "required": false, - "type": "boolean" - }, - { - "description": "Optional plus address ID filter", - "format": "uuid", - "in": "query", - "name": "plusAddressId", - "required": false, - "type": "string" - }, - { - "collectionFormat": "multi", - "description": "Optional list of IDs to include in result", - "in": "query", - "items": { - "format": "uuid", - "type": "string" - }, - "name": "include", - "required": false, - "type": "array" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageEmailProjection" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", - "operationId": "getEmailsOffsetPaginated", - "summary": "Get all emails in all inboxes in paginated form. Email API list all." - } - }, - "/emails/organization": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "collectionFormat": "multi", - "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", - "in": "query", - "items": { - "format": "uuid", - "type": "string" - }, - "name": "inboxId", - "required": false, - "type": "array" - }, - { - "default": 0, - "description": "Optional page index in email list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "default": false, - "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", - "in": "query", - "name": "unreadOnly", - "required": false, - "type": "boolean" - }, - { - "description": "Optional search filter search filter for emails.", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Optional filter emails received after given date time. If unset will use time 24hours prior to now.", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter emails received before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Sync connectors", - "in": "query", - "name": "syncConnectors", - "required": false, - "type": "boolean" - }, - { - "description": "Search only favorited emails", - "in": "query", - "name": "favourited", - "required": false, - "type": "boolean" - }, - { - "description": "Optional plus address ID filter", - "format": "uuid", - "in": "query", - "name": "plusAddressId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageEmailProjection" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "By default returns all emails across all team inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", - "operationId": "getOrganizationEmailsPaginated", - "summary": "Get all organization emails. List team or shared test email accounts" - } - }, - "/emails/read": { - "patch": { - "parameters": [ - { - "default": true, - "description": "What value to assign to email read property. Default true.", - "in": "query", - "name": "read", - "required": false, - "type": "boolean" - }, - { - "description": "Optional inbox ID filter", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "EmailController" - ], - "description": "Marks all emails as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread", - "operationId": "markAllAsRead", - "summary": "Mark all emails as read or unread" - } - }, - "/emails/search": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Sync connectors", - "in": "query", - "name": "syncConnectors", - "required": false, - "type": "boolean" - }, - { - "description": "Search only favourited emails", - "in": "query", - "name": "favourited", - "required": false, - "type": "boolean" - }, - { - "description": "Optional plus address ID filter", - "format": "uuid", - "in": "query", - "name": "plusAddressId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchEmailsOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageEmailProjection" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Search emails by given criteria return matches in paginated format. Searches against email recipients, sender, subject, email address and ID. Does not search email body", - "operationId": "searchEmails", - "summary": "Get all emails by search criteria. Return in paginated form." - } - }, - "/emails/threads": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Optional inbox filter", - "format": "uuid", - "in": "query", - "name": "htmlSelector", - "required": false, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in email thread pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in email thread pagination. Maximum size is 100. Use page index and sort to page through larger results", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional search filter search filter for email threads.", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Optional filter email threads created since time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter emails threads created before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageEmailThreadProjection" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Return email message chains built from Message-ID, In-Reply-To, and References header.", - "operationId": "getEmailThreads", - "summary": "Return email threads in paginated form" - } - }, - "/emails/threads/{threadId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "threadId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailThreadDto" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Return email message thread summary from Message-ID, In-Reply-To, and References header. Get messages using items endpoint", - "operationId": "getEmailThread", - "summary": "Return email thread information. Use items endpoints to get messages for thread." - } - }, - "/emails/threads/{threadId}/items": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "threadId", - "required": true, - "type": "string" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailThreadItemsDto" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Return email thread messages based on Message-ID, In-Reply-To, and References header", - "operationId": "getEmailThreadItems", - "summary": "Return email thread items." - } - }, - "/emails/unreadCount": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Optional inbox ID filter", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UnreadCount" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Get number of emails unread. Unread means has not been viewed in dashboard or returned in an email API response", - "operationId": "getUnreadEmailCount", - "summary": "Get unread email count" - } - }, - "/emails/{emailId}": { - "delete": { - "parameters": [ - { - "description": "ID of email to delete", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "EmailController" - ], - "description": "Deletes an email and removes it from the inbox. Deleted emails cannot be recovered.", - "operationId": "deleteEmail", - "summary": "Delete an email" - }, - "get": { - "produces": [ - "application/json;charset=UTF-8", - "application/xml;charset=UTF-8", - "application/json; charset=UTF-8", - "application/xml; charset=UTF-8" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Email" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns a email summary object with headers and content. To retrieve the raw unparsed email use the getRawEmail endpoints", - "operationId": "getEmail", - "summary": "Get email content including headers and body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController." - }, - "put": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of the email that should be replied to", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ReplyToEmailOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SentEmailDto" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Send the reply to the email sender or reply-to and include same subject cc bcc etc. Reply to an email and the contents will be sent with the existing subject to the emails `to`, `cc`, and `bcc`.", - "operationId": "replyToEmail", - "summary": "Reply to an email" - } - }, - "/emails/{emailId}/attachments": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "items": { - "$ref": "#/definitions/AttachmentMetaData" - }, - "type": "array" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns an array of attachment metadata such as name and content-type for a given email if present.", - "operationId": "getEmailAttachments", - "summary": "Get all email attachment metadata. Metadata includes name and size of attachments." - } - }, - "/emails/{emailId}/attachments/{attachmentId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string" - }, - { - "description": "Can pass apiKey in url for this request if you wish to download the file in a browser. Content type will be set to original content type of the attachment file. This is so that browsers can download the file correctly.", - "in": "query", - "name": "apiKey", - "required": false, - "type": "string" - } - ], - "responses": { - "default": { - "description": "default response", - "schema": { - "format": "byte", - "type": "string" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", - "operationId": "downloadAttachment", - "summary": "Get email attachment bytes. Returned as `octet-stream` with content type header. If you have trouble with byte responses try the `downloadAttachmentBase64` response endpoints and convert the base 64 encoded content to a file or string." - } - }, - "/emails/{emailId}/attachments/{attachmentId}/base64": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/DownloadAttachmentDto" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the `downloadAttachment` method but allows some clients to get around issues with binary responses.", - "operationId": "downloadAttachmentBase64", - "summary": "Get email attachment as base64 encoded string as an alternative to binary responses. Decode the `base64FileContents` as a `utf-8` encoded string or array of bytes depending on the `contentType`." - } - }, - "/emails/{emailId}/attachments/{attachmentId}/metadata": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AttachmentMetaData" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns the metadata such as name and content-type for a given attachment and email.", - "operationId": "getAttachmentMetaData", - "summary": "Get email attachment metadata. This is the `contentType` and `contentLength` of an attachment. To get the individual attachments use the `downloadAttachment` methods." - } - }, - "/emails/{emailId}/body": { - "get": { - "produces": [ - "text/plain", - "text/html" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns the specified email body for a given email as a string", - "operationId": "downloadBody", - "summary": "Get email body as string. Returned as `plain/text` with content type header." - } - }, - "/emails/{emailId}/body-bytes": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "default": { - "description": "default response", - "schema": { - "format": "byte", - "type": "string" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns the specified email body for a given email as a stream / array of bytes.", - "operationId": "downloadBodyBytes", - "summary": "Get email body in bytes. Returned as `octet-stream` with content type header." - } - }, - "/emails/{emailId}/check-email-body": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/CheckEmailBodyResults" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Find dead links, broken images, and spelling mistakes in email body. Will call included links via HTTP so do not invoke if your links are sensitive or stateful. Any resource that returns a 4xx or 5xx response or is not reachable via HEAD or GET HTTP operations will be considered unhealthy.", - "operationId": "checkEmailBody", - "summary": "Detect broken links, spelling, and images in email content" - } - }, - "/emails/{emailId}/check-email-body-feature-support": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/CheckEmailBodyFeatureSupportResults" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Detect HTML and CSS features inside an email body and return a report of email client support across different platforms and versions.", - "operationId": "checkEmailBodyFeatureSupport", - "summary": "Show which mail clients support the HTML and CSS features used in an email body." - } - }, - "/emails/{emailId}/contentMatch": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email to match against", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ContentMatchOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailContentMatchResult" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Return the matches for a given Java style regex pattern. Do not include the typical `/` at start or end of regex in some languages. Given an example `your code is: 12345` the pattern to extract match looks like `code is: (\\d{6})`. This will return an array of matches with the first matching the entire pattern and the subsequent matching the groups: `['code is: 123456', '123456']` See https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html for more information of available patterns. ", - "operationId": "getEmailContentMatch", - "summary": "Get email content regex pattern match results. Runs regex against email body and returns match groups." - } - }, - "/emails/{emailId}/contentPart": { - "get": { - "produces": [ - "application/json;charset=UTF-8", - "application/xml;charset=UTF-8", - "application/json; charset=UTF-8", - "application/xml; charset=UTF-8" - ], - "parameters": [ - { - "description": "ID of email to match against", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "description": "Content type", - "in": "query", - "name": "contentType", - "required": true, - "type": "string" - }, - { - "description": "Strict content type match", - "in": "query", - "name": "strict", - "required": false, - "type": "boolean" - }, - { - "description": "Index of content type part if multiple", - "format": "int32", - "in": "query", - "name": "index", - "required": false, - "type": "integer" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailContentPartResult" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Get email body content parts from a multipart email message for a given content type", - "operationId": "getEmailContentPart", - "summary": "Get email content part by content type" - } - }, - "/emails/{emailId}/contentPart/raw": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email to match against", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "description": "Content type", - "in": "query", - "name": "contentType", - "required": true, - "type": "string" - }, - { - "description": "Strict content type match", - "in": "query", - "name": "strict", - "required": false, - "type": "boolean" - }, - { - "description": "Index of content type part if multiple. Starts from 0 and applies to the result list after selecting for your content type. Content type parts are sorted by order found in original MIME message.", - "format": "int32", - "in": "query", - "name": "index", - "required": false, - "type": "integer" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Get email body content parts from a multipart email message for a given content type and return as response", - "operationId": "getEmailContentPartContent", - "summary": "Get email content part by content type raw response" - } - }, - "/emails/{emailId}/favourite": { - "put": { - "parameters": [ - { - "description": "ID of email to set favourite state", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "in": "query", - "name": "favourited", - "required": true, - "type": "boolean" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "EmailController" - ], - "description": "Set and return new favorite state for an email", - "operationId": "setEmailFavourited", - "summary": "Set email favourited state" - } - }, - "/emails/{emailId}/forward": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ForwardEmailOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/SentEmailDto" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Forward an existing email to new recipients. The sender of the email will be the inbox that received the email you are forwarding. You can override the sender with the `from` option. Note you must have access to the from address in MailSlurp to use the override. For more control consider fetching the email and sending it a new using the send email endpoints.", - "operationId": "forwardEmail", - "summary": "Forward email to recipients" - } - }, - "/emails/{emailId}/html": { - "get": { - "produces": [ - "text/html;charset=utf-8", - "text/html" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "default": false, - "in": "query", - "name": "replaceCidImages", - "required": false, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Retrieve email content as HTML response for viewing in browsers. Decodes quoted-printable entities and converts charset to UTF-8. Pass your API KEY as a request parameter when viewing in a browser: `?apiKey=xxx`. Returns content-type `text/html;charset=utf-8` so you must call expecting that content response not JSON. For JSON response see the `getEmailHTMLJson` method.", - "operationId": "getEmailHTML", - "summary": "Get email content as HTML. For displaying emails in browser context." - } - }, - "/emails/{emailId}/html/json": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "default": false, - "in": "query", - "name": "replaceCidImages", - "required": false, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailHtmlDto" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Retrieve email content as HTML response. Decodes quoted-printable entities and converts charset to UTF-8. Returns content-type `application/json;charset=utf-8` so you must call expecting that content response not JSON.", - "operationId": "getEmailHTMLJson", - "summary": "Get email content as HTML in JSON wrapper. For fetching entity decoded HTML content" - } - }, - "/emails/{emailId}/htmlQuery": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email to perform HTML query on", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "description": "HTML selector to search for. Uses JQuery/JSoup/CSS style selector like '.my-div' to match content. See https://jsoup.org/apidocs/org/jsoup/select/Selector.html for more information.", - "in": "query", - "name": "htmlSelector", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailTextLinesResult" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Parse an email body and return the content as an array of text. HTML parsing uses JSoup which supports JQuery/CSS style selectors", - "operationId": "getEmailHTMLQuery", - "summary": "Parse and return text from an email, stripping HTML and decoding encoded characters" - } - }, - "/emails/{emailId}/imap-flag-operation": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ImapFlagOperationOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailPreview" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Apply RFC3501 section-2.3.2 IMAP flag operations on an email", - "operationId": "applyImapFlagOperation", - "summary": "Set IMAP flags associated with a message. Only supports '\\Seen' flag." - } - }, - "/emails/{emailId}/links": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email to fetch text for", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "description": "Optional HTML query selector for links", - "in": "query", - "name": "selector", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailLinksResult" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "HTML parsing uses JSoup and UNIX line separators. Searches content for href attributes", - "operationId": "getEmailLinks", - "summary": "Parse and return list of links found in an email (only works for HTML content)" - } - }, - "/emails/{emailId}/raw": { - "get": { - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK" - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns a raw, unparsed, and unprocessed email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawEmailJson endpoint", - "operationId": "getRawEmailContents", - "summary": "Get raw email string. Returns unparsed raw SMTP message with headers and body." - } - }, - "/emails/{emailId}/raw/json": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/RawEmailJson" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns a raw, unparsed, and unprocessed email wrapped in a JSON response object for easier handling when compared with the getRawEmail text/plain response", - "operationId": "getRawEmailJson", - "summary": "Get raw email in JSON. Unparsed SMTP message in JSON wrapper format." - } - }, - "/emails/{emailId}/read": { - "patch": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "default": true, - "description": "What value to assign to email read property. Default true.", - "in": "query", - "name": "read", - "required": false, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailPreview" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Marks an email as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread", - "operationId": "markAsRead", - "summary": "Mark an email as read or unread" - } - }, - "/emails/{emailId}/screenshot/base64": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/GetEmailScreenshotOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailScreenshotResult" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Capture image of email screenshot and return as base64 encoded string. Useful for embedding in HTML. Be careful as this may contain sensitive information.", - "operationId": "getEmailScreenshotAsBase64", - "summary": "Take a screenshot of an email in a browser and return base64 encoded string" - } - }, - "/emails/{emailId}/screenshot/binary": { - "post": { - "consumes": [ - "application/json" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/GetEmailScreenshotOptions" - } - } - ], - "responses": { - "200": { - "description": "OK" - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns binary octet-stream of screenshot of the given email", - "operationId": "getEmailScreenshotAsBinary", - "summary": "Take a screenshot of an email in a browser" - } - }, - "/emails/{emailId}/summary": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "in": "query", - "name": "decode", - "required": false, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailPreview" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns a email summary object with headers. To retrieve the body see getEmail and to get raw unparsed email use the getRawEmail endpoints", - "operationId": "getEmailSummary", - "summary": "Get email data including headers but not body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController." - } - }, - "/emails/{emailId}/textLines": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email to fetch text for", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "description": "Decode HTML entities", - "in": "query", - "name": "decodeHtmlEntities", - "required": false, - "type": "boolean" - }, - { - "description": "Line separator character", - "in": "query", - "name": "lineSeparator", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailTextLinesResult" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Parse an email body and return the content as an array of strings. HTML parsing uses JSoup and UNIX line separators.", - "operationId": "getEmailTextLines", - "summary": "Parse and return text from an email, stripping HTML and decoding encoded characters" - } - }, - "/emails/{emailId}/urls": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailPreviewUrls" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Get a list of URLs for email content as text/html or raw SMTP message for viewing the message in a browser.", - "operationId": "getEmailPreviewURLs", - "summary": "Get email URLs for viewing in browser or downloading" - } - }, - "/emails/{emailId}/validate": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string" - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/ValidationDto" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Validate the HTML content of email if HTML is found. Considered valid if no HTML is present.", - "operationId": "validateEmail", - "summary": "Validate email HTML contents" - } - }, - "/emptyInbox": { - "delete": { - "parameters": [ - { - "description": "ID of inbox to empty", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "CommonActionsController" - ], - "description": "Deletes all emails", - "operationId": "emptyInbox", - "summary": "Delete all emails in an inbox" - } - }, - "/expired": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in inbox sent email list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox sent email list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Optionally filter by inbox ID", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageExpiredInboxRecordProjection" - } - } - }, - "tags": [ - "ExpiredController" - ], - "description": "Inboxes created with an expiration date will expire after the given date. An ExpiredInboxRecord is created that records the inboxes old ID and email address. You can still read emails in the inbox (using the inboxes old ID) but the email address associated with the inbox can no longer send or receive emails. Fetch expired inbox records to view the old inboxes properties", - "operationId": "getExpiredInboxes", - "summary": "List records of expired inboxes" - } - }, - "/expired/defaults": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ExpirationDefaults" - } - } - }, - "tags": [ - "ExpiredController" - ], - "description": "Return default times used for inbox expiration", - "operationId": "getExpirationDefaults", - "summary": "Get default expiration settings" - } - }, - "/expired/inbox/{inboxId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of inbox you want to retrieve (not the inbox ID)", - "format": "uuid", - "in": "path", - "name": "inboxId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ExpiredInboxDto" - } - } - }, - "tags": [ - "ExpiredController" - ], - "description": "Use the inboxId to return an ExpiredInboxRecord if an inbox has expired. Inboxes expire and are disabled if an expiration date is set or plan requires. Returns 404 if no expired inbox is found for the inboxId", - "operationId": "getExpiredInboxByInboxId", - "summary": "Get expired inbox record for a previously existing inbox" - } - }, - "/expired/{expiredId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of the ExpiredInboxRecord you want to retrieve. This is different from the ID of the inbox you are interested in. See other methods for getting ExpiredInboxRecord for an inbox inboxId", - "format": "uuid", - "in": "path", - "name": "expiredId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ExpiredInboxDto" - } - } - }, - "tags": [ - "ExpiredController" - ], - "description": "Inboxes created with an expiration date will expire after the given date and be moved to an ExpiredInbox entity. You can still read emails in the inbox but it can no longer send or receive emails. Fetch the expired inboxes to view the old inboxes properties", - "operationId": "getExpiredInboxRecord", - "summary": "Get an expired inbox record" - } - }, - "/export": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "enum": [ - "INBOXES", - "CONTACTS", - "ATTACHMENTS", - "EMAILS" - ], - "in": "query", - "name": "exportType", - "required": true, - "type": "string" - }, - { - "in": "query", - "name": "apiKey", - "required": true, - "type": "string" - }, - { - "enum": [ - "CSV_DEFAULT", - "CSV_EXCEL" - ], - "in": "query", - "name": "outputFormat", - "required": true, - "type": "string" - }, - { - "in": "query", - "name": "filter", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "listSeparatorToken", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "excludePreviouslyExported", - "required": false, - "type": "boolean" - }, - { - "format": "date-time", - "in": "query", - "name": "createdEarliestTime", - "required": false, - "type": "string" - }, - { - "format": "date-time", - "in": "query", - "name": "createdOldestTime", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "format": "byte", - "type": "string" - } - } - }, - "tags": [ - "ExportController" - ], - "operationId": "exportEntities", - "summary": "Export inboxes link callable via browser" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "enum": [ - "INBOXES", - "CONTACTS", - "ATTACHMENTS", - "EMAILS" - ], - "in": "query", - "name": "exportType", - "required": true, - "type": "string" - }, - { - "in": "query", - "name": "apiKey", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ExportOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ExportLink" - } - } - }, - "tags": [ - "ExportController" - ], - "operationId": "getExportLink", - "summary": "Get export link" - } - }, - "/forms": { - "post": { - "consumes": [ - "application/x-www-form-urlencoded", - "multipart/form-data" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "The email address that submitted form should be sent to.", - "in": "formData", - "name": "_to", - "type": "string" - }, - { - "description": "Optional subject of the email that will be sent.", - "in": "formData", - "name": "_subject", - "type": "string" - }, - { - "description": "Email address of the submitting user. Include this if you wish to record the submitters email address and reply to it later.", - "in": "formData", - "name": "_emailAddress", - "type": "string" - }, - { - "description": "Optional success message to display if no _redirectTo present.", - "in": "formData", - "name": "_successMessage", - "type": "string" - }, - { - "description": "Optional but recommended field that catches spammers out. Include as a hidden form field but LEAVE EMPTY. Spam-bots will usually fill every field. If the _spamCheck field is filled the form submission will be ignored.", - "in": "formData", - "name": "_spamCheck", - "type": "string" - }, - { - "description": "All other parameters or fields will be accepted and attached to the sent email. This includes files and any HTML form field with a name. These fields will become the body of the email that is sent.", - "in": "formData", - "name": "otherParameters", - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - } - }, - "tags": [ - "FormController" - ], - "description": "This endpoint allows you to submit HTML forms and receive the field values and files via email. \n\n#### Parameters\nThe endpoint looks for special meta parameters in the form fields OR in the URL request parameters. The meta parameters can be used to specify the behaviour of the email. \n\nYou must provide at-least a `_to` email address to tell the endpoint where the form should be emailed. These can be submitted as hidden HTML input fields with the corresponding `name` attributes or as URL query parameters such as `?_to=test@example.com`\n\nThe endpoint takes all other form fields that are named and includes them in the message body of the email. Files are sent as attachments.\n\n#### Submitting\nThis endpoint accepts form submission via POST method. It accepts `application/x-www-form-urlencoded`, and `multipart/form-data` content-types.\n\n#### HTML Example\n```html\n\n \n \n \n\n```\n\n#### URL Example\n```html\n
\n \n \n
\n```\n\n\n\nThe email address is specified by a `_to` field OR is extracted from an email alias specified by a `_toAlias` field (see the alias controller for more information). \nEndpoint accepts . \nYou can specify a content type in HTML forms using the `enctype` attribute, for instance: `
`.\n\n", - "operationId": "submitForm", - "summary": "Submit a form to be parsed and sent as an email to an address determined by the form fields" - } - }, - "/forwarders": { - "delete": { - "parameters": [ - { - "description": "Optional inbox id to attach forwarder to", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Delete inbox forwarders. Accepts optional inboxId filter.", - "operationId": "deleteInboxForwarders", - "summary": "Delete inbox forwarders" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Optional inbox id to get forwarders from", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in inbox forwarder list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox forwarder list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional search filter", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageInboxForwarderDto" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "List all forwarders attached to an inbox", - "operationId": "getInboxForwarders", - "summary": "List inbox forwarders" - }, - "patch": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/TestNewInboxForwarderOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxForwarderTestResult" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Test new inbox forwarder", - "operationId": "testNewInboxForwarder", - "summary": "Test new inbox forwarder" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox id to attach forwarder to", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateInboxForwarderOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxForwarderDto" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Create a new inbox rule for forwarding, blocking, and allowing emails when sending and receiving", - "operationId": "createNewInboxForwarder", - "summary": "Create an inbox forwarder" - }, - "put": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of inbox", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/InboxForwarderTestOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxForwarderTestResult" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Test inbox forwarders for inbox", - "operationId": "testInboxForwardersForInbox", - "summary": "Test inbox forwarders for inbox" - } - }, - "/forwarders/events": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in inbox forwarder event list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox forwarder event list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "description": "Optional inbox ID to filter for", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "description": "Optional email ID to filter for", - "format": "uuid", - "in": "query", - "name": "emailId", - "required": false, - "type": "string" - }, - { - "description": "Optional sent ID to filter for", - "format": "uuid", - "in": "query", - "name": "sentId", - "required": false, - "type": "string" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageInboxForwarderEvents" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Get all inbox forwarder events", - "operationId": "getAllInboxForwarderEvents", - "summary": "Get all inbox forwarder events" - } - }, - "/forwarders/events/{eventId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of inbox forwarder event", - "format": "uuid", - "in": "path", - "name": "eventId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxForwarderEventDto" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Get forwarder event", - "operationId": "getForwarderEvent", - "summary": "Get a forwarder event" - } - }, - "/forwarders/{id}": { - "delete": { - "parameters": [ - { - "description": "ID of inbox forwarder", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Delete inbox forwarder", - "operationId": "deleteInboxForwarder", - "summary": "Delete an inbox forwarder" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of inbox forwarder", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxForwarderDto" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Get inbox forwarder", - "operationId": "getInboxForwarder", - "summary": "Get an inbox forwarder" - }, - "put": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of inbox forwarder", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateInboxForwarderOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxForwarderDto" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Update inbox forwarder", - "operationId": "updateInboxForwarder", - "summary": "Update an inbox forwarder" - } - }, - "/forwarders/{id}/events": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of inbox forwarder", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in inbox forwarder event list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox forwarder event list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageInboxForwarderEvents" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Get inbox forwarder events", - "operationId": "getInboxForwarderEvents", - "summary": "Get an inbox forwarder event list" - } - }, - "/forwarders/{id}/events/{eventId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of inbox forwarder", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "description": "ID of inbox forwarder event", - "format": "uuid", - "in": "path", - "name": "eventId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxForwarderEventDto" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Get inbox forwarder event", - "operationId": "getInboxForwarderEvent", - "summary": "Get an inbox forwarder event" - } - }, - "/forwarders/{id}/test": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of inbox forwarder", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/InboxForwarderTestOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxForwarderTestResult" - } - } - }, - "tags": [ - "InboxForwarderController" - ], - "description": "Test an inbox forwarder", - "operationId": "testInboxForwarder", - "summary": "Test an inbox forwarder" - } - }, - "/groups": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "items": { - "$ref": "#/definitions/GroupProjection" - }, - "type": "array" - } - } - }, - "tags": [ - "GroupController" - ], - "operationId": "getGroups", - "summary": "Get all groups" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateGroupOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/GroupDto" - } - } - }, - "tags": [ - "GroupController" - ], - "operationId": "createGroup", - "summary": "Create a group" - } - }, - "/groups/paginated": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageGroupProjection" - } - } - }, - "tags": [ - "GroupController" - ], - "operationId": "getAllGroups", - "summary": "Get all Contact Groups in paginated format" - } - }, - "/groups/{groupId}": { - "delete": { - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "groupId", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "GroupController" - ], - "operationId": "deleteGroup", - "summary": "Delete group" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "groupId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GroupDto" - } - } - }, - "tags": [ - "GroupController" - ], - "operationId": "getGroup", - "summary": "Get group" - } - }, - "/groups/{groupId}/contacts": { - "delete": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "groupId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateGroupContacts" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GroupContactsDto" - } - } - }, - "tags": [ - "GroupController" - ], - "operationId": "removeContactsFromGroup", - "summary": "Remove contacts from a group" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "groupId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GroupContactsDto" - } - } - }, - "tags": [ - "GroupController" - ], - "operationId": "getGroupWithContacts", - "summary": "Get group and contacts belonging to it" - }, - "put": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "groupId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateGroupContacts" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GroupContactsDto" - } - } - }, - "tags": [ - "GroupController" - ], - "operationId": "addContactsToGroup", - "summary": "Add contacts to a group" - } - }, - "/groups/{groupId}/contacts-paginated": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "groupId", - "required": true, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in group contact pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in group contact pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageContactProjection" - } - } - }, - "tags": [ - "GroupController" - ], - "description": "Get group and paginated contacts belonging to it", - "operationId": "getGroupWithContactsPaginated" - } - }, - "/guest-portal": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "items": { - "$ref": "#/definitions/GuestPortalDto" - }, - "type": "array" - } - } - }, - "tags": [ - "GuestPortalController" - ], - "description": "Get portals", - "operationId": "getGuestPortals", - "summary": "Get guest portals" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreatePortalOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GuestPortalDto" - } - } - }, - "tags": [ - "GuestPortalController" - ], - "description": "Create a guest login page for customers or clients to access assigned email addresses", - "operationId": "createGuestPortal", - "summary": "Create a portal page for your customers or clients to log into email accounts and view emails." - } - }, - "/guest-portal/user": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Optional portal ID", - "format": "uuid", - "in": "query", - "name": "portalId", - "required": false, - "type": "string" - }, - { - "description": "Optional search term", - "in": "query", - "name": "search", - "required": false, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageGuestPortalUsers" - } - } - }, - "tags": [ - "GuestPortalController" - ], - "description": "Get all customers for a portal", - "operationId": "getAllGuestPortalUsers", - "summary": "Get all guest users for portal" - } - }, - "/guest-portal/user/{guestId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "guestId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GuestPortalUserDto" - } - } - }, - "tags": [ - "GuestPortalController" - ], - "description": "Get customer by ID", - "operationId": "getGuestPortalUserById", - "summary": "Get guest user" - } - }, - "/guest-portal/{portalId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "portalId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GuestPortalDto" - } - } - }, - "tags": [ - "GuestPortalController" - ], - "description": "Fetch a customer guest portal", - "operationId": "getGuestPortal", - "summary": "Get a client email portal" - } - }, - "/guest-portal/{portalId}/user": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "portalId", - "required": true, - "type": "string" - }, - { - "description": "Optional search term", - "in": "query", - "name": "search", - "required": false, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageGuestPortalUsers" - } - } - }, - "tags": [ - "GuestPortalController" - ], - "description": "Get customers for a portal", - "operationId": "getGuestPortalUsers", - "summary": "Get all guest users for portal" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "portalId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreatePortalUserOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GuestPortalUserCreateDto" - } - } - }, - "tags": [ - "GuestPortalController" - ], - "description": "Add customer to portal", - "operationId": "createGuestPortalUser", - "summary": "Create a portal guest user" - } - }, - "/guest-portal/{portalId}/user/{guestId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "portalId", - "required": true, - "type": "string" - }, - { - "format": "uuid", - "in": "path", - "name": "guestId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GuestPortalUserDto" - } - } - }, - "tags": [ - "GuestPortalController" - ], - "description": "Get customer for portal", - "operationId": "getGuestPortalUser", - "summary": "Get guest user for portal" - } - }, - "/imap/server/fetch": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox ID to search", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "format": "int64", - "in": "query", - "name": "seqNum", - "required": true, - "type": "integer" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ImapServerFetchResult" - } - } - }, - "tags": [ - "ImapController" - ], - "operationId": "imapServerFetch", - "summary": "Fetch message in an inbox" - } - }, - "/imap/server/get": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Email ID to get", - "format": "uuid", - "in": "query", - "name": "emailId", - "required": true, - "type": "string" - }, - { - "description": "Inbox ID to search", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ImapServerGetResult" - } - } - }, - "tags": [ - "ImapController" - ], - "operationId": "imapServerGet", - "summary": "Get a message by email ID" - } - }, - "/imap/server/list": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox ID to list", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ImapServerListOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ImapServerListResult" - } - } - }, - "tags": [ - "ImapController" - ], - "operationId": "imapServerList", - "summary": "List messages in an inbox" - } - }, - "/imap/server/mailbox": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox email address to create", - "in": "query", - "name": "name", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ImapServerMailboxResult" - } - } - }, - "tags": [ - "ImapController" - ], - "operationId": "imapServerMailbox", - "summary": "Create a new mailbox if possible" - } - }, - "/imap/server/search": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox ID to search", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ImapServerSearchOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ImapServerSearchResult" - } - } - }, - "tags": [ - "ImapController" - ], - "operationId": "imapServerSearch", - "summary": "Search messages in an inbox" - } - }, - "/imap/server/status": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox ID to list", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ImapServerStatusOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ImapServerStatusResult" - } - } - }, - "tags": [ - "ImapController" - ], - "operationId": "imapServerStatus", - "summary": "Get status for mailbox" - } - }, - "/imap/server/update-flags": { - "post": { - "consumes": [ - "application/json" - ], - "parameters": [ - { - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ImapUpdateFlagsOptions" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "ImapController" - ], - "description": "Update message flags", - "operationId": "imapServerUpdateFlags" - } - }, - "/inboxes": { - "delete": { - "parameters": [], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "InboxController" - ], - "description": "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.", - "operationId": "deleteAllInboxes", - "summary": "Delete all inboxes" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 100, - "description": "Optional result size limit. Note an automatic limit of 100 results is applied. See the paginated `getAllEmails` for larger queries.", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by created after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional exclude catch all inboxes", - "in": "query", - "name": "excludeCatchAllInboxes", - "required": false, - "type": "boolean" - }, - { - "description": "Optional filter by created before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "collectionFormat": "multi", - "description": "Optional inboxIds to include in result", - "in": "query", - "items": { - "format": "uuid", - "type": "string" - }, - "name": "include", - "required": false, - "type": "array" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "items": { - "$ref": "#/definitions/InboxDto" - }, - "type": "array" - } - } - }, - "tags": [ - "InboxController" - ], - "deprecated": true, - "description": "List the inboxes you have created. Note use of the more advanced `getAllInboxes` is recommended and allows paginated access using a limit and sort parameter.", - "operationId": "getInboxes", - "summary": "List Inboxes and email addresses" - }, - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "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. Note domain types must match the inbox type - so `SMTP` inboxes will only work with `SMTP` type domains. Avoid `SMTP` inboxes if you need to send emails as they can only receive. 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.", - "in": "query", - "name": "emailAddress", - "required": false, - "type": "string" - }, - { - "collectionFormat": "multi", - "description": "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.", - "in": "query", - "items": { - "type": "string" - }, - "name": "tags", - "required": false, - "type": "array" - }, - { - "description": "Optional name of the inbox. Displayed in the dashboard for easier search and used as the sender name when sending emails.", - "in": "query", - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "Optional description of the inbox for labelling purposes. Is shown in the dashboard and can be used with", - "in": "query", - "name": "description", - "required": false, - "type": "string" - }, - { - "description": "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. Note this feature is only available for `HTTP` inbox types.", - "in": "query", - "name": "useDomainPool", - "required": false, - "type": "boolean" - }, - { - "description": "Is the inbox a favorite. Marking an inbox as a favorite is typically done in the dashboard for quick access or filtering", - "in": "query", - "name": "favourite", - "required": false, - "type": "boolean" - }, - { - "description": "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.", - "format": "date-time", - "in": "query", - "name": "expiresAt", - "required": false, - "type": "string" - }, - { - "description": "Number of milliseconds that inbox should exist for", - "format": "int64", - "in": "query", - "name": "expiresIn", - "required": false, - "type": "integer" - }, - { - "description": "DEPRECATED (team access is always true). Grant team access to this inbox and the emails that belong to it for team members of your organization.", - "in": "query", - "name": "allowTeamAccess", - "required": false, - "type": "boolean" - }, - { - "description": "HTTP (default) or SMTP inbox type. HTTP inboxes are default and best solution for most cases. SMTP inboxes are more reliable for public inbound email consumption (but do not support sending emails). When using custom domains the domain type must match the inbox type. HTTP inboxes are processed by AWS SES while SMTP inboxes use a custom mail server running at `mxslurp.click`.", - "enum": [ - "HTTP_INBOX", - "SMTP_INBOX" - ], - "in": "query", - "name": "inboxType", - "required": false, - "type": "string" - }, - { - "description": "Virtual inbox prevents any outbound emails from being sent. It creates sent email records but will never send real emails to recipients. Great for testing and faking email sending.", - "in": "query", - "name": "virtualInbox", - "required": false, - "type": "boolean" - }, - { - "description": "Use a shorter email address under 31 characters", - "in": "query", - "name": "useShortAddress", - "required": false, - "type": "boolean" - }, - { - "description": "ID of custom domain to use for email address.", - "format": "uuid", - "in": "query", - "name": "domainId", - "required": false, - "type": "string" - }, - { - "description": "FQDN domain name for the domain you have verified. Will be appended with a randomly assigned recipient name. Use the `emailAddress` option instead to specify the full custom inbox.", - "in": "query", - "name": "domainName", - "required": false, - "type": "string" - }, - { - "description": "Prefix to add before the email address for easier labelling or identification.", - "in": "query", - "name": "prefix", - "required": false, - "type": "string" - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/InboxDto" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "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. ", - "operationId": "createInbox", - "summary": "Create an inbox email address. An inbox has a real email address and can send and receive emails. Inboxes can be either `SMTP` or `HTTP` inboxes." - } - }, - "/inboxes/automations": { - "get": { - "parameters": [], - "responses": { - "201": { - "description": "Created" - } - }, - "tags": [ - "InboxController" - ], - "description": "Check if an inbox has automations.", - "operationId": "doesInboxHaveAutomations", - "summary": "Does inbox have automations" - } - }, - "/inboxes/available": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "query", - "name": "emailAddress", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailAvailableResult" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Returns whether an email address is available", - "operationId": "isEmailAddressAvailable", - "summary": "Is email address available" - } - }, - "/inboxes/by-description": { - "delete": { - "parameters": [ - { - "in": "query", - "minLength": 1, - "name": "description", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "InboxController" - ], - "description": "Permanently delete all inboxes by description", - "operationId": "deleteAllInboxesByDescription", - "summary": "Delete inboxes by description" - } - }, - "/inboxes/by-name": { - "delete": { - "parameters": [ - { - "in": "query", - "minLength": 1, - "name": "name", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "InboxController" - ], - "description": "Permanently delete all inboxes by name", - "operationId": "deleteAllInboxesByName", - "summary": "Delete inboxes by name" - } - }, - "/inboxes/by-tag": { - "delete": { - "parameters": [ - { - "in": "query", - "minLength": 1, - "name": "tag", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "InboxController" - ], - "description": "Permanently delete all inboxes by tag", - "operationId": "deleteAllInboxesByTag", - "summary": "Delete inboxes by tag" - } - }, - "/inboxes/byEmailAddress": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "query", - "minLength": 1, - "name": "emailAddress", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxByEmailAddressResult" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get a inbox result by email address", - "operationId": "getInboxByEmailAddress", - "summary": "Search for an inbox with the provided email address" - } - }, - "/inboxes/byName": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "query", - "minLength": 1, - "name": "name", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxByNameResult" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get a inbox result by name", - "operationId": "getInboxByName", - "summary": "Search for an inbox with the given name" - } - }, - "/inboxes/count": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/CountDto" - } - } - }, - "tags": [ - "InboxController" - ], - "operationId": "getInboxCount", - "summary": "Get total inbox count" - } - }, - "/inboxes/exists": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Email address", - "in": "query", - "name": "emailAddress", - "required": true, - "type": "string" - }, - { - "description": "Allow catch all", - "in": "query", - "name": "allowCatchAll", - "required": false, - "type": "boolean" - }, - { - "description": "IP address", - "in": "query", - "name": "ipAddress", - "required": false, - "type": "string" - }, - { - "description": "Sender", - "in": "query", - "name": "sender", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxExistsDto" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Check if inboxes exist by email address. Useful if you are sending emails to mailslurp addresses", - "operationId": "doesInboxExist", - "summary": "Does inbox exist" - } - }, - "/inboxes/expired": { - "delete": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Optional expired at before flag to flush expired inboxes that have expired before the given time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/FlushExpiredInboxesResult" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Remove any expired inboxes for your account (instead of waiting for scheduled removal on server)", - "operationId": "flushExpired", - "summary": "Remove expired inboxes" - } - }, - "/inboxes/getLatestEmail": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of the inbox you want to get the latest email from", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": true, - "type": "string" - }, - { - "description": "Timeout milliseconds to wait for latest email", - "format": "int64", - "in": "query", - "name": "timeoutMillis", - "required": true, - "type": "integer" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Email" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get the newest email in an inbox or wait for one to arrive", - "operationId": "getLatestEmailInInbox", - "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not have arrived yet." - } - }, - "/inboxes/ids": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxIdsResult" - } - } - }, - "tags": [ - "InboxController" - ], - "deprecated": true, - "description": "Get list of inbox IDs", - "operationId": "getInboxIds", - "summary": "Get all inbox IDs" - } - }, - "/inboxes/imap-access": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox ID", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ImapAccessDetails" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get IMAP access usernames and passwords", - "operationId": "getImapAccess" - }, - "patch": { - "consumes": [ - "application/json" - ], - "parameters": [ - { - "description": "Inbox ID", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateImapAccessOptions" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "InboxController" - ], - "description": "Update IMAP access usernames and passwords", - "operationId": "updateImapAccess" - } - }, - "/inboxes/imap-smtp-access": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox ID", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ImapSmtpAccessDetails" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get IMAP and SMTP access usernames and passwords", - "operationId": "getImapSmtpAccess" - } - }, - "/inboxes/imap-smtp-access/env": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox ID", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get IMAP and SMTP access details in .env format", - "operationId": "getImapSmtpAccessEnv" - } - }, - "/inboxes/imap-smtp-access/servers": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ImapSmtpAccessServers" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get IMAP and SMTP server hosts", - "operationId": "getImapSmtpAccessServers" - } - }, - "/inboxes/offset-paginated": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "default": false, - "description": "Optionally filter results for favourites only", - "in": "query", - "name": "favourite", - "required": false, - "type": "boolean" - }, - { - "description": "Optionally filter by search words partial matching ID, tags, name, and email address", - "in": "query", - "name": "search", - "required": false, - "type": "string" - }, - { - "description": "Optionally filter by tags. Will return inboxes that include given tags", - "in": "query", - "name": "tag", - "required": false, - "type": "string" - }, - { - "deprecated": true, - "description": "DEPRECATED. Optionally filter by team access.", - "in": "query", - "name": "teamAccess", - "required": false, - "type": "boolean" - }, - { - "description": "Optional filter by created after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by created before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by inbox type", - "enum": [ - "HTTP_INBOX", - "SMTP_INBOX" - ], - "in": "query", - "name": "inboxType", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by inbox function", - "enum": [ - "ALIAS", - "THREAD", - "CATCH_ALL", - "CONNECTOR", - "ACCOUNT", - "GUEST", - "OAUTH_CONNECTION_GMAIL" - ], - "in": "query", - "name": "inboxFunction", - "required": false, - "type": "string" - }, - { - "description": "Optional domain ID filter", - "format": "uuid", - "in": "query", - "name": "domainId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageInboxProjection" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "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.", - "operationId": "getAllInboxesOffsetPaginated", - "summary": "List All Inboxes Offset Paginated" - } - }, - "/inboxes/organization": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional search filter", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by created after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by created before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageOrganizationInboxProjection" - } - } - }, - "tags": [ - "InboxController" - ], - "deprecated": true, - "description": "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). ", - "operationId": "getOrganizationInboxes", - "summary": "List Organization Inboxes Paginated" - } - }, - "/inboxes/outboxes": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageInboxProjection" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "List inboxes that have sent emails", - "operationId": "getOutboxes", - "summary": "List all inboxes with sent emails" - } - }, - "/inboxes/paginated": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "default": false, - "description": "Optionally filter results for favourites only", - "in": "query", - "name": "favourite", - "required": false, - "type": "boolean" - }, - { - "description": "Optionally filter by search words partial matching ID, tags, name, and email address", - "in": "query", - "name": "search", - "required": false, - "type": "string" - }, - { - "description": "Optionally filter by tags. Will return inboxes that include given tags", - "in": "query", - "name": "tag", - "required": false, - "type": "string" - }, - { - "deprecated": true, - "description": "DEPRECATED. Optionally filter by team access.", - "in": "query", - "name": "teamAccess", - "required": false, - "type": "boolean" - }, - { - "description": "Optional filter by created after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by created before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by inbox type", - "enum": [ - "HTTP_INBOX", - "SMTP_INBOX" - ], - "in": "query", - "name": "inboxType", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by inbox function", - "enum": [ - "ALIAS", - "THREAD", - "CATCH_ALL", - "CONNECTOR", - "ACCOUNT", - "GUEST", - "OAUTH_CONNECTION_GMAIL" - ], - "in": "query", - "name": "inboxFunction", - "required": false, - "type": "string" - }, - { - "description": "Optional domain ID filter", - "format": "uuid", - "in": "query", - "name": "domainId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageInboxProjection" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "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.", - "operationId": "getAllInboxes", - "summary": "List All Inboxes Paginated" - } - }, - "/inboxes/plus-addresses": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in inbox tracking pixel list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox tracking pixel list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional inboxId filter", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PagePlusAddressProjection" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Returns paginated list of all plus alias addresses found for in account based on received emails that used the inbox address with a +xyz alias.", - "operationId": "getAllPlusAddresses", - "summary": "Get all sub address plus address aliases for an inbox" - } - }, - "/inboxes/plus-addresses/{plusAddressId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of the plus address you want to fetch", - "format": "uuid", - "in": "path", - "name": "plusAddressId", - "required": true, - "type": "string" - }, - { - "description": "ID of the inbox you want to filter for", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PlusAddressDto" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Returns a plus address object based on emails that used the inbox address with a +xyz alias.", - "operationId": "getInboxPlusAddressById", - "summary": "Get sub address plus address by ID" - } - }, - "/inboxes/scheduled-jobs": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in scheduled job list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in scheduled job list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageScheduledJobs" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Schedule sending of emails using scheduled jobs. These can be inbox or account level.", - "operationId": "getAllScheduledJobs", - "summary": "Get all scheduled email sending jobs for account" - } - }, - "/inboxes/scheduled-jobs/{jobId}": { - "delete": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "jobId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ScheduledJobDto" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get a scheduled email job and cancel it. Will fail if status of job is already cancelled, failed, or complete.", - "operationId": "cancelScheduledJob", - "summary": "Cancel a scheduled email job" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "jobId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ScheduledJobDto" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get a scheduled email job details.", - "operationId": "getScheduledJob", - "summary": "Get a scheduled email job" - } - }, - "/inboxes/search": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchInboxesOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageInboxProjection" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Search inboxes and return 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.", - "operationId": "searchInboxes", - "summary": "Search all inboxes and return matching inboxes" - } - }, - "/inboxes/smtp-access": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Inbox ID", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SmtpAccessDetails" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get SMTP access usernames and passwords", - "operationId": "getSmtpAccess" - }, - "patch": { - "consumes": [ - "application/json" - ], - "parameters": [ - { - "description": "Inbox ID", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateSmtpAccessOptions" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "InboxController" - ], - "description": "Update SMTP access usernames and passwords", - "operationId": "updateSmtpAccess" - } - }, - "/inboxes/tags": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional search filter", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "items": { - "type": "string" - }, - "type": "array" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get all inbox tags", - "operationId": "getInboxTags", - "summary": "Get inbox tags" - } - }, - "/inboxes/tags/inboxes": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional search filter", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Tag to filter by", - "in": "query", - "name": "tag", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageInboxProjection" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get all inboxes for a given inbox tag", - "operationId": "getInboxesByTag", - "summary": "Get inboxes for a tag" - } - }, - "/inboxes/tags/paginated": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", + "name": "searchFilter", "required": false, "type": "string" }, { - "description": "Optional search filter", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageInboxTags" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Get all inbox tags paginated", - "operationId": "getInboxTagsPaginated", - "summary": "Get inbox tags paginated" - } - }, - "/inboxes/withDefaults": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/InboxDto" - } - } - }, - "tags": [ - "InboxController" - ], - "operationId": "createInboxWithDefaults", - "summary": "Create an inbox with default options. Uses MailSlurp domain pool address and is private." - } - }, - "/inboxes/withOptions": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateInboxDto" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/InboxDto" - } - } - }, - "tags": [ - "InboxController" - ], - "description": "Additional endpoint that allows inbox creation with request body options. Can be more flexible that other methods for some clients.", - "operationId": "createInboxWithOptions", - "summary": "Create an inbox with options. Extended options for inbox creation." - } - }, - "/inboxes/{inboxId}": { - "delete": { - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "inboxId", - "required": true, + "description": "Optional filter emails received after given date time. If unset will use time 24hours prior to now.", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "InboxController" - ], - "description": "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.", - "operationId": "deleteInbox", - "summary": "Delete inbox" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ + }, + { + "description": "Optional filter emails received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Sync connectors", + "in": "query", + "name": "syncConnectors", + "required": false, + "type": "boolean" + }, { + "description": "Optional plus address ID filter", "format": "uuid", - "in": "path", - "name": "inboxId", - "required": true, + "in": "query", + "name": "plusAddressId", + "required": false, "type": "string" + }, + { + "description": "Optional filter emails that are favourited", + "in": "query", + "name": "favourited", + "required": false, + "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/InboxDto" + "$ref": "#/definitions/PageEmailProjection" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Returns an inbox's properties, including its email address and ID.", - "operationId": "getInbox", - "summary": "Get Inbox. Returns properties of an inbox." + "description": "By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", + "operationId": "getEmailsPaginated", + "summary": "Get all emails in all inboxes in paginated form. Email API list all." }, - "patch": { + "post": { "consumes": [ "application/json" ], - "produces": [ - "application/octet-stream" - ], "parameters": [ { + "description": "ID of the inbox you want to send the email from", "format": "uuid", - "in": "path", + "in": "query", "name": "inboxId", - "required": true, + "required": false, "type": "string" }, + { + "description": "Use domain pool. Optionally create inbox to send from using the mailslurp domain pool.", + "in": "query", + "name": "useDomainPool", + "required": false, + "type": "boolean" + }, + { + "description": "Optionally create inbox to send from that is a virtual inbox and won't send to external addresses", + "in": "query", + "name": "virtualSend", + "required": false, + "type": "boolean" + }, { "in": "body", "name": "body", "required": true, "schema": { - "$ref": "#/definitions/UpdateInboxOptions" + "$ref": "#/definitions/SendEmailOptions" } } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxDto" - } + "201": { + "description": "Created" } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Update editable fields on an inbox", - "operationId": "updateInbox", - "summary": "Update Inbox. Change name and description. Email address is not editable." - }, + "description": "Alias for `InboxController.sendEmail` method - see original method for full details. Sends an email from a given inbox that you have created. If no inbox is supplied a random inbox will be created for you and used to send the email.", + "operationId": "sendEmailSourceOptional", + "summary": "Send email" + } + }, + "/emails/can-send": { "post": { "consumes": [ "application/json" ], + "produces": [ + "application/octet-stream" + ], "parameters": [ { "description": "ID of the inbox you want to send the email from", "format": "uuid", - "in": "path", + "in": "query", "name": "inboxId", "required": true, "type": "string" @@ -10385,19 +2001,22 @@ } ], "responses": { - "201": { - "description": "Created" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CanSendEmailResults" + } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Send an email from an inbox's email address. \nThe 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`.", - "operationId": "sendEmail", - "summary": "Send Email" + "description": "Can user send email to given recipient or is the recipient blocked", + "operationId": "canSend", + "summary": "Check if email can be sent and options are valid." } }, - "/inboxes/{inboxId}/confirm": { + "/emails/check-email-client-support": { "post": { "consumes": [ "application/json" @@ -10406,173 +2025,200 @@ "application/octet-stream" ], "parameters": [ - { - "description": "ID of the inbox you want to send the email from", - "format": "uuid", - "in": "path", - "name": "inboxId", - "required": true, - "type": "string" - }, { "in": "body", "name": "body", "required": true, "schema": { - "$ref": "#/definitions/SendEmailOptions" + "$ref": "#/definitions/CheckEmailClientSupportOptions" } } ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/SentEmailDto" + "$ref": "#/definitions/CheckEmailClientSupportResults" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Sister method for standard `sendEmail` method with the benefit of returning a `SentEmail` entity confirming the successful sending of the email with a link to the sent object created for it.", - "operationId": "sendEmailAndConfirm", - "summary": "Send email and return sent confirmation" + "description": "Evaluate the features used in an email body and return a report of email client support across different platforms and versions.", + "operationId": "checkEmailClientSupport", + "summary": "Show which email programs and devices support the features used in an email body." } }, - "/inboxes/{inboxId}/deleteAllInboxEmails": { - "delete": { + "/emails/emails/count": { + "get": { + "produces": [ + "application/octet-stream" + ], "parameters": [ { "format": "uuid", - "in": "path", + "in": "query", "name": "inboxId", - "required": true, + "required": false, "type": "string" } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Deletes all emails in an inbox. Be careful as emails cannot be recovered", - "operationId": "deleteAllInboxEmails", - "summary": "Delete all emails in a given inboxes." + "operationId": "getEmailCount", + "summary": "Get email count" } }, - "/inboxes/{inboxId}/delivery-status": { + "/emails/gravatarFor": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "format": "uuid", - "in": "path", - "name": "inboxId", + "in": "query", + "name": "emailAddress", "required": true, "type": "string" }, { - "default": 0, - "description": "Optional page index in delivery status list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in delivery status list pagination", - "format": "int32", "in": "query", "name": "size", "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, "type": "string" - }, + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GravatarUrl" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get gravatar url for email address", + "operationId": "getGravatarUrlForEmailAddress" + } + }, + "/emails/latest": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ { - "description": "Filter by created at before the given timestamp", - "format": "date-time", + + "description": "Optional set of inboxes to filter by. Only get the latest email from these inbox IDs. If not provided will search across all inboxes", "in": "query", - "name": "before", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "inboxIds", "required": false, - "type": "string" + "type": "array" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageDeliveryStatus" + "$ref": "#/definitions/Email" } } }, "tags": [ - "InboxController" + "EmailController" ], - "deprecated": true, - "description": "Get all email delivery statuses for an inbox", - "operationId": "getDeliveryStatusesByInboxId" + "description": "Get the newest email in all inboxes or in a passed set of inbox IDs", + "operationId": "getLatestEmail", + "summary": "Get latest email in all inboxes. Most recently received." } }, - "/inboxes/{inboxId}/emails": { + "/emails/latestIn": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "Id of inbox that emails belongs to", + "description": "ID of the inbox you want to get the latest email from", "format": "uuid", - "in": "path", + "in": "query", "name": "inboxId", "required": true, "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Email" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get the newest email in all inboxes or in a passed set of inbox IDs", + "operationId": "getLatestEmailInInbox_1", + "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not have arrived yet." + } + }, + "/emails/offset-paginated": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "collectionFormat": "multi", + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "inboxId", + "required": false, + "type": "array" }, { - "description": "Alias for limit. Assessed first before assessing any passed limit.", + "default": 0, + "description": "Optional page index in email list pagination", "format": "int32", "in": "query", - "maximum": 100, - "name": "size", + "name": "page", "required": false, "type": "integer" }, { - "description": "Limit the result set, ordered by received date time sort direction. Maximum 100. For more listing options see the email controller", + "default": 20, + "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", "format": "int32", "in": "query", "maximum": 100, - "name": "limit", + "name": "size", "required": false, "type": "integer" }, { - "description": "Sort the results by received date and direction ASC or DESC", + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", "enum": [ "ASC", "DESC" @@ -10583,109 +2229,108 @@ "type": "string" }, { - "description": "Maximum milliseconds to spend retrying inbox database until minCount emails are returned", - "format": "int64", + "default": false, + "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", "in": "query", - "name": "retryTimeout", + "name": "unreadOnly", "required": false, - "type": "integer" + "type": "boolean" }, { - "format": "int64", + "description": "Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body", "in": "query", - "name": "delayTimeout", + "name": "searchFilter", "required": false, - "type": "integer" + "type": "string" }, { - "description": "Minimum acceptable email count. Will cause request to hang (and retry) until minCount is satisfied or retryTimeout is reached.", - "format": "int64", + "description": "Optional filter emails received after given date time", + "format": "date-time", "in": "query", - "name": "minCount", + "name": "since", "required": false, - "type": "integer" + "type": "string" }, { + "description": "Optional filter emails received before given date time", + "format": "date-time", "in": "query", - "name": "unreadOnly", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails that are favourited", + "in": "query", + "name": "favourited", "required": false, "type": "boolean" }, { - "description": "Exclude emails received after this ISO 8601 date time", - "format": "date-time", + "description": "Sync connectors", "in": "query", - "name": "before", + "name": "syncConnectors", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Exclude emails received before this ISO 8601 date time", - "format": "date-time", + "description": "Optional plus address ID filter", + "format": "uuid", "in": "query", - "name": "since", + "name": "plusAddressId", "required": false, "type": "string" + }, + { + "collectionFormat": "multi", + "description": "Optional list of IDs to include in result", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "include", + "required": false, + "type": "array" } ], "responses": { "200": { "description": "OK", "schema": { - "items": { - "$ref": "#/definitions/EmailPreview" - }, - "type": "array" + "$ref": "#/definitions/PageEmailProjection" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "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", - "operationId": "getEmails", - "summary": "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." + "description": "By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", + "operationId": "getEmailsOffsetPaginated", + "summary": "Get all emails in all inboxes in paginated form. Email API list all." } }, - "/inboxes/{inboxId}/emails/count": { + "/emails/organization": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "Id of inbox that emails belongs to", - "format": "uuid", - "in": "path", + "collectionFormat": "multi", + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", + "in": "query", + "items": { + "format": "uuid", + "type": "string" + }, "name": "inboxId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/CountDto" - } - } - }, - "tags": [ - "InboxController" - ], - "operationId": "getInboxEmailCount", - "summary": "Get email count in inbox" - } - }, - "/inboxes/{inboxId}/emails/paginated": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ + "required": false, + "type": "array" + }, { "default": 0, - "description": "Optional page index in inbox emails list pagination", + "description": "Optional page index in email list pagination", "format": "int32", "in": "query", "name": "page", @@ -10694,9 +2339,10 @@ }, { "default": 20, - "description": "Optional page size in inbox emails list pagination", + "description": "Optional page size in email list pagination. Maximum size is 100. Use page index and sort to page through larger results", "format": "int32", "in": "query", + "maximum": 100, "name": "size", "required": false, "type": "integer" @@ -10714,7 +2360,22 @@ "type": "string" }, { - "description": "Optional filter by received after given date time", + "default": false, + "description": "Optional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Optional search filter search filter for emails.", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter emails received after given date time. If unset will use time 24hours prior to now.", "format": "date-time", "in": "query", "name": "since", @@ -10722,7 +2383,7 @@ "type": "string" }, { - "description": "Optional filter by received before given date time", + "description": "Optional filter emails received before given date time", "format": "date-time", "in": "query", "name": "before", @@ -10730,156 +2391,150 @@ "type": "string" }, { - "description": "Id of inbox that emails belongs to", - "format": "uuid", - "in": "path", - "name": "inboxId", - "required": true, - "type": "string" + "description": "Sync connectors", + "in": "query", + "name": "syncConnectors", + "required": false, + "type": "boolean" }, { - "description": "Sync connectors before fetching emails", + "description": "Search only favorited emails", "in": "query", - "name": "syncConnectors", + "name": "favourited", "required": false, "type": "boolean" + }, + { + "description": "Optional plus address ID filter", + "format": "uuid", + "in": "query", + "name": "plusAddressId", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageEmailPreview" + "$ref": "#/definitions/PageEmailProjection" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Get a paginated list of emails in an inbox. Does not hold connections open.", - "operationId": "getInboxEmailsPaginated", - "summary": "Get inbox emails paginated" + "description": "By default returns all emails across all team inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", + "operationId": "getOrganizationEmailsPaginated", + "summary": "Get all organization emails. List team or shared test email accounts" } }, - "/inboxes/{inboxId}/favourite": { - "put": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], + "/emails/read": { + "patch": { "parameters": [ { - "description": "ID of inbox to set favourite state", + "default": true, + "description": "What value to assign to email read property. Default true.", + "in": "query", + "name": "read", + "required": false, + "type": "boolean" + }, + { + "description": "Optional inbox ID filter", "format": "uuid", - "in": "path", + "in": "query", "name": "inboxId", - "required": true, + "required": false, "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SetInboxFavouritedOptions" - } } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxDto" - } + "204": { + "description": "No Content" } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Set and return new favorite state for an inbox", - "operationId": "setInboxFavourited", - "summary": "Set inbox favourited state" + "description": "Marks all emails as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread", + "operationId": "markAllAsRead", + "summary": "Mark all emails as read or unread" } }, - "/inboxes/{inboxId}/plus-addresses": { - "get": { + "/emails/search": { + "post": { + "consumes": [ + "application/json" + ], "produces": [ "application/octet-stream" ], "parameters": [ { - "default": 0, - "description": "Optional page index in inbox tracking pixel list pagination", - "format": "int32", + "description": "Sync connectors", "in": "query", - "name": "page", + "name": "syncConnectors", "required": false, - "type": "integer" + "type": "boolean" }, { - "default": 20, - "description": "Optional page size in inbox tracking pixel list pagination", - "format": "int32", + "description": "Search only favourited emails", "in": "query", - "name": "size", + "name": "favourited", "required": false, - "type": "integer" + "type": "boolean" }, { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], + "description": "Optional plus address ID filter", + "format": "uuid", "in": "query", - "name": "sort", + "name": "plusAddressId", "required": false, "type": "string" }, { - "description": "ID of the inbox you want to send the email from", - "format": "uuid", - "in": "path", - "name": "inboxId", + "in": "body", + "name": "body", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/SearchEmailsOptions" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PagePlusAddressProjection" + "$ref": "#/definitions/PageEmailProjection" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Returns paginated list of all plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", - "operationId": "getInboxPlusAddresses", - "summary": "Get sub address plus address aliases for an inbox" + "description": "Search emails by given criteria return matches in paginated format. Searches against email recipients, sender, subject, email address and ID. Does not search email body", + "operationId": "searchEmails", + "summary": "Get all emails by search criteria. Return in paginated form." } }, - "/inboxes/{inboxId}/plus-addresses/emails": { + "/emails/threads": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "The plus address to fetch emails for. If your inbox address is `123@test.com` and the email was sent to `123+abc@test.com` then the plus address is `abc`", + "description": "Optional inbox filter", + "format": "uuid", "in": "query", - "name": "plusAddress", - "required": true, + "name": "htmlSelector", + "required": false, "type": "string" }, { "default": 0, - "description": "Optional page index in inbox tracking pixel list pagination", + "description": "Optional page index in email thread pagination", "format": "int32", "in": "query", "name": "page", @@ -10888,9 +2543,10 @@ }, { "default": 20, - "description": "Optional page size in inbox tracking pixel list pagination", + "description": "Optional page size in email thread pagination. Maximum size is 100. Use page index and sort to page through larger results", "format": "int32", "in": "query", + "maximum": 100, "name": "size", "required": false, "type": "integer" @@ -10908,15 +2564,14 @@ "type": "string" }, { - "description": "ID of the inbox you want to send the email from", - "format": "uuid", - "in": "path", - "name": "inboxId", - "required": true, + "description": "Optional search filter search filter for email threads.", + "in": "query", + "name": "searchFilter", + "required": false, "type": "string" }, { - "description": "Optional filter by created after given date time", + "description": "Optional filter email threads created since time", "format": "date-time", "in": "query", "name": "since", @@ -10924,7 +2579,7 @@ "type": "string" }, { - "description": "Optional filter by created before given date time", + "description": "Optional filter emails threads created before given date time", "format": "date-time", "in": "query", "name": "before", @@ -10936,37 +2591,28 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageEmailPreview" + "$ref": "#/definitions/PageEmailThreadProjection" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Returns paginated list of all emails for a given plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", - "operationId": "getInboxPlusAddressEmails", - "summary": "Get emails for a given inbox plus address" + "description": "Return email message chains built from Message-ID, In-Reply-To, and References header.", + "operationId": "getEmailThreads", + "summary": "Return email threads in paginated form" } }, - "/inboxes/{inboxId}/plus-addresses/{plusAddressId}": { + "/emails/threads/{threadId}": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "ID of the plus address you want to fetch", - "format": "uuid", - "in": "path", - "name": "plusAddressId", - "required": true, - "type": "string" - }, - { - "description": "ID of the inbox you want to fetch", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "threadId", "required": true, "type": "string" } @@ -10975,50 +2621,31 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PlusAddressDto" + "$ref": "#/definitions/EmailThreadDto" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Returns a plus address object based on emails that used the inbox address with a +xyz alias.", - "operationId": "getInboxPlusAddress", - "summary": "Get sub address plus address for an inbox" + "description": "Return email message thread summary from Message-ID, In-Reply-To, and References header. Get messages using items endpoint", + "operationId": "getEmailThread", + "summary": "Return email thread information. Use items endpoints to get messages for thread." } }, - "/inboxes/{inboxId}/plus-addresses/{plusAddressId}/emails": { + "/emails/threads/{threadId}/items": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "The plus address ID to fetch emails for.", "format": "uuid", "in": "path", - "name": "plusAddressId", + "name": "threadId", "required": true, "type": "string" }, - { - "default": 0, - "description": "Optional page index in inbox tracking pixel list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox tracking pixel list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, { "default": "ASC", "description": "Optional createdAt sort direction ASC or DESC", @@ -11030,112 +2657,92 @@ "name": "sort", "required": false, "type": "string" - }, - { - "description": "ID of the inbox you want to send the email from", - "format": "uuid", - "in": "path", - "name": "inboxId", - "required": true, - "type": "string" - }, - { - "description": "Optional filter by created after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by created before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageEmailPreview" + "$ref": "#/definitions/EmailThreadItemsDto" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Returns paginated list of all emails for a given plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", - "operationId": "getInboxPlusAddressEmailsForPlusAddressId", - "summary": "Get emails for a given inbox plus address" + "description": "Return email thread messages based on Message-ID, In-Reply-To, and References header", + "operationId": "getEmailThreadItems", + "summary": "Return email thread items." } }, - "/inboxes/{inboxId}/rulesets": { + "/emails/unreadCount": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { + "description": "Optional inbox ID filter", "format": "uuid", - "in": "path", - "name": "inboxId", - "required": true, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in inbox ruleset list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox ruleset list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional search filter", "in": "query", - "name": "searchFilter", + "name": "inboxId", "required": false, "type": "string" - }, + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/UnreadCount" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get number of emails unread. Unread means has not been viewed in dashboard or returned in an email API response", + "operationId": "getUnreadEmailCount", + "summary": "Get unread email count" + } + }, + "/emails/{emailId}": { + "delete": { + "parameters": [ { - "description": "Optional filter by created after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, + "description": "ID of email to delete", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, "type": "string" - }, + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "EmailController" + ], + "description": "Deletes an email and removes it from the inbox. Deleted emails cannot be recovered.", + "operationId": "deleteEmail", + "summary": "Delete an email" + }, + "get": { + "produces": [ + "application/json;charset=UTF-8", + "application/xml;charset=UTF-8", + "application/json; charset=UTF-8", + "application/xml; charset=UTF-8" + ], + "parameters": [ { - "description": "Optional filter by created before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, "type": "string" } ], @@ -11143,18 +2750,18 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageRulesetDto" + "$ref": "#/definitions/Email" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "List all rulesets attached to an inbox", - "operationId": "listInboxRulesets", - "summary": "List inbox rulesets" + "description": "Returns a email summary object with headers and content. To retrieve the raw unparsed email use the getRawEmail endpoints", + "operationId": "getEmail", + "summary": "Get email content including headers and body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController." }, - "post": { + "put": { "consumes": [ "application/json" ], @@ -11163,10 +2770,10 @@ ], "parameters": [ { - "description": "inboxId", + "description": "ID of the email that should be replied to", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" }, @@ -11175,7 +2782,7 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/CreateRulesetOptions" + "$ref": "#/definitions/ReplyToEmailOptions" } } ], @@ -11183,182 +2790,155 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/RulesetDto" + "$ref": "#/definitions/SentEmailDto" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Create a new inbox rule for forwarding, blocking, and allowing emails when sending and receiving", - "operationId": "createInboxRuleset", - "summary": "Create an inbox ruleset" + "description": "Send the reply to the email sender or reply-to and include same subject cc bcc etc. Reply to an email and the contents will be sent with the existing subject to the emails `to`, `cc`, and `bcc`.", + "operationId": "replyToEmail", + "summary": "Reply to an email" } }, - "/inboxes/{inboxId}/scheduled-jobs": { + "/emails/{emailId}/attachments": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { + "description": "ID of email", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" - }, - { - "default": 0, - "description": "Optional page index in scheduled job list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in scheduled job list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/AttachmentMetaData" + }, + "type": "array" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Returns an array of attachment metadata such as name and content-type for a given email if present.", + "operationId": "getEmailAttachments", + "summary": "Get all email attachment metadata. Metadata includes name and size of attachments." + } + }, + "/emails/{emailId}/attachments/{attachmentId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, "type": "string" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, "type": "string" }, { - "description": "Filter by created at before the given timestamp", - "format": "date-time", + "description": "Can pass apiKey in url for this request if you wish to download the file in a browser. Content type will be set to original content type of the attachment file. This is so that browsers can download the file correctly.", "in": "query", - "name": "before", + "name": "apiKey", "required": false, "type": "string" } ], "responses": { - "200": { - "description": "OK", + "default": { + "description": "default response", "schema": { - "$ref": "#/definitions/PageScheduledJobs" + "format": "byte", + "type": "string" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Schedule sending of emails using scheduled jobs.", - "operationId": "getScheduledJobsByInboxId", - "summary": "Get all scheduled email sending jobs for the inbox" + "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", + "operationId": "downloadAttachment", + "summary": "Get email attachment bytes. Returned as `octet-stream` with content type header. If you have trouble with byte responses try the `downloadAttachmentBase64` response endpoints and convert the base 64 encoded content to a file or string." } }, - "/inboxes/{inboxId}/send-test-email": { - "post": { + "/emails/{emailId}/attachments/{attachmentId}/base64": { + "get": { + "produces": [ + "application/octet-stream" + ], "parameters": [ { + "description": "ID of email", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", + "required": true, + "type": "string" + }, + { + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", "required": true, "type": "string" } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DownloadAttachmentDto" + } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Send an inbox a test email to test email receiving is working", - "operationId": "sendTestEmail", - "summary": "Send a test email to inbox" + "description": "Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the `downloadAttachment` method but allows some clients to get around issues with binary responses.", + "operationId": "downloadAttachmentBase64", + "summary": "Get email attachment as base64 encoded string as an alternative to binary responses. Decode the `base64FileContents` as a `utf-8` encoded string or array of bytes depending on the `contentType`." } }, - "/inboxes/{inboxId}/sent": { + "/emails/{emailId}/attachments/{attachmentId}/metadata": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { + "description": "ID of email", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" }, { - "default": 0, - "description": "Optional page index in inbox sent email list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox sent email list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional sent email search", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by sent after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by sent before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, + "description": "ID of attachment", + "in": "path", + "name": "attachmentId", + "required": true, "type": "string" } ], @@ -11366,30 +2946,30 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageSentEmailProjection" + "$ref": "#/definitions/AttachmentMetaData" } } }, "tags": [ - "InboxController" + "EmailController" ], - "deprecated": true, - "description": "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.", - "operationId": "getInboxSentEmails", - "summary": "Get Inbox Sent Emails" + "description": "Returns the metadata such as name and content-type for a given attachment and email.", + "operationId": "getAttachmentMetaData", + "summary": "Get email attachment metadata. This is the `contentType` and `contentLength` of an attachment. To get the individual attachments use the `downloadAttachment` methods." } }, - "/inboxes/{inboxId}/sent/count": { + "/emails/{emailId}/body": { "get": { "produces": [ - "application/octet-stream" + "text/plain", + "text/html" ], "parameters": [ { - "description": "Id of inbox that emails were sent from", + "description": "ID of email", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" } @@ -11398,61 +2978,52 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/CountDto" + "type": "string" } } }, "tags": [ - "InboxController" + "EmailController" ], - "operationId": "getInboxSentCount", - "summary": "Get sent email count in inbox" + "description": "Returns the specified email body for a given email as a string", + "operationId": "downloadBody", + "summary": "Get email body as string. Returned as `plain/text` with content type header." } }, - "/inboxes/{inboxId}/smtp-envelope": { - "post": { - "consumes": [ - "application/json" - ], + "/emails/{emailId}/body-bytes": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "ID of the inbox you want to send the email from", + "description": "ID of email", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SendSMTPEnvelopeOptions" - } } ], "responses": { - "201": { - "description": "Created", + "default": { + "description": "default response", "schema": { - "$ref": "#/definitions/SentEmailDto" + "format": "byte", + "type": "string" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Send email using an SMTP envelope containing RCPT TO, MAIL FROM, and a SMTP BODY.", - "operationId": "sendSmtpEnvelope", - "summary": "Send email using an SMTP mail envelope and message body and return sent confirmation" + "description": "Returns the specified email body for a given email as a stream / array of bytes.", + "operationId": "downloadBodyBytes", + "summary": "Get email body in bytes. Returned as `octet-stream` with content type header." } }, - "/inboxes/{inboxId}/tracking-pixels": { - "get": { + "/emails/{emailId}/check-email-body": { + "post": { "produces": [ "application/octet-stream" ], @@ -11460,120 +3031,37 @@ { "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" - }, - { - "default": 0, - "description": "Optional page index in inbox tracking pixel list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox tracking pixel list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional search filter", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by created after given date time", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Optional filter by created before given date time", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageTrackingPixelProjection" + "$ref": "#/definitions/CheckEmailBodyResults" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "List all tracking pixels sent from an inbox", - "operationId": "listInboxTrackingPixels", - "summary": "List inbox tracking pixels" + "description": "Find dead links, broken images, and spelling mistakes in email body. Will call included links via HTTP so do not invoke if your links are sensitive or stateful. Any resource that returns a 4xx or 5xx response or is not reachable via HEAD or GET HTTP operations will be considered unhealthy.", + "operationId": "checkEmailBody", + "summary": "Detect broken links, spelling, and images in email content" } }, - "/inboxes/{inboxId}/webhooks": { - "get": { + "/emails/{emailId}/check-email-body-feature-support": { + "post": { "produces": [ "application/octet-stream" ], "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, { "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" } @@ -11582,20 +3070,19 @@ "200": { "description": "OK", "schema": { - "items": { - "$ref": "#/definitions/WebhookProjection" - }, - "type": "array" + "$ref": "#/definitions/CheckEmailBodyFeatureSupportResults" } } }, "tags": [ - "WebhookController" + "EmailController" ], - "deprecated": true, - "operationId": "getWebhooks", - "summary": "Get all webhooks for an Inbox" - }, + "description": "Detect HTML and CSS features inside an email body and return a report of email client support across different platforms and versions.", + "operationId": "checkEmailBodyFeatureSupport", + "summary": "Show which mail clients support the HTML and CSS features used in an email body." + } + }, + "/emails/{emailId}/contentMatch": { "post": { "consumes": [ "application/json" @@ -11605,9 +3092,10 @@ ], "parameters": [ { + "description": "ID of email to match against", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" }, @@ -11616,163 +3104,151 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/CreateWebhookOptions" + "$ref": "#/definitions/ContentMatchOptions" } } ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/WebhookDto" + "$ref": "#/definitions/EmailContentMatchResult" } } }, "tags": [ - "WebhookController" + "EmailController" ], - "description": "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.", - "operationId": "createWebhook", - "summary": "Attach a WebHook URL to an inbox" + "description": "Return the matches for a given Java style regex pattern. Do not include the typical `/` at start or end of regex in some languages. Given an example `your code is: 12345` the pattern to extract match looks like `code is: (\\d{6})`. This will return an array of matches with the first matching the entire pattern and the subsequent matching the groups: `['code is: 123456', '123456']` See https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html for more information of available patterns. ", + "operationId": "getEmailContentMatch", + "summary": "Get email content regex pattern match results. Runs regex against email body and returns match groups." } }, - "/inboxes/{inboxId}/webhooks/paginated": { + "/emails/{emailId}/contentPart": { "get": { "produces": [ - "application/octet-stream" + "application/json;charset=UTF-8", + "application/xml;charset=UTF-8", + "application/json; charset=UTF-8", + "application/xml; charset=UTF-8" ], "parameters": [ { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" + "description": "ID of email to match against", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" }, { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", + "description": "Content type", "in": "query", - "name": "size", - "required": false, - "type": "integer" + "name": "contentType", + "required": true, + "type": "string" }, { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], + "description": "Strict content type match", "in": "query", - "name": "sort", + "name": "strict", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Optional search filter", + "description": "Index of content type part if multiple", + "format": "int32", "in": "query", - "name": "searchFilter", + "name": "index", "required": false, - "type": "string" - }, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmailContentPartResult" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Get email body content parts from a multipart email message for a given content type", + "operationId": "getEmailContentPart", + "summary": "Get email content part by content type" + } + }, + "/emails/{emailId}/contentPart/raw": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ { + "description": "ID of email to match against", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Filter by webhook health", - "enum": [ - "HEALTHY", - "UNHEALTHY" - ], + "description": "Content type", "in": "query", - "name": "health", - "required": false, + "name": "contentType", + "required": true, "type": "string" }, { - "description": "Optional event type", - "enum": [ - "EMAIL_RECEIVED", - "NEW_AI_TRANSFORM_RESULT", - "NEW_EMAIL", - "NEW_CONTACT", - "NEW_ATTACHMENT", - "EMAIL_OPENED", - "EMAIL_READ", - "DELIVERY_STATUS", - "BOUNCE", - "BOUNCE_RECIPIENT", - "NEW_SMS", - "NEW_GUEST_USER" - ], + "description": "Strict content type match", "in": "query", - "name": "eventType", + "name": "strict", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Include account scope inbox webhooks", + "description": "Index of content type part if multiple. Starts from 0 and applies to the result list after selecting for your content type. Content type parts are sorted by order found in original MIME message.", + "format": "int32", "in": "query", - "name": "includeAccountWide", + "name": "index", "required": false, - "type": "boolean" + "type": "integer" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageWebhookProjection" + "type": "string" } } }, "tags": [ - "WebhookController" + "EmailController" ], - "operationId": "getInboxWebhooksPaginated", - "summary": "Get paginated webhooks for an Inbox" + "description": "Get email body content parts from a multipart email message for a given content type and return as response", + "operationId": "getEmailContentPartContent", + "summary": "Get email content part by content type raw response" } }, - "/inboxes/{inboxId}/webhooks/{webhookId}": { - "delete": { + "/emails/{emailId}/favourite": { + "put": { "parameters": [ { + "description": "ID of email to set favourite state", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" }, { - "format": "uuid", - "in": "path", - "name": "webhookId", + "in": "query", + "name": "favourited", "required": true, - "type": "string" + "type": "boolean" } ], "responses": { @@ -11781,187 +3257,169 @@ } }, "tags": [ - "WebhookController" + "EmailController" ], - "operationId": "deleteWebhook", - "summary": "Delete and disable a Webhook for an Inbox" + "description": "Set and return new favorite state for an email", + "operationId": "setEmailFavourited", + "summary": "Set email favourited state" } }, - "/inboxes/{inboxId}/with-queue": { + "/emails/{emailId}/forward": { "post": { "consumes": [ "application/json" ], + "produces": [ + "application/octet-stream" + ], "parameters": [ { - "description": "ID of the inbox you want to send the email from", + "description": "ID of email", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" }, - { - "description": "Validate before adding to queue", - "in": "query", - "name": "validateBeforeEnqueue", - "required": true, - "type": "boolean" - }, { "in": "body", "name": "body", "required": true, "schema": { - "$ref": "#/definitions/SendEmailOptions" + "$ref": "#/definitions/ForwardEmailOptions" } } ], "responses": { "201": { - "description": "Created" + "description": "Created", + "schema": { + "$ref": "#/definitions/SentEmailDto" + } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Send an email using a queue. Will place the email onto a queue that will then be processed and sent. Use this queue method to enable any failed email sending to be recovered. This will prevent lost emails when sending if your account encounters a block or payment issue.", - "operationId": "sendEmailWithQueue", - "summary": "Send email with queue" + "description": "Forward an existing email to new recipients. The sender of the email will be the inbox that received the email you are forwarding. You can override the sender with the `from` option. Note you must have access to the from address in MailSlurp to use the override. For more control consider fetching the email and sending it a new using the send email endpoints.", + "operationId": "forwardEmail", + "summary": "Forward email to recipients" } }, - "/inboxes/{inboxId}/with-schedule": { - "post": { - "consumes": [ - "application/json" - ], + "/emails/{emailId}/html": { + "get": { "produces": [ - "application/octet-stream" + "text/html;charset=utf-8", + "text/html" ], "parameters": [ { - "description": "ID of the inbox you want to send the email from", "format": "uuid", "in": "path", - "name": "inboxId", + "name": "emailId", "required": true, "type": "string" }, { - "description": "Sending timestamp", - "format": "date-time", - "in": "query", - "name": "sendAtTimestamp", - "required": false, - "type": "string" - }, - { - "description": "Send after n seconds", - "format": "int64", - "in": "query", - "name": "sendAtNowPlusSeconds", - "required": false, - "type": "integer" - }, - { - "description": "Validate before adding to queue", + "default": false, "in": "query", - "name": "validateBeforeEnqueue", + "name": "replaceCidImages", "required": false, "type": "boolean" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SendEmailOptions" - } } ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/ScheduledJobDto" + "type": "string" } } }, "tags": [ - "InboxController" + "EmailController" ], - "description": "Send an email using a delay. Will place the email onto a scheduler that will then be processed and sent. Use delays to schedule email sending.", - "operationId": "sendWithSchedule", - "summary": "Send email with with delay or schedule" + "description": "Retrieve email content as HTML response for viewing in browsers. Decodes quoted-printable entities and converts charset to UTF-8. Pass your API KEY as a request parameter when viewing in a browser: `?apiKey=xxx`. Returns content-type `text/html;charset=utf-8` so you must call expecting that content response not JSON. For JSON response see the `getEmailHTMLJson` method.", + "operationId": "getEmailHTML", + "summary": "Get email content as HTML. For displaying emails in browser context." } }, - "/mail-server/describe/dns-lookup": { - "post": { - "consumes": [ - "application/json" - ], + "/emails/{emailId}/html/json": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "format": "uuid", + "in": "path", + "name": "emailId", "required": true, - "schema": { - "$ref": "#/definitions/DNSLookupOptions" - } + "type": "string" + }, + { + "default": false, + "in": "query", + "name": "replaceCidImages", + "required": false, + "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/DNSLookupResults" + "$ref": "#/definitions/EmailHtmlDto" } } }, "tags": [ - "MailServerController" + "EmailController" ], - "operationId": "getDnsLookup", - "summary": "Lookup DNS records for a domain" + "description": "Retrieve email content as HTML response. Decodes quoted-printable entities and converts charset to UTF-8. Returns content-type `application/json;charset=utf-8` so you must call expecting that content response not JSON.", + "operationId": "getEmailHTMLJson", + "summary": "Get email content as HTML in JSON wrapper. For fetching entity decoded HTML content" } }, - "/mail-server/describe/dns-lookups": { - "post": { - "consumes": [ - "application/json" - ], + "/emails/{emailId}/htmlQuery": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "description": "ID of email to perform HTML query on", + "format": "uuid", + "in": "path", + "name": "emailId", "required": true, - "schema": { - "$ref": "#/definitions/DNSLookupsOptions" - } + "type": "string" + }, + { + "description": "HTML selector to search for. Uses JQuery/JSoup/CSS style selector like '.my-div' to match content. See https://jsoup.org/apidocs/org/jsoup/select/Selector.html for more information.", + "in": "query", + "name": "htmlSelector", + "required": true, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/DNSLookupResults" + "$ref": "#/definitions/EmailTextLinesResult" } } }, "tags": [ - "MailServerController" + "EmailController" ], - "operationId": "getDnsLookups", - "summary": "Lookup DNS records for multiple domains" + "description": "Parse an email body and return the content as an array of text. HTML parsing uses JSoup which supports JQuery/CSS style selectors", + "operationId": "getEmailHTMLQuery", + "summary": "Parse and return text from an email, stripping HTML and decoding encoded characters" } }, - "/mail-server/describe/domain": { + "/emails/{emailId}/imap-flag-operation": { "post": { "consumes": [ "application/json" @@ -11970,12 +3428,19 @@ "application/octet-stream" ], "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, { "in": "body", "name": "body", "required": true, "schema": { - "$ref": "#/definitions/DescribeDomainOptions" + "$ref": "#/definitions/ImapFlagOperationOptions" } } ], @@ -11983,158 +3448,151 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/DescribeMailServerDomainResult" + "$ref": "#/definitions/EmailPreview" } } }, "tags": [ - "MailServerController" + "EmailController" ], - "operationId": "describeMailServerDomain", - "summary": "Get DNS Mail Server records for a domain" + "description": "Apply RFC3501 section-2.3.2 IMAP flag operations on an email", + "operationId": "applyImapFlagOperation", + "summary": "Set IMAP flags associated with a message. Only supports '\\Seen' flag." } }, - "/mail-server/describe/ip-address": { - "post": { + "/emails/{emailId}/links": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "query", - "name": "name", + "description": "ID of email to fetch text for", + "format": "uuid", + "in": "path", + "name": "emailId", "required": true, "type": "string" + }, + { + "description": "Optional HTML query selector for links", + "in": "query", + "name": "selector", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/IPAddressResult" + "$ref": "#/definitions/EmailLinksResult" } } }, "tags": [ - "MailServerController" + "EmailController" ], - "operationId": "getIpAddress", - "summary": "Get IP address for a domain" + "description": "HTML parsing uses JSoup and UNIX line separators. Searches content for href attributes", + "operationId": "getEmailLinks", + "summary": "Parse and return list of links found in an email (only works for HTML content)" } }, - "/mail-server/verify/email-address": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], + "/emails/{emailId}/raw": { + "get": { "parameters": [ { - "in": "body", - "name": "body", + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", "required": true, - "schema": { - "$ref": "#/definitions/VerifyEmailAddressOptions" - } + "type": "string" } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailVerificationResult" - } + "description": "OK" } }, "tags": [ - "MailServerController" + "EmailController" ], - "deprecated": true, - "operationId": "verifyEmailAddress", - "summary": "Deprecated. Use the EmailVerificationController methods for more accurate and reliable functionality. Verify the existence of an email address at a given mail server." + "description": "Returns a raw, unparsed, and unprocessed email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawEmailJson endpoint", + "operationId": "getRawEmailContents", + "summary": "Get raw email string. Returns unparsed raw SMTP message with headers and body." } }, - "/mfa/totp/device/base32SecretKey": { - "post": { - "consumes": [ - "application/json" - ], + "/emails/{emailId}/raw/json": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", "required": true, - "schema": { - "$ref": "#/definitions/CreateTotpDeviceBase32SecretKeyOptions" - } + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/TotpDeviceDto" + "$ref": "#/definitions/RawEmailJson" } } }, "tags": [ - "MFAController" + "EmailController" ], - "description": "Create a virtual TOTP device for a given secret key. This is usually present as an alternative login option when pairing OTP devices.", - "operationId": "createTotpDeviceForBase32SecretKey", - "summary": "Create a TOTP device from an base32 secret key" + "description": "Returns a raw, unparsed, and unprocessed email wrapped in a JSON response object for easier handling when compared with the getRawEmail text/plain response", + "operationId": "getRawEmailJson", + "summary": "Get raw email in JSON. Unparsed SMTP message in JSON wrapper format." } }, - "/mfa/totp/device/by": { - "get": { + "/emails/{emailId}/read": { + "patch": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "Optional name filter", - "in": "query", - "name": "name", - "required": false, - "type": "string" - }, - { - "description": "Optional issuer filter", - "in": "query", - "name": "issuer", - "required": false, + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, "type": "string" }, { - "description": "Optional username filter", + "default": true, + "description": "What value to assign to email read property. Default true.", "in": "query", - "name": "username", + "name": "read", "required": false, - "type": "string" + "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/TotpDeviceOptionalDto" + "$ref": "#/definitions/EmailPreview" } } }, "tags": [ - "MFAController" + "EmailController" ], - "description": "Get Time-Based One-Time Password (TOTP) device by its username and issuer mapping.", - "operationId": "getTotpDeviceBy", - "summary": "Get a TOTP device by username, issuer, or name. Returns empty if not found." + "description": "Marks an email as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread", + "operationId": "markAsRead", + "summary": "Mark an email as read or unread" } }, - "/mfa/totp/device/custom": { + "/emails/{emailId}/screenshot/base64": { "post": { "consumes": [ "application/json" @@ -12143,12 +3601,19 @@ "application/octet-stream" ], "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, { "in": "body", "name": "body", "required": true, "schema": { - "$ref": "#/definitions/CreateTotpDeviceCustomOptions" + "$ref": "#/definitions/GetEmailScreenshotOptions" } } ], @@ -12156,53 +3621,54 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/TotpDeviceDto" + "$ref": "#/definitions/EmailScreenshotResult" } } }, "tags": [ - "MFAController" + "EmailController" ], - "description": "Create a virtual TOTP device for custom options specifying all parameters of the TOTP device.", - "operationId": "createTotpDeviceForCustom", - "summary": "Create a TOTP device from custom options" + "description": "Capture image of email screenshot and return as base64 encoded string. Useful for embedding in HTML. Be careful as this may contain sensitive information.", + "operationId": "getEmailScreenshotAsBase64", + "summary": "Take a screenshot of an email in a browser and return base64 encoded string" } }, - "/mfa/totp/device/otpAuthUrl": { + "/emails/{emailId}/screenshot/binary": { "post": { "consumes": [ "application/json" ], - "produces": [ - "application/octet-stream" - ], "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + }, { "in": "body", "name": "body", "required": true, "schema": { - "$ref": "#/definitions/CreateTotpDeviceOtpAuthUrlOptions" + "$ref": "#/definitions/GetEmailScreenshotOptions" } } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/TotpDeviceDto" - } + "description": "OK" } }, "tags": [ - "MFAController" + "EmailController" ], - "description": "Create a virtual TOTP device for a given OTP Auth URL such as otpauth://totp/MyApp:alice@example.com?secret=ABC123&issuer=MyApp&period=30&digits=6&algorithm=SHA1. You can provider overrides in the options for each component of the URL.", - "operationId": "createTotpDeviceForOtpAuthUrl", - "summary": "Create a TOTP device from an OTP Auth URL" + "description": "Returns binary octet-stream of screenshot of the given email", + "operationId": "getEmailScreenshotAsBinary", + "summary": "Take a screenshot of an email in a browser" } }, - "/mfa/totp/device/{id}": { + "/emails/{emailId}/summary": { "get": { "produces": [ "application/octet-stream" @@ -12211,58 +3677,59 @@ { "format": "uuid", "in": "path", - "name": "id", + "name": "emailId", "required": true, "type": "string" + }, + { + "in": "query", + "name": "decode", + "required": false, + "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/TotpDeviceDto" + "$ref": "#/definitions/EmailPreview" } } }, "tags": [ - "MFAController" + "EmailController" ], - "description": "Get Time-Based One-Time Password (TOTP) device by its ID.", - "operationId": "getTotpDevice", - "summary": "Get a TOTP device by ID" + "description": "Returns a email summary object with headers. To retrieve the body see getEmail and to get raw unparsed email use the getRawEmail endpoints", + "operationId": "getEmailSummary", + "summary": "Get email data including headers but not body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController." } }, - "/mfa/totp/device/{id}/code": { + "/emails/{emailId}/textLines": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "Optional time to get code for. If not provided, current time is used.", - "format": "date-time", - "in": "query", - "name": "at", - "required": false, + "description": "ID of email to fetch text for", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, "type": "string" }, { - "default": 5, - "description": "Optional minimum time until code expires. Will hold thread open until period reached.", - "format": "int32", + "description": "Decode HTML entities", "in": "query", - "maximum": 30, - "minimum": 1, - "name": "minSecondsUntilExpire", + "name": "decodeHtmlEntities", "required": false, - "type": "integer" + "type": "boolean" }, { - "description": "ID of the TOTP device to get the code for", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, + "description": "Line separator character", + "in": "query", + "name": "lineSeparator", + "required": false, "type": "string" } ], @@ -12270,83 +3737,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/TotpDeviceCodeDto" + "$ref": "#/definitions/EmailTextLinesResult" } } }, "tags": [ - "MFAController" + "EmailController" ], - "description": "Get Time-Based One-Time Password for a device by its ID.", - "operationId": "getTotpDeviceCode", - "summary": "Get a TOTP device code by device ID" + "description": "Parse an email body and return the content as an array of strings. HTML parsing uses JSoup and UNIX line separators.", + "operationId": "getEmailTextLines", + "summary": "Parse and return text from an email, stripping HTML and decoding encoded characters" } }, - "/missed-emails": { + "/emails/{emailId}/urls": { "get": { "produces": [ "application/octet-stream" ], - "parameters": [ - { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional search filter", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, + "parameters": [ { - "description": "Optional inbox ID filter", "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, + "in": "path", + "name": "emailId", + "required": true, "type": "string" } ], @@ -12354,53 +3767,100 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageMissedEmailProjection" + "$ref": "#/definitions/EmailPreviewUrls" } } }, "tags": [ - "MissedEmailController" + "EmailController" ], - "operationId": "getAllMissedEmails", - "summary": "Get all MissedEmails in paginated format" + "description": "Get a list of URLs for email content as text/html or raw SMTP message for viewing the message in a browser.", + "operationId": "getEmailPreviewURLs", + "summary": "Get email URLs for viewing in browser or downloading" } }, - "/missed-emails/restore": { + "/emails/{emailId}/validate": { "post": { - "parameters": [], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" + } + ], "responses": { - "200": { - "description": "OK" + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ValidationDto" + } + } + }, + "tags": [ + "EmailController" + ], + "description": "Validate the HTML content of email if HTML is found. Considered valid if no HTML is present.", + "operationId": "validateEmail", + "summary": "Validate email HTML contents" + } + }, + "/emptyInbox": { + "delete": { + "parameters": [ + { + "description": "ID of inbox to empty", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" } }, "tags": [ - "MissedEmailController" + "CommonActionsController" ], - "description": "If emails were missed due to a plan limit they are saved as missed emails. If support team enables the canRestore flag these emails can be reload into your account using this method.", - "operationId": "restoreMissedEmails", - "summary": "Restore missed emails" + "description": "Deletes all emails", + "operationId": "emptyInbox", + "summary": "Delete all emails in an inbox" } }, - "/missed-emails/unknown": { + "/inboxes": { + "delete": { + "parameters": [], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "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.", + "operationId": "deleteAllInboxes", + "summary": "Delete all inboxes" + }, "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", + "default": 100, + "description": "Optional result size limit. Note an automatic limit of 100 results is applied. See the paginated `getAllEmails` for larger queries.", "format": "int32", "in": "query", + "maximum": 100, "name": "size", "required": false, "type": "integer" @@ -12418,22 +3878,22 @@ "type": "string" }, { - "description": "Optional search filter", + "description": "Optional filter by created after given date time", + "format": "date-time", "in": "query", - "name": "searchFilter", + "name": "since", "required": false, "type": "string" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", + "description": "Optional exclude catch all inboxes", "in": "query", - "name": "since", + "name": "excludeCatchAllInboxes", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Filter by created at before the given timestamp", + "description": "Optional filter by created before given date time", "format": "date-time", "in": "query", "name": "before", @@ -12441,144 +3901,90 @@ "type": "string" }, { - "description": "Optional inbox ID filter", - "format": "uuid", + "collectionFormat": "multi", + "description": "Optional inboxIds to include in result", "in": "query", - "name": "inboxId", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "include", "required": false, - "type": "string" + "type": "array" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageUnknownMissedEmailProjection" + "items": { + "$ref": "#/definitions/InboxDto" + }, + "type": "array" } } }, "tags": [ - "MissedEmailController" + "InboxController" ], - "description": "Unknown missed emails are emails that were sent to MailSlurp but could not be assigned to an existing inbox.", - "operationId": "getAllUnknownMissedEmails", - "summary": "Get all unknown missed emails in paginated format" - } - }, - "/missed-emails/waitForNthMissedEmail": { - "get": { + "deprecated": true, + "description": "List the inboxes you have created. Note use of the more advanced `getAllInboxes` is recommended and allows paginated access using a limit and sort parameter.", + "operationId": "getInboxes", + "summary": "List Inboxes and email addresses" + }, + "post": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "Optional inbox ID filter", - "format": "uuid", + "description": "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. Note domain types must match the inbox type - so `SMTP` inboxes will only work with `SMTP` type domains. Avoid `SMTP` inboxes if you need to send emails as they can only receive. 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.", "in": "query", - "name": "inboxId", + "name": "emailAddress", "required": false, "type": "string" }, { - "description": "Optional timeout milliseconds", - "format": "int64", + "collectionFormat": "multi", + "description": "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.", "in": "query", - "name": "timeout", + "items": { + "type": "string" + }, + "name": "tags", "required": false, - "type": "integer" - }, - { - "description": "Zero based index of the email to wait for. If 1 missed email already and you want to wait for the 2nd email pass index=1", - "format": "int32", - "in": "query", - "maximum": 2147483647, - "minimum": 0, - "name": "index", - "required": true, - "type": "integer" + "type": "array" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", + "description": "Optional name of the inbox. Displayed in the dashboard for easier search and used as the sender name when sending emails.", "in": "query", - "name": "since", + "name": "name", "required": false, "type": "string" }, { - "description": "Filter by created at before the given timestamp", - "format": "date-time", + "description": "Optional description of the inbox for labelling purposes. Is shown in the dashboard and can be used with", "in": "query", - "name": "before", + "name": "description", "required": false, "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/MissedEmailDto" - } - } - }, - "tags": [ - "MissedEmailController" - ], - "description": "Wait for 0 based index missed email", - "operationId": "waitForNthMissedEmail", - "summary": "Wait for Nth missed email" - } - }, - "/missed-emails/{missedEmailId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "missedEmailId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/MissedEmailDto" - } - } - }, - "tags": [ - "MissedEmailController" - ], - "description": "List emails that were missed due to plan limits.", - "operationId": "getMissedEmail", - "summary": "Get MissedEmail" - } - }, - "/newEmailAddress": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ + }, { + "description": "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. Note this feature is only available for `HTTP` inbox types.", "in": "query", - "name": "allowTeamAccess", + "name": "useDomainPool", "required": false, "type": "boolean" }, { + "description": "Is the inbox a favorite. Marking an inbox as a favorite is typically done in the dashboard for quick access or filtering", "in": "query", - "name": "useDomainPool", + "name": "favourite", "required": false, "type": "boolean" }, { + "description": "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.", "format": "date-time", "in": "query", "name": "expiresAt", @@ -12586,6 +3992,7 @@ "type": "string" }, { + "description": "Number of milliseconds that inbox should exist for", "format": "int64", "in": "query", "name": "expiresIn", @@ -12593,13 +4000,14 @@ "type": "integer" }, { + "description": "DEPRECATED (team access is always true). Grant team access to this inbox and the emails that belong to it for team members of your organization.", "in": "query", - "name": "emailAddress", + "name": "allowTeamAccess", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", + "description": "HTTP (default) or SMTP inbox type. HTTP inboxes are default and best solution for most cases. SMTP inboxes are more reliable for public inbound email consumption (but do not support sending emails). When using custom domains the domain type must match the inbox type. HTTP inboxes are processed by AWS SES while SMTP inboxes use a custom mail server running at `mxslurp.click`.", "enum": [ "HTTP_INBOX", "SMTP_INBOX" @@ -12610,59 +4018,36 @@ "type": "string" }, { - "in": "query", - "name": "description", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "name", - "required": false, - "type": "string" - }, - { - "collectionFormat": "multi", - "in": "query", - "items": { - "type": "string" - }, - "name": "tags", - "required": false, - "type": "array" - }, - { - "in": "query", - "name": "favourite", - "required": false, - "type": "boolean" - }, - { + "description": "Virtual inbox prevents any outbound emails from being sent. It creates sent email records but will never send real emails to recipients. Great for testing and faking email sending.", "in": "query", "name": "virtualInbox", "required": false, "type": "boolean" }, { + "description": "Use a shorter email address under 31 characters", "in": "query", "name": "useShortAddress", "required": false, "type": "boolean" }, { + "description": "ID of custom domain to use for email address.", + "format": "uuid", "in": "query", - "name": "domainName", + "name": "domainId", "required": false, "type": "string" }, { - "format": "uuid", + "description": "FQDN domain name for the domain you have verified. Will be appended with a randomly assigned recipient name. Use the `emailAddress` option instead to specify the full custom inbox.", "in": "query", - "name": "domainId", + "name": "domainName", "required": false, "type": "string" }, { + "description": "Prefix to add before the email address for easier labelling or identification.", "in": "query", "name": "prefix", "required": false, @@ -12678,343 +4063,131 @@ } }, "tags": [ - "CommonActionsController" - ], - "description": "Returns an Inbox with an `id` and an `emailAddress`", - "operationId": "createNewEmailAddress", - "summary": "Create new random inbox" - } - }, - "/phone": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreatePhoneNumberOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PhoneNumberDto" - } - } - }, - "tags": [ - "PhoneController" + "InboxController" ], - "description": "Create new phone number", - "operationId": "createPhoneNumber", - "summary": "Add phone number to your account. Only works if you have already added a plan and an initial phone number in your account and acknowledged the pricing and terms of service by enabling API phone creation." + "description": "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. ", + "operationId": "createInbox", + "summary": "Create an inbox email address. An inbox has a real email address and can send and receive emails. Inboxes can be either `SMTP` or `HTTP` inboxes." } }, - "/phone/consent": { + "/inboxes/automations": { "get": { - "produces": [ - "application/octet-stream" - ], "parameters": [], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConsentStatusDto" - } - } - }, - "tags": [ - "PhoneController" - ], - "description": "Get the status of phone usage consent", - "operationId": "getConsentStatus", - "summary": "Get consent status" - }, - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "query", - "name": "agree", - "required": true, - "type": "boolean" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConsentStatusDto" - } + "201": { + "description": "Created" } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Give or revoke consent for phone usage", - "operationId": "setConsentStatus", - "summary": "Set consent status" + "description": "Check if an inbox has automations.", + "operationId": "doesInboxHaveAutomations", + "summary": "Does inbox have automations" } }, - "/phone/emergency-addresses": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "items": { - "$ref": "#/definitions/EmergencyAddressDto" - }, - "type": "array" - } - } - }, - "tags": [ - "PhoneController" - ], - "description": "List emergency addresses", - "operationId": "getEmergencyAddresses", - "summary": "Get emergency addresses" - }, + "/inboxes/available": { "post": { - "consumes": [ - "application/json" - ], "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "in": "query", + "name": "emailAddress", "required": true, - "schema": { - "$ref": "#/definitions/CreateEmergencyAddressOptions" - } + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/EmergencyAddress" + "$ref": "#/definitions/EmailAvailableResult" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Add an emergency address to a phone number", - "operationId": "createEmergencyAddress", - "summary": "Create an emergency address" + "description": "Returns whether an email address is available", + "operationId": "isEmailAddressAvailable", + "summary": "Is email address available" } }, - "/phone/emergency-addresses/{addressId}": { + "/inboxes/by-description": { "delete": { - "produces": [ - "application/octet-stream" - ], "parameters": [ { - "format": "uuid", - "in": "path", - "name": "addressId", + "in": "query", + "minLength": 1, + "name": "description", "required": true, "type": "string" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmptyResponseDto" - } + "204": { + "description": "No Content" } }, "tags": [ - "PhoneController" - ], - "description": "Delete an emergency address", - "operationId": "deleteEmergencyAddress", - "summary": "Delete an emergency address" - }, - "get": { - "produces": [ - "application/octet-stream" + "InboxController" ], + "description": "Permanently delete all inboxes by description", + "operationId": "deleteAllInboxesByDescription", + "summary": "Delete inboxes by description" + } + }, + "/inboxes/by-name": { + "delete": { "parameters": [ { - "format": "uuid", - "in": "path", - "name": "addressId", + "in": "query", + "minLength": 1, + "name": "name", "required": true, "type": "string" } ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmergencyAddress" - } - } - }, - "tags": [ - "PhoneController" - ], - "description": "Fetch an emergency address by ID", - "operationId": "getEmergencyAddress", - "summary": "Get an emergency address" - } - }, - "/phone/numbers": { - "delete": { - "parameters": [], "responses": { "204": { "description": "No Content" } }, "tags": [ - "PhoneController" - ], - "description": "Remove all phone number from account", - "operationId": "deleteAllPhoneNumber", - "summary": "Delete all phone numbers" - }, - "get": { - "produces": [ - "application/octet-stream" + "InboxController" ], - "parameters": [ - { - "description": "Optional phone country", - "enum": [ - "US", - "GB", - "AU", - "CA", - "EE", - "HK", - "PL", - "CH", - "PT", - "NL", - "IL", - "SE" - ], - "in": "query", - "name": "phoneCountry", - "required": false, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index for list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size for list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, + "description": "Permanently delete all inboxes by name", + "operationId": "deleteAllInboxesByName", + "summary": "Delete inboxes by name" + } + }, + "/inboxes/by-tag": { + "delete": { + "parameters": [ { - "description": "Optional search filter", "in": "query", - "name": "search", - "required": false, + "minLength": 1, + "name": "tag", + "required": true, "type": "string" - }, - { - "collectionFormat": "multi", - "description": "Optional phoneIds to include in result", - "in": "query", - "items": { - "format": "uuid", - "type": "string" - }, - "name": "include", - "required": false, - "type": "array" - }, - { - "default": false, - "description": "Optionally filter results for favourites only", - "in": "query", - "name": "favourite", - "required": false, - "type": "boolean" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PagePhoneNumberProjection" - } + "204": { + "description": "No Content" } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "List phone numbers for account", - "operationId": "getPhoneNumbers", - "summary": "Get phone numbers" + "description": "Permanently delete all inboxes by tag", + "operationId": "deleteAllInboxesByTag", + "summary": "Delete inboxes by tag" } }, - "/phone/numbers/by-name": { + "/inboxes/byEmailAddress": { "get": { "produces": [ "application/octet-stream" @@ -13022,7 +4195,8 @@ "parameters": [ { "in": "query", - "name": "name", + "minLength": 1, + "name": "emailAddress", "required": true, "type": "string" } @@ -13031,19 +4205,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PhoneNumberDto" + "$ref": "#/definitions/InboxByEmailAddressResult" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Get a phone number by name", - "operationId": "getPhoneNumberByName", - "summary": "Get a phone number by name" + "description": "Get a inbox result by email address", + "operationId": "getInboxByEmailAddress", + "summary": "Search for an inbox with the provided email address" } }, - "/phone/numbers/by-phone-number": { + "/inboxes/byName": { "get": { "produces": [ "application/octet-stream" @@ -13051,7 +4225,8 @@ "parameters": [ { "in": "query", - "name": "phoneNumber", + "minLength": 1, + "name": "name", "required": true, "type": "string" } @@ -13060,211 +4235,164 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PhoneNumberDto" + "$ref": "#/definitions/InboxByNameResult" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Get a phone number by phone number", - "operationId": "getPhoneNumberByPhoneNumber", - "summary": "Get a phone number by phone number" + "description": "Get a inbox result by name", + "operationId": "getInboxByName", + "summary": "Search for an inbox with the given name" } }, - "/phone/numbers/message-threads": { + "/inboxes/count": { "get": { "produces": [ "application/octet-stream" ], - "parameters": [ - { - "default": 0, - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - } - ], + "parameters": [], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PagePhoneMessageThreadProjection" + "$ref": "#/definitions/CountDto" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "List all message threads for all phones", - "operationId": "getAllPhoneMessageThreads", - "summary": "Get the latest messages for all phones" + "operationId": "getInboxCount", + "summary": "Get total inbox count" } }, - "/phone/numbers/{phoneId}/webhooks/paginated": { + "/inboxes/exists": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "default": 0, - "description": "Optional page index in list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], + "description": "Email address", "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "path", - "name": "phoneId", + "name": "emailAddress", "required": true, "type": "string" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, - "type": "string" - }, - { - "description": "Optional event type", - "enum": [ - "EMAIL_RECEIVED", - "NEW_AI_TRANSFORM_RESULT", - "NEW_EMAIL", - "NEW_CONTACT", - "NEW_ATTACHMENT", - "EMAIL_OPENED", - "EMAIL_READ", - "DELIVERY_STATUS", - "BOUNCE", - "BOUNCE_RECIPIENT", - "NEW_SMS", - "NEW_GUEST_USER" - ], + "description": "Allow catch all", "in": "query", - "name": "eventType", + "name": "allowCatchAll", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Optional search filter", + "description": "IP address", "in": "query", - "name": "searchFilter", + "name": "ipAddress", "required": false, "type": "string" }, { - "description": "Filter by webhook health", - "enum": [ - "HEALTHY", - "UNHEALTHY" - ], + "description": "Sender", "in": "query", - "name": "health", + "name": "sender", "required": false, "type": "string" - }, - { - "description": "Include account scope phone webhooks", - "in": "query", - "name": "includeAccountWide", - "required": false, - "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageWebhookProjection" + "$ref": "#/definitions/InboxExistsDto" } } }, "tags": [ - "WebhookController" + "InboxController" ], - "operationId": "getPhoneNumberWebhooksPaginated", - "summary": "Get paginated webhooks for a phone number" + "description": "Check if inboxes exist by email address. Useful if you are sending emails to mailslurp addresses", + "operationId": "doesInboxExist", + "summary": "Does inbox exist" } }, - "/phone/numbers/{phoneNumberId}": { - "delete": { + "/inboxes/getLatestEmail": { + "get": { + "produces": [ + "application/octet-stream" + ], "parameters": [ { + "description": "ID of the inbox you want to get the latest email from", "format": "uuid", - "in": "path", - "name": "phoneNumberId", + "in": "query", + "name": "inboxId", "required": true, "type": "string" + }, + { + "description": "Timeout milliseconds to wait for latest email", + "format": "int64", + "in": "query", + "name": "timeoutMillis", + "required": true, + "type": "integer" } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Email" + } } }, "tags": [ - "PhoneController" + "InboxController" + ], + "description": "Get the newest email in an inbox or wait for one to arrive", + "operationId": "getLatestEmailInInbox", + "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not have arrived yet." + } + }, + "/inboxes/ids": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/InboxIdsResult" + } + } + }, + "tags": [ + "InboxController" ], - "description": "Remove phone number from account", - "operationId": "deletePhoneNumber", - "summary": "Delete a phone number" - }, + "deprecated": true, + "description": "Get list of inbox IDs", + "operationId": "getInboxIds", + "summary": "Get all inbox IDs" + } + }, + "/inboxes/imap-access": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { + "description": "Inbox ID", "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, + "in": "query", + "name": "inboxId", + "required": false, "type": "string" } ], @@ -13272,31 +4400,27 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PhoneNumberDto" + "$ref": "#/definitions/ImapAccessDetails" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Get a phone number by ID", - "operationId": "getPhoneNumber", - "summary": "Get a phone number by ID" + "description": "Get IMAP access usernames and passwords", + "operationId": "getImapAccess" }, - "put": { + "patch": { "consumes": [ "application/json" ], - "produces": [ - "application/octet-stream" - ], "parameters": [ { - "description": "ID of phone to set favourite state", + "description": "Inbox ID", "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, + "in": "query", + "name": "inboxId", + "required": false, "type": "string" }, { @@ -13304,169 +4428,112 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/UpdatePhoneNumberOptions" + "$ref": "#/definitions/UpdateImapAccessOptions" } } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PhoneNumberDto" - } + "204": { + "description": "No Content" } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Set field for phone number", - "operationId": "updatePhoneNumber", - "summary": "Update a phone number" + "description": "Update IMAP access usernames and passwords", + "operationId": "updateImapAccess" } }, - "/phone/numbers/{phoneNumberId}/favourite": { - "put": { - "consumes": [ - "application/json" - ], + "/inboxes/imap-smtp-access": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "ID of phone to set favourite state", + "description": "Inbox ID", "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, + "in": "query", + "name": "inboxId", + "required": false, "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SetPhoneFavouritedOptions" - } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PhoneNumberDto" + "$ref": "#/definitions/ImapSmtpAccessDetails" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Set and return new favorite state for a phone", - "operationId": "setPhoneFavourited", - "summary": "Set phone favourited state" + "description": "Get IMAP and SMTP access usernames and passwords", + "operationId": "getImapSmtpAccess" } }, - "/phone/numbers/{phoneNumberId}/message-threads": { + "/inboxes/imap-smtp-access/env": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { + "description": "Inbox ID", "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, - "type": "string" - }, - { - "default": 0, - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "format": "int32", "in": "query", - "name": "size", + "name": "inboxId", "required": false, - "type": "integer" + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PagePhoneMessageThreadProjection" + "type": "string" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "List message threads for a phone", - "operationId": "getPhoneMessageThreads", - "summary": "Get the latest message preview for a thread" + "description": "Get IMAP and SMTP access details in .env format", + "operationId": "getImapSmtpAccessEnv" } }, - "/phone/numbers/{phoneNumberId}/message-threads/{otherNumber}": { - "delete": { + "/inboxes/imap-smtp-access/servers": { + "get": { "produces": [ "application/octet-stream" ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, - "type": "string" - }, - { - "in": "path", - "name": "otherNumber", - "required": true, - "type": "string" - } - ], + "parameters": [], "responses": { - "204": { - "description": "No Content", + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/EmptyResponseDto" + "$ref": "#/definitions/ImapSmtpAccessServers" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Delete all messages in an SMS thread", - "operationId": "deletePhoneMessageThreadItems", - "summary": "Delete messages in a phone thread" - }, + "description": "Get IMAP and SMTP server hosts", + "operationId": "getImapSmtpAccessServers" + } + }, + "/inboxes/offset-paginated": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, - "type": "string" - }, - { - "in": "path", - "name": "otherNumber", - "required": true, - "type": "string" - }, { "default": 0, + "description": "Optional page index in list pagination", "format": "int32", "in": "query", "name": "page", @@ -13475,45 +4542,124 @@ }, { "default": 20, + "description": "Optional page size in list pagination", "format": "int32", "in": "query", "name": "size", "required": false, "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optionally filter results for favourites only", + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" + }, + { + "description": "Optionally filter by search words partial matching ID, tags, name, and email address", + "in": "query", + "name": "search", + "required": false, + "type": "string" + }, + { + "description": "Optionally filter by tags. Will return inboxes that include given tags", + "in": "query", + "name": "tag", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by inbox type", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "in": "query", + "name": "inboxType", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by inbox function", + "enum": [ + "ALIAS", + "THREAD", + "CATCH_ALL", + "CONNECTOR", + "ACCOUNT", + "GUEST", + "OAUTH_CONNECTION_GMAIL" + ], + "in": "query", + "name": "inboxFunction", + "required": false, + "type": "string" + }, + { + "description": "Optional domain ID filter", + "format": "uuid", + "in": "query", + "name": "domainId", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PagePhoneMessageThreadItemProjection" + "$ref": "#/definitions/PageInboxProjection" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "List message thread messages for a phone message thread", - "operationId": "getPhoneMessageThreadItems", - "summary": "Get messages in a phone thread" + "description": "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.", + "operationId": "getAllInboxesOffsetPaginated", + "summary": "List All Inboxes Offset Paginated" } }, - "/phone/numbers/{phoneNumberId}/sms": { + "/inboxes/organization": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, - "type": "string" - }, { "default": 0, - "description": "Optional page index in SMS list pagination", + "description": "Optional page index in list pagination", "format": "int32", "in": "query", "name": "page", @@ -13522,10 +4668,9 @@ }, { "default": 20, - "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "description": "Optional page size in list pagination", "format": "int32", "in": "query", - "maximum": 100, "name": "size", "required": false, "type": "integer" @@ -13543,15 +4688,14 @@ "type": "string" }, { - "default": false, - "description": "Optional filter for unread SMS only. All SMS are considered unread until they are viewed in the dashboard or requested directly", + "description": "Optional search filter", "in": "query", - "name": "unreadOnly", + "name": "searchFilter", "required": false, - "type": "boolean" + "type": "string" }, { - "description": "Optional filter SMSs received after given date time", + "description": "Optional filter by created after given date time", "format": "date-time", "in": "query", "name": "since", @@ -13559,100 +4703,93 @@ "type": "string" }, { - "description": "Optional filter SMSs received before given date time", + "description": "Optional filter by created before given date time", "format": "date-time", "in": "query", "name": "before", "required": false, "type": "string" - }, - { - "description": "Optional search filter", - "in": "query", - "name": "search", - "required": false, - "type": "string" - }, - { - "default": false, - "description": "Optionally filter results for favourites only", - "in": "query", - "name": "favourite", - "required": false, - "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageSmsProjection" + "$ref": "#/definitions/PageOrganizationInboxProjection" } } }, "tags": [ - "PhoneController" - ], - "description": "Get SMS messages for a phone number", - "operationId": "getSmsByPhoneNumber", - "summary": "List SMS messages for a phone number" - }, - "post": { - "consumes": [ - "application/json" + "InboxController" ], + "deprecated": true, + "description": "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). ", + "operationId": "getOrganizationInboxes", + "summary": "List Organization Inboxes Paginated" + } + }, + "/inboxes/outboxes": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, - "type": "string" + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" }, { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SmsSendOptions" - } + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/SentSmsDto" + "$ref": "#/definitions/PageInboxProjection" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Send SMS from a phone number", - "operationId": "sendSmsFromPhoneNumber", - "summary": "Send TXT message from a phone number" + "description": "List inboxes that have sent emails", + "operationId": "getOutboxes", + "summary": "List all inboxes with sent emails" } }, - "/phone/numbers/{phoneNumberId}/sms-sent": { + "/inboxes/paginated": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, - "type": "string" - }, { "default": 0, - "description": "Optional page index in SMS list pagination", + "description": "Optional page index in list pagination", "format": "int32", "in": "query", "name": "page", @@ -13661,10 +4798,9 @@ }, { "default": 20, - "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "description": "Optional page size in list pagination", "format": "int32", "in": "query", - "maximum": 100, "name": "size", "required": false, "type": "integer" @@ -13682,212 +4818,172 @@ "type": "string" }, { - "description": "Optional filter SMSs received after given date time", - "format": "date-time", + "default": false, + "description": "Optionally filter results for favourites only", "in": "query", - "name": "since", + "name": "favourite", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Optional filter SMSs received before given date time", - "format": "date-time", + "description": "Optionally filter by search words partial matching ID, tags, name, and email address", "in": "query", - "name": "before", + "name": "search", "required": false, "type": "string" }, { - "description": "Optional search filter", + "description": "Optionally filter by tags. Will return inboxes that include given tags", "in": "query", - "name": "search", + "name": "tag", "required": false, "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageSentSmsProjection" - } - } - }, - "tags": [ - "PhoneController" - ], - "description": "Get sent SMS messages for a phone number", - "operationId": "getSentSmsByPhoneNumber", - "summary": "List sent TXT messages for a phone number" - } - }, - "/phone/numbers/{phoneNumberId}/test": { - "post": { - "consumes": [ - "application/json" - ], - "parameters": [ + }, { - "in": "header", - "name": "x-test-id", + "description": "Optional filter by created after given date time", + "format": "date-time", + "in": "query", + "name": "since", "required": false, "type": "string" }, { - "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, "type": "string" }, { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/TestPhoneNumberOptions" - } - } - ], - "responses": { - "200": { - "description": "OK" - } - }, - "tags": [ - "PhoneController" - ], - "description": "Test a phone number by sending an SMS to it", - "operationId": "testPhoneNumberSendSms", - "summary": "Test sending an SMS to a number" - } - }, - "/phone/numbers/{phoneNumberId}/webhooks": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "phoneNumberId", - "required": true, + "description": "Optional filter by inbox type", + "enum": [ + "HTTP_INBOX", + "SMTP_INBOX" + ], + "in": "query", + "name": "inboxType", + "required": false, "type": "string" }, { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateWebhookOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/WebhookDto" - } + "description": "Optional filter by inbox function", + "enum": [ + "ALIAS", + "THREAD", + "CATCH_ALL", + "CONNECTOR", + "ACCOUNT", + "GUEST", + "OAUTH_CONNECTION_GMAIL" + ], + "in": "query", + "name": "inboxFunction", + "required": false, + "type": "string" + }, + { + "description": "Optional domain ID filter", + "format": "uuid", + "in": "query", + "name": "domainId", + "required": false, + "type": "string" } - }, - "tags": [ - "WebhookController" - ], - "description": "Get notified whenever a phone number receives an SMS via a WebHook URL.", - "operationId": "createWebhookForPhoneNumber", - "summary": "Attach a WebHook URL to a phone number" - } - }, - "/phone/plans": { - "get": { - "produces": [ - "application/octet-stream" ], - "parameters": [], "responses": { "200": { "description": "OK", "schema": { - "items": { - "$ref": "#/definitions/PhonePlanDto" - }, - "type": "array" + "$ref": "#/definitions/PageInboxProjection" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "description": "Get phone number plans", - "operationId": "getPhonePlans", - "summary": "Get phone plans" + "description": "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.", + "operationId": "getAllInboxes", + "summary": "List All Inboxes Paginated" } }, - "/phone/plans/availability": { + "/inboxes/plus-addresses": { "get": { "produces": [ "application/octet-stream" ], - "parameters": [], + "parameters": [ + { + "default": 0, + "description": "Optional page index in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional inboxId filter", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PhonePlanAvailability" + "$ref": "#/definitions/PagePlusAddressProjection" } } }, "tags": [ - "PhoneController" + "InboxController" ], - "operationId": "getPhonePlansAvailability", - "summary": "Get phone plans availability" + "description": "Returns paginated list of all plus alias addresses found for in account based on received emails that used the inbox address with a +xyz alias.", + "operationId": "getAllPlusAddresses", + "summary": "Get all sub address plus address aliases for an inbox" } }, - "/phone/validate": { - "post": { - "consumes": [ - "application/json" - ], + "/inboxes/plus-addresses/{plusAddressId}": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "description": "ID of the plus address you want to fetch", + "format": "uuid", + "in": "path", + "name": "plusAddressId", "required": true, - "schema": { - "$ref": "#/definitions/ValidatePhoneNumberOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PhoneNumberValidationDto" - } - } - }, - "tags": [ - "PhoneController" - ], - "description": "Validate a phone number", - "operationId": "validatePhoneNumber", - "summary": "Verify validity of a phone number" - } - }, - "/repliers": { - "delete": { - "parameters": [ + "type": "string" + }, { - "description": "Optional inbox id to attach replier to", + "description": "ID of the inbox you want to filter for", "format": "uuid", "in": "query", "name": "inboxId", @@ -13896,33 +4992,30 @@ } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PlusAddressDto" + } } }, "tags": [ - "InboxReplierController" + "InboxController" ], - "description": "Delete inbox repliers. Accepts optional inboxId filter.", - "operationId": "deleteInboxRepliers", - "summary": "Delete inbox repliers" - }, + "description": "Returns a plus address object based on emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddressById", + "summary": "Get sub address plus address by ID" + } + }, + "/inboxes/scheduled-jobs": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ - { - "description": "Optional inbox id to get repliers from", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, { "default": 0, - "description": "Optional page index in inbox replier list pagination", + "description": "Optional page index in scheduled job list pagination", "format": "int32", "in": "query", "name": "page", @@ -13931,7 +5024,7 @@ }, { "default": 20, - "description": "Optional page size in inbox replier list pagination", + "description": "Optional page size in scheduled job list pagination", "format": "int32", "in": "query", "name": "size", @@ -13965,122 +5058,70 @@ "name": "before", "required": false, "type": "string" + }, + { + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageInboxReplierDto" + "$ref": "#/definitions/PageScheduledJobs" } } }, "tags": [ - "InboxReplierController" - ], - "description": "List all repliers attached to an inbox", - "operationId": "getInboxRepliers", - "summary": "List inbox repliers" - }, - "post": { - "consumes": [ - "application/json" + "InboxController" ], + "description": "Schedule sending of emails using scheduled jobs. These can be inbox or account level.", + "operationId": "getAllScheduledJobs", + "summary": "Get all scheduled email sending jobs for account" + } + }, + "/inboxes/scheduled-jobs/{jobId}": { + "delete": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "format": "uuid", + "in": "path", + "name": "jobId", "required": true, - "schema": { - "$ref": "#/definitions/CreateInboxReplierOptions" - } + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/InboxReplierDto" + "$ref": "#/definitions/ScheduledJobDto" } } }, "tags": [ - "InboxReplierController" + "InboxController" ], - "description": "Create a new inbox rule for reply toing, blocking, and allowing emails when sending and receiving", - "operationId": "createNewInboxReplier", - "summary": "Create an inbox replier" - } - }, - "/repliers/events": { + "description": "Get a scheduled email job and cancel it. Will fail if status of job is already cancelled, failed, or complete.", + "operationId": "cancelScheduledJob", + "summary": "Cancel a scheduled email job" + }, "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "ID of inbox replier", - "format": "uuid", - "in": "query", - "name": "inboxReplierId", - "required": false, - "type": "string" - }, - { - "description": "ID of inbox", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "description": "ID of email", - "format": "uuid", - "in": "query", - "name": "emailId", - "required": false, - "type": "string" - }, - { - "description": "ID of sent", "format": "uuid", - "in": "query", - "name": "sentId", - "required": false, - "type": "string" - }, - { - "default": 0, - "description": "Optional page index in inbox replier event list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox replier event list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, + "in": "path", + "name": "jobId", + "required": true, "type": "string" } ], @@ -14088,53 +5129,64 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageInboxReplierEvents" + "$ref": "#/definitions/ScheduledJobDto" } } }, "tags": [ - "InboxReplierController" + "InboxController" ], - "description": "Get all inbox ruleset events", - "operationId": "getAllInboxReplierEvents", - "summary": "Get inbox replier event list" + "description": "Get a scheduled email job details.", + "operationId": "getScheduledJob", + "summary": "Get a scheduled email job" } }, - "/repliers/{id}": { - "delete": { + "/inboxes/search": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], "parameters": [ { - "description": "ID of inbox replier", - "format": "uuid", - "in": "path", - "name": "id", + "in": "body", + "name": "body", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/SearchInboxesOptions" + } } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxProjection" + } } }, "tags": [ - "InboxReplierController" + "InboxController" ], - "description": "Delete inbox replier", - "operationId": "deleteInboxReplier", - "summary": "Delete an inbox replier" - }, + "description": "Search inboxes and return 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.", + "operationId": "searchInboxes", + "summary": "Search all inboxes and return matching inboxes" + } + }, + "/inboxes/smtp-access": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "ID of inbox replier", + "description": "Inbox ID", "format": "uuid", - "in": "path", - "name": "id", - "required": true, + "in": "query", + "name": "inboxId", + "required": false, "type": "string" } ], @@ -14142,31 +5194,27 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/InboxReplierDto" + "$ref": "#/definitions/SmtpAccessDetails" } } }, "tags": [ - "InboxReplierController" + "InboxController" ], - "description": "Get inbox ruleset", - "operationId": "getInboxReplier", - "summary": "Get an inbox replier" + "description": "Get SMTP access usernames and passwords", + "operationId": "getSmtpAccess" }, - "put": { + "patch": { "consumes": [ "application/json" ], - "produces": [ - "application/octet-stream" - ], "parameters": [ { - "description": "ID of inbox replier", + "description": "Inbox ID", "format": "uuid", - "in": "path", - "name": "id", - "required": true, + "in": "query", + "name": "inboxId", + "required": false, "type": "string" }, { @@ -14174,43 +5222,31 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/UpdateInboxReplierOptions" + "$ref": "#/definitions/UpdateSmtpAccessOptions" } } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/InboxReplierDto" - } + "204": { + "description": "No Content" } }, "tags": [ - "InboxReplierController" + "InboxController" ], - "description": "Update inbox ruleset", - "operationId": "updateInboxReplier", - "summary": "Update an inbox replier" + "description": "Update SMTP access usernames and passwords", + "operationId": "updateSmtpAccess" } }, - "/repliers/{id}/events": { + "/inboxes/tags": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ - { - "description": "ID of inbox replier", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, { "default": 0, - "description": "Optional page index in inbox replier event list pagination", + "description": "Optional page index in list pagination", "format": "int32", "in": "query", "name": "page", @@ -14219,7 +5255,7 @@ }, { "default": 20, - "description": "Optional page size in inbox replier event list pagination", + "description": "Optional page size in list pagination", "format": "int32", "in": "query", "name": "size", @@ -14237,79 +5273,110 @@ "name": "sort", "required": false, "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageInboxReplierEvents" + "items": { + "type": "string" + }, + "type": "array" } } }, "tags": [ - "InboxReplierController" + "InboxController" ], - "description": "Get inbox ruleset events", - "operationId": "getInboxReplierEvents", - "summary": "Get an inbox replier event list" + "description": "Get all inbox tags", + "operationId": "getInboxTags", + "summary": "Get inbox tags" } }, - "/rulesets": { - "delete": { + "/inboxes/tags/inboxes": { + "get": { + "produces": [ + "application/octet-stream" + ], "parameters": [ { - "description": "Optional inbox id to attach ruleset to", - "format": "uuid", + "default": 0, + "description": "Optional page index in list pagination", + "format": "int32", "in": "query", - "name": "inboxId", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", "required": false, "type": "string" }, { - "format": "uuid", + "description": "Optional search filter", "in": "query", - "name": "phoneId", + "name": "searchFilter", "required": false, "type": "string" + }, + { + "description": "Tag to filter by", + "in": "query", + "name": "tag", + "required": true, + "type": "string" } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxProjection" + } } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "Delete rulesets. Accepts optional inboxId or phoneId filters.", - "operationId": "deleteRulesets", - "summary": "Delete rulesets" - }, + "description": "Get all inboxes for a given inbox tag", + "operationId": "getInboxesByTag", + "summary": "Get inboxes for a tag" + } + }, + "/inboxes/tags/paginated": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ - { - "description": "Optional inbox id to get rulesets from", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "description": "Optional phone id to get rulesets from", - "format": "uuid", - "in": "query", - "name": "phoneId", - "required": false, - "type": "string" - }, { "default": 0, - "description": "Optional page index in inbox ruleset list pagination", + "description": "Optional page index in list pagination", "format": "int32", "in": "query", "name": "page", @@ -14318,7 +5385,7 @@ }, { "default": 20, - "description": "Optional page size in inbox ruleset list pagination", + "description": "Optional page size in list pagination", "format": "int32", "in": "query", "name": "size", @@ -14343,21 +5410,112 @@ "name": "searchFilter", "required": false, "type": "string" - }, + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageInboxTags" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Get all inbox tags paginated", + "operationId": "getInboxTagsPaginated", + "summary": "Get inbox tags paginated" + } + }, + "/inboxes/withDefaults": { + "post": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "InboxController" + ], + "operationId": "createInboxWithDefaults", + "summary": "Create an inbox with default options. Uses MailSlurp domain pool address and is private." + } + }, + "/inboxes/withOptions": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateInboxDto" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/InboxDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Additional endpoint that allows inbox creation with request body options. Can be more flexible that other methods for some clients.", + "operationId": "createInboxWithOptions", + "summary": "Create an inbox with options. Extended options for inbox creation." + } + }, + "/inboxes/{inboxId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, "type": "string" - }, + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" + ], + "description": "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.", + "operationId": "deleteInbox", + "summary": "Delete inbox" + }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, "type": "string" } ], @@ -14365,16 +5523,16 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageRulesetDto" + "$ref": "#/definitions/InboxDto" } } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "List all rulesets attached to an inbox or phone or account", - "operationId": "getRulesets", - "summary": "List rulesets block and allow lists" + "description": "Returns an inbox's properties, including its email address and ID.", + "operationId": "getInbox", + "summary": "Get Inbox. Returns properties of an inbox." }, "patch": { "consumes": [ @@ -14384,12 +5542,19 @@ "application/octet-stream" ], "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, { "in": "body", "name": "body", "required": true, "schema": { - "$ref": "#/definitions/TestNewInboxRulesetOptions" + "$ref": "#/definitions/UpdateInboxOptions" } } ], @@ -14397,39 +5562,28 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/InboxRulesetTestResult" + "$ref": "#/definitions/InboxDto" } } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "Test new ruleset", - "operationId": "testNewRuleset", - "summary": "Test new ruleset" + "description": "Update editable fields on an inbox", + "operationId": "updateInbox", + "summary": "Update Inbox. Change name and description. Email address is not editable." }, "post": { "consumes": [ "application/json" ], - "produces": [ - "application/octet-stream" - ], "parameters": [ { - "description": "Inbox id to attach ruleset to", + "description": "ID of the inbox you want to send the email from", "format": "uuid", - "in": "query", + "in": "path", "name": "inboxId", - "required": false, - "type": "string" - }, - { - "description": "Phone id to attach ruleset to", - "format": "uuid", - "in": "query", - "name": "phoneId", - "required": false, + "required": true, "type": "string" }, { @@ -14437,26 +5591,25 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/CreateRulesetOptions" + "$ref": "#/definitions/SendEmailOptions" } } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/RulesetDto" - } + "201": { + "description": "Created" } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "Create a new inbox or phone number rule for forwarding, blocking, and allowing emails or SMS when sending and receiving", - "operationId": "createNewRuleset", - "summary": "Create a ruleset" - }, - "put": { + "description": "Send an email from an inbox's email address. \nThe 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`.", + "operationId": "sendEmail", + "summary": "Send Email" + } + }, + "/inboxes/{inboxId}/confirm": { + "post": { "consumes": [ "application/json" ], @@ -14465,9 +5618,9 @@ ], "parameters": [ { - "description": "ID of inbox", + "description": "ID of the inbox you want to send the email from", "format": "uuid", - "in": "query", + "in": "path", "name": "inboxId", "required": true, "type": "string" @@ -14477,150 +5630,350 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/RulesetTestOptions" + "$ref": "#/definitions/SendEmailOptions" } } ], "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "schema": { - "$ref": "#/definitions/InboxRulesetTestResult" + "$ref": "#/definitions/SentEmailDto" } } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "Test inbox rulesets for inbox", - "operationId": "testInboxRulesetsForInbox", - "summary": "Test inbox rulesets for inbox" + "description": "Sister method for standard `sendEmail` method with the benefit of returning a `SentEmail` entity confirming the successful sending of the email with a link to the sent object created for it.", + "operationId": "sendEmailAndConfirm", + "summary": "Send email and return sent confirmation" } }, - "/rulesets/test-receiving": { - "post": { - "consumes": [ - "application/json" + "/inboxes/{inboxId}/deleteAllInboxEmails": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "InboxController" ], + "description": "Deletes all emails in an inbox. Be careful as emails cannot be recovered", + "operationId": "deleteAllInboxEmails", + "summary": "Delete all emails in a given inboxes." + } + }, + "/inboxes/{inboxId}/delivery-status": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "format": "uuid", + "in": "path", + "name": "inboxId", "required": true, - "schema": { - "$ref": "#/definitions/TestRulesetReceivingOptions" - } + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in delivery status list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in delivery status list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/TestRulesetReceivingResult" + "$ref": "#/definitions/PageDeliveryStatus" } } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "Test whether inbound emails from an email address would be blocked or allowed by inbox rulesets or test if phone number can receive SMS", - "operationId": "testRulesetReceiving", - "summary": "Test receiving with rulesets" + "deprecated": true, + "description": "Get all email delivery statuses for an inbox", + "operationId": "getDeliveryStatusesByInboxId" } }, - "/rulesets/test-sending": { - "post": { - "consumes": [ - "application/json" - ], + "/inboxes/{inboxId}/emails": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "description": "Id of inbox that emails belongs to", + "format": "uuid", + "in": "path", + "name": "inboxId", "required": true, - "schema": { - "$ref": "#/definitions/TestInboxRulesetSendingOptions" - } + "type": "string" + }, + { + "description": "Alias for limit. Assessed first before assessing any passed limit.", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "description": "Limit the result set, ordered by received date time sort direction. Maximum 100. For more listing options see the email controller", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "limit", + "required": false, + "type": "integer" + }, + { + "description": "Sort the results by received date and direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Maximum milliseconds to spend retrying inbox database until minCount emails are returned", + "format": "int64", + "in": "query", + "name": "retryTimeout", + "required": false, + "type": "integer" + }, + { + "format": "int64", + "in": "query", + "name": "delayTimeout", + "required": false, + "type": "integer" + }, + { + "description": "Minimum acceptable email count. Will cause request to hang (and retry) until minCount is satisfied or retryTimeout is reached.", + "format": "int64", + "in": "query", + "name": "minCount", + "required": false, + "type": "integer" + }, + { + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Exclude emails received after this ISO 8601 date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Exclude emails received before this ISO 8601 date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/TestRulesetSendingResult" + "items": { + "$ref": "#/definitions/EmailPreview" + }, + "type": "array" } } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "Test whether outbound emails to an email address would be blocked or allowed by inbox rulesets or whether a phone number can send SMS", - "operationId": "testRulesetSending", - "summary": "Test sending with rulesets" + "description": "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", + "operationId": "getEmails", + "summary": "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." } }, - "/rulesets/{id}": { - "delete": { + "/inboxes/{inboxId}/emails/count": { + "get": { + "produces": [ + "application/octet-stream" + ], "parameters": [ { - "description": "ID of ruleset", + "description": "Id of inbox that emails belongs to", "format": "uuid", "in": "path", - "name": "id", + "name": "inboxId", "required": true, "type": "string" } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "Delete ruleset", - "operationId": "deleteRuleset", - "summary": "Delete a ruleset" - }, + "operationId": "getInboxEmailCount", + "summary": "Get email count in inbox" + } + }, + "/inboxes/{inboxId}/emails/paginated": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "ID of ruleset", + "default": 0, + "description": "Optional page index in inbox emails list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox emails list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by received after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Id of inbox that emails belongs to", "format": "uuid", "in": "path", - "name": "id", + "name": "inboxId", "required": true, "type": "string" + }, + { + "description": "Sync connectors before fetching emails", + "in": "query", + "name": "syncConnectors", + "required": false, + "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/RulesetDto" + "$ref": "#/definitions/PageEmailPreview" } } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "Get ruleset", - "operationId": "getRuleset", - "summary": "Get a ruleset" + "description": "Get a paginated list of emails in an inbox. Does not hold connections open.", + "operationId": "getInboxEmailsPaginated", + "summary": "Get inbox emails paginated" } }, - "/rulesets/{id}/test": { - "post": { + "/inboxes/{inboxId}/favourite": { + "put": { "consumes": [ "application/json" ], @@ -14629,10 +5982,10 @@ ], "parameters": [ { - "description": "ID of ruleset", + "description": "ID of inbox to set favourite state", "format": "uuid", "in": "path", - "name": "id", + "name": "inboxId", "required": true, "type": "string" }, @@ -14641,7 +5994,7 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/RulesetTestOptions" + "$ref": "#/definitions/SetInboxFavouritedOptions" } } ], @@ -14649,122 +6002,95 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/InboxRulesetTestResult" + "$ref": "#/definitions/InboxDto" } } }, "tags": [ - "RulesetController" + "InboxController" ], - "description": "Test an inbox or phone ruleset", - "operationId": "testRuleset", - "summary": "Test a ruleset" + "description": "Set and return new favorite state for an inbox", + "operationId": "setInboxFavourited", + "summary": "Set inbox favourited state" } }, - "/sendEmail": { - "post": { - "consumes": [ - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SimpleSendEmailOptions" - } - } - ], - "responses": { - "201": { - "description": "Created" - } - }, - "tags": [ - "CommonActionsController" + "/inboxes/{inboxId}/plus-addresses": { + "get": { + "produces": [ + "application/octet-stream" ], - "description": "If no senderId or inboxId provided a random email address will be used to send from.", - "operationId": "sendEmailSimple", - "summary": "Send an email" - } - }, - "/sendEmailQuery": { - "post": { "parameters": [ { - "description": "ID of inbox to send from. If null an inbox will be created for sending", - "format": "uuid", + "default": 0, + "description": "Optional page index in inbox tracking pixel list pagination", + "format": "int32", "in": "query", - "name": "senderId", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Email address to send to", + "default": 20, + "description": "Optional page size in inbox tracking pixel list pagination", + "format": "int32", "in": "query", - "name": "to", - "required": true, - "type": "string" + "name": "size", + "required": false, + "type": "integer" }, { - "description": "Body of the email message. Supports HTML", + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], "in": "query", - "name": "body", + "name": "sort", "required": false, "type": "string" }, { - "description": "Subject line of the email", - "in": "query", - "name": "subject", - "required": false, + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, "type": "string" } ], "responses": { - "201": { - "description": "Created" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PagePlusAddressProjection" + } } }, "tags": [ - "CommonActionsController" + "InboxController" ], - "description": "If no senderId or inboxId provided a random email address will be used to send from. Ensure your parameters are URL encoded.", - "operationId": "sendEmailQuery", - "summary": "Send an email using query parameters" + "description": "Returns paginated list of all plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddresses", + "summary": "Get sub address plus address aliases for an inbox" } }, - "/sent": { - "delete": { - "parameters": [], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "SentEmailsController" - ], - "operationId": "deleteAllSentEmails", - "summary": "Delete all sent email receipts" - }, + "/inboxes/{inboxId}/plus-addresses/emails": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "Optional inboxId to filter sender of sent emails by", - "format": "uuid", + "description": "The plus address to fetch emails for. If your inbox address is `123@test.com` and the email was sent to `123+abc@test.com` then the plus address is `abc`", "in": "query", - "name": "inboxId", - "required": false, + "name": "plusAddress", + "required": true, "type": "string" }, { "default": 0, - "description": "Optional page index in inbox sent email list pagination", + "description": "Optional page index in inbox tracking pixel list pagination", "format": "int32", "in": "query", "name": "page", @@ -14773,7 +6099,7 @@ }, { "default": 20, - "description": "Optional page size in inbox sent email list pagination", + "description": "Optional page size in inbox tracking pixel list pagination", "format": "int32", "in": "query", "name": "size", @@ -14793,26 +6119,66 @@ "type": "string" }, { - "description": "Optional search filter", + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", + "format": "date-time", "in": "query", - "name": "searchFilter", + "name": "since", "required": false, "type": "string" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, + "description": "Optional filter by created before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageEmailPreview" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Returns paginated list of all emails for a given plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddressEmails", + "summary": "Get emails for a given inbox plus address" + } + }, + "/inboxes/{inboxId}/plus-addresses/{plusAddressId}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of the plus address you want to fetch", + "format": "uuid", + "in": "path", + "name": "plusAddressId", + "required": true, "type": "string" }, { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, + "description": "ID of the inbox you want to fetch", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, "type": "string" } ], @@ -14820,26 +6186,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageSentEmailProjection" + "$ref": "#/definitions/PlusAddressDto" } } }, "tags": [ - "SentEmailsController" + "InboxController" ], - "operationId": "getSentEmails", - "summary": "Get all sent emails in paginated form" + "description": "Returns a plus address object based on emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddress", + "summary": "Get sub address plus address for an inbox" } }, - "/sent/delivery-status": { + "/inboxes/{inboxId}/plus-addresses/{plusAddressId}/emails": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ + { + "description": "The plus address ID to fetch emails for.", + "format": "uuid", + "in": "path", + "name": "plusAddressId", + "required": true, + "type": "string" + }, { "default": 0, - "description": "Optional page index in delivery status list pagination", + "description": "Optional page index in inbox tracking pixel list pagination", "format": "int32", "in": "query", "name": "page", @@ -14848,7 +6223,7 @@ }, { "default": 20, - "description": "Optional page size in delivery status list pagination", + "description": "Optional page size in inbox tracking pixel list pagination", "format": "int32", "in": "query", "name": "size", @@ -14868,7 +6243,15 @@ "type": "string" }, { - "description": "Filter by created at after the given timestamp", + "description": "ID of the inbox you want to send the email from", + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", "format": "date-time", "in": "query", "name": "since", @@ -14876,7 +6259,7 @@ "type": "string" }, { - "description": "Filter by created at before the given timestamp", + "description": "Optional filter by created before given date time", "format": "date-time", "in": "query", "name": "before", @@ -14888,59 +6271,70 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageDeliveryStatus" + "$ref": "#/definitions/PageEmailPreview" } } }, "tags": [ - "SentEmailsController" + "InboxController" ], - "description": "Get all sent email delivery statuses", - "operationId": "getSentDeliveryStatuses" + "description": "Returns paginated list of all emails for a given plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", + "operationId": "getInboxPlusAddressEmailsForPlusAddressId", + "summary": "Get emails for a given inbox plus address" } }, - "/sent/delivery-status/wait-for": { + "/inboxes/{inboxId}/rulesets": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "Optional sent email ID filter", "format": "uuid", - "in": "query", - "name": "sentId", - "required": false, + "in": "path", + "name": "inboxId", + "required": true, "type": "string" }, { - "description": "Optional inbox ID filter", - "format": "uuid", + "default": 0, + "description": "Optional page index in inbox ruleset list pagination", + "format": "int32", "in": "query", - "name": "inboxId", + "name": "page", "required": false, - "type": "string" + "type": "integer" }, { - "description": "Optional timeout milliseconds", - "format": "int64", + "default": 20, + "description": "Optional page size in inbox ruleset list pagination", + "format": "int32", "in": "query", - "name": "timeout", + "name": "size", "required": false, "type": "integer" }, { - "description": "Zero based index of the delivery status to wait for. If 1 delivery status already and you want to wait for the 2nd pass index=1", - "format": "int32", + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], "in": "query", - "maximum": 2147483647, - "minimum": 0, - "name": "index", + "name": "sort", "required": false, - "type": "integer" + "type": "string" }, { - "description": "Filter by created at after the given timestamp", + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Optional filter by created after given date time", "format": "date-time", "in": "query", "name": "since", @@ -14948,7 +6342,7 @@ "type": "string" }, { - "description": "Filter by created at before the given timestamp", + "description": "Optional filter by created before given date time", "format": "date-time", "in": "query", "name": "before", @@ -14960,63 +6354,74 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/DeliveryStatusDto" + "$ref": "#/definitions/PageRulesetDto" } } }, "tags": [ - "SentEmailsController" + "InboxController" + ], + "description": "List all rulesets attached to an inbox", + "operationId": "listInboxRulesets", + "summary": "List inbox rulesets" + }, + "post": { + "consumes": [ + "application/json" ], - "description": "Wait for delivery statuses", - "operationId": "waitForDeliveryStatuses" - } - }, - "/sent/delivery-status/{deliveryId}": { - "get": { "produces": [ "application/octet-stream" ], "parameters": [ { + "description": "inboxId", "format": "uuid", "in": "path", - "name": "deliveryId", + "name": "inboxId", "required": true, "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateRulesetOptions" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/DeliveryStatusDto" + "$ref": "#/definitions/RulesetDto" } } }, "tags": [ - "SentEmailsController" + "InboxController" ], - "description": "Get a sent email delivery status", - "operationId": "getSentDeliveryStatus" + "description": "Create a new inbox rule for forwarding, blocking, and allowing emails when sending and receiving", + "operationId": "createInboxRuleset", + "summary": "Create an inbox ruleset" } }, - "/sent/organization": { + "/inboxes/{inboxId}/scheduled-jobs": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "Optional inboxId to filter sender of sent emails by", "format": "uuid", - "in": "query", + "in": "path", "name": "inboxId", - "required": false, + "required": true, "type": "string" }, { "default": 0, - "description": "Optional page index in sent email list pagination", + "description": "Optional page index in scheduled job list pagination", "format": "int32", "in": "query", "name": "page", @@ -15025,7 +6430,7 @@ }, { "default": 20, - "description": "Optional page size in sent email list pagination", + "description": "Optional page size in scheduled job list pagination", "format": "int32", "in": "query", "name": "size", @@ -15044,13 +6449,6 @@ "required": false, "type": "string" }, - { - "description": "Optional search filter", - "in": "query", - "name": "searchFilter", - "required": false, - "type": "string" - }, { "description": "Filter by created at after the given timestamp", "format": "date-time", @@ -15072,94 +6470,58 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageSentEmailProjection" + "$ref": "#/definitions/PageScheduledJobs" } } }, "tags": [ - "SentEmailsController" + "InboxController" ], - "description": "Get all sent organization emails in paginated form", - "operationId": "getSentOrganizationEmails" + "description": "Schedule sending of emails using scheduled jobs.", + "operationId": "getScheduledJobsByInboxId", + "summary": "Get all scheduled email sending jobs for the inbox" } }, - "/sent/queue-results": { - "get": { - "produces": [ - "application/octet-stream" - ], + "/inboxes/{inboxId}/send-test-email": { + "post": { "parameters": [ { - "default": 0, - "description": "Optional page index in inbox sent email list pagination", - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in inbox sent email list pagination", - "format": "int32", - "in": "query", - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at after the given timestamp", - "format": "date-time", - "in": "query", - "name": "since", - "required": false, - "type": "string" - }, - { - "description": "Filter by created at before the given timestamp", - "format": "date-time", - "in": "query", - "name": "before", - "required": false, + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, "type": "string" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageSentEmailWithQueueProjection" - } + "204": { + "description": "No Content" } }, "tags": [ - "SentEmailsController" + "InboxController" ], - "operationId": "getSentEmailsWithQueueResults", - "summary": "Get results of email sent with queues in paginated form" + "description": "Send an inbox a test email to test email receiving is working", + "operationId": "sendTestEmail", + "summary": "Send a test email to inbox" } }, - "/sent/tracking-pixels": { + "/inboxes/{inboxId}/sent": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "inboxId", + "required": true, + "type": "string" + }, { "default": 0, - "description": "Optional page index in sent email tracking pixel list pagination", + "description": "Optional page index in inbox sent email list pagination", "format": "int32", "in": "query", "name": "page", @@ -15168,7 +6530,7 @@ }, { "default": 20, - "description": "Optional page size in sent email tracking pixel list pagination", + "description": "Optional page size in inbox sent email list pagination", "format": "int32", "in": "query", "name": "size", @@ -15188,14 +6550,14 @@ "type": "string" }, { - "description": "Optional search filter", + "description": "Optional sent email search", "in": "query", "name": "searchFilter", "required": false, "type": "string" }, { - "description": "Filter by created at after the given timestamp", + "description": "Optional filter by sent after given date time", "format": "date-time", "in": "query", "name": "since", @@ -15203,7 +6565,7 @@ "type": "string" }, { - "description": "Filter by created at before the given timestamp", + "description": "Optional filter by sent before given date time", "format": "date-time", "in": "query", "name": "before", @@ -15215,54 +6577,186 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageTrackingPixelProjection" + "$ref": "#/definitions/PageSentEmailProjection" } } }, "tags": [ - "SentEmailsController" + "InboxController" ], - "description": "Get all sent email tracking pixels in paginated form", - "operationId": "getAllSentTrackingPixels" + "deprecated": true, + "description": "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.", + "operationId": "getInboxSentEmails", + "summary": "Get Inbox Sent Emails" } }, - "/sent/{emailId}/raw": { - "get": { + "/inboxes/{inboxId}/with-queue": { + "post": { + "consumes": [ + "application/json" + ], "parameters": [ { - "description": "ID of email", + "description": "ID of the inbox you want to send the email from", "format": "uuid", "in": "path", - "name": "emailId", + "name": "inboxId", "required": true, "type": "string" + }, + { + "description": "Validate before adding to queue", + "in": "query", + "name": "validateBeforeEnqueue", + "required": true, + "type": "boolean" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } } ], "responses": { - "200": { - "description": "OK" + "201": { + "description": "Created" } }, "tags": [ - "SentEmailsController" + "InboxController" ], - "description": "Returns a raw, unparsed, and unprocessed sent email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawSentEmailJson endpoint", - "operationId": "getRawSentEmailContents", - "summary": "Get raw sent email string. Returns unparsed raw SMTP message with headers and body." + "description": "Send an email using a queue. Will place the email onto a queue that will then be processed and sent. Use this queue method to enable any failed email sending to be recovered. This will prevent lost emails when sending if your account encounters a block or payment issue.", + "operationId": "sendEmailWithQueue", + "summary": "Send email with queue" } }, - "/sent/{emailId}/raw/json": { - "get": { + "/inboxes/{inboxId}/with-schedule": { + "post": { + "consumes": [ + "application/json" + ], "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "ID of email", + "description": "ID of the inbox you want to send the email from", "format": "uuid", "in": "path", - "name": "emailId", + "name": "inboxId", + "required": true, + "type": "string" + }, + { + "description": "Sending timestamp", + "format": "date-time", + "in": "query", + "name": "sendAtTimestamp", + "required": false, + "type": "string" + }, + { + "description": "Send after n seconds", + "format": "int64", + "in": "query", + "name": "sendAtNowPlusSeconds", + "required": false, + "type": "integer" + }, + { + "description": "Validate before adding to queue", + "in": "query", + "name": "validateBeforeEnqueue", + "required": false, + "type": "boolean" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailOptions" + } + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ScheduledJobDto" + } + } + }, + "tags": [ + "InboxController" + ], + "description": "Send an email using a delay. Will place the email onto a scheduler that will then be processed and sent. Use delays to schedule email sending.", + "operationId": "sendWithSchedule", + "summary": "Send email with with delay or schedule" + } + }, + "/mfa/totp/device/base32SecretKey": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", "required": true, + "schema": { + "$ref": "#/definitions/CreateTotpDeviceBase32SecretKeyOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TotpDeviceDto" + } + } + }, + "tags": [ + "MFAController" + ], + "description": "Create a virtual TOTP device for a given secret key. This is usually present as an alternative login option when pairing OTP devices.", + "operationId": "createTotpDeviceForBase32SecretKey", + "summary": "Create a TOTP device from an base32 secret key" + } + }, + "/mfa/totp/device/by": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "Optional name filter", + "in": "query", + "name": "name", + "required": false, + "type": "string" + }, + { + "description": "Optional issuer filter", + "in": "query", + "name": "issuer", + "required": false, + "type": "string" + }, + { + "description": "Optional username filter", + "in": "query", + "name": "username", + "required": false, "type": "string" } ], @@ -15270,40 +6764,87 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/RawEmailJson" + "$ref": "#/definitions/TotpDeviceOptionalDto" } } }, "tags": [ - "SentEmailsController" + "MFAController" ], - "description": "Returns a raw, unparsed, and unprocessed sent email wrapped in a JSON response object for easier handling when compared with the getRawSentEmail text/plain response", - "operationId": "getRawSentEmailJson", - "summary": "Get raw sent email in JSON. Unparsed SMTP message in JSON wrapper format." + "description": "Get Time-Based One-Time Password (TOTP) device by its username and issuer mapping.", + "operationId": "getTotpDeviceBy", + "summary": "Get a TOTP device by username, issuer, or name. Returns empty if not found." } }, - "/sent/{id}": { - "delete": { + "/mfa/totp/device/custom": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], "parameters": [ { - "format": "uuid", - "in": "path", - "name": "id", + "in": "body", + "name": "body", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/CreateTotpDeviceCustomOptions" + } } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TotpDeviceDto" + } } }, "tags": [ - "SentEmailsController" + "MFAController" ], - "operationId": "deleteSentEmail", - "summary": "Delete sent email receipt" - }, + "description": "Create a virtual TOTP device for custom options specifying all parameters of the TOTP device.", + "operationId": "createTotpDeviceForCustom", + "summary": "Create a TOTP device from custom options" + } + }, + "/mfa/totp/device/otpAuthUrl": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateTotpDeviceOtpAuthUrlOptions" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TotpDeviceDto" + } + } + }, + "tags": [ + "MFAController" + ], + "description": "Create a virtual TOTP device for a given OTP Auth URL such as otpauth://totp/MyApp:alice@example.com?secret=ABC123&issuer=MyApp&period=30&digits=6&algorithm=SHA1. You can provider overrides in the options for each component of the URL.", + "operationId": "createTotpDeviceForOtpAuthUrl", + "summary": "Create a TOTP device from an OTP Auth URL" + } + }, + "/mfa/totp/device/{id}": { "get": { "produces": [ "application/octet-stream" @@ -15321,24 +6862,45 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/SentEmailDto" + "$ref": "#/definitions/TotpDeviceDto" } } }, "tags": [ - "SentEmailsController" + "MFAController" ], - "operationId": "getSentEmail", - "summary": "Get sent email receipt" + "description": "Get Time-Based One-Time Password (TOTP) device by its ID.", + "operationId": "getTotpDevice", + "summary": "Get a TOTP device by ID" } }, - "/sent/{id}/html": { + "/mfa/totp/device/{id}/code": { "get": { "produces": [ - "text/html" + "application/octet-stream" ], "parameters": [ { + "description": "Optional time to get code for. If not provided, current time is used.", + "format": "date-time", + "in": "query", + "name": "at", + "required": false, + "type": "string" + }, + { + "default": 5, + "description": "Optional minimum time until code expires. Will hold thread open until period reached.", + "format": "int32", + "in": "query", + "maximum": 30, + "minimum": 1, + "name": "minSecondsUntilExpire", + "required": false, + "type": "integer" + }, + { + "description": "ID of the TOTP device to get the code for", "format": "uuid", "in": "path", "name": "id", @@ -15350,227 +6912,191 @@ "200": { "description": "OK", "schema": { - "type": "string" + "$ref": "#/definitions/TotpDeviceCodeDto" } } }, "tags": [ - "SentEmailsController" + "MFAController" ], - "operationId": "getSentEmailHTMLContent", - "summary": "Get sent email HTML content" + "description": "Get Time-Based One-Time Password for a device by its ID.", + "operationId": "getTotpDeviceCode", + "summary": "Get a TOTP device code by device ID" } }, - "/sent/{id}/tracking-pixels": { - "get": { + "/newEmailAddress": { + "post": { "produces": [ "application/octet-stream" ], "parameters": [ { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, + "in": "query", + "name": "allowTeamAccess", + "required": false, + "type": "boolean" + }, + { + "in": "query", + "name": "useDomainPool", + "required": false, + "type": "boolean" + }, + { + "format": "date-time", + "in": "query", + "name": "expiresAt", + "required": false, "type": "string" }, { - "default": 0, - "description": "Optional page index in sent email tracking pixel list pagination", - "format": "int32", + "format": "int64", "in": "query", - "name": "page", + "name": "expiresIn", "required": false, "type": "integer" }, { - "default": 20, - "description": "Optional page size in sent email tracking pixel list pagination", - "format": "int32", "in": "query", - "name": "size", + "name": "emailAddress", "required": false, - "type": "integer" + "type": "string" }, { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", + "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", "enum": [ - "ASC", - "DESC" + "HTTP_INBOX", + "SMTP_INBOX" ], "in": "query", - "name": "sort", + "name": "inboxType", "required": false, "type": "string" }, { - "description": "Optional search filter", "in": "query", - "name": "searchFilter", + "name": "description", "required": false, "type": "string" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", "in": "query", - "name": "since", + "name": "name", "required": false, "type": "string" }, { - "description": "Filter by created at before the given timestamp", - "format": "date-time", + "collectionFormat": "multi", "in": "query", - "name": "before", + "items": { + "type": "string" + }, + "name": "tags", "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageTrackingPixelProjection" - } - } - }, - "tags": [ - "SentEmailsController" - ], - "description": "Get all tracking pixels for a sent email in paginated form", - "operationId": "getSentEmailTrackingPixels" - } - }, - "/sent/{id}/urls": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EmailPreviewUrls" - } - } - }, - "tags": [ - "SentEmailsController" - ], - "description": "Get a list of URLs for sent email content as text/html or raw SMTP message for viewing the message in a browser.", - "operationId": "getSentEmailPreviewURLs", - "summary": "Get sent email URL for viewing in browser or downloading" - } - }, - "/sent/{sentId}/delivery-status": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ + "type": "array" + }, { - "description": "ID of the sent email that you want to get the delivery status of. Sent email object is returned when sending an email", - "format": "uuid", - "in": "path", - "name": "sentId", - "required": true, - "type": "string" + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" }, { - "default": 0, - "description": "Optional page index in delivery status list pagination", - "format": "int32", "in": "query", - "name": "page", + "name": "virtualInbox", "required": false, - "type": "integer" + "type": "boolean" }, { - "default": 20, - "description": "Optional page size in delivery status list pagination", - "format": "int32", "in": "query", - "name": "size", + "name": "useShortAddress", "required": false, - "type": "integer" + "type": "boolean" }, { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], "in": "query", - "name": "sort", + "name": "domainName", "required": false, "type": "string" }, { - "description": "Filter by created at after the given timestamp", - "format": "date-time", + "format": "uuid", "in": "query", - "name": "since", + "name": "domainId", "required": false, "type": "string" }, { - "description": "Filter by created at before the given timestamp", - "format": "date-time", "in": "query", - "name": "before", + "name": "prefix", "required": false, "type": "string" } ], "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "schema": { - "$ref": "#/definitions/PageDeliveryStatus" + "$ref": "#/definitions/InboxDto" } } }, "tags": [ - "SentEmailsController" + "CommonActionsController" ], - "description": "Get all sent email delivery statuses", - "operationId": "getSentDeliveryStatusesBySentId" + "description": "Returns an Inbox with an `id` and an `emailAddress`", + "operationId": "createNewEmailAddress", + "summary": "Create new random inbox" } }, - "/sms": { - "delete": { + "/phone": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], "parameters": [ { - "format": "uuid", - "in": "query", - "name": "phoneNumberId", - "required": false, - "type": "string" + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreatePhoneNumberOptions" + } } ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhoneNumberDto" + } + } + }, + "tags": [ + "PhoneController" + ], + "description": "Create new phone number", + "operationId": "createPhoneNumber", + "summary": "Add phone number to your account. Only works if you have already added a plan and an initial phone number in your account and acknowledged the pricing and terms of service by enabling API phone creation." + } + }, + "/phone/numbers": { + "delete": { + "parameters": [], "responses": { "204": { "description": "No Content" } }, "tags": [ - "SmsController" + "PhoneController" ], - "description": "Delete all SMS messages or all messages for a given phone number", - "operationId": "deleteSmsMessages", - "summary": "Delete all SMS messages" + "description": "Remove all phone number from account", + "operationId": "deleteAllPhoneNumber", + "summary": "Delete all phone numbers" }, "get": { "produces": [ @@ -15578,16 +7104,29 @@ ], "parameters": [ { - "description": "Optional receiving phone number to filter SMS messages for", - "format": "uuid", + "description": "Optional phone country", + "enum": [ + "US", + "GB", + "AU", + "CA", + "EE", + "HK", + "PL", + "CH", + "PT", + "NL", + "IL", + "SE" + ], "in": "query", - "name": "phoneNumber", + "name": "phoneCountry", "required": false, "type": "string" }, { "default": 0, - "description": "Optional page index in SMS list pagination", + "description": "Optional page index for list pagination", "format": "int32", "in": "query", "name": "page", @@ -15596,10 +7135,9 @@ }, { "default": 20, - "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "description": "Optional page size for list pagination", "format": "int32", "in": "query", - "maximum": 100, "name": "size", "required": false, "type": "integer" @@ -15617,7 +7155,7 @@ "type": "string" }, { - "description": "Optional filter SMSs received after given date time", + "description": "Filter by created at after the given timestamp", "format": "date-time", "in": "query", "name": "since", @@ -15625,7 +7163,7 @@ "type": "string" }, { - "description": "Optional filter SMSs received before given date time", + "description": "Filter by created at before the given timestamp", "format": "date-time", "in": "query", "name": "before", @@ -15639,17 +7177,9 @@ "required": false, "type": "string" }, - { - "default": false, - "description": "Optionally filter results for favourites only", - "in": "query", - "name": "favourite", - "required": false, - "type": "boolean" - }, { "collectionFormat": "multi", - "description": "Optional list of IDs to include in result", + "description": "Optional phoneIds to include in result", "in": "query", "items": { "format": "uuid", @@ -15658,130 +7188,138 @@ "name": "include", "required": false, "type": "array" + }, + { + "default": false, + "description": "Optionally filter results for favourites only", + "in": "query", + "name": "favourite", + "required": false, + "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageSmsProjection" + "$ref": "#/definitions/PagePhoneNumberProjection" } } }, "tags": [ - "SmsController" + "PhoneController" ], - "operationId": "getAllSmsMessages" + "description": "List phone numbers for account", + "operationId": "getPhoneNumbers", + "summary": "Get phone numbers" } }, - "/sms/count": { + "/phone/numbers/by-name": { "get": { "produces": [ "application/octet-stream" ], - "parameters": [], + "parameters": [ + { + "in": "query", + "name": "name", + "required": true, + "type": "string" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/CountDto" + "$ref": "#/definitions/PhoneNumberDto" } } }, "tags": [ - "SmsController" + "PhoneController" ], - "description": "Get number of SMS", - "operationId": "getSmsCount", - "summary": "Get SMS count" + "description": "Get a phone number by name", + "operationId": "getPhoneNumberByName", + "summary": "Get a phone number by name" } }, - "/sms/send": { - "post": { - "consumes": [ - "application/json" - ], + "/phone/numbers/by-phone-number": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "Phone number to send from in E.164 format", - "in": "query", - "name": "fromPhoneNumber", - "required": false, - "type": "string" - }, - { - "description": "Phone number ID to send from in UUID form", - "format": "uuid", "in": "query", - "name": "fromPhoneId", - "required": false, - "type": "string" - }, - { - "in": "body", - "name": "body", + "name": "phoneNumber", "required": true, - "schema": { - "$ref": "#/definitions/SmsSendOptions" - } + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/SentSmsDto" + "$ref": "#/definitions/PhoneNumberDto" } } }, "tags": [ - "SmsController" + "PhoneController" ], - "operationId": "sendSms" + "description": "Get a phone number by phone number", + "operationId": "getPhoneNumberByPhoneNumber", + "summary": "Get a phone number by phone number" } }, - "/sms/sent": { - "delete": { + "/phone/numbers/message-threads": { + "get": { + "produces": [ + "application/octet-stream" + ], "parameters": [ { - "format": "uuid", + "default": 0, + "format": "int32", "in": "query", - "name": "phoneNumberId", + "name": "page", "required": false, - "type": "string" + "type": "integer" + }, + { + "default": 20, + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PagePhoneMessageThreadProjection" + } } }, "tags": [ - "SmsController" + "PhoneController" ], - "description": "Delete all sent SMS messages or all messages for a given phone number", - "operationId": "deleteSentSmsMessages", - "summary": "Delete all sent SMS messages" - }, + "description": "List all message threads for all phones", + "operationId": "getAllPhoneMessageThreads", + "summary": "Get the latest messages for all phones" + } + }, + "/phone/numbers/{phoneId}/webhooks/paginated": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ - { - "description": "Optional phone number to filter sent SMS messages for", - "format": "uuid", - "in": "query", - "name": "phoneNumber", - "required": false, - "type": "string" - }, { "default": 0, - "description": "Optional page index in SMS list pagination", + "description": "Optional page index in list pagination", "format": "int32", "in": "query", "name": "page", @@ -15790,10 +7328,9 @@ }, { "default": 20, - "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "description": "Optional page size in list pagination", "format": "int32", "in": "query", - "maximum": 100, "name": "size", "required": false, "type": "integer" @@ -15811,7 +7348,14 @@ "type": "string" }, { - "description": "Optional filter SMSs received after given date time", + "format": "uuid", + "in": "path", + "name": "phoneId", + "required": true, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", "format": "date-time", "in": "query", "name": "since", @@ -15819,155 +7363,289 @@ "type": "string" }, { - "description": "Optional filter SMSs received before given date time", + "description": "Filter by created at before the given timestamp", "format": "date-time", "in": "query", "name": "before", "required": false, "type": "string" }, + { + "description": "Optional event type", + "enum": [ + "EMAIL_RECEIVED", + "NEW_AI_TRANSFORM_RESULT", + "NEW_EMAIL", + "NEW_CONTACT", + "NEW_ATTACHMENT", + "EMAIL_OPENED", + "EMAIL_READ", + "DELIVERY_STATUS", + "BOUNCE", + "BOUNCE_RECIPIENT", + "NEW_SMS", + "NEW_GUEST_USER" + ], + "in": "query", + "name": "eventType", + "required": false, + "type": "string" + }, { "description": "Optional search filter", "in": "query", - "name": "search", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by webhook health", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "in": "query", + "name": "health", "required": false, "type": "string" + }, + { + "description": "Include account scope phone webhooks", + "in": "query", + "name": "includeAccountWide", + "required": false, + "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageSentSmsProjection" + "$ref": "#/definitions/PageWebhookProjection" } } }, "tags": [ - "SmsController" + "WebhookController" ], - "description": "By default returns all SMS messages across all phone numbers sorted by ascending created at date. Responses are paginated. You can restrict results to a list of phone number IDs. You can also filter out read messages", - "operationId": "getSentSmsMessagesPaginated", - "summary": "Get all SMS messages in all phone numbers in paginated form. ." + "operationId": "getPhoneNumberWebhooksPaginated", + "summary": "Get paginated webhooks for a phone number" } }, - "/sms/sent/count": { + "/phone/numbers/{phoneNumberId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "PhoneController" + ], + "description": "Remove phone number from account", + "operationId": "deletePhoneNumber", + "summary": "Delete a phone number" + }, "get": { "produces": [ "application/octet-stream" ], - "parameters": [], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/CountDto" + "$ref": "#/definitions/PhoneNumberDto" } } }, "tags": [ - "SmsController" + "PhoneController" + ], + "description": "Get a phone number by ID", + "operationId": "getPhoneNumber", + "summary": "Get a phone number by ID" + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" ], - "description": "Get number of sent SMS", - "operationId": "getSentSmsCount", - "summary": "Get sent SMS count" - } - }, - "/sms/sent/{sentSmsId}": { - "delete": { "parameters": [ { + "description": "ID of phone to set favourite state", "format": "uuid", "in": "path", - "name": "sentSmsId", + "name": "phoneNumberId", "required": true, "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdatePhoneNumberOptions" + } } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PhoneNumberDto" + } } }, "tags": [ - "SmsController" + "PhoneController" + ], + "description": "Set field for phone number", + "operationId": "updatePhoneNumber", + "summary": "Update a phone number" + } + }, + "/phone/numbers/{phoneNumberId}/favourite": { + "put": { + "consumes": [ + "application/json" ], - "description": "Delete a sent SMS message", - "operationId": "deleteSentSmsMessage", - "summary": "Delete sent SMS message." - }, - "get": { "produces": [ "application/octet-stream" ], "parameters": [ { + "description": "ID of phone to set favourite state", "format": "uuid", "in": "path", - "name": "sentSmsId", + "name": "phoneNumberId", "required": true, "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SetPhoneFavouritedOptions" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/SentSmsDto" + "$ref": "#/definitions/PhoneNumberDto" } } }, "tags": [ - "SmsController" + "PhoneController" ], - "description": "Returns an SMS summary object with content.", - "operationId": "getSentSmsMessage", - "summary": "Get sent SMS content including body. Expects sent SMS to exist by ID." + "description": "Set and return new favorite state for a phone", + "operationId": "setPhoneFavourited", + "summary": "Set phone favourited state" } }, - "/sms/unreadCount": { + "/phone/numbers/{phoneNumberId}/message-threads": { "get": { "produces": [ "application/octet-stream" ], - "parameters": [], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "default": 0, + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/UnreadCount" + "$ref": "#/definitions/PagePhoneMessageThreadProjection" } } }, "tags": [ - "SmsController" + "PhoneController" ], - "description": "Get number of SMS unread. Unread means has not been viewed in dashboard or returned in an email API response", - "operationId": "getUnreadSmsCount", - "summary": "Get unread SMS count" + "description": "List message threads for a phone", + "operationId": "getPhoneMessageThreads", + "summary": "Get the latest message preview for a thread" } }, - "/sms/{smsId}": { + "/phone/numbers/{phoneNumberId}/message-threads/{otherNumber}": { "delete": { + "produces": [ + "application/octet-stream" + ], "parameters": [ { "format": "uuid", "in": "path", - "name": "smsId", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "otherNumber", "required": true, "type": "string" } ], "responses": { "204": { - "description": "No Content" + "description": "No Content", + "schema": { + "$ref": "#/definitions/EmptyResponseDto" + } } }, "tags": [ - "SmsController" + "PhoneController" ], - "description": "Delete an SMS message", - "operationId": "deleteSmsMessage", - "summary": "Delete SMS message." + "description": "Delete all messages in an SMS thread", + "operationId": "deletePhoneMessageThreadItems", + "summary": "Delete messages in a phone thread" }, "get": { "produces": [ @@ -15977,90 +7655,147 @@ { "format": "uuid", "in": "path", - "name": "smsId", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "in": "path", + "name": "otherNumber", "required": true, "type": "string" + }, + { + "default": 0, + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/SmsDto" + "$ref": "#/definitions/PagePhoneMessageThreadItemProjection" } } }, "tags": [ - "SmsController" + "PhoneController" ], - "description": "Returns a SMS summary object with content.", - "operationId": "getSmsMessage", - "summary": "Get SMS content including body. Expects SMS to exist by ID. For SMS that may not have arrived yet use the WaitForController." + "description": "List message thread messages for a phone message thread", + "operationId": "getPhoneMessageThreadItems", + "summary": "Get messages in a phone thread" } }, - "/sms/{smsId}/favourite": { - "put": { + "/phone/numbers/{phoneNumberId}/sms": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "ID of SMS to set favourite state", - "format": "uuid", - "in": "path", - "name": "smsId", - "required": true, + "format": "uuid", + "in": "path", + "name": "phoneNumberId", + "required": true, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in SMS list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", + "format": "int32", + "in": "query", + "maximum": 100, + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "default": false, + "description": "Optional filter for unread SMS only. All SMS are considered unread until they are viewed in the dashboard or requested directly", + "in": "query", + "name": "unreadOnly", + "required": false, + "type": "boolean" + }, + { + "description": "Optional filter SMSs received after given date time", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Optional filter SMSs received before given date time", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "search", + "required": false, "type": "string" }, { + "default": false, + "description": "Optionally filter results for favourites only", "in": "query", - "name": "favourited", - "required": true, + "name": "favourite", + "required": false, "type": "boolean" } ], - "responses": { - "204": { - "description": "No Content", - "schema": { - "$ref": "#/definitions/SmsDto" - } - } - }, - "tags": [ - "SmsController" - ], - "operationId": "setSmsFavourited" - } - }, - "/sms/{smsId}/reply": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "smsId", - "required": true, - "type": "string" - } - ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/ReplyForSms" + "$ref": "#/definitions/PageSmsProjection" } } }, "tags": [ - "SmsController" + "PhoneController" ], - "description": "Get reply for an SMS message.", - "operationId": "getReplyForSmsMessage", - "summary": "Get reply for an SMS message" + "description": "Get SMS messages for a phone number", + "operationId": "getSmsByPhoneNumber", + "summary": "List SMS messages for a phone number" }, "post": { "consumes": [ @@ -16073,7 +7808,7 @@ { "format": "uuid", "in": "path", - "name": "smsId", + "name": "phoneNumberId", "required": true, "type": "string" }, @@ -16082,7 +7817,7 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/SmsReplyOptions" + "$ref": "#/definitions/SmsSendOptions" } } ], @@ -16095,79 +7830,29 @@ } }, "tags": [ - "SmsController" + "PhoneController" ], - "description": "Reply to an SMS message.", - "operationId": "replyToSmsMessage", - "summary": "Send a reply to a received SMS message. Replies are sent from the receiving number." + "description": "Send SMS from a phone number", + "operationId": "sendSmsFromPhoneNumber", + "summary": "Send TXT message from a phone number" } }, - "/templates": { + "/phone/numbers/{phoneNumberId}/sms-sent": { "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "items": { - "$ref": "#/definitions/TemplateProjection" - }, - "type": "array" - } - } - }, - "tags": [ - "TemplateController" - ], - "description": "Get all templates", - "operationId": "getTemplates", - "summary": "List templates" - }, - "post": { - "consumes": [ - "application/json" - ], "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "format": "uuid", + "in": "path", + "name": "phoneNumberId", "required": true, - "schema": { - "$ref": "#/definitions/CreateTemplateOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/TemplateDto" - } - } - }, - "tags": [ - "TemplateController" - ], - "description": "Create an email template with variables for use with templated transactional emails.", - "operationId": "createTemplate", - "summary": "Create a Template" - } - }, - "/templates/paginated": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ + "type": "string" + }, { "default": 0, - "description": "Optional page index in list pagination", + "description": "Optional page index in SMS list pagination", "format": "int32", "in": "query", "name": "page", @@ -16176,9 +7861,10 @@ }, { "default": 20, - "description": "Optional page size in list pagination", + "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", "format": "int32", "in": "query", + "maximum": 100, "name": "size", "required": false, "type": "integer" @@ -16196,7 +7882,7 @@ "type": "string" }, { - "description": "Filter by created at after the given timestamp", + "description": "Optional filter SMSs received after given date time", "format": "date-time", "in": "query", "name": "since", @@ -16204,84 +7890,80 @@ "type": "string" }, { - "description": "Filter by created at before the given timestamp", + "description": "Optional filter SMSs received before given date time", "format": "date-time", "in": "query", "name": "before", "required": false, "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "search", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageTemplateProjection" + "$ref": "#/definitions/PageSentSmsProjection" } } }, "tags": [ - "TemplateController" + "PhoneController" ], - "description": "Get all templates in paginated format", - "operationId": "getAllTemplates", - "summary": "List templates" + "description": "Get sent SMS messages for a phone number", + "operationId": "getSentSmsByPhoneNumber", + "summary": "List sent TXT messages for a phone number" } }, - "/templates/{templateId}": { - "delete": { + "/phone/numbers/{phoneNumberId}/test": { + "post": { + "consumes": [ + "application/json" + ], "parameters": [ { - "description": "Template ID", - "format": "uuid", - "in": "path", - "name": "templateId", - "required": true, + "in": "header", + "name": "x-test-id", + "required": false, "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "TemplateController" - ], - "description": "Delete template", - "operationId": "deleteTemplate", - "summary": "Delete email template" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ + }, { - "description": "Template ID", "format": "uuid", "in": "path", - "name": "templateId", + "name": "phoneNumberId", "required": true, "type": "string" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TestPhoneNumberOptions" + } } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/TemplateDto" - } + "description": "OK" } }, "tags": [ - "TemplateController" + "PhoneController" ], - "description": "Get email template", - "operationId": "getTemplate", - "summary": "Get template" - }, - "put": { + "description": "Test a phone number by sending an SMS to it", + "operationId": "testPhoneNumberSendSms", + "summary": "Test sending an SMS to a number" + } + }, + "/phone/numbers/{phoneNumberId}/webhooks": { + "post": { "consumes": [ "application/json" ], @@ -16290,10 +7972,9 @@ ], "parameters": [ { - "description": "Template ID", "format": "uuid", "in": "path", - "name": "templateId", + "name": "phoneNumberId", "required": true, "type": "string" }, @@ -16302,7 +7983,7 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/CreateTemplateOptions" + "$ref": "#/definitions/CreateWebhookOptions" } } ], @@ -16310,82 +7991,19 @@ "201": { "description": "Created", "schema": { - "$ref": "#/definitions/TemplateDto" - } - } - }, - "tags": [ - "TemplateController" - ], - "description": "Update email template", - "operationId": "updateTemplate", - "summary": "Update template" - } - }, - "/templates/{templateId}/preview/html": { - "get": { - "produces": [ - "text/html;charset=utf-8", - "text/html" - ], - "parameters": [ - { - "description": "Template ID", - "format": "uuid", - "in": "path", - "name": "templateId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - } - }, - "tags": [ - "TemplateController" - ], - "description": "Get email template preview with passed template variables in HTML format for browsers. Pass template variables as query params.", - "operationId": "getTemplatePreviewHtml", - "summary": "Get template preview HTML" - } - }, - "/templates/{templateId}/preview/json": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Template ID", - "format": "uuid", - "in": "path", - "name": "templateId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/TemplatePreview" + "$ref": "#/definitions/WebhookDto" } } }, "tags": [ - "TemplateController" + "WebhookController" ], - "description": "Get email template preview with passed template variables in JSON format. Pass template variables as query params.", - "operationId": "getTemplatePreviewJson", - "summary": "Get template preview Json" + "description": "Get notified whenever a phone number receives an SMS via a WebHook URL.", + "operationId": "createWebhookForPhoneNumber", + "summary": "Attach a WebHook URL to a phone number" } }, - "/tools/check-email-features-client-support": { + "/phone/validate": { "post": { "consumes": [ "application/json" @@ -16399,7 +8017,7 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/CheckEmailFeaturesClientSupportOptions" + "$ref": "#/definitions/ValidatePhoneNumberOptions" } } ], @@ -16407,97 +8025,170 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/CheckEmailFeaturesClientSupportResults" + "$ref": "#/definitions/PhoneNumberValidationDto" } } }, "tags": [ - "ToolsController" + "PhoneController" + ], + "description": "Validate a phone number", + "operationId": "validatePhoneNumber", + "summary": "Verify validity of a phone number" + } + }, + "/sendEmail": { + "post": { + "consumes": [ + "application/json" ], - "operationId": "checkEmailFeaturesClientSupport", - "summary": "Check email client support for email HTML and CSS features" - } - }, - "/tools/fake-email": { - "delete": { "parameters": [ { - "in": "query", - "name": "emailAddress", + "in": "body", + "name": "body", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/SimpleSendEmailOptions" + } } ], "responses": { - "204": { - "description": "No Content" + "201": { + "description": "Created" } }, "tags": [ - "ToolsController" - ], - "description": "Delete a fake email address using the fake email domains", - "operationId": "deleteNewFakeEmailAddress", - "summary": "Delete a fake email address using the fake email domains" - }, - "get": { - "produces": [ - "application/octet-stream" + "CommonActionsController" ], + "description": "If no senderId or inboxId provided a random email address will be used to send from.", + "operationId": "sendEmailSimple", + "summary": "Send an email" + } + }, + "/sendEmailQuery": { + "post": { "parameters": [ { + "description": "ID of inbox to send from. If null an inbox will be created for sending", "format": "uuid", "in": "query", - "name": "id", + "name": "senderId", + "required": false, + "type": "string" + }, + { + "description": "Email address to send to", + "in": "query", + "name": "to", "required": true, "type": "string" + }, + { + "description": "Body of the email message. Supports HTML", + "in": "query", + "name": "body", + "required": false, + "type": "string" + }, + { + "description": "Subject line of the email", + "in": "query", + "name": "subject", + "required": false, + "type": "string" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/FakeEmailResult" - } + "201": { + "description": "Created" } }, "tags": [ - "ToolsController" - ], - "description": "Get a fake email by its ID", - "operationId": "getFakeEmailById", - "summary": "Get a fake email by its ID" - }, - "post": { - "produces": [ - "application/octet-stream" + "CommonActionsController" ], + "description": "If no senderId or inboxId provided a random email address will be used to send from. Ensure your parameters are URL encoded.", + "operationId": "sendEmailQuery", + "summary": "Send an email using query parameters" + } + }, + "/sent": { + "delete": { "parameters": [], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/NewFakeEmailAddressResult" - } + "204": { + "description": "No Content" } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "createNewFakeEmailAddress", - "summary": "Create a new email address using the fake email domains" - } - }, - "/tools/fake-email/byEmailAddress": { + "operationId": "deleteAllSentEmails", + "summary": "Delete all sent email receipts" + }, "get": { "produces": [ "application/octet-stream" ], "parameters": [ { + "description": "Optional inboxId to filter sender of sent emails by", + "format": "uuid", "in": "query", - "name": "emailAddress", - "required": true, + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, "type": "string" } ], @@ -16505,30 +8196,67 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/FakeEmailResult" + "$ref": "#/definitions/PageSentEmailProjection" } } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "getFakeEmailByEmailAddress" + "operationId": "getSentEmails", + "summary": "Get all sent emails in paginated form" } }, - "/tools/fake-email/html": { + "/sent/delivery-status": { "get": { "produces": [ - "text/plain;charset=utf-8", - "text/html;charset=utf-8", - "text/plain; charset=utf-8", - "text/html; charset=utf-8" + "application/octet-stream" ], "parameters": [ { - "format": "uuid", + "default": 0, + "description": "Optional page index in delivery status list pagination", + "format": "int32", "in": "query", - "name": "id", - "required": true, + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in delivery status list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, "type": "string" } ], @@ -16536,35 +8264,71 @@ "200": { "description": "OK", "schema": { - "type": "string" + "$ref": "#/definitions/PageDeliveryStatus" } } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "description": "Retrieve the raw content of a fake email by its ID", - "operationId": "getFakeEmailRaw", - "summary": "Get raw fake email content" + "description": "Get all sent email delivery statuses", + "operationId": "getSentDeliveryStatuses" } }, - "/tools/fake-emails": { + "/sent/delivery-status/wait-for": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ { + "description": "Optional sent email ID filter", + "format": "uuid", + "in": "query", + "name": "sentId", + "required": false, + "type": "string" + }, + { + "description": "Optional inbox ID filter", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Optional timeout milliseconds", + "format": "int64", + "in": "query", + "name": "timeout", + "required": false, + "type": "integer" + }, + { + "description": "Zero based index of the delivery status to wait for. If 1 delivery status already and you want to wait for the 2nd pass index=1", "format": "int32", "in": "query", - "name": "page", + "maximum": 2147483647, + "minimum": 0, + "name": "index", "required": false, "type": "integer" }, { + "description": "Filter by created at after the given timestamp", + "format": "date-time", "in": "query", - "name": "emailAddress", - "required": true, + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, "type": "string" } ], @@ -16572,327 +8336,423 @@ "200": { "description": "OK", "schema": { - "items": { - "$ref": "#/definitions/FakeEmailPreview" - }, - "type": "array" + "$ref": "#/definitions/DeliveryStatusDto" } } }, "tags": [ - "ToolsController" - ], - "description": "Get fake emails for an address", - "operationId": "getFakeEmailsForAddress", - "summary": "Get fake emails for an address" - } - }, - "/tools/generate-bimi-record": { - "post": { - "consumes": [ - "application/json" + "SentEmailsController" ], + "description": "Wait for delivery statuses", + "operationId": "waitForDeliveryStatuses" + } + }, + "/sent/delivery-status/{deliveryId}": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "format": "uuid", + "in": "path", + "name": "deliveryId", "required": true, - "schema": { - "$ref": "#/definitions/GenerateBimiRecordOptions" - } + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/GenerateBimiRecordResults" + "$ref": "#/definitions/DeliveryStatusDto" } } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "generateBimiRecord", - "summary": "Create a BIMI record policy" + "description": "Get a sent email delivery status", + "operationId": "getSentDeliveryStatus" } }, - "/tools/generate-dmarc-record": { - "post": { - "consumes": [ - "application/json" - ], + "/sent/organization": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/GenerateDmarcRecordOptions" - } + "description": "Optional inboxId to filter sender of sent emails by", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "default": 0, + "description": "Optional page index in sent email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in sent email list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/GenerateDmarcRecordResults" + "$ref": "#/definitions/PageSentEmailProjection" } } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "generateDmarcRecord", - "summary": "Create a DMARC record policy" + "description": "Get all sent organization emails in paginated form", + "operationId": "getSentOrganizationEmails" } }, - "/tools/generate-mta-sts-record": { - "post": { - "consumes": [ - "application/json" - ], + "/sent/queue-results": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/GenerateMtaStsRecordOptions" - } + "default": 0, + "description": "Optional page index in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in inbox sent email list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/GenerateMtaStsRecordResults" + "$ref": "#/definitions/PageSentEmailWithQueueProjection" } } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "generateMtaStsRecord", - "summary": "Create a TLS reporting record policy" + "operationId": "getSentEmailsWithQueueResults", + "summary": "Get results of email sent with queues in paginated form" } }, - "/tools/generate-tls-reporting-record": { - "post": { - "consumes": [ - "application/json" - ], + "/sent/tracking-pixels": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/GenerateTlsReportingRecordOptions" - } + "default": 0, + "description": "Optional page index in sent email tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "page", + "required": false, + "type": "integer" + }, + { + "default": 20, + "description": "Optional page size in sent email tracking pixel list pagination", + "format": "int32", + "in": "query", + "name": "size", + "required": false, + "type": "integer" + }, + { + "default": "ASC", + "description": "Optional createdAt sort direction ASC or DESC", + "enum": [ + "ASC", + "DESC" + ], + "in": "query", + "name": "sort", + "required": false, + "type": "string" + }, + { + "description": "Optional search filter", + "in": "query", + "name": "searchFilter", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at after the given timestamp", + "format": "date-time", + "in": "query", + "name": "since", + "required": false, + "type": "string" + }, + { + "description": "Filter by created at before the given timestamp", + "format": "date-time", + "in": "query", + "name": "before", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/GenerateTlsReportingRecordResults" + "$ref": "#/definitions/PageTrackingPixelProjection" } } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "generateTlsReportingRecord", - "summary": "Create a TLS reporting record policy" + "description": "Get all sent email tracking pixels in paginated form", + "operationId": "getAllSentTrackingPixels" } }, - "/tools/lookup-bimi-domain": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], + "/sent/{emailId}/raw": { + "get": { "parameters": [ { - "in": "body", - "name": "body", + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", "required": true, - "schema": { - "$ref": "#/definitions/LookupBimiDomainOptions" - } + "type": "string" } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/LookupBimiDomainResults" - } + "description": "OK" } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "lookupBimiDomain", - "summary": "Lookup a BIMI record policy" + "description": "Returns a raw, unparsed, and unprocessed sent email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawSentEmailJson endpoint", + "operationId": "getRawSentEmailContents", + "summary": "Get raw sent email string. Returns unparsed raw SMTP message with headers and body." } }, - "/tools/lookup-dmarc-domain": { - "post": { - "consumes": [ - "application/json" - ], + "/sent/{emailId}/raw/json": { + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/LookupDmarcDomainOptions" - } + "description": "ID of email", + "format": "uuid", + "in": "path", + "name": "emailId", + "required": true, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/LookupDmarcDomainResults" + "$ref": "#/definitions/RawEmailJson" } } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "lookupDmarcDomain", - "summary": "Lookup a DMARC record policy" + "description": "Returns a raw, unparsed, and unprocessed sent email wrapped in a JSON response object for easier handling when compared with the getRawSentEmail text/plain response", + "operationId": "getRawSentEmailJson", + "summary": "Get raw sent email in JSON. Unparsed SMTP message in JSON wrapper format." } }, - "/tools/lookup-mta-sts-domain": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], + "/sent/{id}": { + "delete": { "parameters": [ { - "in": "body", - "name": "body", + "format": "uuid", + "in": "path", + "name": "id", "required": true, - "schema": { - "$ref": "#/definitions/LookupMtaStsDomainOptions" - } + "type": "string" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/LookupMtaStsDomainResults" - } + "204": { + "description": "No Content" } }, "tags": [ - "ToolsController" - ], - "operationId": "lookupMtaStsDomain", - "summary": "Lookup a MTA-STS domain policy" - } - }, - "/tools/lookup-mx-records": { - "post": { - "consumes": [ - "application/json" + "SentEmailsController" ], + "operationId": "deleteSentEmail", + "summary": "Delete sent email receipt" + }, + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "format": "uuid", + "in": "path", + "name": "id", "required": true, - "schema": { - "$ref": "#/definitions/LookupMxRecordsOptions" - } + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/LookupMxRecordsResults" + "$ref": "#/definitions/SentEmailDto" } } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "lookupMxRecord", - "summary": "Lookup a MX records for a domain" + "operationId": "getSentEmail", + "summary": "Get sent email receipt" } }, - "/tools/lookup-tls-reporting-domain": { - "post": { - "consumes": [ - "application/json" - ], + "/sent/{id}/html": { + "get": { "produces": [ - "application/octet-stream" + "text/html" ], "parameters": [ { - "in": "body", - "name": "body", + "format": "uuid", + "in": "path", + "name": "id", "required": true, - "schema": { - "$ref": "#/definitions/LookupTlsReportingDomainOptions" - } + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/LookupTlsReportingDomainResults" + "type": "string" } } }, "tags": [ - "ToolsController" + "SentEmailsController" ], - "operationId": "lookupTlsReportingDomain", - "summary": "Lookup a TLS reporting domain policy" + "operationId": "getSentEmailHTMLContent", + "summary": "Get sent email HTML content" } }, - "/tracking/pixels": { + "/sent/{id}/tracking-pixels": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, { "default": 0, - "description": "Optional page index in list pagination", + "description": "Optional page index in sent email tracking pixel list pagination", "format": "int32", "in": "query", "name": "page", @@ -16901,7 +8761,7 @@ }, { "default": 20, - "description": "Optional page size in list pagination", + "description": "Optional page size in sent email tracking pixel list pagination", "format": "int32", "in": "query", "name": "size", @@ -16953,46 +8813,13 @@ } }, "tags": [ - "TrackingController" - ], - "description": "List tracking pixels in paginated form", - "operationId": "getAllTrackingPixels", - "summary": "Get tracking pixels" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateTrackingPixelOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/TrackingPixelDto" - } - } - }, - "tags": [ - "TrackingController" + "SentEmailsController" ], - "description": "Create a tracking pixel. A tracking pixel is an image that can be embedded in an email. When the email is viewed and the image is seen MailSlurp will mark the pixel as seen. Use tracking pixels to monitor email open events. You can receive open notifications via webhook or by fetching the pixel.", - "operationId": "createTrackingPixel", - "summary": "Create tracking pixel" + "description": "Get all tracking pixels for a sent email in paginated form", + "operationId": "getSentEmailTrackingPixels" } }, - "/tracking/pixels/{id}": { + "/sent/{id}/urls": { "get": { "produces": [ "application/octet-stream" @@ -17010,26 +8837,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/TrackingPixelDto" + "$ref": "#/definitions/EmailPreviewUrls" } } }, "tags": [ - "TrackingController" + "SentEmailsController" ], - "operationId": "getTrackingPixel", - "summary": "Get pixel" + "description": "Get a list of URLs for sent email content as text/html or raw SMTP message for viewing the message in a browser.", + "operationId": "getSentEmailPreviewURLs", + "summary": "Get sent email URL for viewing in browser or downloading" } }, - "/user/automations": { + "/sent/{sentId}/delivery-status": { "get": { "produces": [ "application/octet-stream" ], "parameters": [ + { + "description": "ID of the sent email that you want to get the delivery status of. Sent email object is returned when sending an email", + "format": "uuid", + "in": "path", + "name": "sentId", + "required": true, + "type": "string" + }, { "default": 0, - "description": "Optional page index", + "description": "Optional page index in delivery status list pagination", "format": "int32", "in": "query", "name": "page", @@ -17038,16 +8874,15 @@ }, { "default": 20, - "description": "Optional page size", + "description": "Optional page size in delivery status list pagination", "format": "int32", "in": "query", - "maximum": 100, "name": "size", "required": false, "type": "integer" }, { - "default": "DESC", + "default": "ASC", "description": "Optional createdAt sort direction ASC or DESC", "enum": [ "ASC", @@ -17073,59 +8908,62 @@ "name": "before", "required": false, "type": "string" - }, - { - "description": "Optional inbox ID", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "description": "Optional phone ID", - "format": "uuid", - "in": "query", - "name": "phoneId", - "required": false, - "type": "string" - }, - { - "description": "Optional automation type filter", - "enum": [ - "INBOX_FORWARDER", - "INBOX_REPLIER", - "INBOX_RULESET" - ], - "in": "query", - "name": "filter", - "required": false, - "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageEntityAutomationItems" + "$ref": "#/definitions/PageDeliveryStatus" } } }, "tags": [ - "UserController" + "SentEmailsController" ], - "operationId": "getEntityAutomations" + "description": "Get all sent email delivery statuses", + "operationId": "getSentDeliveryStatusesBySentId" } }, - "/user/events": { + "/sms": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "phoneNumberId", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SmsController" + ], + "description": "Delete all SMS messages or all messages for a given phone number", + "operationId": "deleteSmsMessages", + "summary": "Delete all SMS messages" + }, "get": { "produces": [ "application/octet-stream" ], "parameters": [ + { + "description": "Optional receiving phone number to filter SMS messages for", + "format": "uuid", + "in": "query", + "name": "phoneNumber", + "required": false, + "type": "string" + }, { "default": 0, - "description": "Optional page index", + "description": "Optional page index in SMS list pagination", "format": "int32", "in": "query", "name": "page", @@ -17134,7 +8972,7 @@ }, { "default": 20, - "description": "Optional page size", + "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", "format": "int32", "in": "query", "maximum": 100, @@ -17143,7 +8981,7 @@ "type": "integer" }, { - "default": "DESC", + "default": "ASC", "description": "Optional createdAt sort direction ASC or DESC", "enum": [ "ASC", @@ -17155,7 +8993,7 @@ "type": "string" }, { - "description": "Filter by created at after the given timestamp", + "description": "Optional filter SMSs received after given date time", "format": "date-time", "in": "query", "name": "since", @@ -17163,7 +9001,7 @@ "type": "string" }, { - "description": "Filter by created at before the given timestamp", + "description": "Optional filter SMSs received before given date time", "format": "date-time", "in": "query", "name": "before", @@ -17171,83 +9009,155 @@ "type": "string" }, { - "description": "Optional inbox ID", - "format": "uuid", + "description": "Optional search filter", "in": "query", - "name": "inboxId", + "name": "search", "required": false, "type": "string" }, { - "description": "Optional email ID", - "format": "uuid", + "default": false, + "description": "Optionally filter results for favourites only", "in": "query", - "name": "emailId", + "name": "favourite", "required": false, - "type": "string" + "type": "boolean" }, { - "description": "Optional phone ID", - "format": "uuid", + "collectionFormat": "multi", + "description": "Optional list of IDs to include in result", "in": "query", - "name": "phoneId", + "items": { + "format": "uuid", + "type": "string" + }, + "name": "include", "required": false, - "type": "string" - }, + "type": "array" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PageSmsProjection" + } + } + }, + "tags": [ + "SmsController" + ], + "operationId": "getAllSmsMessages" + } + }, + "/sms/count": { + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CountDto" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Get number of SMS", + "operationId": "getSmsCount", + "summary": "Get SMS count" + } + }, + "/sms/send": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ { - "description": "Optional SMS ID", - "format": "uuid", + "description": "Phone number to send from in E.164 format", "in": "query", - "name": "smsId", + "name": "fromPhoneNumber", "required": false, "type": "string" }, { - "description": "Optional attachment ID", + "description": "Phone number ID to send from in UUID form", "format": "uuid", "in": "query", - "name": "attachmentId", + "name": "fromPhoneId", "required": false, "type": "string" }, { - "description": "Optional type filter", - "enum": [ - "WEBHOOK_EVENT", - "INBOX_FORWARDER_EVENT", - "INBOX_REPLIER_EVENT", - "INBOX_RULESET_EVENT", - "ALIAS_EVENT" - ], - "in": "query", - "name": "filter", - "required": false, - "type": "string" + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SmsSendOptions" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageEntityEventItems" + "$ref": "#/definitions/SentSmsDto" } } }, "tags": [ - "UserController" + "SmsController" ], - "operationId": "getEntityEvents" + "operationId": "sendSms" } }, - "/user/favorites": { + "/sms/sent": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "query", + "name": "phoneNumberId", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SmsController" + ], + "description": "Delete all sent SMS messages or all messages for a given phone number", + "operationId": "deleteSentSmsMessages", + "summary": "Delete all sent SMS messages" + }, "get": { "produces": [ "application/octet-stream" ], "parameters": [ + { + "description": "Optional phone number to filter sent SMS messages for", + "format": "uuid", + "in": "query", + "name": "phoneNumber", + "required": false, + "type": "string" + }, { "default": 0, - "description": "Optional page index", + "description": "Optional page index in SMS list pagination", "format": "int32", "in": "query", "name": "page", @@ -17256,7 +9166,7 @@ }, { "default": 20, - "description": "Optional page size", + "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", "format": "int32", "in": "query", "maximum": 100, @@ -17265,7 +9175,7 @@ "type": "integer" }, { - "default": "DESC", + "default": "ASC", "description": "Optional createdAt sort direction ASC or DESC", "enum": [ "ASC", @@ -17277,7 +9187,7 @@ "type": "string" }, { - "description": "Filter by created at after the given timestamp", + "description": "Optional filter SMSs received after given date time", "format": "date-time", "in": "query", "name": "since", @@ -17285,7 +9195,7 @@ "type": "string" }, { - "description": "Filter by created at before the given timestamp", + "description": "Optional filter SMSs received before given date time", "format": "date-time", "in": "query", "name": "before", @@ -17293,16 +9203,9 @@ "type": "string" }, { - "description": "Optional type filter", - "enum": [ - "INBOX", - "EMAIL", - "ATTACHMENT", - "PHONE", - "SMS" - ], + "description": "Optional search filter", "in": "query", - "name": "filter", + "name": "search", "required": false, "type": "string" } @@ -17311,18 +9214,20 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageEntityFavouriteItems" + "$ref": "#/definitions/PageSentSmsProjection" } } }, "tags": [ - "UserController" + "SmsController" ], - "operationId": "getEntityFavorites" + "description": "By default returns all SMS messages across all phone numbers sorted by ascending created at date. Responses are paginated. You can restrict results to a list of phone number IDs. You can also filter out read messages", + "operationId": "getSentSmsMessagesPaginated", + "summary": "Get all SMS messages in all phone numbers in paginated form. ." } }, - "/user/inbox-retention-policies/account": { - "delete": { + "/sms/sent/count": { + "get": { "produces": [ "application/octet-stream" ], @@ -17331,16 +9236,71 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/EmptyResponseDto" + "$ref": "#/definitions/CountDto" } } }, "tags": [ - "UserController" + "SmsController" + ], + "description": "Get number of sent SMS", + "operationId": "getSentSmsCount", + "summary": "Get sent SMS count" + } + }, + "/sms/sent/{sentSmsId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "sentSmsId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SmsController" ], - "description": "Delete inbox retention policy for your global account", - "operationId": "deleteInboxRetentionPolicyForAccount" + "description": "Delete a sent SMS message", + "operationId": "deleteSentSmsMessage", + "summary": "Delete sent SMS message." }, + "get": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "sentSmsId", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentSmsDto" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Returns an SMS summary object with content.", + "operationId": "getSentSmsMessage", + "summary": "Get sent SMS content including body. Expects sent SMS to exist by ID." + } + }, + "/sms/unreadCount": { "get": { "produces": [ "application/octet-stream" @@ -17350,70 +9310,134 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/InboxRetentionPolicyOptionalDto" + "$ref": "#/definitions/UnreadCount" } } }, "tags": [ - "UserController" + "SmsController" ], - "description": "Get inbox retention policy for your global account", - "operationId": "getInboxRetentionPolicyForAccount" - }, - "post": { - "consumes": [ - "application/json" + "description": "Get number of SMS unread. Unread means has not been viewed in dashboard or returned in an email API response", + "operationId": "getUnreadSmsCount", + "summary": "Get unread SMS count" + } + }, + "/sms/{smsId}": { + "delete": { + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "smsId", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "tags": [ + "SmsController" ], + "description": "Delete an SMS message", + "operationId": "deleteSmsMessage", + "summary": "Delete SMS message." + }, + "get": { "produces": [ "application/octet-stream" ], "parameters": [ { - "in": "body", - "name": "body", + "format": "uuid", + "in": "path", + "name": "smsId", "required": true, - "schema": { - "$ref": "#/definitions/CreateInboxRetentionPolicyForAccountOptions" - } + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/InboxRetentionPolicyDto" + "$ref": "#/definitions/SmsDto" + } + } + }, + "tags": [ + "SmsController" + ], + "description": "Returns a SMS summary object with content.", + "operationId": "getSmsMessage", + "summary": "Get SMS content including body. Expects SMS to exist by ID. For SMS that may not have arrived yet use the WaitForController." + } + }, + "/sms/{smsId}/favourite": { + "put": { + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "description": "ID of SMS to set favourite state", + "format": "uuid", + "in": "path", + "name": "smsId", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "favourited", + "required": true, + "type": "boolean" + } + ], + "responses": { + "204": { + "description": "No Content", + "schema": { + "$ref": "#/definitions/SmsDto" } } }, "tags": [ - "UserController" + "SmsController" ], - "description": "Create inbox retention policy for your global account", - "operationId": "createOrUpdateInboxRetentionPolicyForAccount" + "operationId": "setSmsFavourited" } }, - "/user/info": { + "/sms/{smsId}/reply": { "get": { "produces": [ "application/octet-stream" ], - "parameters": [], + "parameters": [ + { + "format": "uuid", + "in": "path", + "name": "smsId", + "required": true, + "type": "string" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/UserInfoDto" + "$ref": "#/definitions/ReplyForSms" } } }, "tags": [ - "UserController" + "SmsController" ], - "description": "Get account information for your user", - "operationId": "getUserInfo" - } - }, - "/user/json/pluck": { + "description": "Get reply for an SMS message.", + "operationId": "getReplyForSmsMessage", + "summary": "Get reply for an SMS message" + }, "post": { "consumes": [ "application/json" @@ -17423,9 +9447,9 @@ ], "parameters": [ { - "description": "JSON property name or dot separated path selector such as `a.b.c`", - "in": "query", - "name": "property", + "format": "uuid", + "in": "path", + "name": "smsId", "required": true, "type": "string" }, @@ -17434,7 +9458,7 @@ "name": "body", "required": true, "schema": { - "$ref": "#/definitions/JsonNode" + "$ref": "#/definitions/SmsReplyOptions" } } ], @@ -17442,15 +9466,16 @@ "200": { "description": "OK", "schema": { - "type": "string" + "$ref": "#/definitions/SentSmsDto" } } }, "tags": [ - "UserController" + "SmsController" ], - "description": "Utility function to extract properties from JSON objects in language where this is cumbersome.", - "operationId": "getJsonPropertyAsString" + "description": "Reply to an SMS message.", + "operationId": "replyToSmsMessage", + "summary": "Send a reply to a received SMS message. Replies are sent from the receiving number." } }, "/waitFor": { @@ -18559,266 +10584,14 @@ "EXCEPTION", "SUCCESS", "REDRIVEN" - ], - "in": "query", - "name": "resultType", - "required": false, - "type": "string" - }, - { - "description": "Filter by event name", - "enum": [ - "EMAIL_RECEIVED", - "NEW_AI_TRANSFORM_RESULT", - "NEW_EMAIL", - "NEW_CONTACT", - "NEW_ATTACHMENT", - "EMAIL_OPENED", - "EMAIL_READ", - "DELIVERY_STATUS", - "BOUNCE", - "BOUNCE_RECIPIENT", - "NEW_SMS", - "NEW_GUEST_USER" - ], - "in": "query", - "name": "eventName", - "required": false, - "type": "string" - }, - { - "description": "Minimum response status", - "format": "int32", - "in": "query", - "name": "minStatusCode", - "required": false, - "type": "integer" - }, - { - "description": "Maximum response status", - "format": "int32", - "in": "query", - "name": "maxStatusCode", - "required": false, - "type": "integer" - }, - { - "description": "Inbox ID", - "format": "uuid", - "in": "query", - "name": "inboxId", - "required": false, - "type": "string" - }, - { - "description": "Sms ID", - "format": "uuid", - "in": "query", - "name": "smsId", - "required": false, - "type": "string" - }, - { - "description": "Attachment ID", - "format": "uuid", - "in": "query", - "name": "attachmentId", - "required": false, - "type": "string" - }, - { - "description": "Email ID", - "format": "uuid", - "in": "query", - "name": "emailId", - "required": false, - "type": "string" - }, - { - "description": "Phone ID", - "format": "uuid", - "in": "query", - "name": "phoneId", - "required": false, - "type": "string" - }, - { - "description": "AI Transformer ID", - "format": "uuid", - "in": "query", - "name": "aiTransformerId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageWebhookResult" - } - } - }, - "tags": [ - "WebhookController" - ], - "operationId": "getAllWebhookResults", - "summary": "Get results for all webhooks" - } - }, - "/webhooks/results/redrive": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WebhookRedriveAllResult" - } - } - }, - "tags": [ - "WebhookController" - ], - "description": "Allows you to resend webhook payloads for any recorded webhook result that failed to deliver the payload.", - "operationId": "redriveAllWebhookResults", - "summary": "Redrive all webhook results that have failed status" - } - }, - "/webhooks/results/unseen-count": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UnseenErrorCountDto" - } - } - }, - "tags": [ - "WebhookController" - ], - "operationId": "getWebhookResultsUnseenErrorCount", - "summary": "Get count of unseen webhook results with error status" - } - }, - "/webhooks/results/{webhookResultId}": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Webhook Result ID", - "format": "uuid", - "in": "path", - "name": "webhookResultId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WebhookResultDto" - } - } - }, - "tags": [ - "WebhookController" - ], - "operationId": "getWebhookResult", - "summary": "Get a webhook result for a webhook" - } - }, - "/webhooks/results/{webhookResultId}/redrive": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Webhook Result ID", - "format": "uuid", - "in": "path", - "name": "webhookResultId", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WebhookRedriveResult" - } - } - }, - "tags": [ - "WebhookController" - ], - "description": "Allows you to resend a webhook payload that was already sent. Webhooks that fail are retried automatically for 24 hours and then put in a dead letter queue. You can retry results manually using this method.", - "operationId": "redriveWebhookResult", - "summary": "Get a webhook result and try to resend the original webhook payload" - } - }, - "/webhooks/schema": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "enum": [ - "EMAIL_RECEIVED", - "NEW_AI_TRANSFORM_RESULT", - "NEW_EMAIL", - "NEW_CONTACT", - "NEW_ATTACHMENT", - "EMAIL_OPENED", - "EMAIL_READ", - "DELIVERY_STATUS", - "BOUNCE", - "BOUNCE_RECIPIENT", - "NEW_SMS", - "NEW_GUEST_USER" - ], - "in": "query", - "name": "event", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/JSONSchemaDto" - } - } - }, - "tags": [ - "WebhookController" - ], - "description": "Get JSON Schema definition for webhook payload by event", - "operationId": "getJsonSchemaForWebhookEvent" - } - }, - "/webhooks/test": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ + ], + "in": "query", + "name": "resultType", + "required": false, + "type": "string" + }, { + "description": "Filter by event name", "enum": [ "EMAIL_RECEIVED", "NEW_AI_TRANSFORM_RESULT", @@ -18837,109 +10610,89 @@ "name": "eventName", "required": false, "type": "string" + }, + { + "description": "Minimum response status", + "format": "int32", + "in": "query", + "name": "minStatusCode", + "required": false, + "type": "integer" + }, + { + "description": "Maximum response status", + "format": "int32", + "in": "query", + "name": "maxStatusCode", + "required": false, + "type": "integer" + }, + { + "description": "Inbox ID", + "format": "uuid", + "in": "query", + "name": "inboxId", + "required": false, + "type": "string" + }, + { + "description": "Sms ID", + "format": "uuid", + "in": "query", + "name": "smsId", + "required": false, + "type": "string" + }, + { + "description": "Attachment ID", + "format": "uuid", + "in": "query", + "name": "attachmentId", + "required": false, + "type": "string" + }, + { + "description": "Email ID", + "format": "uuid", + "in": "query", + "name": "emailId", + "required": false, + "type": "string" + }, + { + "description": "Phone ID", + "format": "uuid", + "in": "query", + "name": "phoneId", + "required": false, + "type": "string" + }, + { + "description": "AI Transformer ID", + "format": "uuid", + "in": "query", + "name": "aiTransformerId", + "required": false, + "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/AbstractWebhookPayload" - } - } - }, - "tags": [ - "WebhookController" - ], - "description": "Get test webhook payload example. Response content depends on eventName passed. Uses `EMAIL_RECEIVED` as default.", - "operationId": "getTestWebhookPayload" - } - }, - "/webhooks/test/delivery-status-payload": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WebhookDeliveryStatusPayload" - } - } - }, - "tags": [ - "WebhookController" - ], - "operationId": "getTestWebhookPayloadDeliveryStatus", - "summary": "Get webhook test payload for delivery status event" - } - }, - "/webhooks/test/email-bounce-payload": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WebhookBouncePayload" - } - } - }, - "tags": [ - "WebhookController" - ], - "description": "Get webhook test payload for bounce", - "operationId": "getTestWebhookPayloadBounce" - } - }, - "/webhooks/test/email-bounce-recipient-payload": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WebhookBounceRecipientPayload" - } - } - }, - "tags": [ - "WebhookController" - ], - "description": "Get webhook test payload for bounce recipient", - "operationId": "getTestWebhookPayloadBounceRecipient" - } - }, - "/webhooks/test/email-opened-payload": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WebhookEmailOpenedPayload" + "$ref": "#/definitions/PageWebhookResult" } } }, "tags": [ "WebhookController" ], - "description": "Get webhook test payload for email opened event", - "operationId": "getTestWebhookPayloadEmailOpened" + "operationId": "getAllWebhookResults", + "summary": "Get results for all webhooks" } }, - "/webhooks/test/email-read-payload": { - "get": { + "/webhooks/results/redrive": { + "post": { "produces": [ "application/octet-stream" ], @@ -18948,18 +10701,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/WebhookEmailReadPayload" + "$ref": "#/definitions/WebhookRedriveAllResult" } } }, "tags": [ "WebhookController" ], - "description": "Get webhook test payload for email opened event", - "operationId": "getTestWebhookPayloadEmailRead" + "description": "Allows you to resend webhook payloads for any recorded webhook result that failed to deliver the payload.", + "operationId": "redriveAllWebhookResults", + "summary": "Redrive all webhook results that have failed status" } }, - "/webhooks/test/new-ai-transform-result-payload": { + "/webhooks/results/unseen-count": { "get": { "produces": [ "application/octet-stream" @@ -18969,99 +10723,76 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/WebhookNewAITransformResultPayload" + "$ref": "#/definitions/UnseenErrorCountDto" } } }, "tags": [ "WebhookController" ], - "operationId": "getTestWebhookPayloadNewAITransformResult", - "summary": "Get webhook test payload for new ai transform result event" + "operationId": "getWebhookResultsUnseenErrorCount", + "summary": "Get count of unseen webhook results with error status" } }, - "/webhooks/test/new-attachment-payload": { + "/webhooks/results/{webhookResultId}": { "get": { "produces": [ "application/octet-stream" ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WebhookNewAttachmentPayload" - } + "parameters": [ + { + "description": "Webhook Result ID", + "format": "uuid", + "in": "path", + "name": "webhookResultId", + "required": true, + "type": "string" } - }, - "tags": [ - "WebhookController" - ], - "operationId": "getTestWebhookPayloadNewAttachment", - "summary": "Get webhook test payload for new attachment event" - } - }, - "/webhooks/test/new-contact-payload": { - "get": { - "produces": [ - "application/octet-stream" ], - "parameters": [], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/WebhookNewContactPayload" + "$ref": "#/definitions/WebhookResultDto" } } }, "tags": [ "WebhookController" ], - "operationId": "getTestWebhookPayloadNewContact", - "summary": "Get webhook test payload for new contact event" + "operationId": "getWebhookResult", + "summary": "Get a webhook result for a webhook" } }, - "/webhooks/test/new-email-payload": { - "get": { + "/webhooks/results/{webhookResultId}/redrive": { + "post": { "produces": [ "application/octet-stream" ], - "parameters": [], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WebhookNewEmailPayload" - } + "parameters": [ + { + "description": "Webhook Result ID", + "format": "uuid", + "in": "path", + "name": "webhookResultId", + "required": true, + "type": "string" } - }, - "tags": [ - "WebhookController" - ], - "operationId": "getTestWebhookPayloadNewEmail", - "summary": "Get webhook test payload for new email event" - } - }, - "/webhooks/test/new-sms-payload": { - "get": { - "produces": [ - "application/octet-stream" ], - "parameters": [], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/WebhookNewSmsPayload" + "$ref": "#/definitions/WebhookRedriveResult" } } }, "tags": [ "WebhookController" ], - "operationId": "getTestWebhookPayloadNewSms", - "summary": "Get webhook test payload for new sms event" + "description": "Allows you to resend a webhook payload that was already sent. Webhooks that fail are retried automatically for 24 hours and then put in a dead letter queue. You can retry results manually using this method.", + "operationId": "redriveWebhookResult", + "summary": "Get a webhook result and try to resend the original webhook payload" } }, "/webhooks/verify": { @@ -22185,11 +13916,6 @@ "x-nullable": true }, "templateVariables": { - "additionalProperties": { - "description": "Template variable values", - "nullable": true, - "type": "object" - }, "description": "Template variable values", "type": "object", "x-nullable": true @@ -23436,28 +15162,12 @@ "x-nullable": true }, "headers": { - "additionalProperties": { - "deprecated": true, - "description": "Collection of SMTP headers attached to email", - "nullable": true, - "type": "string" - }, "description": "Collection of SMTP headers attached to email", "type": "object", "x-deprecated": true, "x-nullable": true }, "headersMap": { - "additionalProperties": { - "description": "Multi-value map of SMTP headers attached to email", - "items": { - "description": "Multi-value map of SMTP headers attached to email", - "nullable": true, - "type": "string" - }, - "nullable": true, - "type": "array" - }, "description": "Multi-value map of SMTP headers attached to email", "type": "object", "x-nullable": true @@ -24164,9 +15874,6 @@ "type": "string" }, "notesNumbers": { - "additionalProperties": { - "type": "string" - }, "type": "object" }, "statuses": { @@ -27427,14 +19134,6 @@ "x-nullable": true }, "header": { - "additionalProperties": { - "items": { - "nullable": true, - "type": "string" - }, - "nullable": true, - "type": "array" - }, "type": "object", "x-nullable": true }, @@ -28059,9 +19758,6 @@ "type": "boolean" }, "matches": { - "additionalProperties": { - "type": "boolean" - }, "type": "object" } }, @@ -28275,10 +19971,6 @@ "x-nullable": true }, "templateVariables": { - "additionalProperties": { - "nullable": true, - "type": "object" - }, "type": "object", "x-nullable": true } @@ -28402,10 +20094,6 @@ "type": "boolean" }, "rulesetMatches": { - "additionalProperties": { - "description": "Map of inbox ruleset ID to boolean of if target matches", - "type": "boolean" - }, "description": "Map of inbox ruleset ID to boolean of if target matches", "type": "object" } @@ -32406,11 +24094,6 @@ "x-nullable": true }, "customHeaders": { - "additionalProperties": { - "description": "Optional custom headers", - "nullable": true, - "type": "string" - }, "description": "Optional custom headers", "type": "object", "x-nullable": true @@ -32437,11 +24120,6 @@ "x-nullable": true }, "templateVariables": { - "additionalProperties": { - "description": "Template variables if using a template", - "nullable": true, - "type": "object" - }, "description": "Template variables if using a template", "type": "object", "x-nullable": true @@ -32481,11 +24159,6 @@ "x-nullable": true }, "customHeaders": { - "additionalProperties": { - "description": "Optional custom headers", - "nullable": true, - "type": "string" - }, "description": "Optional custom headers", "type": "object", "x-nullable": true @@ -32522,11 +24195,6 @@ "x-nullable": true }, "templateVariables": { - "additionalProperties": { - "description": "Template variables if using a template", - "nullable": true, - "type": "object" - }, "description": "Template variables if using a template", "type": "object", "x-nullable": true @@ -32982,11 +24650,6 @@ "x-nullable": true }, "customHeaders": { - "additionalProperties": { - "description": "Optional custom headers", - "nullable": true, - "type": "string" - }, "description": "Optional custom headers", "type": "object", "x-nullable": true @@ -33051,11 +24714,6 @@ "x-nullable": true }, "templateVariables": { - "additionalProperties": { - "description": "Optional map of template variables. Will replace moustache syntax variables in subject and body or template with the associated values if found.", - "nullable": true, - "type": "object" - }, "description": "Optional map of template variables. Will replace moustache syntax variables in subject and body or template with the associated values if found.", "type": "object", "x-nullable": true @@ -33303,10 +24961,6 @@ "x-nullable": true }, "headers": { - "additionalProperties": { - "nullable": true, - "type": "string" - }, "type": "object", "x-nullable": true }, @@ -33384,10 +25038,6 @@ "x-nullable": true }, "templateVariables": { - "additionalProperties": { - "nullable": true, - "type": "object" - }, "type": "object", "x-nullable": true }, @@ -34028,13 +25678,6 @@ "StructuredOutputSchema": { "description": "JSON output schema for structured content repsonses. This schema dictates the format that an AI should use when responding to your instructions.", "properties": { - "anyOf": { - "items": { - "$ref": "#/definitions/StructuredOutputSchema" - }, - "type": "array", - "x-nullable": true - }, "default": { "$ref": "#/definitions/JsonNode" }, @@ -34118,10 +25761,6 @@ "x-nullable": true }, "properties": { - "additionalProperties": { - "$ref": "#/definitions/StructuredOutputSchema" - }, - "description": "Properties of an OBJECT schema. These are key value pairs where the key is the property name and the value is the schema for that property.", "type": "object", "x-nullable": true }, @@ -34783,11 +26422,6 @@ "x-nullable": true }, "templateVariables": { - "additionalProperties": { - "description": "Template variable values", - "nullable": true, - "type": "object" - }, "description": "Template variable values", "type": "object", "x-nullable": true @@ -34828,7 +26462,7 @@ "type": "object" }, "UploadAttachmentOptions": { - "description": "Options for uploading files for attachments. When sending emails with the API that require attachments first upload each attachment. Then use the returned attachment ID in your `SendEmailOptions` when sending an email. This way you can use attachments multiple times once they have been uploaded.", + "description": "Options for uploading files for attachments.", "properties": { "base64Contents": { "description": "Base64 encoded string of file contents. Typically this means reading the bytes or string content of a file and then converting that to a base64 encoded string. For examples of how to do this see https://www.mailslurp.com/guides/base64-file-uploads/", @@ -34940,9 +26574,6 @@ "type": "array" }, "resultMapEmailAddressIsValid": { - "additionalProperties": { - "type": "boolean" - }, "type": "object" }, "validEmailAddresses": { @@ -36520,9 +28151,6 @@ "description": "Result of webhook test request", "properties": { "headers": { - "additionalProperties": { - "type": "string" - }, "type": "object" }, "method": { From 14121a37ce746d5eb8140a0b16aa71d20b873dea Mon Sep 17 00:00:00 2001 From: jackmahoney Date: Sun, 16 Nov 2025 14:01:46 +1300 Subject: [PATCH 3/8] clean --- .../MailSlurp/.idea/.gitignore | 8 - .../MailSlurp/.idea/MailSlurp.iml | 9 - .../.idea/codeStyles/codeStyleConfig.xml | 5 - .../.idea/copilot.data.migration.agent.xml | 6 - .../.idea/copilot.data.migration.ask.xml | 6 - .../copilot.data.migration.ask2agent.xml | 6 - .../.idea/copilot.data.migration.edit.xml | 6 - .../inspectionProfiles/Project_Default.xml | 1522 ----------------- certified-connectors/MailSlurp/.idea/misc.xml | 6 - .../MailSlurp/.idea/modules.xml | 8 - certified-connectors/MailSlurp/.idea/vcs.xml | 6 - 11 files changed, 1588 deletions(-) delete mode 100644 certified-connectors/MailSlurp/.idea/.gitignore delete mode 100644 certified-connectors/MailSlurp/.idea/MailSlurp.iml delete mode 100644 certified-connectors/MailSlurp/.idea/codeStyles/codeStyleConfig.xml delete mode 100644 certified-connectors/MailSlurp/.idea/copilot.data.migration.agent.xml delete mode 100644 certified-connectors/MailSlurp/.idea/copilot.data.migration.ask.xml delete mode 100644 certified-connectors/MailSlurp/.idea/copilot.data.migration.ask2agent.xml delete mode 100644 certified-connectors/MailSlurp/.idea/copilot.data.migration.edit.xml delete mode 100644 certified-connectors/MailSlurp/.idea/inspectionProfiles/Project_Default.xml delete mode 100644 certified-connectors/MailSlurp/.idea/misc.xml delete mode 100644 certified-connectors/MailSlurp/.idea/modules.xml delete mode 100644 certified-connectors/MailSlurp/.idea/vcs.xml diff --git a/certified-connectors/MailSlurp/.idea/.gitignore b/certified-connectors/MailSlurp/.idea/.gitignore deleted file mode 100644 index 13566b81b0..0000000000 --- a/certified-connectors/MailSlurp/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/certified-connectors/MailSlurp/.idea/MailSlurp.iml b/certified-connectors/MailSlurp/.idea/MailSlurp.iml deleted file mode 100644 index d6ebd48059..0000000000 --- a/certified-connectors/MailSlurp/.idea/MailSlurp.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/codeStyles/codeStyleConfig.xml b/certified-connectors/MailSlurp/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index a55e7a179b..0000000000 --- a/certified-connectors/MailSlurp/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/copilot.data.migration.agent.xml b/certified-connectors/MailSlurp/.idea/copilot.data.migration.agent.xml deleted file mode 100644 index 4ea72a911a..0000000000 --- a/certified-connectors/MailSlurp/.idea/copilot.data.migration.agent.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask.xml b/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask.xml deleted file mode 100644 index 7ef04e2ea0..0000000000 --- a/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask2agent.xml b/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask2agent.xml deleted file mode 100644 index 1f2ea11e7f..0000000000 --- a/certified-connectors/MailSlurp/.idea/copilot.data.migration.ask2agent.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/copilot.data.migration.edit.xml b/certified-connectors/MailSlurp/.idea/copilot.data.migration.edit.xml deleted file mode 100644 index 8648f9401a..0000000000 --- a/certified-connectors/MailSlurp/.idea/copilot.data.migration.edit.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/inspectionProfiles/Project_Default.xml b/certified-connectors/MailSlurp/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index ed02ff28b8..0000000000 --- a/certified-connectors/MailSlurp/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,1522 +0,0 @@ - - - - \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/misc.xml b/certified-connectors/MailSlurp/.idea/misc.xml deleted file mode 100644 index 188022c407..0000000000 --- a/certified-connectors/MailSlurp/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/modules.xml b/certified-connectors/MailSlurp/.idea/modules.xml deleted file mode 100644 index 2377006bb2..0000000000 --- a/certified-connectors/MailSlurp/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/certified-connectors/MailSlurp/.idea/vcs.xml b/certified-connectors/MailSlurp/.idea/vcs.xml deleted file mode 100644 index b2bdec2d71..0000000000 --- a/certified-connectors/MailSlurp/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 1769656b3ef6403f0e114de50af6aa34970e87a9 Mon Sep 17 00:00:00 2001 From: jackmahoney Date: Sun, 16 Nov 2025 14:21:14 +1300 Subject: [PATCH 4/8] remove-ai --- .../MailSlurp/apiDefinition.swagger.json | 1096 ++--------------- 1 file changed, 78 insertions(+), 1018 deletions(-) diff --git a/certified-connectors/MailSlurp/apiDefinition.swagger.json b/certified-connectors/MailSlurp/apiDefinition.swagger.json index 9262c1fe82..fdbcd14ef7 100644 --- a/certified-connectors/MailSlurp/apiDefinition.swagger.json +++ b/certified-connectors/MailSlurp/apiDefinition.swagger.json @@ -10,7 +10,7 @@ "name": "Apache 2.0", "url": "https://www.mailslurp.com" }, - "title": "MailSlurp API", + "title": "MailSlurp Email and SMS", "version": "" }, "host": "api.mailslurp.com", @@ -19,920 +19,140 @@ "https" ], "paths": { - "/ai-transformers/{transformerId}/webhooks": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "transformerId", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateWebhookOptions" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/WebhookDto" - } - } - }, - "tags": [ - "WebhookController" - ], - "description": "Get notified whenever AI transformation pipeline converts and email or SMS into structured data via a WebHook URL.", - "operationId": "createWebhookForAITransformer", - "summary": "Attach a WebHook URL to an AI transformer" - } - }, - "/ai/structured-content/attachment": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/GenerateStructuredContentAttachmentOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/StructuredContentResultDto" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Use output schemas to extract data from an attachment using AI", - "operationId": "generateStructuredContentFromAttachment", - "summary": "Generate structured content for an attachment" - } - }, - "/ai/structured-content/email": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/GenerateStructuredContentEmailOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/StructuredContentResultDto" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Use output schemas to extract data from an email using AI", - "operationId": "generateStructuredContentFromEmail", - "summary": "Generate structured content for an email" - } - }, - "/ai/structured-content/sms": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/GenerateStructuredContentSmsOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/StructuredContentResultDto" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Use output schemas to extract data from an SMS using AI", - "operationId": "generateStructuredContentFromSms", - "summary": "Generate structured content for a TXT message" - } - }, - "/ai/structured-content/validate": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StructuredOutputSchema" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/StructuredOutputSchemaValidation" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Check if a schema is valid and can be used to extract data using AI", - "operationId": "validateStructuredOutputSchema", - "summary": "Validate structured content schema" - } - }, - "/ai/transformer": { - "delete": { - "parameters": [], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "AIController" - ], - "description": "Delete all AI transformers and schemas", - "operationId": "deleteTransformers", - "summary": "Delete all transformers" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "default": 0, - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size in SMS list pagination. Maximum size is 100. Use page index and sort to page through larger results", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "description": "Optional list of IDs to include in result", - "in": "query", - "items": { - "format": "uuid", - "type": "string" - }, - "name": "include", - "required": false, - "type": "array" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageAITransformProjection" - } - } - }, - "tags": [ - "AIController" - ], - "description": "List all AI transforms", - "operationId": "getTransformers", - "summary": "List transformers" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/AITransformCreateOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AITransformDto" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Save an AI transform instructions and schema for use with webhooks and automations", - "operationId": "createTransformer", - "summary": "Create a transformer for reuse in automations" - } - }, - "/ai/transformer/invoke": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/InvokeTransformerOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ConditionalStructuredContentResult" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Execute an AI transformer to generate structured content", - "operationId": "invokeTransformer", - "summary": "Invoke a transformer" - } - }, - "/ai/transformer/mappings": { - "delete": { - "parameters": [], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "AIController" - ], - "description": "Delete all AI transformer mappings", - "operationId": "deleteAllTransformerMappings", - "summary": "Delete all transformer mapping" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "query", - "name": "aiTransformId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "entityId", - "required": false, - "type": "string" - }, - { - "enum": [ - "INBOX", - "PHONE" - ], - "in": "query", - "name": "entityType", - "required": false, - "type": "string" - }, - { - "default": 0, - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size. Maximum size is 100. Use page index and sort to page through larger results", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageAITransformMappingProjection" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Get AI transformer mappings to other entities", - "operationId": "getTransformerMappings", - "summary": "Get transformer mappings" - }, - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateAITransformerMappingOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AITransformMappingDto" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Create AI transformer mappings to other entities", - "operationId": "createTransformerMappings", - "summary": "Create transformer mapping" - } - }, - "/ai/transformer/mappings/{id}": { - "delete": { - "parameters": [ - { - "description": "ID of transform mapping", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "tags": [ - "AIController" - ], - "description": "Delete an AI transformer mapping", - "operationId": "deleteTransformerMapping", - "summary": "Delete transformer mapping" - }, - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of transform mapping", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AITransformMappingDto" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Get an AI transformer mapping", - "operationId": "getTransformerMapping", - "summary": "Get transformer mapping" - } - }, - "/ai/transformer/mappings/{id}/match": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "ID of transform mapping", - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "emailId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "smsId", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "attachmentId", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AITransformMappingMatchResult" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Evaluate transform mapping match conditions for given email, sms, or attachment", - "operationId": "testTransformerMappingMatch", - "summary": "Test transformer mapping match result" - } - }, - "/ai/transformer/results": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "query", - "name": "emailId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "smsId", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "attachmentId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "aiTransformId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "aiTransformMappingId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "entityId", - "required": false, - "type": "string" - }, - { - "enum": [ - "INBOX", - "PHONE" - ], - "in": "query", - "name": "entityType", - "required": false, - "type": "string" - }, - { - "default": 0, - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size. Maximum size is 100. Use page index and sort to page through larger results", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PageAITransformResultProjection" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Get AI transformer results", - "operationId": "getTransformerResults", - "summary": "Get transformer results" - } - }, - "/ai/transformer/results/export": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ExportTransformerOptions" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ExportTransformerResponse" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Export AI transformer results in formats such as Excel, CSV, XML etc.", - "operationId": "exportTransformerResults", - "summary": "Export transformer results" - } - }, - "/ai/transformer/results/export/{id}": { - "post": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "path", - "name": "id", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ExportTransformerResultJobDto" - } - } - }, - "tags": [ - "AIController" - ], - "description": "Get the job status for an export", - "operationId": "getExportTransformerResultsJob", - "summary": "Get export transformer results job" - } - }, - "/ai/transformer/results/table": { - "get": { - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "format": "uuid", - "in": "query", - "name": "emailId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "smsId", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "attachmentId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "aiTransformId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "aiTransformMappingId", - "required": false, - "type": "string" - }, - { - "format": "uuid", - "in": "query", - "name": "entityId", - "required": false, - "type": "string" - }, - { - "enum": [ - "INBOX", - "PHONE" - ], - "in": "query", - "name": "entityType", - "required": false, - "type": "string" - }, - { - "default": 0, - "format": "int32", - "in": "query", - "name": "page", - "required": false, - "type": "integer" - }, - { - "default": 20, - "description": "Optional page size. Maximum size is 100. Use page index and sort to page through larger results", - "format": "int32", - "in": "query", - "maximum": 100, - "name": "size", - "required": false, - "type": "integer" - }, - { - "default": "ASC", - "description": "Optional createdAt sort direction ASC or DESC", - "enum": [ - "ASC", - "DESC" - ], - "in": "query", - "name": "sort", - "required": false, - "type": "string" - }, - { - "in": "query", - "name": "includeMetaData", - "required": true, - "type": "boolean" - }, + "/ai/structured-content/attachment": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], + "parameters": [ { - "in": "query", - "name": "flattenArraysToRows", + "in": "body", + "name": "body", "required": true, - "type": "boolean" + "schema": { + "$ref": "#/definitions/GenerateStructuredContentAttachmentOptions" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/PageTableData" + "$ref": "#/definitions/StructuredContentResultDto" } } }, "tags": [ "AIController" ], - "description": "Get AI transformer results in table format", - "operationId": "getTransformerResultsTable", - "summary": "Get transformer results table" + "description": "Use output schemas to extract data from an attachment using AI", + "operationId": "generateStructuredContentFromAttachment", + "summary": "Generate structured content for an attachment" } }, - "/ai/transformer/results/{id}": { - "get": { + "/ai/structured-content/email": { + "post": { + "consumes": [ + "application/json" + ], "produces": [ "application/octet-stream" ], "parameters": [ { - "description": "ID of transform result", - "format": "uuid", - "in": "path", - "name": "id", + "in": "body", + "name": "body", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/GenerateStructuredContentEmailOptions" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/AITransformResultDto" + "$ref": "#/definitions/StructuredContentResultDto" } } }, "tags": [ "AIController" ], - "description": "Get AI transformer result", - "operationId": "getTransformerResult", - "summary": "Get transformer result" + "description": "Use output schemas to extract data from an email using AI", + "operationId": "generateStructuredContentFromEmail", + "summary": "Generate structured content for an email" } }, - "/ai/transformer/{id}": { - "delete": { + "/ai/structured-content/sms": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/octet-stream" + ], "parameters": [ { - "format": "uuid", - "in": "path", - "name": "id", + "in": "body", + "name": "body", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/GenerateStructuredContentSmsOptions" + } } ], "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/StructuredContentResultDto" + } } }, "tags": [ "AIController" ], - "description": "Delete an AI transformer and schemas by ID", - "operationId": "deleteTransformer", - "summary": "Delete a transformer" - }, - "get": { + "description": "Use output schemas to extract data from an SMS using AI", + "operationId": "generateStructuredContentFromSms", + "summary": "Generate structured content for a TXT message" + } + }, + "/ai/structured-content/validate": { + "post": { + "consumes": [ + "application/json" + ], "produces": [ "application/octet-stream" ], "parameters": [ { - "format": "uuid", - "in": "path", - "name": "id", + "in": "body", + "name": "body", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/StructuredOutputSchema" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/AITransformDto" + "$ref": "#/definitions/StructuredOutputSchemaValidation" } } }, "tags": [ "AIController" ], - "description": "Get AI transformer and schemas by ID", - "operationId": "getTransformer", - "summary": "Get a transformer" + "description": "Check if a schema is valid and can be used to extract data using AI", + "operationId": "validateStructuredOutputSchema", + "summary": "Validate structured content schema" } }, "/attachments": { @@ -1093,166 +313,6 @@ "summary": "Upload an attachment for sending using base64 file encoding. Returns an array whose first element is the ID of the uploaded attachment." } }, - "/attachments/bytes": { - "post": { - "produces": [ - "application/json" - ], - "parameters": [ - { - "in": "header", - "name": "contentType", - "required": false, - "type": "string" - }, - { - "description": "Optional contentType for file. For instance `application/pdf`", - "in": "query", - "name": "contentType", - "required": false, - "type": "string" - }, - { - "description": "Optional content ID (CID) to save upload with", - "in": "query", - "name": "contentId", - "required": false, - "type": "string" - }, - { - "description": "Optional filename to save upload with", - "in": "query", - "name": "filename", - "required": false, - "type": "string" - }, - { - "description": "Optional byte length to save upload with", - "format": "int64", - "in": "query", - "name": "fileSize", - "required": false, - "type": "integer" - }, - { - "in": "header", - "name": "filename", - "required": false, - "type": "string" - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "items": { - "type": "string" - }, - "type": "array" - } - } - }, - "tags": [ - "AttachmentController" - ], - "operationId": "uploadAttachmentBytes", - "summary": "Upload an attachment for sending using file byte stream input octet stream. Returns an array whose first element is the ID of the uploaded attachment." - } - }, - "/attachments/multipart": { - "post": { - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "description": "Optional content ID of attachment", - "in": "query", - "name": "contentId", - "required": false, - "type": "string" - }, - { - "description": "Optional content type of attachment", - "in": "query", - "name": "contentType", - "required": false, - "type": "string" - }, - { - "description": "Optional name of file", - "in": "query", - "name": "filename", - "required": false, - "type": "string" - }, - { - "description": "Optional content type header of attachment", - "in": "query", - "name": "contentTypeHeader", - "required": false, - "type": "string" - }, - { - "description": "Optional filename header of attachment", - "in": "query", - "name": "x-filename", - "required": false, - "type": "string" - }, - { - "description": "Optional raw filename header of attachment that will be converted to punycode", - "in": "query", - "name": "x-filename-raw", - "required": false, - "type": "string" - }, - { - "description": "Optional content size of attachment", - "format": "int64", - "in": "query", - "name": "x-filesize", - "required": false, - "type": "integer" - }, - { - "in": "body", - "name": "body", - "schema": { - "properties": { - "file": { - "format": "binary", - "type": "string" - } - }, - "required": [ - "file" - ], - "type": "object" - } - } - ], - "responses": { - "201": { - "description": "Created", - "schema": { - "items": { - "type": "string" - }, - "type": "array" - } - } - }, - "tags": [ - "AttachmentController" - ], - "operationId": "uploadMultipartForm", - "summary": "Upload an attachment for sending using a Multipart Form request. Returns an array whose first element is the ID of the uploaded attachment." - } - }, "/attachments/{attachmentId}": { "delete": { "parameters": [ @@ -2186,7 +1246,7 @@ ], "parameters": [ { - "collectionFormat": "multi", + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", "in": "query", "items": { @@ -2282,7 +1342,7 @@ "type": "string" }, { - "collectionFormat": "multi", + "description": "Optional list of IDs to include in result", "in": "query", "items": { @@ -2317,7 +1377,7 @@ ], "parameters": [ { - "collectionFormat": "multi", + "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", "in": "query", "items": { @@ -3901,7 +2961,7 @@ "type": "string" }, { - "collectionFormat": "multi", + "description": "Optional inboxIds to include in result", "in": "query", "items": { @@ -3945,7 +3005,7 @@ "type": "string" }, { - "collectionFormat": "multi", + "description": "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.", "in": "query", "items": { @@ -6986,7 +6046,7 @@ "type": "string" }, { - "collectionFormat": "multi", + "in": "query", "items": { "type": "string" @@ -7178,7 +6238,7 @@ "type": "string" }, { - "collectionFormat": "multi", + "description": "Optional phoneIds to include in result", "in": "query", "items": { @@ -9024,7 +8084,7 @@ "type": "boolean" }, { - "collectionFormat": "multi", + "description": "Optional list of IDs to include in result", "in": "query", "items": { From 765112404b0830e4d1f74aa5bd5c1219c387e7fc Mon Sep 17 00:00:00 2001 From: jackmahoney Date: Sun, 16 Nov 2025 14:31:04 +1300 Subject: [PATCH 5/8] json --- .../MailSlurp/apiDefinition.swagger.json | 340 +++++++++--------- 1 file changed, 170 insertions(+), 170 deletions(-) diff --git a/certified-connectors/MailSlurp/apiDefinition.swagger.json b/certified-connectors/MailSlurp/apiDefinition.swagger.json index fdbcd14ef7..5e4681937b 100644 --- a/certified-connectors/MailSlurp/apiDefinition.swagger.json +++ b/certified-connectors/MailSlurp/apiDefinition.swagger.json @@ -25,7 +25,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -59,7 +59,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -93,7 +93,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -127,7 +127,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -172,7 +172,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -283,7 +283,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -338,7 +338,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -367,7 +367,7 @@ "/attachments/{attachmentId}/base64": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -397,7 +397,7 @@ "/attachments/{attachmentId}/bytes": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -428,7 +428,7 @@ "/attachments/{attachmentId}/metadata": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -487,7 +487,7 @@ }, "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -547,7 +547,7 @@ "/createInbox": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -715,7 +715,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -746,7 +746,7 @@ "/email-verification/validation-requests": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -871,7 +871,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1040,7 +1040,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1082,7 +1082,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1113,7 +1113,7 @@ "/emails/emails/count": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1142,7 +1142,7 @@ "/emails/gravatarFor": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1176,7 +1176,7 @@ "/emails/latest": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1211,7 +1211,7 @@ "/emails/latestIn": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1242,7 +1242,7 @@ "/emails/offset-paginated": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1373,7 +1373,7 @@ "/emails/organization": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1528,7 +1528,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1581,7 +1581,7 @@ "/emails/threads": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1666,7 +1666,7 @@ "/emails/threads/{threadId}": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1696,7 +1696,7 @@ "/emails/threads/{threadId}/items": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1738,7 +1738,7 @@ "/emails/unreadCount": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1826,7 +1826,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1865,7 +1865,7 @@ "/emails/{emailId}/attachments": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1899,7 +1899,7 @@ "/emails/{emailId}/attachments/{attachmentId}": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1945,7 +1945,7 @@ "/emails/{emailId}/attachments/{attachmentId}/base64": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -1983,7 +1983,7 @@ "/emails/{emailId}/attachments/{attachmentId}/metadata": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2053,7 +2053,7 @@ "/emails/{emailId}/body-bytes": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2085,7 +2085,7 @@ "/emails/{emailId}/check-email-body": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2115,7 +2115,7 @@ "/emails/{emailId}/check-email-body-feature-support": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2148,7 +2148,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2243,7 +2243,7 @@ "/emails/{emailId}/contentPart/raw": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2330,7 +2330,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2407,7 +2407,7 @@ "/emails/{emailId}/html/json": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2444,7 +2444,7 @@ "/emails/{emailId}/htmlQuery": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2485,7 +2485,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2523,7 +2523,7 @@ "/emails/{emailId}/links": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2586,7 +2586,7 @@ "/emails/{emailId}/raw/json": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2617,7 +2617,7 @@ "/emails/{emailId}/read": { "patch": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2658,7 +2658,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2731,7 +2731,7 @@ "/emails/{emailId}/summary": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2767,7 +2767,7 @@ "/emails/{emailId}/textLines": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2812,7 +2812,7 @@ "/emails/{emailId}/urls": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2842,7 +2842,7 @@ "/emails/{emailId}/validate": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2912,7 +2912,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -2994,7 +2994,7 @@ }, "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3149,7 +3149,7 @@ "/inboxes/available": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3250,7 +3250,7 @@ "/inboxes/byEmailAddress": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3280,7 +3280,7 @@ "/inboxes/byName": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3310,7 +3310,7 @@ "/inboxes/count": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [], "responses": { @@ -3331,7 +3331,7 @@ "/inboxes/exists": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3382,7 +3382,7 @@ "/inboxes/getLatestEmail": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3421,7 +3421,7 @@ "/inboxes/ids": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [], "responses": { @@ -3444,7 +3444,7 @@ "/inboxes/imap-access": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3507,7 +3507,7 @@ "/inboxes/imap-smtp-access": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3537,7 +3537,7 @@ "/inboxes/imap-smtp-access/env": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3567,7 +3567,7 @@ "/inboxes/imap-smtp-access/servers": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [], "responses": { @@ -3588,7 +3588,7 @@ "/inboxes/offset-paginated": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3714,7 +3714,7 @@ "/inboxes/organization": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3791,7 +3791,7 @@ "/inboxes/outboxes": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3844,7 +3844,7 @@ "/inboxes/paginated": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -3970,7 +3970,7 @@ "/inboxes/plus-addresses": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4031,7 +4031,7 @@ "/inboxes/plus-addresses/{plusAddressId}": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4070,7 +4070,7 @@ "/inboxes/scheduled-jobs": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4146,7 +4146,7 @@ "/inboxes/scheduled-jobs/{jobId}": { "delete": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4174,7 +4174,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4207,7 +4207,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4238,7 +4238,7 @@ "/inboxes/smtp-access": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4301,7 +4301,7 @@ "/inboxes/tags": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4364,7 +4364,7 @@ "/inboxes/tags/inboxes": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4431,7 +4431,7 @@ "/inboxes/tags/paginated": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4491,7 +4491,7 @@ "/inboxes/withDefaults": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [], "responses": { @@ -4515,7 +4515,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4568,7 +4568,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4599,7 +4599,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4674,7 +4674,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4737,7 +4737,7 @@ "/inboxes/{inboxId}/delivery-status": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4813,7 +4813,7 @@ "/inboxes/{inboxId}/emails": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4921,7 +4921,7 @@ "/inboxes/{inboxId}/emails/count": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -4951,7 +4951,7 @@ "/inboxes/{inboxId}/emails/paginated": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5038,7 +5038,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5077,7 +5077,7 @@ "/inboxes/{inboxId}/plus-addresses": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5138,7 +5138,7 @@ "/inboxes/{inboxId}/plus-addresses/emails": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5222,7 +5222,7 @@ "/inboxes/{inboxId}/plus-addresses/{plusAddressId}": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5261,7 +5261,7 @@ "/inboxes/{inboxId}/plus-addresses/{plusAddressId}/emails": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5346,7 +5346,7 @@ "/inboxes/{inboxId}/rulesets": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5430,7 +5430,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5469,7 +5469,7 @@ "/inboxes/{inboxId}/scheduled-jobs": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5569,7 +5569,7 @@ "/inboxes/{inboxId}/sent": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5699,7 +5699,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5764,7 +5764,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5795,7 +5795,7 @@ "/mfa/totp/device/by": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5842,7 +5842,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5876,7 +5876,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5907,7 +5907,7 @@ "/mfa/totp/device/{id}": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5937,7 +5937,7 @@ "/mfa/totp/device/{id}/code": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -5987,7 +5987,7 @@ "/newEmailAddress": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6115,7 +6115,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6160,7 +6160,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6277,7 +6277,7 @@ "/phone/numbers/by-name": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6306,7 +6306,7 @@ "/phone/numbers/by-phone-number": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6335,7 +6335,7 @@ "/phone/numbers/message-threads": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6374,7 +6374,7 @@ "/phone/numbers/{phoneId}/webhooks/paginated": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6517,7 +6517,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6548,7 +6548,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6590,7 +6590,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6629,7 +6629,7 @@ "/phone/numbers/{phoneNumberId}/message-threads": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6675,7 +6675,7 @@ "/phone/numbers/{phoneNumberId}/message-threads/{otherNumber}": { "delete": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6709,7 +6709,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6761,7 +6761,7 @@ "/phone/numbers/{phoneNumberId}/sms": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6862,7 +6862,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -6900,7 +6900,7 @@ "/phone/numbers/{phoneNumberId}/sms-sent": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7028,7 +7028,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7069,7 +7069,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7187,7 +7187,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7270,7 +7270,7 @@ "/sent/delivery-status": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7338,7 +7338,7 @@ "/sent/delivery-status/wait-for": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7410,7 +7410,7 @@ "/sent/delivery-status/{deliveryId}": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7439,7 +7439,7 @@ "/sent/organization": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7522,7 +7522,7 @@ "/sent/queue-results": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7590,7 +7590,7 @@ "/sent/tracking-pixels": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7690,7 +7690,7 @@ "/sent/{emailId}/raw/json": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7742,7 +7742,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7800,7 +7800,7 @@ "/sent/{id}/tracking-pixels": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7882,7 +7882,7 @@ "/sent/{id}/urls": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -7912,7 +7912,7 @@ "/sent/{sentId}/delivery-status": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8010,7 +8010,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8113,7 +8113,7 @@ "/sms/count": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [], "responses": { @@ -8138,7 +8138,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8204,7 +8204,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8289,7 +8289,7 @@ "/sms/sent/count": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [], "responses": { @@ -8333,7 +8333,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8363,7 +8363,7 @@ "/sms/unreadCount": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [], "responses": { @@ -8407,7 +8407,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8437,7 +8437,7 @@ "/sms/{smsId}/favourite": { "put": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8472,7 +8472,7 @@ "/sms/{smsId}/reply": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8503,7 +8503,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8544,7 +8544,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8578,7 +8578,7 @@ "/waitForEmailCount": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8672,7 +8672,7 @@ "/waitForLatestEmail": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8757,7 +8757,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8791,7 +8791,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8896,7 +8896,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -8986,7 +8986,7 @@ "/waitForNthEmail": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9082,7 +9082,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9141,7 +9141,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9172,7 +9172,7 @@ "/webhooks/account/paginated": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9284,7 +9284,7 @@ "/webhooks/endpoints": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9412,7 +9412,7 @@ "/webhooks/paginated": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9574,7 +9574,7 @@ "/webhooks/results": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9754,7 +9754,7 @@ "/webhooks/results/redrive": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [], "responses": { @@ -9776,7 +9776,7 @@ "/webhooks/results/unseen-count": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [], "responses": { @@ -9797,7 +9797,7 @@ "/webhooks/results/{webhookResultId}": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9827,7 +9827,7 @@ "/webhooks/results/{webhookResultId}/redrive": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9861,7 +9861,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9913,7 +9913,7 @@ }, "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -9943,7 +9943,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -10007,7 +10007,7 @@ "/webhooks/{webhookId}/example": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -10039,7 +10039,7 @@ "application/json" ], "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -10076,7 +10076,7 @@ "/webhooks/{webhookId}/results": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -10264,7 +10264,7 @@ "/webhooks/{webhookId}/results/count": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -10294,7 +10294,7 @@ "/webhooks/{webhookId}/schema": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -10323,7 +10323,7 @@ "/webhooks/{webhookId}/test": { "post": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { @@ -10352,7 +10352,7 @@ "/webhooks/{webhookId}/wait": { "get": { "produces": [ - "application/octet-stream" + "application/json" ], "parameters": [ { From c49a6dec026909c79c529d951777a8d6ae6acee0 Mon Sep 17 00:00:00 2001 From: jackmahoney Date: Sun, 16 Nov 2025 14:35:25 +1300 Subject: [PATCH 6/8] paths --- .../MailSlurp/apiDefinition.swagger.json | 2875 ++++++++++++----- 1 file changed, 1984 insertions(+), 891 deletions(-) diff --git a/certified-connectors/MailSlurp/apiDefinition.swagger.json b/certified-connectors/MailSlurp/apiDefinition.swagger.json index 5e4681937b..5f29d66559 100644 --- a/certified-connectors/MailSlurp/apiDefinition.swagger.json +++ b/certified-connectors/MailSlurp/apiDefinition.swagger.json @@ -34,7 +34,9 @@ "required": true, "schema": { "$ref": "#/definitions/GenerateStructuredContentAttachmentOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -50,7 +52,8 @@ ], "description": "Use output schemas to extract data from an attachment using AI", "operationId": "generateStructuredContentFromAttachment", - "summary": "Generate structured content for an attachment" + "summary": "Generate structured content for an attachment", + "x-ms-summary": "Use output schemas to extract data from an attachment using AI" } }, "/ai/structured-content/email": { @@ -68,7 +71,9 @@ "required": true, "schema": { "$ref": "#/definitions/GenerateStructuredContentEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -84,7 +89,8 @@ ], "description": "Use output schemas to extract data from an email using AI", "operationId": "generateStructuredContentFromEmail", - "summary": "Generate structured content for an email" + "summary": "Generate structured content for an email", + "x-ms-summary": "Use output schemas to extract data from an email using AI" } }, "/ai/structured-content/sms": { @@ -102,7 +108,9 @@ "required": true, "schema": { "$ref": "#/definitions/GenerateStructuredContentSmsOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -118,7 +126,8 @@ ], "description": "Use output schemas to extract data from an SMS using AI", "operationId": "generateStructuredContentFromSms", - "summary": "Generate structured content for a TXT message" + "summary": "Generate structured content for a TXT message", + "x-ms-summary": "Use output schemas to extract data from an SMS using AI" } }, "/ai/structured-content/validate": { @@ -136,7 +145,9 @@ "required": true, "schema": { "$ref": "#/definitions/StructuredOutputSchema" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -152,7 +163,8 @@ ], "description": "Check if a schema is valid and can be used to extract data using AI", "operationId": "validateStructuredOutputSchema", - "summary": "Validate structured content schema" + "summary": "Validate structured content schema", + "x-ms-summary": "Check if a schema is valid and can be used to extract data using AI" } }, "/attachments": { @@ -168,7 +180,8 @@ ], "description": "Delete all attachments", "operationId": "deleteAllAttachments", - "summary": "Delete all attachments" + "summary": "Delete all attachments", + "x-ms-summary": "Delete all attachments" }, "get": { "produces": [ @@ -182,7 +195,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index for list pagination" }, { "default": 20, @@ -191,7 +205,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size for list pagination" }, { "default": "ASC", @@ -203,14 +218,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional file name and content type search filter", "in": "query", "name": "fileNameFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional file name and content type search filter" }, { "description": "Filter by created at after the given timestamp", @@ -218,7 +235,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -226,7 +244,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "description": "Optional inboxId to filter attachments by", @@ -234,7 +253,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional inboxId to filter attachments by" }, { "description": "Optional emailId to filter attachments by", @@ -242,7 +262,8 @@ "in": "query", "name": "emailId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional emailId to filter attachments by" }, { "description": "Optional sentEmailId to filter attachments by", @@ -250,7 +271,8 @@ "in": "query", "name": "sentEmailId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional sentEmailId to filter attachments by" }, { "description": "Optional list of IDs to include in result", @@ -260,7 +282,8 @@ }, "name": "include", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Optional list of IDs to include in result" } ], "responses": { @@ -276,7 +299,8 @@ ], "description": "Get all attachments in paginated response. Each entity contains meta data for the attachment such as `name` and `content-type`. Use the `attachmentId` and the download endpoints to get the file contents.", "operationId": "getAttachments", - "summary": "Get email attachments" + "summary": "Get email attachments", + "x-ms-summary": "Get all attachments in paginated response. Each entity contains meta data for th" }, "post": { "consumes": [ @@ -292,7 +316,9 @@ "required": true, "schema": { "$ref": "#/definitions/UploadAttachmentOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -310,7 +336,9 @@ "AttachmentController" ], "operationId": "uploadAttachment", - "summary": "Upload an attachment for sending using base64 file encoding. Returns an array whose first element is the ID of the uploaded attachment." + "summary": "Upload an attachment for sending using base64 file encoding. Returns an array wh", + "description": "Upload an attachment for sending using base64 file encoding. Returns an array whose first element is the ID of the uploaded attachment.", + "x-ms-summary": "Upload an attachment for sending using base64 file encoding. Returns an array wh" } }, "/attachments/{attachmentId}": { @@ -321,7 +349,8 @@ "in": "path", "name": "attachmentId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of attachment" } ], "responses": { @@ -334,7 +363,8 @@ ], "description": "Delete an attachment", "operationId": "deleteAttachment", - "summary": "Delete an attachment" + "summary": "Delete an attachment", + "x-ms-summary": "Delete an attachment" }, "get": { "produces": [ @@ -346,7 +376,8 @@ "in": "path", "name": "attachmentId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of attachment" } ], "responses": { @@ -361,7 +392,9 @@ "AttachmentController" ], "operationId": "getAttachment", - "summary": "Get an attachment entity" + "summary": "Get an attachment entity", + "description": "Get an attachment entity", + "x-ms-summary": "Get an attachment entity" } }, "/attachments/{attachmentId}/base64": { @@ -375,7 +408,8 @@ "in": "path", "name": "attachmentId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of attachment" } ], "responses": { @@ -391,7 +425,8 @@ ], "description": "Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the `downloadAttachment` method but allows some clients to get around issues with binary responses.", "operationId": "downloadAttachmentAsBase64Encoded", - "summary": "Get email attachment as base64 encoded string as alternative to binary responses. To read the content decode the Base64 encoded contents." + "summary": "Get email attachment as base64 encoded string as alternative to binary responses", + "x-ms-summary": "Returns the specified attachment for a given email as a base 64 encoded string" } }, "/attachments/{attachmentId}/bytes": { @@ -405,7 +440,8 @@ "in": "path", "name": "attachmentId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of attachment" } ], "responses": { @@ -422,7 +458,8 @@ ], "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", "operationId": "downloadAttachmentAsBytes", - "summary": "Download attachments. Get email attachment bytes. If you have trouble with byte responses try the `downloadAttachmentBase64` response endpoints." + "summary": "Download attachments. Get email attachment bytes. If you have trouble with byte", + "x-ms-summary": "Returns the specified attachment for a given email as a stream / array of bytes" } }, "/attachments/{attachmentId}/metadata": { @@ -436,7 +473,8 @@ "in": "path", "name": "attachmentId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of attachment" } ], "responses": { @@ -452,7 +490,8 @@ ], "description": "Returns the metadata for an attachment. It is saved separately to the content of the attachment. Contains properties `name` and `content-type` and `content-length` in bytes for a given attachment.", "operationId": "getAttachmentInfo", - "summary": "Get email attachment metadata information" + "summary": "Get email attachment metadata information", + "x-ms-summary": "Returns the metadata for an attachment. It is saved separately to the content of" } }, "/bulk/inboxes": { @@ -471,7 +510,9 @@ "type": "string" }, "type": "array" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -483,7 +524,9 @@ "BulkActionsController" ], "operationId": "bulkDeleteInboxes", - "summary": "Bulk Delete Inboxes" + "summary": "Bulk Delete Inboxes", + "description": "Bulk Delete Inboxes", + "x-ms-summary": "Bulk Delete Inboxes" }, "post": { "produces": [ @@ -496,7 +539,8 @@ "in": "query", "name": "count", "required": true, - "type": "integer" + "type": "integer", + "x-ms-summary": "Number of inboxes to be created in bulk" } ], "responses": { @@ -514,7 +558,9 @@ "BulkActionsController" ], "operationId": "bulkCreateInboxes", - "summary": "Bulk create Inboxes (email addresses)" + "summary": "Bulk create Inboxes (email addresses", + "description": "Bulk create Inboxes (email addresses)", + "x-ms-summary": "Bulk create Inboxes (email addresses" } }, "/bulk/send": { @@ -529,7 +575,9 @@ "required": true, "schema": { "$ref": "#/definitions/BulkSendEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -541,7 +589,9 @@ "BulkActionsController" ], "operationId": "bulkSendEmails", - "summary": "Bulk Send Emails" + "summary": "Bulk Send Emails", + "description": "Bulk Send Emails", + "x-ms-summary": "Bulk Send Emails" } }, "/createInbox": { @@ -554,33 +604,43 @@ "in": "query", "name": "allowTeamAccess", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter allowTeamAccess", + "x-ms-summary": "Parameter allowTeamAccess" }, { "in": "query", "name": "useDomainPool", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter useDomainPool", + "x-ms-summary": "Parameter useDomainPool" }, { "format": "date-time", "in": "query", "name": "expiresAt", "required": false, - "type": "string" + "type": "string", + "description": "Parameter expiresAt", + "x-ms-summary": "Parameter expiresAt" }, { "format": "int64", "in": "query", "name": "expiresIn", "required": false, - "type": "integer" + "type": "integer", + "description": "Parameter expiresIn", + "x-ms-summary": "Parameter expiresIn" }, { "in": "query", "name": "emailAddress", "required": false, - "type": "string" + "type": "string", + "description": "Parameter emailAddress", + "x-ms-summary": "Parameter emailAddress" }, { "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", @@ -591,19 +651,24 @@ "in": "query", "name": "inboxType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes a" }, { "in": "query", "name": "description", "required": false, - "type": "string" + "type": "string", + "description": "Parameter description", + "x-ms-summary": "Parameter description" }, { "in": "query", "name": "name", "required": false, - "type": "string" + "type": "string", + "description": "Parameter name", + "x-ms-summary": "Parameter name" }, { "in": "query", @@ -612,44 +677,58 @@ }, "name": "tags", "required": false, - "type": "array" + "type": "array", + "description": "Parameter tags", + "x-ms-summary": "Parameter tags" }, { "in": "query", "name": "favourite", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter favourite", + "x-ms-summary": "Parameter favourite" }, { "in": "query", "name": "virtualInbox", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter virtualInbox", + "x-ms-summary": "Parameter virtualInbox" }, { "in": "query", "name": "useShortAddress", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter useShortAddress", + "x-ms-summary": "Parameter useShortAddress" }, { "in": "query", "name": "domainName", "required": false, - "type": "string" + "type": "string", + "description": "Parameter domainName", + "x-ms-summary": "Parameter domainName" }, { "format": "uuid", "in": "query", "name": "domainId", "required": false, - "type": "string" + "type": "string", + "description": "Parameter domainId", + "x-ms-summary": "Parameter domainId" }, { "in": "query", "name": "prefix", "required": false, - "type": "string" + "type": "string", + "description": "Parameter prefix", + "x-ms-summary": "Parameter prefix" } ], "responses": { @@ -665,7 +744,8 @@ ], "description": "Returns an Inbox with an `id` and an `emailAddress`", "operationId": "createRandomInbox", - "summary": "Create new random inbox" + "summary": "Create new random inbox", + "x-ms-summary": "Returns an Inbox with an `id` and an `emailAddress" } }, "/deleteEmailAddress": { @@ -677,7 +757,8 @@ "in": "query", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of inbox to delete" } ], "responses": { @@ -690,7 +771,8 @@ ], "description": "Deletes inbox email address", "operationId": "deleteEmailAddress", - "summary": "Delete inbox email address by inbox id" + "summary": "Delete inbox email address by inbox id", + "x-ms-summary": "Deletes inbox email address" } }, "/email-verification": { @@ -706,7 +788,8 @@ ], "description": "Remove validation requests", "operationId": "deleteAllValidationRequests", - "summary": "Delete all validation requests" + "summary": "Delete all validation requests", + "x-ms-summary": "Remove validation requests" } }, "/email-verification/email-address-list": { @@ -724,7 +807,9 @@ "required": true, "schema": { "$ref": "#/definitions/ValidateEmailAddressListOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -740,7 +825,8 @@ ], "description": "Verify a list of email addresses is valid and can be contacted.", "operationId": "validateEmailAddressList", - "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing." + "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing", + "x-ms-summary": "Verify a list of email addresses is valid and can be contacted" } }, "/email-verification/validation-requests": { @@ -758,7 +844,8 @@ "minimum": 0, "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -769,7 +856,8 @@ "minimum": 1, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size for paginated result list" }, { "default": "DESC", @@ -781,14 +869,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by created at after the given timestamp", @@ -796,7 +886,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -804,14 +895,16 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "description": "Filter where email is valid is true or false", "in": "query", "name": "isValid", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Filter where email is valid is true or false" } ], "responses": { @@ -827,7 +920,8 @@ ], "description": "List email verification requests", "operationId": "getValidationRequests", - "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing." + "summary": "Validate a list of email addresses. Per unit billing. See your plan for pricing", + "x-ms-summary": "List email verification requests" } }, "/email-verification/{id}": { @@ -838,7 +932,9 @@ "in": "path", "name": "id", "required": true, - "type": "string" + "type": "string", + "description": "Parameter id", + "x-ms-summary": "Parameter id" } ], "responses": { @@ -851,7 +947,8 @@ ], "description": "Delete a validation record", "operationId": "deleteValidationRequest", - "summary": "Delete a validation record" + "summary": "Delete a validation record", + "x-ms-summary": "Delete a validation record" } }, "/emails": { @@ -867,7 +964,8 @@ ], "description": "Deletes all emails in your account. Be careful as emails cannot be recovered", "operationId": "deleteAllEmails", - "summary": "Delete all emails in all inboxes." + "summary": "Delete all emails in all inboxes", + "x-ms-summary": "Deletes all emails in your account. Be careful as emails cannot be recovered" }, "get": { "produces": [ @@ -883,7 +981,8 @@ }, "name": "inboxId", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxe" }, { "default": 0, @@ -892,7 +991,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in email list pagination" }, { "default": 20, @@ -902,7 +1002,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in email list pagination. Maximum size is 100. Use page index" }, { "default": "ASC", @@ -914,7 +1015,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "default": false, @@ -922,14 +1024,16 @@ "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter for unread emails only. All emails are considered unread until t" }, { "description": "Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter. Searches email recipients, sender, subject, email addres" }, { "description": "Optional filter emails received after given date time. If unset will use time 24hours prior to now.", @@ -937,7 +1041,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter emails received after given date time. If unset will use time 24" }, { "description": "Optional filter emails received before given date time", @@ -945,14 +1050,16 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter emails received before given date time" }, { "description": "Sync connectors", "in": "query", "name": "syncConnectors", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Sync connectors" }, { "description": "Optional plus address ID filter", @@ -960,14 +1067,16 @@ "in": "query", "name": "plusAddressId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional plus address ID filter" }, { "description": "Optional filter emails that are favourited", "in": "query", "name": "favourited", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter emails that are favourited" } ], "responses": { @@ -983,7 +1092,8 @@ ], "description": "By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", "operationId": "getEmailsPaginated", - "summary": "Get all emails in all inboxes in paginated form. Email API list all." + "summary": "Get all emails in all inboxes in paginated form. Email API list all", + "x-ms-summary": "By default returns all emails across all inboxes sorted by ascending created at" }, "post": { "consumes": [ @@ -996,21 +1106,24 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to send the email from" }, { "description": "Use domain pool. Optionally create inbox to send from using the mailslurp domain pool.", "in": "query", "name": "useDomainPool", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Use domain pool. Optionally create inbox to send from using the mailslurp domain" }, { "description": "Optionally create inbox to send from that is a virtual inbox and won't send to external addresses", "in": "query", "name": "virtualSend", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optionally create inbox to send from that is a virtual inbox and won't send to e" }, { "in": "body", @@ -1018,7 +1131,9 @@ "required": true, "schema": { "$ref": "#/definitions/SendEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -1031,7 +1146,8 @@ ], "description": "Alias for `InboxController.sendEmail` method - see original method for full details. Sends an email from a given inbox that you have created. If no inbox is supplied a random inbox will be created for you and used to send the email.", "operationId": "sendEmailSourceOptional", - "summary": "Send email" + "summary": "Send email", + "x-ms-summary": "Alias for `InboxController.sendEmail` method - see original method for full deta" } }, "/emails/can-send": { @@ -1049,7 +1165,8 @@ "in": "query", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to send the email from" }, { "in": "body", @@ -1057,7 +1174,9 @@ "required": true, "schema": { "$ref": "#/definitions/SendEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -1073,7 +1192,8 @@ ], "description": "Can user send email to given recipient or is the recipient blocked", "operationId": "canSend", - "summary": "Check if email can be sent and options are valid." + "summary": "Check if email can be sent and options are valid", + "x-ms-summary": "Can user send email to given recipient or is the recipient blocked" } }, "/emails/check-email-client-support": { @@ -1091,7 +1211,9 @@ "required": true, "schema": { "$ref": "#/definitions/CheckEmailClientSupportOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -1107,7 +1229,8 @@ ], "description": "Evaluate the features used in an email body and return a report of email client support across different platforms and versions.", "operationId": "checkEmailClientSupport", - "summary": "Show which email programs and devices support the features used in an email body." + "summary": "Show which email programs and devices support the features used in an email body", + "x-ms-summary": "Evaluate the features used in an email body and return a report of email client" } }, "/emails/emails/count": { @@ -1121,7 +1244,9 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" } ], "responses": { @@ -1136,7 +1261,9 @@ "EmailController" ], "operationId": "getEmailCount", - "summary": "Get email count" + "summary": "Get email count", + "description": "Get email count", + "x-ms-summary": "Get email count" } }, "/emails/gravatarFor": { @@ -1149,13 +1276,17 @@ "in": "query", "name": "emailAddress", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailAddress", + "x-ms-summary": "Parameter emailAddress" }, { "in": "query", "name": "size", "required": false, - "type": "string" + "type": "string", + "description": "Parameter size", + "x-ms-summary": "Parameter size" } ], "responses": { @@ -1170,7 +1301,9 @@ "EmailController" ], "description": "Get gravatar url for email address", - "operationId": "getGravatarUrlForEmailAddress" + "operationId": "getGravatarUrlForEmailAddress", + "summary": "Get gravatar url for email address", + "x-ms-summary": "Get gravatar url for email address" } }, "/emails/latest": { @@ -1180,7 +1313,6 @@ ], "parameters": [ { - "description": "Optional set of inboxes to filter by. Only get the latest email from these inbox IDs. If not provided will search across all inboxes", "in": "query", "items": { @@ -1189,7 +1321,8 @@ }, "name": "inboxIds", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Optional set of inboxes to filter by. Only get the latest email from these inbox" } ], "responses": { @@ -1205,7 +1338,8 @@ ], "description": "Get the newest email in all inboxes or in a passed set of inbox IDs", "operationId": "getLatestEmail", - "summary": "Get latest email in all inboxes. Most recently received." + "summary": "Get latest email in all inboxes. Most recently received", + "x-ms-summary": "Get the newest email in all inboxes or in a passed set of inbox IDs" } }, "/emails/latestIn": { @@ -1220,7 +1354,8 @@ "in": "query", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to get the latest email from" } ], "responses": { @@ -1236,7 +1371,8 @@ ], "description": "Get the newest email in all inboxes or in a passed set of inbox IDs", "operationId": "getLatestEmailInInbox_1", - "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not have arrived yet." + "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not", + "x-ms-summary": "Get the newest email in all inboxes or in a passed set of inbox IDs" } }, "/emails/offset-paginated": { @@ -1246,7 +1382,6 @@ ], "parameters": [ { - "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", "in": "query", "items": { @@ -1255,7 +1390,8 @@ }, "name": "inboxId", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxe" }, { "default": 0, @@ -1264,7 +1400,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in email list pagination" }, { "default": 20, @@ -1274,7 +1411,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in email list pagination. Maximum size is 100. Use page index" }, { "default": "ASC", @@ -1286,7 +1424,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "default": false, @@ -1294,14 +1433,16 @@ "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter for unread emails only. All emails are considered unread until t" }, { "description": "Optional search filter. Searches email recipients, sender, subject, email address and ID. Does not search email body", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter. Searches email recipients, sender, subject, email addres" }, { "description": "Optional filter emails received after given date time", @@ -1309,7 +1450,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter emails received after given date time" }, { "description": "Optional filter emails received before given date time", @@ -1317,21 +1459,24 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter emails received before given date time" }, { "description": "Optional filter emails that are favourited", "in": "query", "name": "favourited", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter emails that are favourited" }, { "description": "Sync connectors", "in": "query", "name": "syncConnectors", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Sync connectors" }, { "description": "Optional plus address ID filter", @@ -1339,10 +1484,10 @@ "in": "query", "name": "plusAddressId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional plus address ID filter" }, { - "description": "Optional list of IDs to include in result", "in": "query", "items": { @@ -1351,7 +1496,8 @@ }, "name": "include", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Optional list of IDs to include in result" } ], "responses": { @@ -1367,7 +1513,8 @@ ], "description": "By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", "operationId": "getEmailsOffsetPaginated", - "summary": "Get all emails in all inboxes in paginated form. Email API list all." + "summary": "Get all emails in all inboxes in paginated form. Email API list all", + "x-ms-summary": "By default returns all emails across all inboxes sorted by ascending created at" } }, "/emails/organization": { @@ -1377,7 +1524,6 @@ ], "parameters": [ { - "description": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.", "in": "query", "items": { @@ -1386,7 +1532,8 @@ }, "name": "inboxId", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Optional inbox ids to filter by. Can be repeated. By default will use all inboxe" }, { "default": 0, @@ -1395,7 +1542,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in email list pagination" }, { "default": 20, @@ -1405,7 +1553,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in email list pagination. Maximum size is 100. Use page index" }, { "default": "ASC", @@ -1417,7 +1566,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "default": false, @@ -1425,14 +1575,16 @@ "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter for unread emails only. All emails are considered unread until t" }, { "description": "Optional search filter search filter for emails.", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter search filter for emails" }, { "description": "Optional filter emails received after given date time. If unset will use time 24hours prior to now.", @@ -1440,7 +1592,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter emails received after given date time. If unset will use time 24" }, { "description": "Optional filter emails received before given date time", @@ -1448,21 +1601,24 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter emails received before given date time" }, { "description": "Sync connectors", "in": "query", "name": "syncConnectors", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Sync connectors" }, { "description": "Search only favorited emails", "in": "query", "name": "favourited", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Search only favorited emails" }, { "description": "Optional plus address ID filter", @@ -1470,7 +1626,8 @@ "in": "query", "name": "plusAddressId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional plus address ID filter" } ], "responses": { @@ -1486,7 +1643,8 @@ ], "description": "By default returns all emails across all team inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages", "operationId": "getOrganizationEmailsPaginated", - "summary": "Get all organization emails. List team or shared test email accounts" + "summary": "Get all organization emails. List team or shared test email accounts", + "x-ms-summary": "By default returns all emails across all team inboxes sorted by ascending create" } }, "/emails/read": { @@ -1498,7 +1656,8 @@ "in": "query", "name": "read", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "What value to assign to email read property. Default true" }, { "description": "Optional inbox ID filter", @@ -1506,7 +1665,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional inbox ID filter" } ], "responses": { @@ -1519,7 +1679,8 @@ ], "description": "Marks all emails as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread", "operationId": "markAllAsRead", - "summary": "Mark all emails as read or unread" + "summary": "Mark all emails as read or unread", + "x-ms-summary": "Marks all emails as read or unread. Pass boolean read flag to set value. This is" } }, "/emails/search": { @@ -1536,14 +1697,16 @@ "in": "query", "name": "syncConnectors", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Sync connectors" }, { "description": "Search only favourited emails", "in": "query", "name": "favourited", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Search only favourited emails" }, { "description": "Optional plus address ID filter", @@ -1551,7 +1714,8 @@ "in": "query", "name": "plusAddressId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional plus address ID filter" }, { "in": "body", @@ -1559,7 +1723,9 @@ "required": true, "schema": { "$ref": "#/definitions/SearchEmailsOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -1575,7 +1741,8 @@ ], "description": "Search emails by given criteria return matches in paginated format. Searches against email recipients, sender, subject, email address and ID. Does not search email body", "operationId": "searchEmails", - "summary": "Get all emails by search criteria. Return in paginated form." + "summary": "Get all emails by search criteria. Return in paginated form", + "x-ms-summary": "Search emails by given criteria return matches in paginated format. Searches aga" } }, "/emails/threads": { @@ -1590,7 +1757,8 @@ "in": "query", "name": "htmlSelector", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional inbox filter" }, { "default": 0, @@ -1599,7 +1767,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in email thread pagination" }, { "default": 20, @@ -1609,7 +1778,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in email thread pagination. Maximum size is 100. Use page ind" }, { "default": "ASC", @@ -1621,14 +1791,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter search filter for email threads.", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter search filter for email threads" }, { "description": "Optional filter email threads created since time", @@ -1636,7 +1808,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter email threads created since time" }, { "description": "Optional filter emails threads created before given date time", @@ -1644,7 +1817,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter emails threads created before given date time" } ], "responses": { @@ -1660,7 +1834,8 @@ ], "description": "Return email message chains built from Message-ID, In-Reply-To, and References header.", "operationId": "getEmailThreads", - "summary": "Return email threads in paginated form" + "summary": "Return email threads in paginated form", + "x-ms-summary": "Return email message chains built from Message-ID, In-Reply-To, and References h" } }, "/emails/threads/{threadId}": { @@ -1674,7 +1849,9 @@ "in": "path", "name": "threadId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter threadId", + "x-ms-summary": "Parameter threadId" } ], "responses": { @@ -1690,7 +1867,8 @@ ], "description": "Return email message thread summary from Message-ID, In-Reply-To, and References header. Get messages using items endpoint", "operationId": "getEmailThread", - "summary": "Return email thread information. Use items endpoints to get messages for thread." + "summary": "Return email thread information. Use items endpoints to get messages for thread", + "x-ms-summary": "Return email message thread summary from Message-ID, In-Reply-To, and References" } }, "/emails/threads/{threadId}/items": { @@ -1704,7 +1882,9 @@ "in": "path", "name": "threadId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter threadId", + "x-ms-summary": "Parameter threadId" }, { "default": "ASC", @@ -1716,7 +1896,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" } ], "responses": { @@ -1732,7 +1913,8 @@ ], "description": "Return email thread messages based on Message-ID, In-Reply-To, and References header", "operationId": "getEmailThreadItems", - "summary": "Return email thread items." + "summary": "Return email thread items", + "x-ms-summary": "Return email thread messages based on Message-ID, In-Reply-To, and References he" } }, "/emails/unreadCount": { @@ -1747,7 +1929,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional inbox ID filter" } ], "responses": { @@ -1763,7 +1946,8 @@ ], "description": "Get number of emails unread. Unread means has not been viewed in dashboard or returned in an email API response", "operationId": "getUnreadEmailCount", - "summary": "Get unread email count" + "summary": "Get unread email count", + "x-ms-summary": "Get number of emails unread. Unread means has not been viewed in dashboard or re" } }, "/emails/{emailId}": { @@ -1775,7 +1959,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email to delete" } ], "responses": { @@ -1788,7 +1973,8 @@ ], "description": "Deletes an email and removes it from the inbox. Deleted emails cannot be recovered.", "operationId": "deleteEmail", - "summary": "Delete an email" + "summary": "Delete an email", + "x-ms-summary": "Deletes an email and removes it from the inbox. Deleted emails cannot be recover" }, "get": { "produces": [ @@ -1803,7 +1989,9 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" } ], "responses": { @@ -1819,7 +2007,8 @@ ], "description": "Returns a email summary object with headers and content. To retrieve the raw unparsed email use the getRawEmail endpoints", "operationId": "getEmail", - "summary": "Get email content including headers and body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController." + "summary": "Get email content including headers and body. Expects email to exist by ID. For", + "x-ms-summary": "Returns a email summary object with headers and content. To retrieve the raw unp" }, "put": { "consumes": [ @@ -1835,7 +2024,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the email that should be replied to" }, { "in": "body", @@ -1843,7 +2033,9 @@ "required": true, "schema": { "$ref": "#/definitions/ReplyToEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -1859,7 +2051,8 @@ ], "description": "Send the reply to the email sender or reply-to and include same subject cc bcc etc. Reply to an email and the contents will be sent with the existing subject to the emails `to`, `cc`, and `bcc`.", "operationId": "replyToEmail", - "summary": "Reply to an email" + "summary": "Reply to an email", + "x-ms-summary": "Send the reply to the email sender or reply-to and include same subject cc bcc e" } }, "/emails/{emailId}/attachments": { @@ -1874,7 +2067,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" } ], "responses": { @@ -1893,7 +2087,8 @@ ], "description": "Returns an array of attachment metadata such as name and content-type for a given email if present.", "operationId": "getEmailAttachments", - "summary": "Get all email attachment metadata. Metadata includes name and size of attachments." + "summary": "Get all email attachment metadata. Metadata includes name and size of attachment", + "x-ms-summary": "Returns an array of attachment metadata such as name and content-type for a give" } }, "/emails/{emailId}/attachments/{attachmentId}": { @@ -1908,21 +2103,24 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" }, { "description": "ID of attachment", "in": "path", "name": "attachmentId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of attachment" }, { "description": "Can pass apiKey in url for this request if you wish to download the file in a browser. Content type will be set to original content type of the attachment file. This is so that browsers can download the file correctly.", "in": "query", "name": "apiKey", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Can pass apiKey in url for this request if you wish to download the file in a br" } ], "responses": { @@ -1939,7 +2137,8 @@ ], "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", "operationId": "downloadAttachment", - "summary": "Get email attachment bytes. Returned as `octet-stream` with content type header. If you have trouble with byte responses try the `downloadAttachmentBase64` response endpoints and convert the base 64 encoded content to a file or string." + "summary": "Get email attachment bytes. Returned as `octet-stream` with content type header", + "x-ms-summary": "Returns the specified attachment for a given email as a stream / array of bytes" } }, "/emails/{emailId}/attachments/{attachmentId}/base64": { @@ -1954,14 +2153,16 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" }, { "description": "ID of attachment", "in": "path", "name": "attachmentId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of attachment" } ], "responses": { @@ -1977,7 +2178,8 @@ ], "description": "Returns the specified attachment for a given email as a base 64 encoded string. The response type is application/json. This method is similar to the `downloadAttachment` method but allows some clients to get around issues with binary responses.", "operationId": "downloadAttachmentBase64", - "summary": "Get email attachment as base64 encoded string as an alternative to binary responses. Decode the `base64FileContents` as a `utf-8` encoded string or array of bytes depending on the `contentType`." + "summary": "Get email attachment as base64 encoded string as an alternative to binary respon", + "x-ms-summary": "Returns the specified attachment for a given email as a base 64 encoded string" } }, "/emails/{emailId}/attachments/{attachmentId}/metadata": { @@ -1992,14 +2194,16 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" }, { "description": "ID of attachment", "in": "path", "name": "attachmentId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of attachment" } ], "responses": { @@ -2015,7 +2219,8 @@ ], "description": "Returns the metadata such as name and content-type for a given attachment and email.", "operationId": "getAttachmentMetaData", - "summary": "Get email attachment metadata. This is the `contentType` and `contentLength` of an attachment. To get the individual attachments use the `downloadAttachment` methods." + "summary": "Get email attachment metadata. This is the `contentType` and `contentLength` of", + "x-ms-summary": "Returns the metadata such as name and content-type for a given attachment and em" } }, "/emails/{emailId}/body": { @@ -2031,7 +2236,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" } ], "responses": { @@ -2047,7 +2253,8 @@ ], "description": "Returns the specified email body for a given email as a string", "operationId": "downloadBody", - "summary": "Get email body as string. Returned as `plain/text` with content type header." + "summary": "Get email body as string. Returned as `plain/text` with content type header", + "x-ms-summary": "Returns the specified email body for a given email as a string" } }, "/emails/{emailId}/body-bytes": { @@ -2062,7 +2269,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" } ], "responses": { @@ -2079,7 +2287,8 @@ ], "description": "Returns the specified email body for a given email as a stream / array of bytes.", "operationId": "downloadBodyBytes", - "summary": "Get email body in bytes. Returned as `octet-stream` with content type header." + "summary": "Get email body in bytes. Returned as `octet-stream` with content type header", + "x-ms-summary": "Returns the specified email body for a given email as a stream / array of bytes" } }, "/emails/{emailId}/check-email-body": { @@ -2093,7 +2302,9 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" } ], "responses": { @@ -2109,7 +2320,8 @@ ], "description": "Find dead links, broken images, and spelling mistakes in email body. Will call included links via HTTP so do not invoke if your links are sensitive or stateful. Any resource that returns a 4xx or 5xx response or is not reachable via HEAD or GET HTTP operations will be considered unhealthy.", "operationId": "checkEmailBody", - "summary": "Detect broken links, spelling, and images in email content" + "summary": "Detect broken links, spelling, and images in email content", + "x-ms-summary": "Find dead links, broken images, and spelling mistakes in email body. Will call i" } }, "/emails/{emailId}/check-email-body-feature-support": { @@ -2123,7 +2335,9 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" } ], "responses": { @@ -2139,7 +2353,8 @@ ], "description": "Detect HTML and CSS features inside an email body and return a report of email client support across different platforms and versions.", "operationId": "checkEmailBodyFeatureSupport", - "summary": "Show which mail clients support the HTML and CSS features used in an email body." + "summary": "Show which mail clients support the HTML and CSS features used in an email body", + "x-ms-summary": "Detect HTML and CSS features inside an email body and return a report of email c" } }, "/emails/{emailId}/contentMatch": { @@ -2157,7 +2372,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email to match against" }, { "in": "body", @@ -2165,7 +2381,9 @@ "required": true, "schema": { "$ref": "#/definitions/ContentMatchOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -2181,7 +2399,8 @@ ], "description": "Return the matches for a given Java style regex pattern. Do not include the typical `/` at start or end of regex in some languages. Given an example `your code is: 12345` the pattern to extract match looks like `code is: (\\d{6})`. This will return an array of matches with the first matching the entire pattern and the subsequent matching the groups: `['code is: 123456', '123456']` See https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html for more information of available patterns. ", "operationId": "getEmailContentMatch", - "summary": "Get email content regex pattern match results. Runs regex against email body and returns match groups." + "summary": "Get email content regex pattern match results. Runs regex against email body and", + "x-ms-summary": "Return the matches for a given Java style regex pattern. Do not include the typi" } }, "/emails/{emailId}/contentPart": { @@ -2199,21 +2418,24 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email to match against" }, { "description": "Content type", "in": "query", "name": "contentType", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Content type" }, { "description": "Strict content type match", "in": "query", "name": "strict", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Strict content type match" }, { "description": "Index of content type part if multiple", @@ -2221,7 +2443,8 @@ "in": "query", "name": "index", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Index of content type part if multiple" } ], "responses": { @@ -2237,7 +2460,8 @@ ], "description": "Get email body content parts from a multipart email message for a given content type", "operationId": "getEmailContentPart", - "summary": "Get email content part by content type" + "summary": "Get email content part by content type", + "x-ms-summary": "Get email body content parts from a multipart email message for a given content" } }, "/emails/{emailId}/contentPart/raw": { @@ -2252,21 +2476,24 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email to match against" }, { "description": "Content type", "in": "query", "name": "contentType", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Content type" }, { "description": "Strict content type match", "in": "query", "name": "strict", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Strict content type match" }, { "description": "Index of content type part if multiple. Starts from 0 and applies to the result list after selecting for your content type. Content type parts are sorted by order found in original MIME message.", @@ -2274,7 +2501,8 @@ "in": "query", "name": "index", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Index of content type part if multiple. Starts from 0 and applies to the result" } ], "responses": { @@ -2290,7 +2518,8 @@ ], "description": "Get email body content parts from a multipart email message for a given content type and return as response", "operationId": "getEmailContentPartContent", - "summary": "Get email content part by content type raw response" + "summary": "Get email content part by content type raw response", + "x-ms-summary": "Get email body content parts from a multipart email message for a given content" } }, "/emails/{emailId}/favourite": { @@ -2302,13 +2531,16 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email to set favourite state" }, { "in": "query", "name": "favourited", "required": true, - "type": "boolean" + "type": "boolean", + "description": "Parameter favourited", + "x-ms-summary": "Parameter favourited" } ], "responses": { @@ -2321,7 +2553,8 @@ ], "description": "Set and return new favorite state for an email", "operationId": "setEmailFavourited", - "summary": "Set email favourited state" + "summary": "Set email favourited state", + "x-ms-summary": "Set and return new favorite state for an email" } }, "/emails/{emailId}/forward": { @@ -2339,7 +2572,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" }, { "in": "body", @@ -2347,7 +2581,9 @@ "required": true, "schema": { "$ref": "#/definitions/ForwardEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -2363,7 +2599,8 @@ ], "description": "Forward an existing email to new recipients. The sender of the email will be the inbox that received the email you are forwarding. You can override the sender with the `from` option. Note you must have access to the from address in MailSlurp to use the override. For more control consider fetching the email and sending it a new using the send email endpoints.", "operationId": "forwardEmail", - "summary": "Forward email to recipients" + "summary": "Forward email to recipients", + "x-ms-summary": "Forward an existing email to new recipients. The sender of the email will be the" } }, "/emails/{emailId}/html": { @@ -2378,14 +2615,18 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" }, { "default": false, "in": "query", "name": "replaceCidImages", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter replaceCidImages", + "x-ms-summary": "Parameter replaceCidImages" } ], "responses": { @@ -2401,7 +2642,8 @@ ], "description": "Retrieve email content as HTML response for viewing in browsers. Decodes quoted-printable entities and converts charset to UTF-8. Pass your API KEY as a request parameter when viewing in a browser: `?apiKey=xxx`. Returns content-type `text/html;charset=utf-8` so you must call expecting that content response not JSON. For JSON response see the `getEmailHTMLJson` method.", "operationId": "getEmailHTML", - "summary": "Get email content as HTML. For displaying emails in browser context." + "summary": "Get email content as HTML. For displaying emails in browser context", + "x-ms-summary": "Retrieve email content as HTML response for viewing in browsers. Decodes quoted" } }, "/emails/{emailId}/html/json": { @@ -2415,14 +2657,18 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" }, { "default": false, "in": "query", "name": "replaceCidImages", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter replaceCidImages", + "x-ms-summary": "Parameter replaceCidImages" } ], "responses": { @@ -2438,7 +2684,8 @@ ], "description": "Retrieve email content as HTML response. Decodes quoted-printable entities and converts charset to UTF-8. Returns content-type `application/json;charset=utf-8` so you must call expecting that content response not JSON.", "operationId": "getEmailHTMLJson", - "summary": "Get email content as HTML in JSON wrapper. For fetching entity decoded HTML content" + "summary": "Get email content as HTML in JSON wrapper. For fetching entity decoded HTML cont", + "x-ms-summary": "Retrieve email content as HTML response. Decodes quoted-printable entities and c" } }, "/emails/{emailId}/htmlQuery": { @@ -2453,14 +2700,16 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email to perform HTML query on" }, { "description": "HTML selector to search for. Uses JQuery/JSoup/CSS style selector like '.my-div' to match content. See https://jsoup.org/apidocs/org/jsoup/select/Selector.html for more information.", "in": "query", "name": "htmlSelector", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "HTML selector to search for. Uses JQuery/JSoup/CSS style selector like '.my-div" } ], "responses": { @@ -2476,7 +2725,8 @@ ], "description": "Parse an email body and return the content as an array of text. HTML parsing uses JSoup which supports JQuery/CSS style selectors", "operationId": "getEmailHTMLQuery", - "summary": "Parse and return text from an email, stripping HTML and decoding encoded characters" + "summary": "Parse and return text from an email, stripping HTML and decoding encoded charact", + "x-ms-summary": "Parse an email body and return the content as an array of text. HTML parsing use" } }, "/emails/{emailId}/imap-flag-operation": { @@ -2493,7 +2743,9 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" }, { "in": "body", @@ -2501,7 +2753,9 @@ "required": true, "schema": { "$ref": "#/definitions/ImapFlagOperationOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -2517,7 +2771,8 @@ ], "description": "Apply RFC3501 section-2.3.2 IMAP flag operations on an email", "operationId": "applyImapFlagOperation", - "summary": "Set IMAP flags associated with a message. Only supports '\\Seen' flag." + "summary": "Set IMAP flags associated with a message. Only supports '\\Seen' flag", + "x-ms-summary": "Apply RFC3501 section-2.3.2 IMAP flag operations on an email" } }, "/emails/{emailId}/links": { @@ -2532,14 +2787,16 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email to fetch text for" }, { "description": "Optional HTML query selector for links", "in": "query", "name": "selector", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional HTML query selector for links" } ], "responses": { @@ -2555,7 +2812,8 @@ ], "description": "HTML parsing uses JSoup and UNIX line separators. Searches content for href attributes", "operationId": "getEmailLinks", - "summary": "Parse and return list of links found in an email (only works for HTML content)" + "summary": "Parse and return list of links found in an email (only works for HTML content", + "x-ms-summary": "HTML parsing uses JSoup and UNIX line separators. Searches content for href attr" } }, "/emails/{emailId}/raw": { @@ -2567,7 +2825,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" } ], "responses": { @@ -2580,7 +2839,8 @@ ], "description": "Returns a raw, unparsed, and unprocessed email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawEmailJson endpoint", "operationId": "getRawEmailContents", - "summary": "Get raw email string. Returns unparsed raw SMTP message with headers and body." + "summary": "Get raw email string. Returns unparsed raw SMTP message with headers and body", + "x-ms-summary": "Returns a raw, unparsed, and unprocessed email. If your client has issues proces" } }, "/emails/{emailId}/raw/json": { @@ -2595,7 +2855,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" } ], "responses": { @@ -2611,7 +2872,8 @@ ], "description": "Returns a raw, unparsed, and unprocessed email wrapped in a JSON response object for easier handling when compared with the getRawEmail text/plain response", "operationId": "getRawEmailJson", - "summary": "Get raw email in JSON. Unparsed SMTP message in JSON wrapper format." + "summary": "Get raw email in JSON. Unparsed SMTP message in JSON wrapper format", + "x-ms-summary": "Returns a raw, unparsed, and unprocessed email wrapped in a JSON response object" } }, "/emails/{emailId}/read": { @@ -2625,7 +2887,9 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" }, { "default": true, @@ -2633,7 +2897,8 @@ "in": "query", "name": "read", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "What value to assign to email read property. Default true" } ], "responses": { @@ -2649,7 +2914,8 @@ ], "description": "Marks an email as read or unread. Pass boolean read flag to set value. This is useful if you want to read an email but keep it as unread", "operationId": "markAsRead", - "summary": "Mark an email as read or unread" + "summary": "Mark an email as read or unread", + "x-ms-summary": "Marks an email as read or unread. Pass boolean read flag to set value. This is u" } }, "/emails/{emailId}/screenshot/base64": { @@ -2666,7 +2932,9 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" }, { "in": "body", @@ -2674,7 +2942,9 @@ "required": true, "schema": { "$ref": "#/definitions/GetEmailScreenshotOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -2690,7 +2960,8 @@ ], "description": "Capture image of email screenshot and return as base64 encoded string. Useful for embedding in HTML. Be careful as this may contain sensitive information.", "operationId": "getEmailScreenshotAsBase64", - "summary": "Take a screenshot of an email in a browser and return base64 encoded string" + "summary": "Take a screenshot of an email in a browser and return base64 encoded string", + "x-ms-summary": "Capture image of email screenshot and return as base64 encoded string. Useful fo" } }, "/emails/{emailId}/screenshot/binary": { @@ -2704,7 +2975,9 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" }, { "in": "body", @@ -2712,7 +2985,9 @@ "required": true, "schema": { "$ref": "#/definitions/GetEmailScreenshotOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -2725,7 +3000,8 @@ ], "description": "Returns binary octet-stream of screenshot of the given email", "operationId": "getEmailScreenshotAsBinary", - "summary": "Take a screenshot of an email in a browser" + "summary": "Take a screenshot of an email in a browser", + "x-ms-summary": "Returns binary octet-stream of screenshot of the given email" } }, "/emails/{emailId}/summary": { @@ -2739,13 +3015,17 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" }, { "in": "query", "name": "decode", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter decode", + "x-ms-summary": "Parameter decode" } ], "responses": { @@ -2761,7 +3041,8 @@ ], "description": "Returns a email summary object with headers. To retrieve the body see getEmail and to get raw unparsed email use the getRawEmail endpoints", "operationId": "getEmailSummary", - "summary": "Get email data including headers but not body. Expects email to exist by ID. For emails that may not have arrived yet use the WaitForController." + "summary": "Get email data including headers but not body. Expects email to exist by ID. For", + "x-ms-summary": "Returns a email summary object with headers. To retrieve the body see getEmail a" } }, "/emails/{emailId}/textLines": { @@ -2776,21 +3057,24 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email to fetch text for" }, { "description": "Decode HTML entities", "in": "query", "name": "decodeHtmlEntities", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Decode HTML entities" }, { "description": "Line separator character", "in": "query", "name": "lineSeparator", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Line separator character" } ], "responses": { @@ -2806,7 +3090,8 @@ ], "description": "Parse an email body and return the content as an array of strings. HTML parsing uses JSoup and UNIX line separators.", "operationId": "getEmailTextLines", - "summary": "Parse and return text from an email, stripping HTML and decoding encoded characters" + "summary": "Parse and return text from an email, stripping HTML and decoding encoded charact", + "x-ms-summary": "Parse an email body and return the content as an array of strings. HTML parsing" } }, "/emails/{emailId}/urls": { @@ -2820,7 +3105,9 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailId", + "x-ms-summary": "Parameter emailId" } ], "responses": { @@ -2836,7 +3123,8 @@ ], "description": "Get a list of URLs for email content as text/html or raw SMTP message for viewing the message in a browser.", "operationId": "getEmailPreviewURLs", - "summary": "Get email URLs for viewing in browser or downloading" + "summary": "Get email URLs for viewing in browser or downloading", + "x-ms-summary": "Get a list of URLs for email content as text/html or raw SMTP message for viewin" } }, "/emails/{emailId}/validate": { @@ -2851,7 +3139,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" } ], "responses": { @@ -2867,7 +3156,8 @@ ], "description": "Validate the HTML content of email if HTML is found. Considered valid if no HTML is present.", "operationId": "validateEmail", - "summary": "Validate email HTML contents" + "summary": "Validate email HTML contents", + "x-ms-summary": "Validate the HTML content of email if HTML is found. Considered valid if no HTML" } }, "/emptyInbox": { @@ -2879,7 +3169,8 @@ "in": "query", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of inbox to empty" } ], "responses": { @@ -2892,7 +3183,8 @@ ], "description": "Deletes all emails", "operationId": "emptyInbox", - "summary": "Delete all emails in an inbox" + "summary": "Delete all emails in an inbox", + "x-ms-summary": "Deletes all emails" } }, "/inboxes": { @@ -2908,7 +3200,8 @@ ], "description": "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.", "operationId": "deleteAllInboxes", - "summary": "Delete all inboxes" + "summary": "Delete all inboxes", + "x-ms-summary": "Permanently delete all inboxes and associated email addresses. This will also de" }, "get": { "produces": [ @@ -2923,7 +3216,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional result size limit. Note an automatic limit of 100 results is applied. S" }, { "default": "ASC", @@ -2935,7 +3229,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional filter by created after given date time", @@ -2943,14 +3238,16 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created after given date time" }, { "description": "Optional exclude catch all inboxes", "in": "query", "name": "excludeCatchAllInboxes", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional exclude catch all inboxes" }, { "description": "Optional filter by created before given date time", @@ -2958,10 +3255,10 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created before given date time" }, { - "description": "Optional inboxIds to include in result", "in": "query", "items": { @@ -2970,7 +3267,8 @@ }, "name": "include", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Optional inboxIds to include in result" } ], "responses": { @@ -2990,7 +3288,8 @@ "deprecated": true, "description": "List the inboxes you have created. Note use of the more advanced `getAllInboxes` is recommended and allows paginated access using a limit and sort parameter.", "operationId": "getInboxes", - "summary": "List Inboxes and email addresses" + "summary": "List Inboxes and email addresses", + "x-ms-summary": "List the inboxes you have created. Note use of the more advanced `getAllInboxes" }, "post": { "produces": [ @@ -3002,10 +3301,10 @@ "in": "query", "name": "emailAddress", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "A custom email address to use with the inbox. Defaults to null. When null MailSl" }, { - "description": "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.", "in": "query", "items": { @@ -3013,35 +3312,40 @@ }, "name": "tags", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Tags that inbox has been tagged with. Tags can be added to inboxes to group diff" }, { "description": "Optional name of the inbox. Displayed in the dashboard for easier search and used as the sender name when sending emails.", "in": "query", "name": "name", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional name of the inbox. Displayed in the dashboard for easier search and use" }, { "description": "Optional description of the inbox for labelling purposes. Is shown in the dashboard and can be used with", "in": "query", "name": "description", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional description of the inbox for labelling purposes. Is shown in the dashbo" }, { "description": "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. Note this feature is only available for `HTTP` inbox types.", "in": "query", "name": "useDomainPool", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Use the MailSlurp domain name pool with this inbox when creating the email addre" }, { "description": "Is the inbox a favorite. Marking an inbox as a favorite is typically done in the dashboard for quick access or filtering", "in": "query", "name": "favourite", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Is the inbox a favorite. Marking an inbox as a favorite is typically done in the" }, { "description": "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.", @@ -3049,7 +3353,8 @@ "in": "query", "name": "expiresAt", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional inbox expiration date. If null then this inbox is permanent and the ema" }, { "description": "Number of milliseconds that inbox should exist for", @@ -3057,14 +3362,16 @@ "in": "query", "name": "expiresIn", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Number of milliseconds that inbox should exist for" }, { "description": "DEPRECATED (team access is always true). Grant team access to this inbox and the emails that belong to it for team members of your organization.", "in": "query", "name": "allowTeamAccess", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "DEPRECATED (team access is always true). Grant team access to this inbox and the" }, { "description": "HTTP (default) or SMTP inbox type. HTTP inboxes are default and best solution for most cases. SMTP inboxes are more reliable for public inbound email consumption (but do not support sending emails). When using custom domains the domain type must match the inbox type. HTTP inboxes are processed by AWS SES while SMTP inboxes use a custom mail server running at `mxslurp.click`.", @@ -3075,21 +3382,24 @@ "in": "query", "name": "inboxType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "HTTP (default) or SMTP inbox type. HTTP inboxes are default and best solution fo" }, { "description": "Virtual inbox prevents any outbound emails from being sent. It creates sent email records but will never send real emails to recipients. Great for testing and faking email sending.", "in": "query", "name": "virtualInbox", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Virtual inbox prevents any outbound emails from being sent. It creates sent emai" }, { "description": "Use a shorter email address under 31 characters", "in": "query", "name": "useShortAddress", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Use a shorter email address under 31 characters" }, { "description": "ID of custom domain to use for email address.", @@ -3097,21 +3407,24 @@ "in": "query", "name": "domainId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "ID of custom domain to use for email address" }, { "description": "FQDN domain name for the domain you have verified. Will be appended with a randomly assigned recipient name. Use the `emailAddress` option instead to specify the full custom inbox.", "in": "query", "name": "domainName", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "FQDN domain name for the domain you have verified. Will be appended with a rando" }, { "description": "Prefix to add before the email address for easier labelling or identification.", "in": "query", "name": "prefix", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Prefix to add before the email address for easier labelling or identification" } ], "responses": { @@ -3127,7 +3440,8 @@ ], "description": "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. ", "operationId": "createInbox", - "summary": "Create an inbox email address. An inbox has a real email address and can send and receive emails. Inboxes can be either `SMTP` or `HTTP` inboxes." + "summary": "Create an inbox email address. An inbox has a real email address and can send an", + "x-ms-summary": "Create a new inbox and with a randomized email address to send and receive from" } }, "/inboxes/automations": { @@ -3143,7 +3457,8 @@ ], "description": "Check if an inbox has automations.", "operationId": "doesInboxHaveAutomations", - "summary": "Does inbox have automations" + "summary": "Does inbox have automations", + "x-ms-summary": "Check if an inbox has automations" } }, "/inboxes/available": { @@ -3156,7 +3471,9 @@ "in": "query", "name": "emailAddress", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailAddress", + "x-ms-summary": "Parameter emailAddress" } ], "responses": { @@ -3172,7 +3489,8 @@ ], "description": "Returns whether an email address is available", "operationId": "isEmailAddressAvailable", - "summary": "Is email address available" + "summary": "Is email address available", + "x-ms-summary": "Returns whether an email address is available" } }, "/inboxes/by-description": { @@ -3183,7 +3501,9 @@ "minLength": 1, "name": "description", "required": true, - "type": "string" + "type": "string", + "description": "Parameter description", + "x-ms-summary": "Parameter description" } ], "responses": { @@ -3196,7 +3516,8 @@ ], "description": "Permanently delete all inboxes by description", "operationId": "deleteAllInboxesByDescription", - "summary": "Delete inboxes by description" + "summary": "Delete inboxes by description", + "x-ms-summary": "Permanently delete all inboxes by description" } }, "/inboxes/by-name": { @@ -3207,7 +3528,9 @@ "minLength": 1, "name": "name", "required": true, - "type": "string" + "type": "string", + "description": "Parameter name", + "x-ms-summary": "Parameter name" } ], "responses": { @@ -3220,7 +3543,8 @@ ], "description": "Permanently delete all inboxes by name", "operationId": "deleteAllInboxesByName", - "summary": "Delete inboxes by name" + "summary": "Delete inboxes by name", + "x-ms-summary": "Permanently delete all inboxes by name" } }, "/inboxes/by-tag": { @@ -3231,7 +3555,9 @@ "minLength": 1, "name": "tag", "required": true, - "type": "string" + "type": "string", + "description": "Parameter tag", + "x-ms-summary": "Parameter tag" } ], "responses": { @@ -3244,7 +3570,8 @@ ], "description": "Permanently delete all inboxes by tag", "operationId": "deleteAllInboxesByTag", - "summary": "Delete inboxes by tag" + "summary": "Delete inboxes by tag", + "x-ms-summary": "Permanently delete all inboxes by tag" } }, "/inboxes/byEmailAddress": { @@ -3258,7 +3585,9 @@ "minLength": 1, "name": "emailAddress", "required": true, - "type": "string" + "type": "string", + "description": "Parameter emailAddress", + "x-ms-summary": "Parameter emailAddress" } ], "responses": { @@ -3274,7 +3603,8 @@ ], "description": "Get a inbox result by email address", "operationId": "getInboxByEmailAddress", - "summary": "Search for an inbox with the provided email address" + "summary": "Search for an inbox with the provided email address", + "x-ms-summary": "Get a inbox result by email address" } }, "/inboxes/byName": { @@ -3288,7 +3618,9 @@ "minLength": 1, "name": "name", "required": true, - "type": "string" + "type": "string", + "description": "Parameter name", + "x-ms-summary": "Parameter name" } ], "responses": { @@ -3304,7 +3636,8 @@ ], "description": "Get a inbox result by name", "operationId": "getInboxByName", - "summary": "Search for an inbox with the given name" + "summary": "Search for an inbox with the given name", + "x-ms-summary": "Get a inbox result by name" } }, "/inboxes/count": { @@ -3325,7 +3658,9 @@ "InboxController" ], "operationId": "getInboxCount", - "summary": "Get total inbox count" + "summary": "Get total inbox count", + "description": "Get total inbox count", + "x-ms-summary": "Get total inbox count" } }, "/inboxes/exists": { @@ -3339,28 +3674,32 @@ "in": "query", "name": "emailAddress", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Email address" }, { "description": "Allow catch all", "in": "query", "name": "allowCatchAll", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Allow catch all" }, { "description": "IP address", "in": "query", "name": "ipAddress", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "IP address" }, { "description": "Sender", "in": "query", "name": "sender", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sender" } ], "responses": { @@ -3376,7 +3715,8 @@ ], "description": "Check if inboxes exist by email address. Useful if you are sending emails to mailslurp addresses", "operationId": "doesInboxExist", - "summary": "Does inbox exist" + "summary": "Does inbox exist", + "x-ms-summary": "Check if inboxes exist by email address. Useful if you are sending emails to mai" } }, "/inboxes/getLatestEmail": { @@ -3391,7 +3731,8 @@ "in": "query", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to get the latest email from" }, { "description": "Timeout milliseconds to wait for latest email", @@ -3399,7 +3740,8 @@ "in": "query", "name": "timeoutMillis", "required": true, - "type": "integer" + "type": "integer", + "x-ms-summary": "Timeout milliseconds to wait for latest email" } ], "responses": { @@ -3415,7 +3757,8 @@ ], "description": "Get the newest email in an inbox or wait for one to arrive", "operationId": "getLatestEmailInInbox", - "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not have arrived yet." + "summary": "Get latest email in an inbox. Use `WaitForController` to get emails that may not", + "x-ms-summary": "Get the newest email in an inbox or wait for one to arrive" } }, "/inboxes/ids": { @@ -3438,7 +3781,8 @@ "deprecated": true, "description": "Get list of inbox IDs", "operationId": "getInboxIds", - "summary": "Get all inbox IDs" + "summary": "Get all inbox IDs", + "x-ms-summary": "Get list of inbox IDs" } }, "/inboxes/imap-access": { @@ -3453,7 +3797,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Inbox ID" } ], "responses": { @@ -3468,7 +3813,9 @@ "InboxController" ], "description": "Get IMAP access usernames and passwords", - "operationId": "getImapAccess" + "operationId": "getImapAccess", + "summary": "Get IMAP access usernames and passwords", + "x-ms-summary": "Get IMAP access usernames and passwords" }, "patch": { "consumes": [ @@ -3481,7 +3828,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Inbox ID" }, { "in": "body", @@ -3489,7 +3837,9 @@ "required": true, "schema": { "$ref": "#/definitions/UpdateImapAccessOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -3501,7 +3851,9 @@ "InboxController" ], "description": "Update IMAP access usernames and passwords", - "operationId": "updateImapAccess" + "operationId": "updateImapAccess", + "summary": "Update IMAP access usernames and passwords", + "x-ms-summary": "Update IMAP access usernames and passwords" } }, "/inboxes/imap-smtp-access": { @@ -3516,7 +3868,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Inbox ID" } ], "responses": { @@ -3531,7 +3884,9 @@ "InboxController" ], "description": "Get IMAP and SMTP access usernames and passwords", - "operationId": "getImapSmtpAccess" + "operationId": "getImapSmtpAccess", + "summary": "Get IMAP and SMTP access usernames and passwords", + "x-ms-summary": "Get IMAP and SMTP access usernames and passwords" } }, "/inboxes/imap-smtp-access/env": { @@ -3546,7 +3901,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Inbox ID" } ], "responses": { @@ -3561,7 +3917,9 @@ "InboxController" ], "description": "Get IMAP and SMTP access details in .env format", - "operationId": "getImapSmtpAccessEnv" + "operationId": "getImapSmtpAccessEnv", + "summary": "Get IMAP and SMTP access details in .env format", + "x-ms-summary": "Get IMAP and SMTP access details in .env format" } }, "/inboxes/imap-smtp-access/servers": { @@ -3582,7 +3940,9 @@ "InboxController" ], "description": "Get IMAP and SMTP server hosts", - "operationId": "getImapSmtpAccessServers" + "operationId": "getImapSmtpAccessServers", + "summary": "Get IMAP and SMTP server hosts", + "x-ms-summary": "Get IMAP and SMTP server hosts" } }, "/inboxes/offset-paginated": { @@ -3598,7 +3958,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -3607,7 +3968,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -3619,7 +3981,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "default": false, @@ -3627,21 +3990,24 @@ "in": "query", "name": "favourite", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optionally filter results for favourites only" }, { "description": "Optionally filter by search words partial matching ID, tags, name, and email address", "in": "query", "name": "search", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optionally filter by search words partial matching ID, tags, name, and email add" }, { "description": "Optionally filter by tags. Will return inboxes that include given tags", "in": "query", "name": "tag", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optionally filter by tags. Will return inboxes that include given tags" }, { "description": "Optional filter by created after given date time", @@ -3649,7 +4015,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created after given date time" }, { "description": "Optional filter by created before given date time", @@ -3657,7 +4024,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created before given date time" }, { "description": "Optional filter by inbox type", @@ -3668,7 +4036,8 @@ "in": "query", "name": "inboxType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by inbox type" }, { "description": "Optional filter by inbox function", @@ -3684,7 +4053,8 @@ "in": "query", "name": "inboxFunction", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by inbox function" }, { "description": "Optional domain ID filter", @@ -3692,7 +4062,8 @@ "in": "query", "name": "domainId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional domain ID filter" } ], "responses": { @@ -3708,7 +4079,8 @@ ], "description": "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.", "operationId": "getAllInboxesOffsetPaginated", - "summary": "List All Inboxes Offset Paginated" + "summary": "List All Inboxes Offset Paginated", + "x-ms-summary": "List inboxes in paginated form. The results are available on the `content` prope" } }, "/inboxes/organization": { @@ -3724,7 +4096,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -3733,7 +4106,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -3745,14 +4119,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Optional filter by created after given date time", @@ -3760,7 +4136,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created after given date time" }, { "description": "Optional filter by created before given date time", @@ -3768,7 +4145,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created before given date time" } ], "responses": { @@ -3785,7 +4163,8 @@ "deprecated": true, "description": "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). ", "operationId": "getOrganizationInboxes", - "summary": "List Organization Inboxes Paginated" + "summary": "List Organization Inboxes Paginated", + "x-ms-summary": "List organization inboxes in paginated form. These are inboxes created with `all" } }, "/inboxes/outboxes": { @@ -3801,7 +4180,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -3810,7 +4190,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -3822,7 +4203,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" } ], "responses": { @@ -3838,7 +4220,8 @@ ], "description": "List inboxes that have sent emails", "operationId": "getOutboxes", - "summary": "List all inboxes with sent emails" + "summary": "List all inboxes with sent emails", + "x-ms-summary": "List inboxes that have sent emails" } }, "/inboxes/paginated": { @@ -3854,7 +4237,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -3863,7 +4247,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -3875,7 +4260,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "default": false, @@ -3883,21 +4269,24 @@ "in": "query", "name": "favourite", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optionally filter results for favourites only" }, { "description": "Optionally filter by search words partial matching ID, tags, name, and email address", "in": "query", "name": "search", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optionally filter by search words partial matching ID, tags, name, and email add" }, { "description": "Optionally filter by tags. Will return inboxes that include given tags", "in": "query", "name": "tag", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optionally filter by tags. Will return inboxes that include given tags" }, { "description": "Optional filter by created after given date time", @@ -3905,7 +4294,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created after given date time" }, { "description": "Optional filter by created before given date time", @@ -3913,7 +4303,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created before given date time" }, { "description": "Optional filter by inbox type", @@ -3924,7 +4315,8 @@ "in": "query", "name": "inboxType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by inbox type" }, { "description": "Optional filter by inbox function", @@ -3940,7 +4332,8 @@ "in": "query", "name": "inboxFunction", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by inbox function" }, { "description": "Optional domain ID filter", @@ -3948,7 +4341,8 @@ "in": "query", "name": "domainId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional domain ID filter" } ], "responses": { @@ -3964,7 +4358,8 @@ ], "description": "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.", "operationId": "getAllInboxes", - "summary": "List All Inboxes Paginated" + "summary": "List All Inboxes Paginated", + "x-ms-summary": "List inboxes in paginated form. The results are available on the `content` prope" } }, "/inboxes/plus-addresses": { @@ -3980,7 +4375,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in inbox tracking pixel list pagination" }, { "default": 20, @@ -3989,7 +4385,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in inbox tracking pixel list pagination" }, { "default": "ASC", @@ -4001,7 +4398,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional inboxId filter", @@ -4009,7 +4407,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional inboxId filter" } ], "responses": { @@ -4025,7 +4424,8 @@ ], "description": "Returns paginated list of all plus alias addresses found for in account based on received emails that used the inbox address with a +xyz alias.", "operationId": "getAllPlusAddresses", - "summary": "Get all sub address plus address aliases for an inbox" + "summary": "Get all sub address plus address aliases for an inbox", + "x-ms-summary": "Returns paginated list of all plus alias addresses found for in account based on" } }, "/inboxes/plus-addresses/{plusAddressId}": { @@ -4040,7 +4440,8 @@ "in": "path", "name": "plusAddressId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the plus address you want to fetch" }, { "description": "ID of the inbox you want to filter for", @@ -4048,7 +4449,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to filter for" } ], "responses": { @@ -4064,7 +4466,8 @@ ], "description": "Returns a plus address object based on emails that used the inbox address with a +xyz alias.", "operationId": "getInboxPlusAddressById", - "summary": "Get sub address plus address by ID" + "summary": "Get sub address plus address by ID", + "x-ms-summary": "Returns a plus address object based on emails that used the inbox address with a" } }, "/inboxes/scheduled-jobs": { @@ -4080,7 +4483,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in scheduled job list pagination" }, { "default": 20, @@ -4089,7 +4493,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in scheduled job list pagination" }, { "default": "ASC", @@ -4101,7 +4506,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Filter by created at after the given timestamp", @@ -4109,7 +4515,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -4117,14 +4524,17 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "format": "uuid", "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" } ], "responses": { @@ -4140,7 +4550,8 @@ ], "description": "Schedule sending of emails using scheduled jobs. These can be inbox or account level.", "operationId": "getAllScheduledJobs", - "summary": "Get all scheduled email sending jobs for account" + "summary": "Get all scheduled email sending jobs for account", + "x-ms-summary": "Schedule sending of emails using scheduled jobs. These can be inbox or account l" } }, "/inboxes/scheduled-jobs/{jobId}": { @@ -4154,7 +4565,9 @@ "in": "path", "name": "jobId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter jobId", + "x-ms-summary": "Parameter jobId" } ], "responses": { @@ -4170,7 +4583,8 @@ ], "description": "Get a scheduled email job and cancel it. Will fail if status of job is already cancelled, failed, or complete.", "operationId": "cancelScheduledJob", - "summary": "Cancel a scheduled email job" + "summary": "Cancel a scheduled email job", + "x-ms-summary": "Get a scheduled email job and cancel it. Will fail if status of job is already c" }, "get": { "produces": [ @@ -4182,7 +4596,9 @@ "in": "path", "name": "jobId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter jobId", + "x-ms-summary": "Parameter jobId" } ], "responses": { @@ -4198,7 +4614,8 @@ ], "description": "Get a scheduled email job details.", "operationId": "getScheduledJob", - "summary": "Get a scheduled email job" + "summary": "Get a scheduled email job", + "x-ms-summary": "Get a scheduled email job details" } }, "/inboxes/search": { @@ -4216,7 +4633,9 @@ "required": true, "schema": { "$ref": "#/definitions/SearchInboxesOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -4232,7 +4651,8 @@ ], "description": "Search inboxes and return 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.", "operationId": "searchInboxes", - "summary": "Search all inboxes and return matching inboxes" + "summary": "Search all inboxes and return matching inboxes", + "x-ms-summary": "Search inboxes and return in paginated form. The results are available on the `c" } }, "/inboxes/smtp-access": { @@ -4247,7 +4667,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Inbox ID" } ], "responses": { @@ -4262,7 +4683,9 @@ "InboxController" ], "description": "Get SMTP access usernames and passwords", - "operationId": "getSmtpAccess" + "operationId": "getSmtpAccess", + "summary": "Get SMTP access usernames and passwords", + "x-ms-summary": "Get SMTP access usernames and passwords" }, "patch": { "consumes": [ @@ -4275,7 +4698,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Inbox ID" }, { "in": "body", @@ -4283,7 +4707,9 @@ "required": true, "schema": { "$ref": "#/definitions/UpdateSmtpAccessOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -4295,7 +4721,9 @@ "InboxController" ], "description": "Update SMTP access usernames and passwords", - "operationId": "updateSmtpAccess" + "operationId": "updateSmtpAccess", + "summary": "Update SMTP access usernames and passwords", + "x-ms-summary": "Update SMTP access usernames and passwords" } }, "/inboxes/tags": { @@ -4311,7 +4739,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -4320,7 +4749,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -4332,14 +4762,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" } ], "responses": { @@ -4358,7 +4790,8 @@ ], "description": "Get all inbox tags", "operationId": "getInboxTags", - "summary": "Get inbox tags" + "summary": "Get inbox tags", + "x-ms-summary": "Get all inbox tags" } }, "/inboxes/tags/inboxes": { @@ -4374,7 +4807,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -4383,7 +4817,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -4395,21 +4830,24 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Tag to filter by", "in": "query", "name": "tag", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Tag to filter by" } ], "responses": { @@ -4425,7 +4863,8 @@ ], "description": "Get all inboxes for a given inbox tag", "operationId": "getInboxesByTag", - "summary": "Get inboxes for a tag" + "summary": "Get inboxes for a tag", + "x-ms-summary": "Get all inboxes for a given inbox tag" } }, "/inboxes/tags/paginated": { @@ -4441,7 +4880,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -4450,7 +4890,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -4462,14 +4903,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" } ], "responses": { @@ -4485,7 +4928,8 @@ ], "description": "Get all inbox tags paginated", "operationId": "getInboxTagsPaginated", - "summary": "Get inbox tags paginated" + "summary": "Get inbox tags paginated", + "x-ms-summary": "Get all inbox tags paginated" } }, "/inboxes/withDefaults": { @@ -4506,7 +4950,9 @@ "InboxController" ], "operationId": "createInboxWithDefaults", - "summary": "Create an inbox with default options. Uses MailSlurp domain pool address and is private." + "summary": "Create an inbox with default options. Uses MailSlurp domain pool address and is", + "description": "Create an inbox with default options. Uses MailSlurp domain pool address and is private.", + "x-ms-summary": "Create an inbox with default options. Uses MailSlurp domain pool address and is" } }, "/inboxes/withOptions": { @@ -4524,7 +4970,9 @@ "required": true, "schema": { "$ref": "#/definitions/CreateInboxDto" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -4540,7 +4988,8 @@ ], "description": "Additional endpoint that allows inbox creation with request body options. Can be more flexible that other methods for some clients.", "operationId": "createInboxWithOptions", - "summary": "Create an inbox with options. Extended options for inbox creation." + "summary": "Create an inbox with options. Extended options for inbox creation", + "x-ms-summary": "Additional endpoint that allows inbox creation with request body options. Can be" } }, "/inboxes/{inboxId}": { @@ -4551,7 +5000,9 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" } ], "responses": { @@ -4564,7 +5015,8 @@ ], "description": "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.", "operationId": "deleteInbox", - "summary": "Delete inbox" + "summary": "Delete inbox", + "x-ms-summary": "Permanently delete an inbox and associated email address as well as all emails w" }, "get": { "produces": [ @@ -4576,7 +5028,9 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" } ], "responses": { @@ -4592,7 +5046,8 @@ ], "description": "Returns an inbox's properties, including its email address and ID.", "operationId": "getInbox", - "summary": "Get Inbox. Returns properties of an inbox." + "summary": "Get Inbox. Returns properties of an inbox", + "x-ms-summary": "Returns an inbox's properties, including its email address and ID" }, "patch": { "consumes": [ @@ -4607,7 +5062,9 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" }, { "in": "body", @@ -4615,7 +5072,9 @@ "required": true, "schema": { "$ref": "#/definitions/UpdateInboxOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -4631,7 +5090,8 @@ ], "description": "Update editable fields on an inbox", "operationId": "updateInbox", - "summary": "Update Inbox. Change name and description. Email address is not editable." + "summary": "Update Inbox. Change name and description. Email address is not editable", + "x-ms-summary": "Update editable fields on an inbox" }, "post": { "consumes": [ @@ -4644,7 +5104,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to send the email from" }, { "in": "body", @@ -4652,7 +5113,9 @@ "required": true, "schema": { "$ref": "#/definitions/SendEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -4665,7 +5128,8 @@ ], "description": "Send an email from an inbox's email address. \nThe 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`.", "operationId": "sendEmail", - "summary": "Send Email" + "summary": "Send Email", + "x-ms-summary": "Send an email from an inbox's email address. \nThe request body should contain th" } }, "/inboxes/{inboxId}/confirm": { @@ -4683,7 +5147,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to send the email from" }, { "in": "body", @@ -4691,7 +5156,9 @@ "required": true, "schema": { "$ref": "#/definitions/SendEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -4707,7 +5174,8 @@ ], "description": "Sister method for standard `sendEmail` method with the benefit of returning a `SentEmail` entity confirming the successful sending of the email with a link to the sent object created for it.", "operationId": "sendEmailAndConfirm", - "summary": "Send email and return sent confirmation" + "summary": "Send email and return sent confirmation", + "x-ms-summary": "Sister method for standard `sendEmail` method with the benefit of returning a `S" } }, "/inboxes/{inboxId}/deleteAllInboxEmails": { @@ -4718,7 +5186,9 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" } ], "responses": { @@ -4731,7 +5201,8 @@ ], "description": "Deletes all emails in an inbox. Be careful as emails cannot be recovered", "operationId": "deleteAllInboxEmails", - "summary": "Delete all emails in a given inboxes." + "summary": "Delete all emails in a given inboxes", + "x-ms-summary": "Deletes all emails in an inbox. Be careful as emails cannot be recovered" } }, "/inboxes/{inboxId}/delivery-status": { @@ -4745,7 +5216,9 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" }, { "default": 0, @@ -4754,7 +5227,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in delivery status list pagination" }, { "default": 20, @@ -4763,7 +5237,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in delivery status list pagination" }, { "default": "ASC", @@ -4775,7 +5250,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Filter by created at after the given timestamp", @@ -4783,7 +5259,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -4791,7 +5268,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -4807,7 +5285,9 @@ ], "deprecated": true, "description": "Get all email delivery statuses for an inbox", - "operationId": "getDeliveryStatusesByInboxId" + "operationId": "getDeliveryStatusesByInboxId", + "summary": "Get all email delivery statuses for an inbox", + "x-ms-summary": "Get all email delivery statuses for an inbox" } }, "/inboxes/{inboxId}/emails": { @@ -4822,7 +5302,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Id of inbox that emails belongs to" }, { "description": "Alias for limit. Assessed first before assessing any passed limit.", @@ -4831,7 +5312,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Alias for limit. Assessed first before assessing any passed limit" }, { "description": "Limit the result set, ordered by received date time sort direction. Maximum 100. For more listing options see the email controller", @@ -4840,7 +5322,8 @@ "maximum": 100, "name": "limit", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Limit the result set, ordered by received date time sort direction. Maximum 100" }, { "description": "Sort the results by received date and direction ASC or DESC", @@ -4851,7 +5334,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sort the results by received date and direction ASC or DESC" }, { "description": "Maximum milliseconds to spend retrying inbox database until minCount emails are returned", @@ -4859,14 +5343,17 @@ "in": "query", "name": "retryTimeout", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Maximum milliseconds to spend retrying inbox database until minCount emails are" }, { "format": "int64", "in": "query", "name": "delayTimeout", "required": false, - "type": "integer" + "type": "integer", + "description": "Parameter delayTimeout", + "x-ms-summary": "Parameter delayTimeout" }, { "description": "Minimum acceptable email count. Will cause request to hang (and retry) until minCount is satisfied or retryTimeout is reached.", @@ -4874,13 +5361,16 @@ "in": "query", "name": "minCount", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Minimum acceptable email count. Will cause request to hang (and retry) until min" }, { "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter unreadOnly", + "x-ms-summary": "Parameter unreadOnly" }, { "description": "Exclude emails received after this ISO 8601 date time", @@ -4888,7 +5378,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Exclude emails received after this ISO 8601 date time" }, { "description": "Exclude emails received before this ISO 8601 date time", @@ -4896,7 +5387,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Exclude emails received before this ISO 8601 date time" } ], "responses": { @@ -4915,7 +5407,8 @@ ], "description": "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", "operationId": "getEmails", - "summary": "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." + "summary": "Get emails in an Inbox. This method is not idempotent as it allows retries and w", + "x-ms-summary": "List emails that an inbox has received. Only emails that are sent to the inbox's" } }, "/inboxes/{inboxId}/emails/count": { @@ -4930,7 +5423,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Id of inbox that emails belongs to" } ], "responses": { @@ -4945,7 +5439,9 @@ "InboxController" ], "operationId": "getInboxEmailCount", - "summary": "Get email count in inbox" + "summary": "Get email count in inbox", + "description": "Get email count in inbox", + "x-ms-summary": "Get email count in inbox" } }, "/inboxes/{inboxId}/emails/paginated": { @@ -4961,7 +5457,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in inbox emails list pagination" }, { "default": 20, @@ -4970,7 +5467,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in inbox emails list pagination" }, { "default": "ASC", @@ -4982,7 +5480,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional filter by received after given date time", @@ -4990,7 +5489,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by received after given date time" }, { "description": "Optional filter by received before given date time", @@ -4998,7 +5498,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by received before given date time" }, { "description": "Id of inbox that emails belongs to", @@ -5006,14 +5507,16 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Id of inbox that emails belongs to" }, { "description": "Sync connectors before fetching emails", "in": "query", "name": "syncConnectors", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Sync connectors before fetching emails" } ], "responses": { @@ -5029,7 +5532,8 @@ ], "description": "Get a paginated list of emails in an inbox. Does not hold connections open.", "operationId": "getInboxEmailsPaginated", - "summary": "Get inbox emails paginated" + "summary": "Get inbox emails paginated", + "x-ms-summary": "Get a paginated list of emails in an inbox. Does not hold connections open" } }, "/inboxes/{inboxId}/favourite": { @@ -5047,7 +5551,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of inbox to set favourite state" }, { "in": "body", @@ -5055,7 +5560,9 @@ "required": true, "schema": { "$ref": "#/definitions/SetInboxFavouritedOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -5071,7 +5578,8 @@ ], "description": "Set and return new favorite state for an inbox", "operationId": "setInboxFavourited", - "summary": "Set inbox favourited state" + "summary": "Set inbox favourited state", + "x-ms-summary": "Set and return new favorite state for an inbox" } }, "/inboxes/{inboxId}/plus-addresses": { @@ -5087,7 +5595,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in inbox tracking pixel list pagination" }, { "default": 20, @@ -5096,7 +5605,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in inbox tracking pixel list pagination" }, { "default": "ASC", @@ -5108,7 +5618,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "ID of the inbox you want to send the email from", @@ -5116,7 +5627,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to send the email from" } ], "responses": { @@ -5132,7 +5644,8 @@ ], "description": "Returns paginated list of all plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", "operationId": "getInboxPlusAddresses", - "summary": "Get sub address plus address aliases for an inbox" + "summary": "Get sub address plus address aliases for an inbox", + "x-ms-summary": "Returns paginated list of all plus alias addresses found for an inbox based on r" } }, "/inboxes/{inboxId}/plus-addresses/emails": { @@ -5146,7 +5659,8 @@ "in": "query", "name": "plusAddress", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "The plus address to fetch emails for. If your inbox address is `123@test.com` an" }, { "default": 0, @@ -5155,7 +5669,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in inbox tracking pixel list pagination" }, { "default": 20, @@ -5164,7 +5679,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in inbox tracking pixel list pagination" }, { "default": "ASC", @@ -5176,7 +5692,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "ID of the inbox you want to send the email from", @@ -5184,7 +5701,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to send the email from" }, { "description": "Optional filter by created after given date time", @@ -5192,7 +5710,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created after given date time" }, { "description": "Optional filter by created before given date time", @@ -5200,7 +5719,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created before given date time" } ], "responses": { @@ -5216,7 +5736,8 @@ ], "description": "Returns paginated list of all emails for a given plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", "operationId": "getInboxPlusAddressEmails", - "summary": "Get emails for a given inbox plus address" + "summary": "Get emails for a given inbox plus address", + "x-ms-summary": "Returns paginated list of all emails for a given plus alias addresses found for" } }, "/inboxes/{inboxId}/plus-addresses/{plusAddressId}": { @@ -5231,7 +5752,8 @@ "in": "path", "name": "plusAddressId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the plus address you want to fetch" }, { "description": "ID of the inbox you want to fetch", @@ -5239,7 +5761,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to fetch" } ], "responses": { @@ -5255,7 +5778,8 @@ ], "description": "Returns a plus address object based on emails that used the inbox address with a +xyz alias.", "operationId": "getInboxPlusAddress", - "summary": "Get sub address plus address for an inbox" + "summary": "Get sub address plus address for an inbox", + "x-ms-summary": "Returns a plus address object based on emails that used the inbox address with a" } }, "/inboxes/{inboxId}/plus-addresses/{plusAddressId}/emails": { @@ -5270,7 +5794,8 @@ "in": "path", "name": "plusAddressId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "The plus address ID to fetch emails for" }, { "default": 0, @@ -5279,7 +5804,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in inbox tracking pixel list pagination" }, { "default": 20, @@ -5288,7 +5814,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in inbox tracking pixel list pagination" }, { "default": "ASC", @@ -5300,7 +5827,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "ID of the inbox you want to send the email from", @@ -5308,7 +5836,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to send the email from" }, { "description": "Optional filter by created after given date time", @@ -5316,7 +5845,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created after given date time" }, { "description": "Optional filter by created before given date time", @@ -5324,7 +5854,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created before given date time" } ], "responses": { @@ -5340,7 +5871,8 @@ ], "description": "Returns paginated list of all emails for a given plus alias addresses found for an inbox based on received emails that used the inbox address with a +xyz alias.", "operationId": "getInboxPlusAddressEmailsForPlusAddressId", - "summary": "Get emails for a given inbox plus address" + "summary": "Get emails for a given inbox plus address", + "x-ms-summary": "Returns paginated list of all emails for a given plus alias addresses found for" } }, "/inboxes/{inboxId}/rulesets": { @@ -5354,7 +5886,9 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" }, { "default": 0, @@ -5363,7 +5897,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in inbox ruleset list pagination" }, { "default": 20, @@ -5372,7 +5907,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in inbox ruleset list pagination" }, { "default": "ASC", @@ -5384,14 +5920,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Optional filter by created after given date time", @@ -5399,7 +5937,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created after given date time" }, { "description": "Optional filter by created before given date time", @@ -5407,7 +5946,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by created before given date time" } ], "responses": { @@ -5423,7 +5963,8 @@ ], "description": "List all rulesets attached to an inbox", "operationId": "listInboxRulesets", - "summary": "List inbox rulesets" + "summary": "List inbox rulesets", + "x-ms-summary": "List all rulesets attached to an inbox" }, "post": { "consumes": [ @@ -5439,7 +5980,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "inboxId" }, { "in": "body", @@ -5447,7 +5989,9 @@ "required": true, "schema": { "$ref": "#/definitions/CreateRulesetOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -5463,7 +6007,8 @@ ], "description": "Create a new inbox rule for forwarding, blocking, and allowing emails when sending and receiving", "operationId": "createInboxRuleset", - "summary": "Create an inbox ruleset" + "summary": "Create an inbox ruleset", + "x-ms-summary": "Create a new inbox rule for forwarding, blocking, and allowing emails when sendi" } }, "/inboxes/{inboxId}/scheduled-jobs": { @@ -5477,7 +6022,9 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" }, { "default": 0, @@ -5486,7 +6033,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in scheduled job list pagination" }, { "default": 20, @@ -5495,7 +6043,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in scheduled job list pagination" }, { "default": "ASC", @@ -5507,7 +6056,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Filter by created at after the given timestamp", @@ -5515,7 +6065,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -5523,7 +6074,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -5539,7 +6091,8 @@ ], "description": "Schedule sending of emails using scheduled jobs.", "operationId": "getScheduledJobsByInboxId", - "summary": "Get all scheduled email sending jobs for the inbox" + "summary": "Get all scheduled email sending jobs for the inbox", + "x-ms-summary": "Schedule sending of emails using scheduled jobs" } }, "/inboxes/{inboxId}/send-test-email": { @@ -5550,7 +6103,9 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" } ], "responses": { @@ -5563,7 +6118,8 @@ ], "description": "Send an inbox a test email to test email receiving is working", "operationId": "sendTestEmail", - "summary": "Send a test email to inbox" + "summary": "Send a test email to inbox", + "x-ms-summary": "Send an inbox a test email to test email receiving is working" } }, "/inboxes/{inboxId}/sent": { @@ -5577,7 +6133,9 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" }, { "default": 0, @@ -5586,7 +6144,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in inbox sent email list pagination" }, { "default": 20, @@ -5595,7 +6154,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in inbox sent email list pagination" }, { "default": "ASC", @@ -5607,14 +6167,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional sent email search", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional sent email search" }, { "description": "Optional filter by sent after given date time", @@ -5622,7 +6184,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by sent after given date time" }, { "description": "Optional filter by sent before given date time", @@ -5630,7 +6193,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter by sent before given date time" } ], "responses": { @@ -5647,7 +6211,8 @@ "deprecated": true, "description": "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.", "operationId": "getInboxSentEmails", - "summary": "Get Inbox Sent Emails" + "summary": "Get Inbox Sent Emails", + "x-ms-summary": "Returns an inbox's sent email receipts. Call individual sent email endpoints for" } }, "/inboxes/{inboxId}/with-queue": { @@ -5662,14 +6227,16 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to send the email from" }, { "description": "Validate before adding to queue", "in": "query", "name": "validateBeforeEnqueue", "required": true, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Validate before adding to queue" }, { "in": "body", @@ -5677,7 +6244,9 @@ "required": true, "schema": { "$ref": "#/definitions/SendEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -5690,7 +6259,8 @@ ], "description": "Send an email using a queue. Will place the email onto a queue that will then be processed and sent. Use this queue method to enable any failed email sending to be recovered. This will prevent lost emails when sending if your account encounters a block or payment issue.", "operationId": "sendEmailWithQueue", - "summary": "Send email with queue" + "summary": "Send email with queue", + "x-ms-summary": "Send an email using a queue. Will place the email onto a queue that will then be" } }, "/inboxes/{inboxId}/with-schedule": { @@ -5708,7 +6278,8 @@ "in": "path", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the inbox you want to send the email from" }, { "description": "Sending timestamp", @@ -5716,7 +6287,8 @@ "in": "query", "name": "sendAtTimestamp", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sending timestamp" }, { "description": "Send after n seconds", @@ -5724,14 +6296,16 @@ "in": "query", "name": "sendAtNowPlusSeconds", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Send after n seconds" }, { "description": "Validate before adding to queue", "in": "query", "name": "validateBeforeEnqueue", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Validate before adding to queue" }, { "in": "body", @@ -5739,7 +6313,9 @@ "required": true, "schema": { "$ref": "#/definitions/SendEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -5755,7 +6331,8 @@ ], "description": "Send an email using a delay. Will place the email onto a scheduler that will then be processed and sent. Use delays to schedule email sending.", "operationId": "sendWithSchedule", - "summary": "Send email with with delay or schedule" + "summary": "Send email with with delay or schedule", + "x-ms-summary": "Send an email using a delay. Will place the email onto a scheduler that will the" } }, "/mfa/totp/device/base32SecretKey": { @@ -5773,7 +6350,9 @@ "required": true, "schema": { "$ref": "#/definitions/CreateTotpDeviceBase32SecretKeyOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -5789,7 +6368,8 @@ ], "description": "Create a virtual TOTP device for a given secret key. This is usually present as an alternative login option when pairing OTP devices.", "operationId": "createTotpDeviceForBase32SecretKey", - "summary": "Create a TOTP device from an base32 secret key" + "summary": "Create a TOTP device from an base32 secret key", + "x-ms-summary": "Create a virtual TOTP device for a given secret key. This is usually present as" } }, "/mfa/totp/device/by": { @@ -5803,21 +6383,24 @@ "in": "query", "name": "name", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional name filter" }, { "description": "Optional issuer filter", "in": "query", "name": "issuer", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional issuer filter" }, { "description": "Optional username filter", "in": "query", "name": "username", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional username filter" } ], "responses": { @@ -5833,7 +6416,8 @@ ], "description": "Get Time-Based One-Time Password (TOTP) device by its username and issuer mapping.", "operationId": "getTotpDeviceBy", - "summary": "Get a TOTP device by username, issuer, or name. Returns empty if not found." + "summary": "Get a TOTP device by username, issuer, or name. Returns empty if not found", + "x-ms-summary": "Get Time-Based One-Time Password (TOTP) device by its username and issuer mappin" } }, "/mfa/totp/device/custom": { @@ -5851,7 +6435,9 @@ "required": true, "schema": { "$ref": "#/definitions/CreateTotpDeviceCustomOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -5867,7 +6453,8 @@ ], "description": "Create a virtual TOTP device for custom options specifying all parameters of the TOTP device.", "operationId": "createTotpDeviceForCustom", - "summary": "Create a TOTP device from custom options" + "summary": "Create a TOTP device from custom options", + "x-ms-summary": "Create a virtual TOTP device for custom options specifying all parameters of the" } }, "/mfa/totp/device/otpAuthUrl": { @@ -5885,7 +6472,9 @@ "required": true, "schema": { "$ref": "#/definitions/CreateTotpDeviceOtpAuthUrlOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -5901,7 +6490,8 @@ ], "description": "Create a virtual TOTP device for a given OTP Auth URL such as otpauth://totp/MyApp:alice@example.com?secret=ABC123&issuer=MyApp&period=30&digits=6&algorithm=SHA1. You can provider overrides in the options for each component of the URL.", "operationId": "createTotpDeviceForOtpAuthUrl", - "summary": "Create a TOTP device from an OTP Auth URL" + "summary": "Create a TOTP device from an OTP Auth URL", + "x-ms-summary": "Create a virtual TOTP device for a given OTP Auth URL such as otpauth://totp/MyA" } }, "/mfa/totp/device/{id}": { @@ -5915,7 +6505,9 @@ "in": "path", "name": "id", "required": true, - "type": "string" + "type": "string", + "description": "Parameter id", + "x-ms-summary": "Parameter id" } ], "responses": { @@ -5931,7 +6523,8 @@ ], "description": "Get Time-Based One-Time Password (TOTP) device by its ID.", "operationId": "getTotpDevice", - "summary": "Get a TOTP device by ID" + "summary": "Get a TOTP device by ID", + "x-ms-summary": "Get Time-Based One-Time Password (TOTP) device by its ID" } }, "/mfa/totp/device/{id}/code": { @@ -5946,7 +6539,8 @@ "in": "query", "name": "at", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional time to get code for. If not provided, current time is used" }, { "default": 5, @@ -5957,7 +6551,8 @@ "minimum": 1, "name": "minSecondsUntilExpire", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional minimum time until code expires. Will hold thread open until period rea" }, { "description": "ID of the TOTP device to get the code for", @@ -5965,7 +6560,8 @@ "in": "path", "name": "id", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the TOTP device to get the code for" } ], "responses": { @@ -5981,7 +6577,8 @@ ], "description": "Get Time-Based One-Time Password for a device by its ID.", "operationId": "getTotpDeviceCode", - "summary": "Get a TOTP device code by device ID" + "summary": "Get a TOTP device code by device ID", + "x-ms-summary": "Get Time-Based One-Time Password for a device by its ID" } }, "/newEmailAddress": { @@ -5994,33 +6591,43 @@ "in": "query", "name": "allowTeamAccess", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter allowTeamAccess", + "x-ms-summary": "Parameter allowTeamAccess" }, { "in": "query", "name": "useDomainPool", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter useDomainPool", + "x-ms-summary": "Parameter useDomainPool" }, { "format": "date-time", "in": "query", "name": "expiresAt", "required": false, - "type": "string" + "type": "string", + "description": "Parameter expiresAt", + "x-ms-summary": "Parameter expiresAt" }, { "format": "int64", "in": "query", "name": "expiresIn", "required": false, - "type": "integer" + "type": "integer", + "description": "Parameter expiresIn", + "x-ms-summary": "Parameter expiresIn" }, { "in": "query", "name": "emailAddress", "required": false, - "type": "string" + "type": "string", + "description": "Parameter emailAddress", + "x-ms-summary": "Parameter emailAddress" }, { "description": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes are more suited for public facing inbound messages (but cannot send).", @@ -6031,66 +6638,84 @@ "in": "query", "name": "inboxType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Type of inbox. HTTP inboxes are faster and better for most cases. SMTP inboxes a" }, { "in": "query", "name": "description", "required": false, - "type": "string" + "type": "string", + "description": "Parameter description", + "x-ms-summary": "Parameter description" }, { "in": "query", "name": "name", "required": false, - "type": "string" + "type": "string", + "description": "Parameter name", + "x-ms-summary": "Parameter name" }, { - "in": "query", "items": { "type": "string" }, "name": "tags", "required": false, - "type": "array" + "type": "array", + "description": "Parameter tags", + "x-ms-summary": "Parameter tags" }, { "in": "query", "name": "favourite", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter favourite", + "x-ms-summary": "Parameter favourite" }, { "in": "query", "name": "virtualInbox", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter virtualInbox", + "x-ms-summary": "Parameter virtualInbox" }, { "in": "query", "name": "useShortAddress", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter useShortAddress", + "x-ms-summary": "Parameter useShortAddress" }, { "in": "query", "name": "domainName", "required": false, - "type": "string" + "type": "string", + "description": "Parameter domainName", + "x-ms-summary": "Parameter domainName" }, { "format": "uuid", "in": "query", "name": "domainId", "required": false, - "type": "string" + "type": "string", + "description": "Parameter domainId", + "x-ms-summary": "Parameter domainId" }, { "in": "query", "name": "prefix", "required": false, - "type": "string" + "type": "string", + "description": "Parameter prefix", + "x-ms-summary": "Parameter prefix" } ], "responses": { @@ -6106,7 +6731,8 @@ ], "description": "Returns an Inbox with an `id` and an `emailAddress`", "operationId": "createNewEmailAddress", - "summary": "Create new random inbox" + "summary": "Create new random inbox", + "x-ms-summary": "Returns an Inbox with an `id` and an `emailAddress" } }, "/phone": { @@ -6124,7 +6750,9 @@ "required": true, "schema": { "$ref": "#/definitions/CreatePhoneNumberOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -6140,7 +6768,8 @@ ], "description": "Create new phone number", "operationId": "createPhoneNumber", - "summary": "Add phone number to your account. Only works if you have already added a plan and an initial phone number in your account and acknowledged the pricing and terms of service by enabling API phone creation." + "summary": "Add phone number to your account. Only works if you have already added a plan an", + "x-ms-summary": "Create new phone number" } }, "/phone/numbers": { @@ -6156,7 +6785,8 @@ ], "description": "Remove all phone number from account", "operationId": "deleteAllPhoneNumber", - "summary": "Delete all phone numbers" + "summary": "Delete all phone numbers", + "x-ms-summary": "Remove all phone number from account" }, "get": { "produces": [ @@ -6182,7 +6812,8 @@ "in": "query", "name": "phoneCountry", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional phone country" }, { "default": 0, @@ -6191,7 +6822,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index for list pagination" }, { "default": 20, @@ -6200,7 +6832,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size for list pagination" }, { "default": "ASC", @@ -6212,7 +6845,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Filter by created at after the given timestamp", @@ -6220,7 +6854,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -6228,17 +6863,18 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "description": "Optional search filter", "in": "query", "name": "search", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { - "description": "Optional phoneIds to include in result", "in": "query", "items": { @@ -6247,7 +6883,8 @@ }, "name": "include", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Optional phoneIds to include in result" }, { "default": false, @@ -6255,7 +6892,8 @@ "in": "query", "name": "favourite", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optionally filter results for favourites only" } ], "responses": { @@ -6271,7 +6909,8 @@ ], "description": "List phone numbers for account", "operationId": "getPhoneNumbers", - "summary": "Get phone numbers" + "summary": "Get phone numbers", + "x-ms-summary": "List phone numbers for account" } }, "/phone/numbers/by-name": { @@ -6284,7 +6923,9 @@ "in": "query", "name": "name", "required": true, - "type": "string" + "type": "string", + "description": "Parameter name", + "x-ms-summary": "Parameter name" } ], "responses": { @@ -6300,7 +6941,8 @@ ], "description": "Get a phone number by name", "operationId": "getPhoneNumberByName", - "summary": "Get a phone number by name" + "summary": "Get a phone number by name", + "x-ms-summary": "Get a phone number by name" } }, "/phone/numbers/by-phone-number": { @@ -6313,7 +6955,9 @@ "in": "query", "name": "phoneNumber", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumber", + "x-ms-summary": "Parameter phoneNumber" } ], "responses": { @@ -6329,7 +6973,8 @@ ], "description": "Get a phone number by phone number", "operationId": "getPhoneNumberByPhoneNumber", - "summary": "Get a phone number by phone number" + "summary": "Get a phone number by phone number", + "x-ms-summary": "Get a phone number by phone number" } }, "/phone/numbers/message-threads": { @@ -6344,7 +6989,9 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "description": "Parameter page", + "x-ms-summary": "Parameter page" }, { "default": 20, @@ -6352,7 +6999,9 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "description": "Parameter size", + "x-ms-summary": "Parameter size" } ], "responses": { @@ -6368,7 +7017,8 @@ ], "description": "List all message threads for all phones", "operationId": "getAllPhoneMessageThreads", - "summary": "Get the latest messages for all phones" + "summary": "Get the latest messages for all phones", + "x-ms-summary": "List all message threads for all phones" } }, "/phone/numbers/{phoneId}/webhooks/paginated": { @@ -6384,7 +7034,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -6393,7 +7044,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -6405,14 +7057,17 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "format": "uuid", "in": "path", "name": "phoneId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneId", + "x-ms-summary": "Parameter phoneId" }, { "description": "Filter by created at after the given timestamp", @@ -6420,7 +7075,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -6428,7 +7084,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "description": "Optional event type", @@ -6449,14 +7106,16 @@ "in": "query", "name": "eventType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional event type" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by webhook health", @@ -6467,14 +7126,16 @@ "in": "query", "name": "health", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by webhook health" }, { "description": "Include account scope phone webhooks", "in": "query", "name": "includeAccountWide", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Include account scope phone webhooks" } ], "responses": { @@ -6489,7 +7150,9 @@ "WebhookController" ], "operationId": "getPhoneNumberWebhooksPaginated", - "summary": "Get paginated webhooks for a phone number" + "summary": "Get paginated webhooks for a phone number", + "description": "Get paginated webhooks for a phone number", + "x-ms-summary": "Get paginated webhooks for a phone number" } }, "/phone/numbers/{phoneNumberId}": { @@ -6500,7 +7163,9 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" } ], "responses": { @@ -6513,7 +7178,8 @@ ], "description": "Remove phone number from account", "operationId": "deletePhoneNumber", - "summary": "Delete a phone number" + "summary": "Delete a phone number", + "x-ms-summary": "Remove phone number from account" }, "get": { "produces": [ @@ -6525,7 +7191,9 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" } ], "responses": { @@ -6541,7 +7209,8 @@ ], "description": "Get a phone number by ID", "operationId": "getPhoneNumber", - "summary": "Get a phone number by ID" + "summary": "Get a phone number by ID", + "x-ms-summary": "Get a phone number by ID" }, "put": { "consumes": [ @@ -6557,7 +7226,8 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of phone to set favourite state" }, { "in": "body", @@ -6565,7 +7235,9 @@ "required": true, "schema": { "$ref": "#/definitions/UpdatePhoneNumberOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -6581,7 +7253,8 @@ ], "description": "Set field for phone number", "operationId": "updatePhoneNumber", - "summary": "Update a phone number" + "summary": "Update a phone number", + "x-ms-summary": "Set field for phone number" } }, "/phone/numbers/{phoneNumberId}/favourite": { @@ -6599,7 +7272,8 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of phone to set favourite state" }, { "in": "body", @@ -6607,7 +7281,9 @@ "required": true, "schema": { "$ref": "#/definitions/SetPhoneFavouritedOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -6623,7 +7299,8 @@ ], "description": "Set and return new favorite state for a phone", "operationId": "setPhoneFavourited", - "summary": "Set phone favourited state" + "summary": "Set phone favourited state", + "x-ms-summary": "Set and return new favorite state for a phone" } }, "/phone/numbers/{phoneNumberId}/message-threads": { @@ -6637,7 +7314,9 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" }, { "default": 0, @@ -6645,7 +7324,9 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "description": "Parameter page", + "x-ms-summary": "Parameter page" }, { "default": 20, @@ -6653,7 +7334,9 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "description": "Parameter size", + "x-ms-summary": "Parameter size" } ], "responses": { @@ -6669,7 +7352,8 @@ ], "description": "List message threads for a phone", "operationId": "getPhoneMessageThreads", - "summary": "Get the latest message preview for a thread" + "summary": "Get the latest message preview for a thread", + "x-ms-summary": "List message threads for a phone" } }, "/phone/numbers/{phoneNumberId}/message-threads/{otherNumber}": { @@ -6683,13 +7367,17 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" }, { "in": "path", "name": "otherNumber", "required": true, - "type": "string" + "type": "string", + "description": "Parameter otherNumber", + "x-ms-summary": "Parameter otherNumber" } ], "responses": { @@ -6705,7 +7393,8 @@ ], "description": "Delete all messages in an SMS thread", "operationId": "deletePhoneMessageThreadItems", - "summary": "Delete messages in a phone thread" + "summary": "Delete messages in a phone thread", + "x-ms-summary": "Delete all messages in an SMS thread" }, "get": { "produces": [ @@ -6717,13 +7406,17 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" }, { "in": "path", "name": "otherNumber", "required": true, - "type": "string" + "type": "string", + "description": "Parameter otherNumber", + "x-ms-summary": "Parameter otherNumber" }, { "default": 0, @@ -6731,7 +7424,9 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "description": "Parameter page", + "x-ms-summary": "Parameter page" }, { "default": 20, @@ -6739,7 +7434,9 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "description": "Parameter size", + "x-ms-summary": "Parameter size" } ], "responses": { @@ -6755,7 +7452,8 @@ ], "description": "List message thread messages for a phone message thread", "operationId": "getPhoneMessageThreadItems", - "summary": "Get messages in a phone thread" + "summary": "Get messages in a phone thread", + "x-ms-summary": "List message thread messages for a phone message thread" } }, "/phone/numbers/{phoneNumberId}/sms": { @@ -6769,7 +7467,9 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" }, { "default": 0, @@ -6778,7 +7478,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in SMS list pagination" }, { "default": 20, @@ -6788,7 +7489,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in SMS list pagination. Maximum size is 100. Use page index a" }, { "default": "ASC", @@ -6800,7 +7502,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "default": false, @@ -6808,7 +7511,8 @@ "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter for unread SMS only. All SMS are considered unread until they ar" }, { "description": "Optional filter SMSs received after given date time", @@ -6816,7 +7520,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter SMSs received after given date time" }, { "description": "Optional filter SMSs received before given date time", @@ -6824,14 +7529,16 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter SMSs received before given date time" }, { "description": "Optional search filter", "in": "query", "name": "search", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "default": false, @@ -6839,7 +7546,8 @@ "in": "query", "name": "favourite", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optionally filter results for favourites only" } ], "responses": { @@ -6855,7 +7563,8 @@ ], "description": "Get SMS messages for a phone number", "operationId": "getSmsByPhoneNumber", - "summary": "List SMS messages for a phone number" + "summary": "List SMS messages for a phone number", + "x-ms-summary": "Get SMS messages for a phone number" }, "post": { "consumes": [ @@ -6870,7 +7579,9 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" }, { "in": "body", @@ -6878,7 +7589,9 @@ "required": true, "schema": { "$ref": "#/definitions/SmsSendOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -6894,7 +7607,8 @@ ], "description": "Send SMS from a phone number", "operationId": "sendSmsFromPhoneNumber", - "summary": "Send TXT message from a phone number" + "summary": "Send TXT message from a phone number", + "x-ms-summary": "Send SMS from a phone number" } }, "/phone/numbers/{phoneNumberId}/sms-sent": { @@ -6908,7 +7622,9 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" }, { "default": 0, @@ -6917,7 +7633,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in SMS list pagination" }, { "default": 20, @@ -6927,7 +7644,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in SMS list pagination. Maximum size is 100. Use page index a" }, { "default": "ASC", @@ -6939,7 +7657,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional filter SMSs received after given date time", @@ -6947,7 +7666,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter SMSs received after given date time" }, { "description": "Optional filter SMSs received before given date time", @@ -6955,14 +7675,16 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter SMSs received before given date time" }, { "description": "Optional search filter", "in": "query", "name": "search", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" } ], "responses": { @@ -6978,7 +7700,8 @@ ], "description": "Get sent SMS messages for a phone number", "operationId": "getSentSmsByPhoneNumber", - "summary": "List sent TXT messages for a phone number" + "summary": "List sent TXT messages for a phone number", + "x-ms-summary": "Get sent SMS messages for a phone number" } }, "/phone/numbers/{phoneNumberId}/test": { @@ -6991,14 +7714,18 @@ "in": "header", "name": "x-test-id", "required": false, - "type": "string" + "type": "string", + "description": "Parameter x-test-id", + "x-ms-summary": "Parameter x-test-id" }, { "format": "uuid", "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" }, { "in": "body", @@ -7006,7 +7733,9 @@ "required": true, "schema": { "$ref": "#/definitions/TestPhoneNumberOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -7019,7 +7748,8 @@ ], "description": "Test a phone number by sending an SMS to it", "operationId": "testPhoneNumberSendSms", - "summary": "Test sending an SMS to a number" + "summary": "Test sending an SMS to a number", + "x-ms-summary": "Test a phone number by sending an SMS to it" } }, "/phone/numbers/{phoneNumberId}/webhooks": { @@ -7036,7 +7766,9 @@ "in": "path", "name": "phoneNumberId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" }, { "in": "body", @@ -7044,7 +7776,9 @@ "required": true, "schema": { "$ref": "#/definitions/CreateWebhookOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -7060,7 +7794,8 @@ ], "description": "Get notified whenever a phone number receives an SMS via a WebHook URL.", "operationId": "createWebhookForPhoneNumber", - "summary": "Attach a WebHook URL to a phone number" + "summary": "Attach a WebHook URL to a phone number", + "x-ms-summary": "Get notified whenever a phone number receives an SMS via a WebHook URL" } }, "/phone/validate": { @@ -7078,7 +7813,9 @@ "required": true, "schema": { "$ref": "#/definitions/ValidatePhoneNumberOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -7094,7 +7831,8 @@ ], "description": "Validate a phone number", "operationId": "validatePhoneNumber", - "summary": "Verify validity of a phone number" + "summary": "Verify validity of a phone number", + "x-ms-summary": "Validate a phone number" } }, "/sendEmail": { @@ -7109,7 +7847,9 @@ "required": true, "schema": { "$ref": "#/definitions/SimpleSendEmailOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -7122,7 +7862,8 @@ ], "description": "If no senderId or inboxId provided a random email address will be used to send from.", "operationId": "sendEmailSimple", - "summary": "Send an email" + "summary": "Send an email", + "x-ms-summary": "If no senderId or inboxId provided a random email address will be used to send f" } }, "/sendEmailQuery": { @@ -7134,28 +7875,32 @@ "in": "query", "name": "senderId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "ID of inbox to send from. If null an inbox will be created for sending" }, { "description": "Email address to send to", "in": "query", "name": "to", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Email address to send to" }, { "description": "Body of the email message. Supports HTML", "in": "query", "name": "body", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Body of the email message. Supports HTML" }, { "description": "Subject line of the email", "in": "query", "name": "subject", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Subject line of the email" } ], "responses": { @@ -7168,7 +7913,8 @@ ], "description": "If no senderId or inboxId provided a random email address will be used to send from. Ensure your parameters are URL encoded.", "operationId": "sendEmailQuery", - "summary": "Send an email using query parameters" + "summary": "Send an email using query parameters", + "x-ms-summary": "If no senderId or inboxId provided a random email address will be used to send f" } }, "/sent": { @@ -7183,7 +7929,9 @@ "SentEmailsController" ], "operationId": "deleteAllSentEmails", - "summary": "Delete all sent email receipts" + "summary": "Delete all sent email receipts", + "description": "Delete all sent email receipts", + "x-ms-summary": "Delete all sent email receipts" }, "get": { "produces": [ @@ -7196,7 +7944,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional inboxId to filter sender of sent emails by" }, { "default": 0, @@ -7205,7 +7954,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in inbox sent email list pagination" }, { "default": 20, @@ -7214,7 +7964,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in inbox sent email list pagination" }, { "default": "ASC", @@ -7226,14 +7977,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by created at after the given timestamp", @@ -7241,7 +7994,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -7249,7 +8003,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -7264,7 +8019,9 @@ "SentEmailsController" ], "operationId": "getSentEmails", - "summary": "Get all sent emails in paginated form" + "summary": "Get all sent emails in paginated form", + "description": "Get all sent emails in paginated form", + "x-ms-summary": "Get all sent emails in paginated form" } }, "/sent/delivery-status": { @@ -7280,7 +8037,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in delivery status list pagination" }, { "default": 20, @@ -7289,7 +8047,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in delivery status list pagination" }, { "default": "ASC", @@ -7301,7 +8060,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Filter by created at after the given timestamp", @@ -7309,7 +8069,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -7317,7 +8078,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -7332,7 +8094,9 @@ "SentEmailsController" ], "description": "Get all sent email delivery statuses", - "operationId": "getSentDeliveryStatuses" + "operationId": "getSentDeliveryStatuses", + "summary": "Get all sent email delivery statuses", + "x-ms-summary": "Get all sent email delivery statuses" } }, "/sent/delivery-status/wait-for": { @@ -7347,7 +8111,8 @@ "in": "query", "name": "sentId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional sent email ID filter" }, { "description": "Optional inbox ID filter", @@ -7355,7 +8120,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional inbox ID filter" }, { "description": "Optional timeout milliseconds", @@ -7363,7 +8129,8 @@ "in": "query", "name": "timeout", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional timeout milliseconds" }, { "description": "Zero based index of the delivery status to wait for. If 1 delivery status already and you want to wait for the 2nd pass index=1", @@ -7373,7 +8140,8 @@ "minimum": 0, "name": "index", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Zero based index of the delivery status to wait for. If 1 delivery status alread" }, { "description": "Filter by created at after the given timestamp", @@ -7381,7 +8149,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -7389,7 +8158,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -7404,7 +8174,9 @@ "SentEmailsController" ], "description": "Wait for delivery statuses", - "operationId": "waitForDeliveryStatuses" + "operationId": "waitForDeliveryStatuses", + "summary": "Wait for delivery statuses", + "x-ms-summary": "Wait for delivery statuses" } }, "/sent/delivery-status/{deliveryId}": { @@ -7418,7 +8190,9 @@ "in": "path", "name": "deliveryId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter deliveryId", + "x-ms-summary": "Parameter deliveryId" } ], "responses": { @@ -7433,7 +8207,9 @@ "SentEmailsController" ], "description": "Get a sent email delivery status", - "operationId": "getSentDeliveryStatus" + "operationId": "getSentDeliveryStatus", + "summary": "Get a sent email delivery status", + "x-ms-summary": "Get a sent email delivery status" } }, "/sent/organization": { @@ -7448,7 +8224,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional inboxId to filter sender of sent emails by" }, { "default": 0, @@ -7457,7 +8234,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in sent email list pagination" }, { "default": 20, @@ -7466,7 +8244,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in sent email list pagination" }, { "default": "ASC", @@ -7478,14 +8257,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by created at after the given timestamp", @@ -7493,7 +8274,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -7501,7 +8283,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -7516,7 +8299,9 @@ "SentEmailsController" ], "description": "Get all sent organization emails in paginated form", - "operationId": "getSentOrganizationEmails" + "operationId": "getSentOrganizationEmails", + "summary": "Get all sent organization emails in paginated form", + "x-ms-summary": "Get all sent organization emails in paginated form" } }, "/sent/queue-results": { @@ -7532,7 +8317,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in inbox sent email list pagination" }, { "default": 20, @@ -7541,7 +8327,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in inbox sent email list pagination" }, { "default": "ASC", @@ -7553,7 +8340,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Filter by created at after the given timestamp", @@ -7561,7 +8349,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -7569,7 +8358,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -7584,7 +8374,9 @@ "SentEmailsController" ], "operationId": "getSentEmailsWithQueueResults", - "summary": "Get results of email sent with queues in paginated form" + "summary": "Get results of email sent with queues in paginated form", + "description": "Get results of email sent with queues in paginated form", + "x-ms-summary": "Get results of email sent with queues in paginated form" } }, "/sent/tracking-pixels": { @@ -7600,7 +8392,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in sent email tracking pixel list pagination" }, { "default": 20, @@ -7609,7 +8402,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in sent email tracking pixel list pagination" }, { "default": "ASC", @@ -7621,14 +8415,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by created at after the given timestamp", @@ -7636,7 +8432,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -7644,7 +8441,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -7659,7 +8457,9 @@ "SentEmailsController" ], "description": "Get all sent email tracking pixels in paginated form", - "operationId": "getAllSentTrackingPixels" + "operationId": "getAllSentTrackingPixels", + "summary": "Get all sent email tracking pixels in paginated form", + "x-ms-summary": "Get all sent email tracking pixels in paginated form" } }, "/sent/{emailId}/raw": { @@ -7671,7 +8471,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" } ], "responses": { @@ -7684,7 +8485,8 @@ ], "description": "Returns a raw, unparsed, and unprocessed sent email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawSentEmailJson endpoint", "operationId": "getRawSentEmailContents", - "summary": "Get raw sent email string. Returns unparsed raw SMTP message with headers and body." + "summary": "Get raw sent email string. Returns unparsed raw SMTP message with headers and bo", + "x-ms-summary": "Returns a raw, unparsed, and unprocessed sent email. If your client has issues p" } }, "/sent/{emailId}/raw/json": { @@ -7699,7 +8501,8 @@ "in": "path", "name": "emailId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of email" } ], "responses": { @@ -7715,7 +8518,8 @@ ], "description": "Returns a raw, unparsed, and unprocessed sent email wrapped in a JSON response object for easier handling when compared with the getRawSentEmail text/plain response", "operationId": "getRawSentEmailJson", - "summary": "Get raw sent email in JSON. Unparsed SMTP message in JSON wrapper format." + "summary": "Get raw sent email in JSON. Unparsed SMTP message in JSON wrapper format", + "x-ms-summary": "Returns a raw, unparsed, and unprocessed sent email wrapped in a JSON response o" } }, "/sent/{id}": { @@ -7726,7 +8530,9 @@ "in": "path", "name": "id", "required": true, - "type": "string" + "type": "string", + "description": "Parameter id", + "x-ms-summary": "Parameter id" } ], "responses": { @@ -7738,7 +8544,9 @@ "SentEmailsController" ], "operationId": "deleteSentEmail", - "summary": "Delete sent email receipt" + "summary": "Delete sent email receipt", + "description": "Delete sent email receipt", + "x-ms-summary": "Delete sent email receipt" }, "get": { "produces": [ @@ -7750,7 +8558,9 @@ "in": "path", "name": "id", "required": true, - "type": "string" + "type": "string", + "description": "Parameter id", + "x-ms-summary": "Parameter id" } ], "responses": { @@ -7765,7 +8575,9 @@ "SentEmailsController" ], "operationId": "getSentEmail", - "summary": "Get sent email receipt" + "summary": "Get sent email receipt", + "description": "Get sent email receipt", + "x-ms-summary": "Get sent email receipt" } }, "/sent/{id}/html": { @@ -7779,7 +8591,9 @@ "in": "path", "name": "id", "required": true, - "type": "string" + "type": "string", + "description": "Parameter id", + "x-ms-summary": "Parameter id" } ], "responses": { @@ -7794,7 +8608,9 @@ "SentEmailsController" ], "operationId": "getSentEmailHTMLContent", - "summary": "Get sent email HTML content" + "summary": "Get sent email HTML content", + "description": "Get sent email HTML content", + "x-ms-summary": "Get sent email HTML content" } }, "/sent/{id}/tracking-pixels": { @@ -7808,7 +8624,9 @@ "in": "path", "name": "id", "required": true, - "type": "string" + "type": "string", + "description": "Parameter id", + "x-ms-summary": "Parameter id" }, { "default": 0, @@ -7817,7 +8635,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in sent email tracking pixel list pagination" }, { "default": 20, @@ -7826,7 +8645,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in sent email tracking pixel list pagination" }, { "default": "ASC", @@ -7838,14 +8658,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by created at after the given timestamp", @@ -7853,7 +8675,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -7861,7 +8684,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -7876,7 +8700,9 @@ "SentEmailsController" ], "description": "Get all tracking pixels for a sent email in paginated form", - "operationId": "getSentEmailTrackingPixels" + "operationId": "getSentEmailTrackingPixels", + "summary": "Get all tracking pixels for a sent email in paginated form", + "x-ms-summary": "Get all tracking pixels for a sent email in paginated form" } }, "/sent/{id}/urls": { @@ -7890,7 +8716,9 @@ "in": "path", "name": "id", "required": true, - "type": "string" + "type": "string", + "description": "Parameter id", + "x-ms-summary": "Parameter id" } ], "responses": { @@ -7906,7 +8734,8 @@ ], "description": "Get a list of URLs for sent email content as text/html or raw SMTP message for viewing the message in a browser.", "operationId": "getSentEmailPreviewURLs", - "summary": "Get sent email URL for viewing in browser or downloading" + "summary": "Get sent email URL for viewing in browser or downloading", + "x-ms-summary": "Get a list of URLs for sent email content as text/html or raw SMTP message for v" } }, "/sent/{sentId}/delivery-status": { @@ -7921,7 +8750,8 @@ "in": "path", "name": "sentId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of the sent email that you want to get the delivery status of. Sent email obj" }, { "default": 0, @@ -7930,7 +8760,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in delivery status list pagination" }, { "default": 20, @@ -7939,7 +8770,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in delivery status list pagination" }, { "default": "ASC", @@ -7951,7 +8783,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Filter by created at after the given timestamp", @@ -7959,7 +8792,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -7967,7 +8801,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" } ], "responses": { @@ -7982,7 +8817,9 @@ "SentEmailsController" ], "description": "Get all sent email delivery statuses", - "operationId": "getSentDeliveryStatusesBySentId" + "operationId": "getSentDeliveryStatusesBySentId", + "summary": "Get all sent email delivery statuses", + "x-ms-summary": "Get all sent email delivery statuses" } }, "/sms": { @@ -7993,7 +8830,9 @@ "in": "query", "name": "phoneNumberId", "required": false, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" } ], "responses": { @@ -8006,7 +8845,8 @@ ], "description": "Delete all SMS messages or all messages for a given phone number", "operationId": "deleteSmsMessages", - "summary": "Delete all SMS messages" + "summary": "Delete all SMS messages", + "x-ms-summary": "Delete all SMS messages or all messages for a given phone number" }, "get": { "produces": [ @@ -8019,7 +8859,8 @@ "in": "query", "name": "phoneNumber", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional receiving phone number to filter SMS messages for" }, { "default": 0, @@ -8028,7 +8869,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in SMS list pagination" }, { "default": 20, @@ -8038,7 +8880,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in SMS list pagination. Maximum size is 100. Use page index a" }, { "default": "ASC", @@ -8050,7 +8893,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional filter SMSs received after given date time", @@ -8058,7 +8902,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter SMSs received after given date time" }, { "description": "Optional filter SMSs received before given date time", @@ -8066,14 +8911,16 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter SMSs received before given date time" }, { "description": "Optional search filter", "in": "query", "name": "search", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "default": false, @@ -8081,10 +8928,10 @@ "in": "query", "name": "favourite", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optionally filter results for favourites only" }, { - "description": "Optional list of IDs to include in result", "in": "query", "items": { @@ -8093,7 +8940,8 @@ }, "name": "include", "required": false, - "type": "array" + "type": "array", + "x-ms-summary": "Optional list of IDs to include in result" } ], "responses": { @@ -8107,7 +8955,10 @@ "tags": [ "SmsController" ], - "operationId": "getAllSmsMessages" + "operationId": "getAllSmsMessages", + "summary": "Operation getAllSmsMessages", + "description": "Operation getAllSmsMessages", + "x-ms-summary": "Operation getAllSmsMessages" } }, "/sms/count": { @@ -8129,7 +8980,8 @@ ], "description": "Get number of SMS", "operationId": "getSmsCount", - "summary": "Get SMS count" + "summary": "Get SMS count", + "x-ms-summary": "Get number of SMS" } }, "/sms/send": { @@ -8146,7 +8998,8 @@ "in": "query", "name": "fromPhoneNumber", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Phone number to send from in E.164 format" }, { "description": "Phone number ID to send from in UUID form", @@ -8154,7 +9007,8 @@ "in": "query", "name": "fromPhoneId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Phone number ID to send from in UUID form" }, { "in": "body", @@ -8162,7 +9016,9 @@ "required": true, "schema": { "$ref": "#/definitions/SmsSendOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -8176,7 +9032,10 @@ "tags": [ "SmsController" ], - "operationId": "sendSms" + "operationId": "sendSms", + "summary": "Operation sendSms", + "description": "Operation sendSms", + "x-ms-summary": "Operation sendSms" } }, "/sms/sent": { @@ -8187,7 +9046,9 @@ "in": "query", "name": "phoneNumberId", "required": false, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" } ], "responses": { @@ -8200,7 +9061,8 @@ ], "description": "Delete all sent SMS messages or all messages for a given phone number", "operationId": "deleteSentSmsMessages", - "summary": "Delete all sent SMS messages" + "summary": "Delete all sent SMS messages", + "x-ms-summary": "Delete all sent SMS messages or all messages for a given phone number" }, "get": { "produces": [ @@ -8213,7 +9075,8 @@ "in": "query", "name": "phoneNumber", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional phone number to filter sent SMS messages for" }, { "default": 0, @@ -8222,7 +9085,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in SMS list pagination" }, { "default": 20, @@ -8232,7 +9096,8 @@ "maximum": 100, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in SMS list pagination. Maximum size is 100. Use page index a" }, { "default": "ASC", @@ -8244,7 +9109,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional filter SMSs received after given date time", @@ -8252,7 +9118,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter SMSs received after given date time" }, { "description": "Optional filter SMSs received before given date time", @@ -8260,14 +9127,16 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional filter SMSs received before given date time" }, { "description": "Optional search filter", "in": "query", "name": "search", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" } ], "responses": { @@ -8283,7 +9152,8 @@ ], "description": "By default returns all SMS messages across all phone numbers sorted by ascending created at date. Responses are paginated. You can restrict results to a list of phone number IDs. You can also filter out read messages", "operationId": "getSentSmsMessagesPaginated", - "summary": "Get all SMS messages in all phone numbers in paginated form. ." + "summary": "Get all SMS messages in all phone numbers in paginated form", + "x-ms-summary": "By default returns all SMS messages across all phone numbers sorted by ascending" } }, "/sms/sent/count": { @@ -8305,7 +9175,8 @@ ], "description": "Get number of sent SMS", "operationId": "getSentSmsCount", - "summary": "Get sent SMS count" + "summary": "Get sent SMS count", + "x-ms-summary": "Get number of sent SMS" } }, "/sms/sent/{sentSmsId}": { @@ -8316,7 +9187,9 @@ "in": "path", "name": "sentSmsId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter sentSmsId", + "x-ms-summary": "Parameter sentSmsId" } ], "responses": { @@ -8329,7 +9202,8 @@ ], "description": "Delete a sent SMS message", "operationId": "deleteSentSmsMessage", - "summary": "Delete sent SMS message." + "summary": "Delete sent SMS message", + "x-ms-summary": "Delete a sent SMS message" }, "get": { "produces": [ @@ -8341,7 +9215,9 @@ "in": "path", "name": "sentSmsId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter sentSmsId", + "x-ms-summary": "Parameter sentSmsId" } ], "responses": { @@ -8357,7 +9233,8 @@ ], "description": "Returns an SMS summary object with content.", "operationId": "getSentSmsMessage", - "summary": "Get sent SMS content including body. Expects sent SMS to exist by ID." + "summary": "Get sent SMS content including body. Expects sent SMS to exist by ID", + "x-ms-summary": "Returns an SMS summary object with content" } }, "/sms/unreadCount": { @@ -8379,7 +9256,8 @@ ], "description": "Get number of SMS unread. Unread means has not been viewed in dashboard or returned in an email API response", "operationId": "getUnreadSmsCount", - "summary": "Get unread SMS count" + "summary": "Get unread SMS count", + "x-ms-summary": "Get number of SMS unread. Unread means has not been viewed in dashboard or retur" } }, "/sms/{smsId}": { @@ -8390,7 +9268,9 @@ "in": "path", "name": "smsId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter smsId", + "x-ms-summary": "Parameter smsId" } ], "responses": { @@ -8403,7 +9283,8 @@ ], "description": "Delete an SMS message", "operationId": "deleteSmsMessage", - "summary": "Delete SMS message." + "summary": "Delete SMS message", + "x-ms-summary": "Delete an SMS message" }, "get": { "produces": [ @@ -8415,7 +9296,9 @@ "in": "path", "name": "smsId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter smsId", + "x-ms-summary": "Parameter smsId" } ], "responses": { @@ -8431,7 +9314,8 @@ ], "description": "Returns a SMS summary object with content.", "operationId": "getSmsMessage", - "summary": "Get SMS content including body. Expects SMS to exist by ID. For SMS that may not have arrived yet use the WaitForController." + "summary": "Get SMS content including body. Expects SMS to exist by ID. For SMS that may not", + "x-ms-summary": "Returns a SMS summary object with content" } }, "/sms/{smsId}/favourite": { @@ -8446,13 +9330,16 @@ "in": "path", "name": "smsId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of SMS to set favourite state" }, { "in": "query", "name": "favourited", "required": true, - "type": "boolean" + "type": "boolean", + "description": "Parameter favourited", + "x-ms-summary": "Parameter favourited" } ], "responses": { @@ -8466,7 +9353,10 @@ "tags": [ "SmsController" ], - "operationId": "setSmsFavourited" + "operationId": "setSmsFavourited", + "summary": "Operation setSmsFavourited", + "description": "Operation setSmsFavourited", + "x-ms-summary": "Operation setSmsFavourited" } }, "/sms/{smsId}/reply": { @@ -8480,7 +9370,9 @@ "in": "path", "name": "smsId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter smsId", + "x-ms-summary": "Parameter smsId" } ], "responses": { @@ -8496,7 +9388,8 @@ ], "description": "Get reply for an SMS message.", "operationId": "getReplyForSmsMessage", - "summary": "Get reply for an SMS message" + "summary": "Get reply for an SMS message", + "x-ms-summary": "Get reply for an SMS message" }, "post": { "consumes": [ @@ -8511,7 +9404,9 @@ "in": "path", "name": "smsId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter smsId", + "x-ms-summary": "Parameter smsId" }, { "in": "body", @@ -8519,7 +9414,9 @@ "required": true, "schema": { "$ref": "#/definitions/SmsReplyOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -8535,7 +9432,8 @@ ], "description": "Reply to an SMS message.", "operationId": "replyToSmsMessage", - "summary": "Send a reply to a received SMS message. Replies are sent from the receiving number." + "summary": "Send a reply to a received SMS message. Replies are sent from the receiving numb", + "x-ms-summary": "Reply to an SMS message" } }, "/waitFor": { @@ -8553,7 +9451,9 @@ "required": true, "schema": { "$ref": "#/definitions/WaitForConditions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -8572,7 +9472,8 @@ ], "description": "Generic waitFor method that will wait until an inbox meets given conditions or return immediately if already met", "operationId": "waitFor", - "summary": "Wait for an email to match the provided filter conditions such as subject contains keyword." + "summary": "Wait for an email to match the provided filter conditions such as subject contai", + "x-ms-summary": "Generic waitFor method that will wait until an inbox meets given conditions or r" } }, "/waitForEmailCount": { @@ -8587,7 +9488,8 @@ "in": "query", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Id of the inbox we are fetching emails from" }, { "description": "Number of emails to wait for. Must be greater that 1", @@ -8596,7 +9498,8 @@ "minimum": 1, "name": "count", "required": true, - "type": "integer" + "type": "integer", + "x-ms-summary": "Number of emails to wait for. Must be greater that 1" }, { "description": "Max milliseconds to wait", @@ -8604,7 +9507,8 @@ "in": "query", "name": "timeout", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds to wait" }, { "default": false, @@ -8612,7 +9516,8 @@ "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter for unread only" }, { "description": "Filter for emails that were received before the given timestamp", @@ -8620,7 +9525,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were received before the given timestamp" }, { "description": "Filter for emails that were received after the given timestamp", @@ -8628,7 +9534,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were received after the given timestamp" }, { "description": "Sort direction", @@ -8639,7 +9546,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sort direction" }, { "description": "Max milliseconds delay between calls", @@ -8647,7 +9555,8 @@ "in": "query", "name": "delay", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds delay between calls" } ], "responses": { @@ -8666,7 +9575,8 @@ ], "description": "If inbox contains count or more emails at time of request then return count worth of emails. If not wait until the count is reached and return those or return an error if timeout is exceeded.", "operationId": "waitForEmailCount", - "summary": "Wait for and return count number of emails. Hold connection until inbox count matches expected or timeout occurs" + "summary": "Wait for and return count number of emails. Hold connection until inbox count ma", + "x-ms-summary": "If inbox contains count or more emails at time of request then return count wort" } }, "/waitForLatestEmail": { @@ -8681,7 +9591,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Id of the inbox we are fetching emails from" }, { "description": "Max milliseconds to wait", @@ -8689,7 +9600,8 @@ "in": "query", "name": "timeout", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds to wait" }, { "default": false, @@ -8697,7 +9609,8 @@ "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter for unread only" }, { "description": "Filter for emails that were before after the given timestamp", @@ -8705,7 +9618,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were before after the given timestamp" }, { "description": "Filter for emails that were received after the given timestamp", @@ -8713,7 +9627,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were received after the given timestamp" }, { "description": "Sort direction", @@ -8724,7 +9639,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sort direction" }, { "description": "Max milliseconds delay between calls", @@ -8732,7 +9648,8 @@ "in": "query", "name": "delay", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds delay between calls" } ], "responses": { @@ -8748,7 +9665,8 @@ ], "description": "Will return either the last received email or wait for an email to arrive and return that. If you need to wait for an email for a non-empty inbox set `unreadOnly=true` or see the other receive methods such as `waitForNthEmail` or `waitForEmailCount`.", "operationId": "waitForLatestEmail", - "summary": "Fetch inbox's latest email or if empty wait for an email to arrive" + "summary": "Fetch inbox's latest email or if empty wait for an email to arrive", + "x-ms-summary": "Will return either the last received email or wait for an email to arrive and re" } }, "/waitForLatestSms": { @@ -8766,7 +9684,9 @@ "required": true, "schema": { "$ref": "#/definitions/WaitForSingleSmsOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -8782,7 +9702,8 @@ ], "description": "Wait until a phone number meets given conditions or return immediately if already met", "operationId": "waitForLatestSms", - "summary": "Wait for the latest SMS message to match the provided filter conditions such as body contains keyword." + "summary": "Wait for the latest SMS message to match the provided filter conditions such as", + "x-ms-summary": "Wait until a phone number meets given conditions or return immediately if alread" } }, "/waitForMatchingEmails": { @@ -8800,7 +9721,8 @@ "in": "query", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Id of the inbox we are fetching emails from" }, { "description": "Number of emails to wait for. Must be greater or equal to 1", @@ -8809,7 +9731,8 @@ "minimum": 1, "name": "count", "required": true, - "type": "integer" + "type": "integer", + "x-ms-summary": "Number of emails to wait for. Must be greater or equal to 1" }, { "description": "Filter for emails that were received before the given timestamp", @@ -8817,7 +9740,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were received before the given timestamp" }, { "description": "Filter for emails that were received after the given timestamp", @@ -8825,7 +9749,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were received after the given timestamp" }, { "description": "Sort direction", @@ -8836,7 +9761,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sort direction" }, { "description": "Max milliseconds delay between calls", @@ -8844,7 +9770,8 @@ "in": "query", "name": "delay", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds delay between calls" }, { "description": "Max milliseconds to wait", @@ -8852,7 +9779,8 @@ "in": "query", "name": "timeout", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds to wait" }, { "default": false, @@ -8860,7 +9788,8 @@ "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter for unread only" }, { "in": "body", @@ -8868,7 +9797,9 @@ "required": true, "schema": { "$ref": "#/definitions/MatchOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -8887,7 +9818,8 @@ ], "description": "Perform a search of emails in an inbox with the given patterns. If results match expected count then return or else retry the search until results are found or timeout is reached. Match options allow simple CONTAINS or EQUALS filtering on SUBJECT, TO, BCC, CC, and FROM. See the `MatchOptions` object for options. An example payload is `{ matches: [{field: 'SUBJECT',should:'CONTAIN',value:'needle'}] }`. You can use an array of matches and they will be applied sequentially to filter out emails. If you want to perform matches and extractions of content using Regex patterns see the EmailController `getEmailContentMatch` method.", "operationId": "waitForMatchingEmails", - "summary": "Wait or return list of emails that match simple matching patterns" + "summary": "Wait or return list of emails that match simple matching patterns", + "x-ms-summary": "Perform a search of emails in an inbox with the given patterns. If results match" } }, "/waitForMatchingFirstEmail": { @@ -8905,7 +9837,8 @@ "in": "query", "name": "inboxId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Id of the inbox we are matching an email for" }, { "description": "Max milliseconds to wait", @@ -8913,7 +9846,8 @@ "in": "query", "name": "timeout", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds to wait" }, { "default": false, @@ -8921,7 +9855,8 @@ "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter for unread only" }, { "description": "Filter for emails that were received after the given timestamp", @@ -8929,7 +9864,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were received after the given timestamp" }, { "description": "Filter for emails that were received before the given timestamp", @@ -8937,7 +9873,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were received before the given timestamp" }, { "description": "Sort direction", @@ -8948,7 +9885,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sort direction" }, { "description": "Max milliseconds delay between calls", @@ -8956,7 +9894,8 @@ "in": "query", "name": "delay", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds delay between calls" }, { "in": "body", @@ -8964,7 +9903,9 @@ "required": true, "schema": { "$ref": "#/definitions/MatchOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -8980,7 +9921,8 @@ ], "description": "Perform a search of emails in an inbox with the given patterns. If a result if found then return or else retry the search until a result is found or timeout is reached. Match options allow simple CONTAINS or EQUALS filtering on SUBJECT, TO, BCC, CC, and FROM. See the `MatchOptions` object for options. An example payload is `{ matches: [{field: 'SUBJECT',should:'CONTAIN',value:'needle'}] }`. You can use an array of matches and they will be applied sequentially to filter out emails. If you want to perform matches and extractions of content using Regex patterns see the EmailController `getEmailContentMatch` method.", "operationId": "waitForMatchingFirstEmail", - "summary": "Wait for or return the first email that matches provided MatchOptions array" + "summary": "Wait for or return the first email that matches provided MatchOptions array", + "x-ms-summary": "Perform a search of emails in an inbox with the given patterns. If a result if f" } }, "/waitForNthEmail": { @@ -8995,7 +9937,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Id of the inbox you are fetching emails from" }, { "default": 0, @@ -9006,7 +9949,8 @@ "minimum": 0, "name": "index", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Zero based index of the email to wait for. If an inbox has 1 email already and y" }, { "description": "Max milliseconds to wait for the nth email if not already present", @@ -9014,7 +9958,8 @@ "in": "query", "name": "timeout", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds to wait for the nth email if not already present" }, { "default": false, @@ -9022,7 +9967,8 @@ "in": "query", "name": "unreadOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Optional filter for unread only" }, { "description": "Filter for emails that were received after the given timestamp", @@ -9030,7 +9976,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were received after the given timestamp" }, { "description": "Filter for emails that were received before the given timestamp", @@ -9038,7 +9985,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter for emails that were received before the given timestamp" }, { "description": "Sort direction", @@ -9049,7 +9997,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sort direction" }, { "description": "Max milliseconds delay between calls", @@ -9057,7 +10006,8 @@ "in": "query", "name": "delay", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max milliseconds delay between calls" } ], "responses": { @@ -9073,7 +10023,8 @@ ], "description": "If nth email is already present in inbox then return it. If not hold the connection open until timeout expires or the nth email is received and returned.", "operationId": "waitForNthEmail", - "summary": "Wait for or fetch the email with a given index in the inbox specified. If index doesn't exist waits for it to exist or timeout to occur." + "summary": "Wait for or fetch the email with a given index in the inbox specified. If index", + "x-ms-summary": "If nth email is already present in inbox then return it. If not hold the connect" } }, "/waitForSms": { @@ -9091,7 +10042,9 @@ "required": true, "schema": { "$ref": "#/definitions/WaitForSmsConditions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -9110,7 +10063,8 @@ ], "description": "Generic waitFor method that will wait until a phone number meets given conditions or return immediately if already met", "operationId": "waitForSms", - "summary": "Wait for an SMS message to match the provided filter conditions such as body contains keyword." + "summary": "Wait for an SMS message to match the provided filter conditions such as body con", + "x-ms-summary": "Generic waitFor method that will wait until a phone number meets given condition" } }, "/webhooks": { @@ -9122,7 +10076,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "before" } ], "responses": { @@ -9134,7 +10089,9 @@ "WebhookController" ], "operationId": "deleteAllWebhooks", - "summary": "Delete all webhooks" + "summary": "Delete all webhooks", + "description": "Delete all webhooks", + "x-ms-summary": "Delete all webhooks" }, "post": { "consumes": [ @@ -9150,7 +10107,9 @@ "required": true, "schema": { "$ref": "#/definitions/CreateWebhookOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -9166,7 +10125,8 @@ ], "description": "Get notified of account level events such as bounce and bounce recipient.", "operationId": "createAccountWebhook", - "summary": "Attach a WebHook URL to an inbox" + "summary": "Attach a WebHook URL to an inbox", + "x-ms-summary": "Get notified of account level events such as bounce and bounce recipient" } }, "/webhooks/account/paginated": { @@ -9184,7 +10144,8 @@ "minimum": 0, "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -9195,7 +10156,8 @@ "minimum": 1, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size for paginated result list" }, { "default": "DESC", @@ -9207,7 +10169,8 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Filter by created at after the given timestamp", @@ -9215,7 +10178,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -9223,7 +10187,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "description": "Optional event type", @@ -9244,7 +10209,8 @@ "in": "query", "name": "eventType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional event type" }, { "description": "Filter by webhook health", @@ -9255,14 +10221,16 @@ "in": "query", "name": "health", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by webhook health" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" } ], "responses": { @@ -9278,7 +10246,8 @@ ], "description": "List account webhooks in paginated form. Allows for page index, page size, and sort direction.", "operationId": "getAllAccountWebhooks", - "summary": "List account webhooks Paginated" + "summary": "List account webhooks Paginated", + "x-ms-summary": "List account webhooks in paginated form. Allows for page index, page size, and s" } }, "/webhooks/endpoints": { @@ -9296,7 +10265,8 @@ "minimum": 0, "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -9307,7 +10277,8 @@ "minimum": 1, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size for paginated result list" }, { "default": "DESC", @@ -9319,14 +10290,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by created at after the given timestamp", @@ -9334,7 +10307,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by inboxId", @@ -9342,7 +10316,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by inboxId" }, { "description": "Filter by phoneId", @@ -9350,7 +10325,8 @@ "in": "query", "name": "phoneId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by phoneId" }, { "description": "Filter by created at before the given timestamp", @@ -9358,7 +10334,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "description": "Filter by webhook health", @@ -9369,7 +10346,8 @@ "in": "query", "name": "health", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by webhook health" }, { "description": "Optional event type", @@ -9390,7 +10368,8 @@ "in": "query", "name": "eventType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional event type" } ], "responses": { @@ -9406,7 +10385,8 @@ ], "description": "List webhooks URL in paginated form. Allows for page index, page size, and sort direction.", "operationId": "getAllWebhookEndpoints", - "summary": "List Webhooks endpoints Paginated" + "summary": "List Webhooks endpoints Paginated", + "x-ms-summary": "List webhooks URL in paginated form. Allows for page index, page size, and sort" } }, "/webhooks/paginated": { @@ -9424,7 +10404,8 @@ "minimum": 0, "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -9435,7 +10416,8 @@ "minimum": 1, "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size for paginated result list" }, { "default": "DESC", @@ -9447,14 +10429,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by created at after the given timestamp", @@ -9462,7 +10446,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by inboxId", @@ -9470,7 +10455,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by inboxId" }, { "description": "Filter by aiTransformerId", @@ -9478,7 +10464,8 @@ "in": "query", "name": "aiTransformerId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by aiTransformerId" }, { "description": "Filter by phoneId", @@ -9486,7 +10473,8 @@ "in": "query", "name": "phoneId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by phoneId" }, { "description": "Filter by created at before the given timestamp", @@ -9494,7 +10482,8 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "description": "Filter by webhook health", @@ -9505,7 +10494,8 @@ "in": "query", "name": "health", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by webhook health" }, { "description": "Optional event type", @@ -9526,14 +10516,16 @@ "in": "query", "name": "eventType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional event type" }, { "description": "Optional url endpoint filter", "in": "query", "name": "url", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional url endpoint filter" }, { "description": "Webhook source type category such as phone, inbox, aiTranformer", @@ -9545,14 +10537,16 @@ "in": "query", "name": "eventTypeSource", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Webhook source type category such as phone, inbox, aiTranformer" }, { "description": "Include account scope webhooks when passing phoneId, inboxId, or aiTransformerId filters", "in": "query", "name": "includeAccountWide", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Include account scope webhooks when passing phoneId, inboxId, or aiTransformerId" } ], "responses": { @@ -9568,7 +10562,8 @@ ], "description": "List webhooks in paginated form. Allows for page index, page size, and sort direction.", "operationId": "getAllWebhooks", - "summary": "List Webhooks Paginated" + "summary": "List Webhooks Paginated", + "x-ms-summary": "List webhooks in paginated form. Allows for page index, page size, and sort dire" } }, "/webhooks/results": { @@ -9584,7 +10579,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -9593,7 +10589,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -9605,14 +10602,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by created at after the given timestamp", @@ -9620,7 +10619,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -9628,14 +10628,16 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "description": "Filter for unseen exceptions only", "in": "query", "name": "unseenOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Filter for unseen exceptions only" }, { "description": "Filter by result type", @@ -9648,7 +10650,8 @@ "in": "query", "name": "resultType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by result type" }, { "description": "Filter by event name", @@ -9669,7 +10672,8 @@ "in": "query", "name": "eventName", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by event name" }, { "description": "Minimum response status", @@ -9677,7 +10681,8 @@ "in": "query", "name": "minStatusCode", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Minimum response status" }, { "description": "Maximum response status", @@ -9685,7 +10690,8 @@ "in": "query", "name": "maxStatusCode", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Maximum response status" }, { "description": "Inbox ID", @@ -9693,7 +10699,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Inbox ID" }, { "description": "Sms ID", @@ -9701,7 +10708,8 @@ "in": "query", "name": "smsId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sms ID" }, { "description": "Attachment ID", @@ -9709,7 +10717,8 @@ "in": "query", "name": "attachmentId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Attachment ID" }, { "description": "Email ID", @@ -9717,7 +10726,8 @@ "in": "query", "name": "emailId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Email ID" }, { "description": "Phone ID", @@ -9725,7 +10735,8 @@ "in": "query", "name": "phoneId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Phone ID" }, { "description": "AI Transformer ID", @@ -9733,7 +10744,8 @@ "in": "query", "name": "aiTransformerId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "AI Transformer ID" } ], "responses": { @@ -9748,7 +10760,9 @@ "WebhookController" ], "operationId": "getAllWebhookResults", - "summary": "Get results for all webhooks" + "summary": "Get results for all webhooks", + "description": "Get results for all webhooks", + "x-ms-summary": "Get results for all webhooks" } }, "/webhooks/results/redrive": { @@ -9770,7 +10784,8 @@ ], "description": "Allows you to resend webhook payloads for any recorded webhook result that failed to deliver the payload.", "operationId": "redriveAllWebhookResults", - "summary": "Redrive all webhook results that have failed status" + "summary": "Redrive all webhook results that have failed status", + "x-ms-summary": "Allows you to resend webhook payloads for any recorded webhook result that faile" } }, "/webhooks/results/unseen-count": { @@ -9791,7 +10806,9 @@ "WebhookController" ], "operationId": "getWebhookResultsUnseenErrorCount", - "summary": "Get count of unseen webhook results with error status" + "summary": "Get count of unseen webhook results with error status", + "description": "Get count of unseen webhook results with error status", + "x-ms-summary": "Get count of unseen webhook results with error status" } }, "/webhooks/results/{webhookResultId}": { @@ -9806,7 +10823,8 @@ "in": "path", "name": "webhookResultId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Webhook Result ID" } ], "responses": { @@ -9821,7 +10839,9 @@ "WebhookController" ], "operationId": "getWebhookResult", - "summary": "Get a webhook result for a webhook" + "summary": "Get a webhook result for a webhook", + "description": "Get a webhook result for a webhook", + "x-ms-summary": "Get a webhook result for a webhook" } }, "/webhooks/results/{webhookResultId}/redrive": { @@ -9836,7 +10856,8 @@ "in": "path", "name": "webhookResultId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "Webhook Result ID" } ], "responses": { @@ -9852,7 +10873,8 @@ ], "description": "Allows you to resend a webhook payload that was already sent. Webhooks that fail are retried automatically for 24 hours and then put in a dead letter queue. You can retry results manually using this method.", "operationId": "redriveWebhookResult", - "summary": "Get a webhook result and try to resend the original webhook payload" + "summary": "Get a webhook result and try to resend the original webhook payload", + "x-ms-summary": "Allows you to resend a webhook payload that was already sent. Webhooks that fail" } }, "/webhooks/verify": { @@ -9870,7 +10892,9 @@ "required": true, "schema": { "$ref": "#/definitions/VerifyWebhookSignatureOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -9886,7 +10910,8 @@ ], "description": "Verify a webhook payload using the messageId and signature. This allows you to be sure that MailSlurp sent the payload and not another server.", "operationId": "verifyWebhookSignature", - "summary": "Verify a webhook payload signature" + "summary": "Verify a webhook payload signature", + "x-ms-summary": "Verify a webhook payload using the messageId and signature. This allows you to b" } }, "/webhooks/{webhookId}": { @@ -9897,7 +10922,9 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter webhookId", + "x-ms-summary": "Parameter webhookId" } ], "responses": { @@ -9909,7 +10936,9 @@ "WebhookController" ], "operationId": "deleteWebhookById", - "summary": "Delete a webhook" + "summary": "Delete a webhook", + "description": "Delete a webhook", + "x-ms-summary": "Delete a webhook" }, "get": { "produces": [ @@ -9921,7 +10950,9 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter webhookId", + "x-ms-summary": "Parameter webhookId" } ], "responses": { @@ -9936,7 +10967,9 @@ "WebhookController" ], "operationId": "getWebhook", - "summary": "Get a webhook" + "summary": "Get a webhook", + "description": "Get a webhook", + "x-ms-summary": "Get a webhook" }, "patch": { "consumes": [ @@ -9951,34 +10984,44 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter webhookId", + "x-ms-summary": "Parameter webhookId" }, { "format": "uuid", "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "description": "Parameter inboxId", + "x-ms-summary": "Parameter inboxId" }, { "format": "uuid", "in": "query", "name": "aiTransformerId", "required": false, - "type": "string" + "type": "string", + "description": "Parameter aiTransformerId", + "x-ms-summary": "Parameter aiTransformerId" }, { "format": "uuid", "in": "query", "name": "phoneNumberId", "required": false, - "type": "string" + "type": "string", + "description": "Parameter phoneNumberId", + "x-ms-summary": "Parameter phoneNumberId" }, { "in": "query", "name": "overrideAuth", "required": false, - "type": "boolean" + "type": "boolean", + "description": "Parameter overrideAuth", + "x-ms-summary": "Parameter overrideAuth" }, { "in": "body", @@ -9986,7 +11029,9 @@ "required": true, "schema": { "$ref": "#/definitions/CreateWebhookOptions" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -10001,7 +11046,9 @@ "WebhookController" ], "operationId": "updateWebhook", - "summary": "Update a webhook" + "summary": "Update a webhook", + "description": "Update a webhook", + "x-ms-summary": "Update a webhook" } }, "/webhooks/{webhookId}/example": { @@ -10015,7 +11062,9 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter webhookId", + "x-ms-summary": "Parameter webhookId" } ], "responses": { @@ -10030,7 +11079,9 @@ "WebhookController" ], "description": "Get example payload for webhook", - "operationId": "getTestWebhookPayloadForWebhook" + "operationId": "getTestWebhookPayloadForWebhook", + "summary": "Get example payload for webhook", + "x-ms-summary": "Get example payload for webhook" } }, "/webhooks/{webhookId}/headers": { @@ -10047,7 +11098,9 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter webhookId", + "x-ms-summary": "Parameter webhookId" }, { "in": "body", @@ -10055,7 +11108,9 @@ "required": true, "schema": { "$ref": "#/definitions/WebhookHeaders" - } + }, + "description": "Parameter body", + "x-ms-summary": "Parameter body" } ], "responses": { @@ -10070,7 +11125,9 @@ "WebhookController" ], "operationId": "updateWebhookHeaders", - "summary": "Update a webhook request headers" + "summary": "Update a webhook request headers", + "description": "Update a webhook request headers", + "x-ms-summary": "Update a webhook request headers" } }, "/webhooks/{webhookId}/results": { @@ -10085,7 +11142,8 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of webhook to get results for" }, { "default": 0, @@ -10094,7 +11152,8 @@ "in": "query", "name": "page", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page index in list pagination" }, { "default": 20, @@ -10103,7 +11162,8 @@ "in": "query", "name": "size", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Optional page size in list pagination" }, { "default": "ASC", @@ -10115,14 +11175,16 @@ "in": "query", "name": "sort", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional createdAt sort direction ASC or DESC" }, { "description": "Optional search filter", "in": "query", "name": "searchFilter", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Optional search filter" }, { "description": "Filter by created at after the given timestamp", @@ -10130,7 +11192,8 @@ "in": "query", "name": "since", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at after the given timestamp" }, { "description": "Filter by created at before the given timestamp", @@ -10138,14 +11201,16 @@ "in": "query", "name": "before", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by created at before the given timestamp" }, { "description": "Filter for unseen exceptions only", "in": "query", "name": "unseenOnly", "required": false, - "type": "boolean" + "type": "boolean", + "x-ms-summary": "Filter for unseen exceptions only" }, { "description": "Filter by result type", @@ -10158,7 +11223,8 @@ "in": "query", "name": "resultType", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by result type" }, { "description": "Filter by event name", @@ -10179,7 +11245,8 @@ "in": "query", "name": "eventName", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Filter by event name" }, { "description": "Minimum response status", @@ -10187,7 +11254,8 @@ "in": "query", "name": "minStatusCode", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Minimum response status" }, { "description": "Maximum response status", @@ -10195,7 +11263,8 @@ "in": "query", "name": "maxStatusCode", "required": false, - "type": "integer" + "type": "integer", + "x-ms-summary": "Maximum response status" }, { "description": "Inbox ID", @@ -10203,7 +11272,8 @@ "in": "query", "name": "inboxId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Inbox ID" }, { "description": "Sms ID", @@ -10211,7 +11281,8 @@ "in": "query", "name": "smsId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Sms ID" }, { "description": "Attachment ID", @@ -10219,7 +11290,8 @@ "in": "query", "name": "attachmentId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Attachment ID" }, { "description": "Email ID", @@ -10227,7 +11299,8 @@ "in": "query", "name": "emailId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Email ID" }, { "description": "Phone ID", @@ -10235,7 +11308,8 @@ "in": "query", "name": "phoneId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "Phone ID" }, { "description": "AI Transformer ID", @@ -10243,7 +11317,8 @@ "in": "query", "name": "aiTransformerId", "required": false, - "type": "string" + "type": "string", + "x-ms-summary": "AI Transformer ID" } ], "responses": { @@ -10258,7 +11333,9 @@ "WebhookController" ], "operationId": "getWebhookResults", - "summary": "Get a webhook results for a webhook" + "summary": "Get a webhook results for a webhook", + "description": "Get a webhook results for a webhook", + "x-ms-summary": "Get a webhook results for a webhook" } }, "/webhooks/{webhookId}/results/count": { @@ -10273,7 +11350,8 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of webhook to get results for" } ], "responses": { @@ -10288,7 +11366,9 @@ "WebhookController" ], "operationId": "getWebhookResultsCount", - "summary": "Get a webhook results count for a webhook" + "summary": "Get a webhook results count for a webhook", + "description": "Get a webhook results count for a webhook", + "x-ms-summary": "Get a webhook results count for a webhook" } }, "/webhooks/{webhookId}/schema": { @@ -10302,7 +11382,9 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter webhookId", + "x-ms-summary": "Parameter webhookId" } ], "responses": { @@ -10317,7 +11399,9 @@ "WebhookController" ], "description": "Get JSON Schema definition for webhook payload", - "operationId": "getJsonSchemaForWebhookPayload" + "operationId": "getJsonSchemaForWebhookPayload", + "summary": "Get JSON Schema definition for webhook payload", + "x-ms-summary": "Get JSON Schema definition for webhook payload" } }, "/webhooks/{webhookId}/test": { @@ -10331,7 +11415,9 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "description": "Parameter webhookId", + "x-ms-summary": "Parameter webhookId" } ], "responses": { @@ -10346,7 +11432,9 @@ "WebhookController" ], "operationId": "sendTestData", - "summary": "Send webhook test data" + "summary": "Send webhook test data", + "description": "Send webhook test data", + "x-ms-summary": "Send webhook test data" } }, "/webhooks/{webhookId}/wait": { @@ -10361,7 +11449,8 @@ "in": "path", "name": "webhookId", "required": true, - "type": "string" + "type": "string", + "x-ms-summary": "ID of webhook to get results for" }, { "description": "Expected result count", @@ -10370,7 +11459,8 @@ "maximum": 100, "name": "expectedCount", "required": true, - "type": "integer" + "type": "integer", + "x-ms-summary": "Expected result count" }, { "description": "Max time to wait in milliseconds", @@ -10380,7 +11470,8 @@ "minimum": 1000, "name": "timeout", "required": true, - "type": "integer" + "type": "integer", + "x-ms-summary": "Max time to wait in milliseconds" } ], "responses": { @@ -10398,7 +11489,9 @@ "WebhookController" ], "operationId": "waitForWebhookResults", - "summary": "Wait for webhook results for a webhook" + "summary": "Wait for webhook results for a webhook", + "description": "Wait for webhook results for a webhook", + "x-ms-summary": "Wait for webhook results for a webhook" } } }, @@ -27439,4 +28532,4 @@ "propertyValue": "IT Operations;Productivity" } ] -} +} \ No newline at end of file From 6fe7f6d4c88d959d895c3a0e062c0b8606fe064b Mon Sep 17 00:00:00 2001 From: jackmahoney Date: Thu, 20 Nov 2025 14:46:53 +1300 Subject: [PATCH 7/8] fix-swagger --- .../MailSlurp/apiDefinition.swagger.json | 484 +++++++++--------- 1 file changed, 234 insertions(+), 250 deletions(-) diff --git a/certified-connectors/MailSlurp/apiDefinition.swagger.json b/certified-connectors/MailSlurp/apiDefinition.swagger.json index 5f29d66559..e5ae7e9b33 100644 --- a/certified-connectors/MailSlurp/apiDefinition.swagger.json +++ b/certified-connectors/MailSlurp/apiDefinition.swagger.json @@ -3,7 +3,8 @@ "info": { "contact": { "email": "contact@mailslurp.dev", - "url": "https://www.mailslurp.com/contact/" + "url": "https://www.mailslurp.com/contact/", + "name": "Jack Mahoney" }, "description": "MailSlurp is an API for sending and receiving emails and SMS from dynamically allocated email addresses and phone numbers. It's designed for developers and QA teams to test applications, process inbound emails, send templated notifications, attachments, and more.\n\n## Resources\n\n- [Homepage](https://www.mailslurp.com)\n- Get an [API KEY](https://app.mailslurp.com/sign-up/)\n- Generated [SDK Clients](https://docs.mailslurp.com/)\n- [Examples](https://github.com/mailslurp/examples) repository", "license": { @@ -11,7 +12,7 @@ "url": "https://www.mailslurp.com" }, "title": "MailSlurp Email and SMS", - "version": "" + "version": "1.0.0" }, "host": "api.mailslurp.com", "basePath": "/", @@ -350,7 +351,8 @@ "name": "attachmentId", "required": true, "type": "string", - "x-ms-summary": "ID of attachment" + "x-ms-summary": "ID of attachment", + "x-ms-url-encoding": "single" } ], "responses": { @@ -377,7 +379,8 @@ "name": "attachmentId", "required": true, "type": "string", - "x-ms-summary": "ID of attachment" + "x-ms-summary": "ID of attachment", + "x-ms-url-encoding": "single" } ], "responses": { @@ -409,7 +412,8 @@ "name": "attachmentId", "required": true, "type": "string", - "x-ms-summary": "ID of attachment" + "x-ms-summary": "ID of attachment", + "x-ms-url-encoding": "single" } ], "responses": { @@ -429,39 +433,6 @@ "x-ms-summary": "Returns the specified attachment for a given email as a base 64 encoded string" } }, - "/attachments/{attachmentId}/bytes": { - "get": { - "produces": [ - "application/json" - ], - "parameters": [ - { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string", - "x-ms-summary": "ID of attachment" - } - ], - "responses": { - "default": { - "description": "default response", - "schema": { - "format": "byte", - "type": "string" - } - } - }, - "tags": [ - "AttachmentController" - ], - "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", - "operationId": "downloadAttachmentAsBytes", - "summary": "Download attachments. Get email attachment bytes. If you have trouble with byte", - "x-ms-summary": "Returns the specified attachment for a given email as a stream / array of bytes" - } - }, "/attachments/{attachmentId}/metadata": { "get": { "produces": [ @@ -474,7 +445,8 @@ "name": "attachmentId", "required": true, "type": "string", - "x-ms-summary": "ID of attachment" + "x-ms-summary": "ID of attachment", + "x-ms-url-encoding": "single" } ], "responses": { @@ -934,7 +906,8 @@ "required": true, "type": "string", "description": "Parameter id", - "x-ms-summary": "Parameter id" + "x-ms-summary": "Parameter id", + "x-ms-url-encoding": "single" } ], "responses": { @@ -1851,7 +1824,8 @@ "required": true, "type": "string", "description": "Parameter threadId", - "x-ms-summary": "Parameter threadId" + "x-ms-summary": "Parameter threadId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -1884,7 +1858,8 @@ "required": true, "type": "string", "description": "Parameter threadId", - "x-ms-summary": "Parameter threadId" + "x-ms-summary": "Parameter threadId", + "x-ms-url-encoding": "single" }, { "default": "ASC", @@ -1960,7 +1935,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email to delete" + "x-ms-summary": "ID of email to delete", + "x-ms-url-encoding": "single" } ], "responses": { @@ -1977,12 +1953,6 @@ "x-ms-summary": "Deletes an email and removes it from the inbox. Deleted emails cannot be recover" }, "get": { - "produces": [ - "application/json;charset=UTF-8", - "application/xml;charset=UTF-8", - "application/json; charset=UTF-8", - "application/xml; charset=UTF-8" - ], "parameters": [ { "format": "uuid", @@ -1991,7 +1961,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -2025,7 +1996,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of the email that should be replied to" + "x-ms-summary": "ID of the email that should be replied to", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -2068,7 +2040,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" } ], "responses": { @@ -2104,7 +2077,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" }, { "description": "ID of attachment", @@ -2112,7 +2086,8 @@ "name": "attachmentId", "required": true, "type": "string", - "x-ms-summary": "ID of attachment" + "x-ms-summary": "ID of attachment", + "x-ms-url-encoding": "single" }, { "description": "Can pass apiKey in url for this request if you wish to download the file in a browser. Content type will be set to original content type of the attachment file. This is so that browsers can download the file correctly.", @@ -2125,11 +2100,7 @@ ], "responses": { "default": { - "description": "default response", - "schema": { - "format": "byte", - "type": "string" - } + "description": "default response" } }, "tags": [ @@ -2138,7 +2109,7 @@ "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", "operationId": "downloadAttachment", "summary": "Get email attachment bytes. Returned as `octet-stream` with content type header", - "x-ms-summary": "Returns the specified attachment for a given email as a stream / array of bytes" + "x-ms-summary": "Returns the specified attachment for a given email as a stream array of bytes" } }, "/emails/{emailId}/attachments/{attachmentId}/base64": { @@ -2154,7 +2125,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" }, { "description": "ID of attachment", @@ -2162,7 +2134,8 @@ "name": "attachmentId", "required": true, "type": "string", - "x-ms-summary": "ID of attachment" + "x-ms-summary": "ID of attachment", + "x-ms-url-encoding": "single" } ], "responses": { @@ -2195,7 +2168,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" }, { "description": "ID of attachment", @@ -2203,7 +2177,8 @@ "name": "attachmentId", "required": true, "type": "string", - "x-ms-summary": "ID of attachment" + "x-ms-summary": "ID of attachment", + "x-ms-url-encoding": "single" } ], "responses": { @@ -2223,74 +2198,6 @@ "x-ms-summary": "Returns the metadata such as name and content-type for a given attachment and em" } }, - "/emails/{emailId}/body": { - "get": { - "produces": [ - "text/plain", - "text/html" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string", - "x-ms-summary": "ID of email" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns the specified email body for a given email as a string", - "operationId": "downloadBody", - "summary": "Get email body as string. Returned as `plain/text` with content type header", - "x-ms-summary": "Returns the specified email body for a given email as a string" - } - }, - "/emails/{emailId}/body-bytes": { - "get": { - "produces": [ - "application/json" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string", - "x-ms-summary": "ID of email" - } - ], - "responses": { - "default": { - "description": "default response", - "schema": { - "format": "byte", - "type": "string" - } - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns the specified email body for a given email as a stream / array of bytes.", - "operationId": "downloadBodyBytes", - "summary": "Get email body in bytes. Returned as `octet-stream` with content type header", - "x-ms-summary": "Returns the specified email body for a given email as a stream / array of bytes" - } - }, "/emails/{emailId}/check-email-body": { "post": { "produces": [ @@ -2304,7 +2211,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -2337,7 +2245,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -2373,7 +2282,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email to match against" + "x-ms-summary": "ID of email to match against", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -2405,12 +2315,6 @@ }, "/emails/{emailId}/contentPart": { "get": { - "produces": [ - "application/json;charset=UTF-8", - "application/xml;charset=UTF-8", - "application/json; charset=UTF-8", - "application/xml; charset=UTF-8" - ], "parameters": [ { "description": "ID of email to match against", @@ -2419,7 +2323,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email to match against" + "x-ms-summary": "ID of email to match against", + "x-ms-url-encoding": "single" }, { "description": "Content type", @@ -2477,7 +2382,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email to match against" + "x-ms-summary": "ID of email to match against", + "x-ms-url-encoding": "single" }, { "description": "Content type", @@ -2532,7 +2438,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email to set favourite state" + "x-ms-summary": "ID of email to set favourite state", + "x-ms-url-encoding": "single" }, { "in": "query", @@ -2573,7 +2480,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -2605,10 +2513,6 @@ }, "/emails/{emailId}/html": { "get": { - "produces": [ - "text/html;charset=utf-8", - "text/html" - ], "parameters": [ { "format": "uuid", @@ -2617,7 +2521,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" }, { "default": false, @@ -2659,7 +2564,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" }, { "default": false, @@ -2701,7 +2607,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email to perform HTML query on" + "x-ms-summary": "ID of email to perform HTML query on", + "x-ms-url-encoding": "single" }, { "description": "HTML selector to search for. Uses JQuery/JSoup/CSS style selector like '.my-div' to match content. See https://jsoup.org/apidocs/org/jsoup/select/Selector.html for more information.", @@ -2709,7 +2616,7 @@ "name": "htmlSelector", "required": true, "type": "string", - "x-ms-summary": "HTML selector to search for. Uses JQuery/JSoup/CSS style selector like '.my-div" + "x-ms-summary": "HTML selector to search for. Uses JQuery JSoup CSS style selector like '.my-div" } ], "responses": { @@ -2745,7 +2652,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -2771,7 +2679,7 @@ ], "description": "Apply RFC3501 section-2.3.2 IMAP flag operations on an email", "operationId": "applyImapFlagOperation", - "summary": "Set IMAP flags associated with a message. Only supports '\\Seen' flag", + "summary": "Set IMAP flags associated with a message", "x-ms-summary": "Apply RFC3501 section-2.3.2 IMAP flag operations on an email" } }, @@ -2788,7 +2696,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email to fetch text for" + "x-ms-summary": "ID of email to fetch text for", + "x-ms-url-encoding": "single" }, { "description": "Optional HTML query selector for links", @@ -2826,7 +2735,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" } ], "responses": { @@ -2856,7 +2766,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" } ], "responses": { @@ -2889,7 +2800,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" }, { "default": true, @@ -2934,7 +2846,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -2977,7 +2890,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -3017,7 +2931,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" }, { "in": "query", @@ -3058,7 +2973,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email to fetch text for" + "x-ms-summary": "ID of email to fetch text for", + "x-ms-url-encoding": "single" }, { "description": "Decode HTML entities", @@ -3107,7 +3023,8 @@ "required": true, "type": "string", "description": "Parameter emailId", - "x-ms-summary": "Parameter emailId" + "x-ms-summary": "Parameter emailId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -3124,7 +3041,7 @@ "description": "Get a list of URLs for email content as text/html or raw SMTP message for viewing the message in a browser.", "operationId": "getEmailPreviewURLs", "summary": "Get email URLs for viewing in browser or downloading", - "x-ms-summary": "Get a list of URLs for email content as text/html or raw SMTP message for viewin" + "x-ms-summary": "Get a list of URLs for email content as text html or raw SMTP message for viewin" } }, "/emails/{emailId}/validate": { @@ -3140,7 +3057,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" } ], "responses": { @@ -4441,7 +4359,8 @@ "name": "plusAddressId", "required": true, "type": "string", - "x-ms-summary": "ID of the plus address you want to fetch" + "x-ms-summary": "ID of the plus address you want to fetch", + "x-ms-url-encoding": "single" }, { "description": "ID of the inbox you want to filter for", @@ -4567,7 +4486,8 @@ "required": true, "type": "string", "description": "Parameter jobId", - "x-ms-summary": "Parameter jobId" + "x-ms-summary": "Parameter jobId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -4598,7 +4518,8 @@ "required": true, "type": "string", "description": "Parameter jobId", - "x-ms-summary": "Parameter jobId" + "x-ms-summary": "Parameter jobId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -5002,7 +4923,8 @@ "required": true, "type": "string", "description": "Parameter inboxId", - "x-ms-summary": "Parameter inboxId" + "x-ms-summary": "Parameter inboxId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -5030,7 +4952,8 @@ "required": true, "type": "string", "description": "Parameter inboxId", - "x-ms-summary": "Parameter inboxId" + "x-ms-summary": "Parameter inboxId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -5064,7 +4987,8 @@ "required": true, "type": "string", "description": "Parameter inboxId", - "x-ms-summary": "Parameter inboxId" + "x-ms-summary": "Parameter inboxId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -5105,7 +5029,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "ID of the inbox you want to send the email from" + "x-ms-summary": "ID of the inbox you want to send the email from", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -5129,7 +5054,7 @@ "description": "Send an email from an inbox's email address. \nThe 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`.", "operationId": "sendEmail", "summary": "Send Email", - "x-ms-summary": "Send an email from an inbox's email address. \nThe request body should contain th" + "x-ms-summary": "Send an email from an inbox's email address. The request body should contain th" } }, "/inboxes/{inboxId}/confirm": { @@ -5148,7 +5073,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "ID of the inbox you want to send the email from" + "x-ms-summary": "ID of the inbox you want to send the email from", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -5188,7 +5114,8 @@ "required": true, "type": "string", "description": "Parameter inboxId", - "x-ms-summary": "Parameter inboxId" + "x-ms-summary": "Parameter inboxId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -5218,7 +5145,8 @@ "required": true, "type": "string", "description": "Parameter inboxId", - "x-ms-summary": "Parameter inboxId" + "x-ms-summary": "Parameter inboxId", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -5303,7 +5231,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "Id of inbox that emails belongs to" + "x-ms-summary": "Id of inbox that emails belongs to", + "x-ms-url-encoding": "single" }, { "description": "Alias for limit. Assessed first before assessing any passed limit.", @@ -5424,7 +5353,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "Id of inbox that emails belongs to" + "x-ms-summary": "Id of inbox that emails belongs to", + "x-ms-url-encoding": "single" } ], "responses": { @@ -5508,7 +5438,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "Id of inbox that emails belongs to" + "x-ms-summary": "Id of inbox that emails belongs to", + "x-ms-url-encoding": "single" }, { "description": "Sync connectors before fetching emails", @@ -5552,7 +5483,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "ID of inbox to set favourite state" + "x-ms-summary": "ID of inbox to set favourite state", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -5628,7 +5560,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "ID of the inbox you want to send the email from" + "x-ms-summary": "ID of the inbox you want to send the email from", + "x-ms-url-encoding": "single" } ], "responses": { @@ -5702,7 +5635,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "ID of the inbox you want to send the email from" + "x-ms-summary": "ID of the inbox you want to send the email from", + "x-ms-url-encoding": "single" }, { "description": "Optional filter by created after given date time", @@ -5753,7 +5687,8 @@ "name": "plusAddressId", "required": true, "type": "string", - "x-ms-summary": "ID of the plus address you want to fetch" + "x-ms-summary": "ID of the plus address you want to fetch", + "x-ms-url-encoding": "single" }, { "description": "ID of the inbox you want to fetch", @@ -5762,7 +5697,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "ID of the inbox you want to fetch" + "x-ms-summary": "ID of the inbox you want to fetch", + "x-ms-url-encoding": "single" } ], "responses": { @@ -5795,7 +5731,8 @@ "name": "plusAddressId", "required": true, "type": "string", - "x-ms-summary": "The plus address ID to fetch emails for" + "x-ms-summary": "The plus address ID to fetch emails for", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -5837,7 +5774,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "ID of the inbox you want to send the email from" + "x-ms-summary": "ID of the inbox you want to send the email from", + "x-ms-url-encoding": "single" }, { "description": "Optional filter by created after given date time", @@ -5888,7 +5826,8 @@ "required": true, "type": "string", "description": "Parameter inboxId", - "x-ms-summary": "Parameter inboxId" + "x-ms-summary": "Parameter inboxId", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -5981,7 +5920,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "inboxId" + "x-ms-summary": "inboxId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -6024,7 +5964,8 @@ "required": true, "type": "string", "description": "Parameter inboxId", - "x-ms-summary": "Parameter inboxId" + "x-ms-summary": "Parameter inboxId", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -6105,7 +6046,8 @@ "required": true, "type": "string", "description": "Parameter inboxId", - "x-ms-summary": "Parameter inboxId" + "x-ms-summary": "Parameter inboxId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -6135,7 +6077,8 @@ "required": true, "type": "string", "description": "Parameter inboxId", - "x-ms-summary": "Parameter inboxId" + "x-ms-summary": "Parameter inboxId", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -6228,7 +6171,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "ID of the inbox you want to send the email from" + "x-ms-summary": "ID of the inbox you want to send the email from", + "x-ms-url-encoding": "single" }, { "description": "Validate before adding to queue", @@ -6279,7 +6223,8 @@ "name": "inboxId", "required": true, "type": "string", - "x-ms-summary": "ID of the inbox you want to send the email from" + "x-ms-summary": "ID of the inbox you want to send the email from", + "x-ms-url-encoding": "single" }, { "description": "Sending timestamp", @@ -6491,7 +6436,7 @@ "description": "Create a virtual TOTP device for a given OTP Auth URL such as otpauth://totp/MyApp:alice@example.com?secret=ABC123&issuer=MyApp&period=30&digits=6&algorithm=SHA1. You can provider overrides in the options for each component of the URL.", "operationId": "createTotpDeviceForOtpAuthUrl", "summary": "Create a TOTP device from an OTP Auth URL", - "x-ms-summary": "Create a virtual TOTP device for a given OTP Auth URL such as otpauth://totp/MyA" + "x-ms-summary": "Create a virtual TOTP device for a given OTP Auth URL such as otpauth: totp MyA" } }, "/mfa/totp/device/{id}": { @@ -6507,7 +6452,8 @@ "required": true, "type": "string", "description": "Parameter id", - "x-ms-summary": "Parameter id" + "x-ms-summary": "Parameter id", + "x-ms-url-encoding": "single" } ], "responses": { @@ -6561,7 +6507,8 @@ "name": "id", "required": true, "type": "string", - "x-ms-summary": "ID of the TOTP device to get the code for" + "x-ms-summary": "ID of the TOTP device to get the code for", + "x-ms-url-encoding": "single" } ], "responses": { @@ -7067,7 +7014,8 @@ "required": true, "type": "string", "description": "Parameter phoneId", - "x-ms-summary": "Parameter phoneId" + "x-ms-summary": "Parameter phoneId", + "x-ms-url-encoding": "single" }, { "description": "Filter by created at after the given timestamp", @@ -7165,7 +7113,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -7193,7 +7142,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -7227,7 +7177,8 @@ "name": "phoneNumberId", "required": true, "type": "string", - "x-ms-summary": "ID of phone to set favourite state" + "x-ms-summary": "ID of phone to set favourite state", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -7273,7 +7224,8 @@ "name": "phoneNumberId", "required": true, "type": "string", - "x-ms-summary": "ID of phone to set favourite state" + "x-ms-summary": "ID of phone to set favourite state", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -7316,7 +7268,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -7369,7 +7322,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" }, { "in": "path", @@ -7377,7 +7331,8 @@ "required": true, "type": "string", "description": "Parameter otherNumber", - "x-ms-summary": "Parameter otherNumber" + "x-ms-summary": "Parameter otherNumber", + "x-ms-url-encoding": "single" } ], "responses": { @@ -7408,7 +7363,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" }, { "in": "path", @@ -7416,7 +7372,8 @@ "required": true, "type": "string", "description": "Parameter otherNumber", - "x-ms-summary": "Parameter otherNumber" + "x-ms-summary": "Parameter otherNumber", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -7469,7 +7426,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -7581,7 +7539,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -7624,7 +7583,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -7725,7 +7685,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -7768,7 +7729,8 @@ "required": true, "type": "string", "description": "Parameter phoneNumberId", - "x-ms-summary": "Parameter phoneNumberId" + "x-ms-summary": "Parameter phoneNumberId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -8192,7 +8154,8 @@ "required": true, "type": "string", "description": "Parameter deliveryId", - "x-ms-summary": "Parameter deliveryId" + "x-ms-summary": "Parameter deliveryId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -8472,7 +8435,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" } ], "responses": { @@ -8502,7 +8466,8 @@ "name": "emailId", "required": true, "type": "string", - "x-ms-summary": "ID of email" + "x-ms-summary": "ID of email", + "x-ms-url-encoding": "single" } ], "responses": { @@ -8532,7 +8497,8 @@ "required": true, "type": "string", "description": "Parameter id", - "x-ms-summary": "Parameter id" + "x-ms-summary": "Parameter id", + "x-ms-url-encoding": "single" } ], "responses": { @@ -8560,7 +8526,8 @@ "required": true, "type": "string", "description": "Parameter id", - "x-ms-summary": "Parameter id" + "x-ms-summary": "Parameter id", + "x-ms-url-encoding": "single" } ], "responses": { @@ -8582,9 +8549,6 @@ }, "/sent/{id}/html": { "get": { - "produces": [ - "text/html" - ], "parameters": [ { "format": "uuid", @@ -8593,7 +8557,8 @@ "required": true, "type": "string", "description": "Parameter id", - "x-ms-summary": "Parameter id" + "x-ms-summary": "Parameter id", + "x-ms-url-encoding": "single" } ], "responses": { @@ -8626,7 +8591,8 @@ "required": true, "type": "string", "description": "Parameter id", - "x-ms-summary": "Parameter id" + "x-ms-summary": "Parameter id", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -8718,7 +8684,8 @@ "required": true, "type": "string", "description": "Parameter id", - "x-ms-summary": "Parameter id" + "x-ms-summary": "Parameter id", + "x-ms-url-encoding": "single" } ], "responses": { @@ -8735,7 +8702,7 @@ "description": "Get a list of URLs for sent email content as text/html or raw SMTP message for viewing the message in a browser.", "operationId": "getSentEmailPreviewURLs", "summary": "Get sent email URL for viewing in browser or downloading", - "x-ms-summary": "Get a list of URLs for sent email content as text/html or raw SMTP message for v" + "x-ms-summary": "Get a list of URLs for sent email content as text html or raw SMTP message for v" } }, "/sent/{sentId}/delivery-status": { @@ -8751,7 +8718,8 @@ "name": "sentId", "required": true, "type": "string", - "x-ms-summary": "ID of the sent email that you want to get the delivery status of. Sent email obj" + "x-ms-summary": "ID of the sent email that you want to get the delivery status of. Sent email obj", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -9189,7 +9157,8 @@ "required": true, "type": "string", "description": "Parameter sentSmsId", - "x-ms-summary": "Parameter sentSmsId" + "x-ms-summary": "Parameter sentSmsId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -9217,7 +9186,8 @@ "required": true, "type": "string", "description": "Parameter sentSmsId", - "x-ms-summary": "Parameter sentSmsId" + "x-ms-summary": "Parameter sentSmsId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -9270,7 +9240,8 @@ "required": true, "type": "string", "description": "Parameter smsId", - "x-ms-summary": "Parameter smsId" + "x-ms-summary": "Parameter smsId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -9298,7 +9269,8 @@ "required": true, "type": "string", "description": "Parameter smsId", - "x-ms-summary": "Parameter smsId" + "x-ms-summary": "Parameter smsId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -9331,7 +9303,8 @@ "name": "smsId", "required": true, "type": "string", - "x-ms-summary": "ID of SMS to set favourite state" + "x-ms-summary": "ID of SMS to set favourite state", + "x-ms-url-encoding": "single" }, { "in": "query", @@ -9372,7 +9345,8 @@ "required": true, "type": "string", "description": "Parameter smsId", - "x-ms-summary": "Parameter smsId" + "x-ms-summary": "Parameter smsId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -9406,7 +9380,8 @@ "required": true, "type": "string", "description": "Parameter smsId", - "x-ms-summary": "Parameter smsId" + "x-ms-summary": "Parameter smsId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -10824,7 +10799,8 @@ "name": "webhookResultId", "required": true, "type": "string", - "x-ms-summary": "Webhook Result ID" + "x-ms-summary": "Webhook Result ID", + "x-ms-url-encoding": "single" } ], "responses": { @@ -10857,7 +10833,8 @@ "name": "webhookResultId", "required": true, "type": "string", - "x-ms-summary": "Webhook Result ID" + "x-ms-summary": "Webhook Result ID", + "x-ms-url-encoding": "single" } ], "responses": { @@ -10924,7 +10901,8 @@ "required": true, "type": "string", "description": "Parameter webhookId", - "x-ms-summary": "Parameter webhookId" + "x-ms-summary": "Parameter webhookId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -10952,7 +10930,8 @@ "required": true, "type": "string", "description": "Parameter webhookId", - "x-ms-summary": "Parameter webhookId" + "x-ms-summary": "Parameter webhookId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -10986,7 +10965,8 @@ "required": true, "type": "string", "description": "Parameter webhookId", - "x-ms-summary": "Parameter webhookId" + "x-ms-summary": "Parameter webhookId", + "x-ms-url-encoding": "single" }, { "format": "uuid", @@ -11064,7 +11044,8 @@ "required": true, "type": "string", "description": "Parameter webhookId", - "x-ms-summary": "Parameter webhookId" + "x-ms-summary": "Parameter webhookId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -11100,7 +11081,8 @@ "required": true, "type": "string", "description": "Parameter webhookId", - "x-ms-summary": "Parameter webhookId" + "x-ms-summary": "Parameter webhookId", + "x-ms-url-encoding": "single" }, { "in": "body", @@ -11143,7 +11125,8 @@ "name": "webhookId", "required": true, "type": "string", - "x-ms-summary": "ID of webhook to get results for" + "x-ms-summary": "ID of webhook to get results for", + "x-ms-url-encoding": "single" }, { "default": 0, @@ -11351,7 +11334,8 @@ "name": "webhookId", "required": true, "type": "string", - "x-ms-summary": "ID of webhook to get results for" + "x-ms-summary": "ID of webhook to get results for", + "x-ms-url-encoding": "single" } ], "responses": { @@ -11384,7 +11368,8 @@ "required": true, "type": "string", "description": "Parameter webhookId", - "x-ms-summary": "Parameter webhookId" + "x-ms-summary": "Parameter webhookId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -11417,7 +11402,8 @@ "required": true, "type": "string", "description": "Parameter webhookId", - "x-ms-summary": "Parameter webhookId" + "x-ms-summary": "Parameter webhookId", + "x-ms-url-encoding": "single" } ], "responses": { @@ -11450,7 +11436,8 @@ "name": "webhookId", "required": true, "type": "string", - "x-ms-summary": "ID of webhook to get results for" + "x-ms-summary": "ID of webhook to get results for", + "x-ms-url-encoding": "single" }, { "description": "Expected result count", @@ -16039,8 +16026,7 @@ ], "type": "string" }, - "type": "array", - "uniqueItems": true + "type": "array" }, "title": { "type": "string" @@ -16115,8 +16101,7 @@ "items": { "type": "string" }, - "type": "array", - "uniqueItems": true + "type": "array" }, "status": { "enum": [ @@ -16321,8 +16306,7 @@ ], "type": "string" }, - "type": "array", - "uniqueItems": true + "type": "array" }, "featureOverviews": { "items": { From d1b775bcb6d37f593366d436de35f86063fa1756 Mon Sep 17 00:00:00 2001 From: jackmahoney Date: Thu, 20 Nov 2025 19:37:14 +1300 Subject: [PATCH 8/8] fix-attachments --- .../MailSlurp/apiDefinition.swagger.json | 48 ------------------- 1 file changed, 48 deletions(-) diff --git a/certified-connectors/MailSlurp/apiDefinition.swagger.json b/certified-connectors/MailSlurp/apiDefinition.swagger.json index e5ae7e9b33..2e2d513cc1 100644 --- a/certified-connectors/MailSlurp/apiDefinition.swagger.json +++ b/certified-connectors/MailSlurp/apiDefinition.swagger.json @@ -2064,54 +2064,6 @@ "x-ms-summary": "Returns an array of attachment metadata such as name and content-type for a give" } }, - "/emails/{emailId}/attachments/{attachmentId}": { - "get": { - "produces": [ - "application/json" - ], - "parameters": [ - { - "description": "ID of email", - "format": "uuid", - "in": "path", - "name": "emailId", - "required": true, - "type": "string", - "x-ms-summary": "ID of email", - "x-ms-url-encoding": "single" - }, - { - "description": "ID of attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "type": "string", - "x-ms-summary": "ID of attachment", - "x-ms-url-encoding": "single" - }, - { - "description": "Can pass apiKey in url for this request if you wish to download the file in a browser. Content type will be set to original content type of the attachment file. This is so that browsers can download the file correctly.", - "in": "query", - "name": "apiKey", - "required": false, - "type": "string", - "x-ms-summary": "Can pass apiKey in url for this request if you wish to download the file in a br" - } - ], - "responses": { - "default": { - "description": "default response" - } - }, - "tags": [ - "EmailController" - ], - "description": "Returns the specified attachment for a given email as a stream / array of bytes. You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.", - "operationId": "downloadAttachment", - "summary": "Get email attachment bytes. Returned as `octet-stream` with content type header", - "x-ms-summary": "Returns the specified attachment for a given email as a stream array of bytes" - } - }, "/emails/{emailId}/attachments/{attachmentId}/base64": { "get": { "produces": [