{
  "x-generator": "NSwag v14.6.1.0 (NJsonSchema v11.5.1.0 (Newtonsoft.Json v13.0.0.0))",
  "openapi": "3.0.0",
  "info": {
    "title": "inMobile REST API",
    "description": "\n# Introduction\n\nThis document is a technical description of our REST API used for external systems to send SMS and Email messages, retrieve SMS statuses and Email events, and maintain lists and blacklists.\n\nIn order to call our API, you need an api key. Log in to your account at <a href=\"https://app.inmobile.com/\" target=\"_blank\" rel=\"noopener noreferrer\">https://app.inmobile.com/</a>, go to the \"API\" menu section and your api key will be available here.\n\nNOTE: It is required for clients to support tls 1.2 or higher.\n\n# Firewall opening\n\nThis is relevant for status callbacks and incoming SMS messages.\n\nYou can expect callbacks from one of the following IP ranges:\n\n* 46.36.205.80/28\n* 185.221.37.96/28\n\nThese are also the IP addresses which will be used for api.inmobile.com and app.inmobile.com - ensure access to these 2 ranges are opened in your firewall.\n\n# Status page\n\nA status page is available at <a href=\"https://status.inmobile.com/\" target=\"_blank\" rel=\"noopener noreferrer\">https://status.inmobile.com/</a>. You can subscribe to updates by clicking \"Get updates\", selecting \"Subscribe to specific components\", and choosing the components relevant to your integration, such as \"inMobile API\". When we replace old SSL certificates, updates are announced on the status page to subscribers of the \"SSL certificate\" component.\n\n# SMS\n\nSMS endpoints allow you to send text messages, retrieve message statuses, receive status callbacks, and handle incoming SMS messages. Lists and blacklists can also be maintained through the API to help manage recipients and opt-outs.\n\n# RCS\n\nTo use RCS, an RCS agent is required. You can set up and manage RCS agents by logging in to <a href=\"https://app.inmobile.com/\" target=\"_blank\" rel=\"noopener noreferrer\">https://app.inmobile.com/</a> and navigating to Settings -> RCS agents.\n\nRCS depends on a third party, Google, which means breaking changes can occur. We will do everything we can to avoid breaking changes, but if they become necessary, we will inform you ahead of time.\n\nYou can sign up for API updates on <a href=\"https://status.inmobile.com/\" target=\"_blank\" rel=\"noopener noreferrer\">https://status.inmobile.com/</a>. Click \"Get updates\", check \"Subscribe to specific components\", and make sure \"inMobile API\" is checked.\n\n## Message traffic type\nThe message traffic type is used to indicate the type of message being sent. The traffic type must be set to a value supported by the RCS agents use case.\n| Traffic type    | Description                                                                                                                                                                | Agent use case                             |\n|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------|\n| Authentication  | For authentication messages                                                                                                                                                | OTP                                        |\n| Transaction     | For messages about a recipient's existing services or products, such as payment receipts or order confirmations.                                                           | Transactional, MultiUse                   |\n| Promotion       | For promotional messages, like offers, discounts and announcements.                                                                                                        | Promotional, MultiUse                     |\n| ServiceRequest  | For updates and information about services, that the recipient has requested.                                                                                              | OTP, Transactional, Promotional, MultiUse |\n| Acknowledgement | For messages to acknowledge a recipient's action. Specifically, unsubscribe requests. Used to confirm to the recipient that the request is received and is being processed.  | OTP, Transactional, Promotional, MultiUse |\n\nIf no message traffic type is specified, a default value is used, based on the agent use case.\n| Agent use case | Default message traffic type  |\n|----------------|-------------------------------|\n| OTP            | Authentication                |\n| Transactional  | Transaction                   |\n| Promotional    | Promotion                     |\n| MultiUse      | MessageTrafficTypeUnspecified |\n\n<b>MultiUse agents</b> do not have a default message traffic type. If no message traffic type is specified, the message will be rejected.\n\n# Email\n\nEmail endpoints allow you to send email messages through the API. Email events can be retrieved with the GET email events endpoint to keep your own system updated as messages are processed and delivered.\n\n# Webhook request signatures\n\nWebhook requests can be signed so you can verify that the request was sent by InMobile and that the request body was not changed in transit.\n\nYou can set up and view webhook signing key by logging in to your account at <a href=\"https://app.inmobile.com\" target=\"_blank\" rel=\"noopener noreferrer\">https://app.inmobile.com</a>, go to the \"Settings\" menu section, select the \"Security\" link and then the \"Webhook signing keys\" tab.\n\nThe signature headers are only added when your account has at least one webhook signing key. If no keys have been created, webhook requests are sent without these headers.\n\nSigned webhook requests include these HTTP headers:\n\n* `X-Inmobile-Signature-Version` - signature format version. The current version is `1`.\n* `X-Inmobile-Request-Timestamp` - UTC timestamp formatted as `yyyy-MM-dd'T'HH:mm:ss'Z'`.\n* `X-Inmobile-Request-Id` - unique request id used as part of the signed payload.\n* `X-Inmobile-Signature-KeyId` - id of the public key that should be used to validate the signature.\n* `X-Inmobile-Signature` - Base64 encoded ECDSA signature.\n\nTo validate a signed webhook request:\n\n1. Find the public key matching `X-Inmobile-Signature-KeyId` in the webhook signing keys page.\n2. Build the signed payload by concatenating `X-Inmobile-Request-Id`, `X-Inmobile-Request-Timestamp`, and the raw request body exactly as received.\n3. Validate `X-Inmobile-Signature` against that payload with the public key using ECDSA P-256 with SHA-256.\n\nWe recommend rejecting requests with an invalid signature, requests where `X-Inmobile-Request-Timestamp` is older than 5 minutes, and duplicate request ids to protect against replay attacks.\n\nBelow are examples of how to validate webhook requests in different languages.\nThe examples assume that `publicKeyBase64` is the public key from the webhook signing keys page, and that `rawBody` is the unmodified request body exactly as received.\n\n## .NET\n\nMinimum version: .NET 5 with C# 8.\n\n```csharp\nusing System.Globalization;\nusing System.Security.Cryptography;\nusing System.Text;\n\nstatic bool IsValidInmobileWebhook(IDictionary<string, string> headers, string rawBody, string publicKeyBase64)\n{\n    var timestampText = headers[\"X-Inmobile-Request-Timestamp\"];\n    if (!DateTimeOffset.TryParseExact(\n            timestampText,\n            \"yyyy-MM-dd'T'HH:mm:ss'Z'\",\n            CultureInfo.InvariantCulture,\n            DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal,\n            out var timestamp))\n        return false;\n\n    if (DateTimeOffset.UtcNow - timestamp > TimeSpan.FromMinutes(5))\n        return false;\n\n    var payload = headers[\"X-Inmobile-Request-Id\"] + timestampText + rawBody;\n    var signature = Convert.FromBase64String(headers[\"X-Inmobile-Signature\"]);\n\n    using var publicKey = ECDsa.Create();\n    publicKey.ImportSubjectPublicKeyInfo(Convert.FromBase64String(publicKeyBase64), out _);\n\n    return publicKey.VerifyData(\n        Encoding.UTF8.GetBytes(payload),\n        signature,\n        HashAlgorithmName.SHA256,\n        DSASignatureFormat.Rfc3279DerSequence);\n}\n```\n\n## PHP\n\nMinimum version: PHP 7.0 with the OpenSSL extension enabled.\n\n```php\nfunction isValidInmobileWebhook(array $headers, string $rawBody, string $publicKeyBase64): bool\n{\n    $timestampText = $headers['X-Inmobile-Request-Timestamp'];\n    $timestamp = DateTimeImmutable::createFromFormat(\n        '!Y-m-d\\TH:i:s\\Z',\n        $timestampText,\n        new DateTimeZone('UTC'));\n\n    if ($timestamp === false) {\n        return false;\n    }\n\n    if ((time() - $timestamp->getTimestamp()) > 300) {\n        return false;\n    }\n\n    $payload = $headers['X-Inmobile-Request-Id'] . $timestampText . $rawBody;\n    $publicKeyPem = \"-----BEGIN PUBLIC KEY-----\\n\"\n        . chunk_split($publicKeyBase64, 64, \"\\n\")\n        . \"-----END PUBLIC KEY-----\\n\";\n\n    return openssl_verify(\n        $payload,\n        base64_decode($headers['X-Inmobile-Signature'], true),\n        $publicKeyPem,\n        OPENSSL_ALGO_SHA256) === 1;\n}\n```\n\n## Python\n\nMinimum version: Python 3.9 with the `cryptography` package installed.\n\n```python\nfrom base64 import b64decode\nfrom datetime import datetime, timezone, timedelta\nfrom cryptography.exceptions import InvalidSignature\nfrom cryptography.hazmat.primitives import hashes, serialization\nfrom cryptography.hazmat.primitives.asymmetric import ec\n\ndef is_valid_inmobile_webhook(headers: dict[str, str], raw_body: bytes, public_key_base64: str) -> bool:\n    timestamp_text = headers[\"X-Inmobile-Request-Timestamp\"]\n    try:\n        timestamp = datetime.strptime(timestamp_text, \"%Y-%m-%dT%H:%M:%SZ\").replace(tzinfo=timezone.utc)\n    except ValueError:\n        return False\n\n    if datetime.now(timezone.utc) - timestamp > timedelta(minutes=5):\n        return False\n\n    payload = headers[\"X-Inmobile-Request-Id\"].encode() + timestamp_text.encode() + raw_body\n    public_key = serialization.load_der_public_key(b64decode(public_key_base64))\n\n    try:\n        public_key.verify(\n            b64decode(headers[\"X-Inmobile-Signature\"]),\n            payload,\n            ec.ECDSA(hashes.SHA256()))\n        return True\n    except InvalidSignature:\n        return False\n```\n\n## Node.js\n\nMinimum version: Node.js 14.13.1 using ES modules.\n\n```js\nimport { createPublicKey, createVerify } from 'node:crypto';\n\nfunction isValidInmobileWebhook(headers, rawBody, publicKeyBase64) {\n  const timestampText = headers['x-inmobile-request-timestamp'];\n  const timestamp = new Date(timestampText);\n\n  if (Number.isNaN(timestamp.getTime())) {\n    return false;\n  }\n\n  if ((Date.now() - timestamp.getTime()) > 5 * 60 * 1000) {\n    return false;\n  }\n\n  const bodyBuffer = Buffer.isBuffer(rawBody) ? rawBody : Buffer.from(rawBody, 'utf8');\n  const payload = Buffer.concat([\n    Buffer.from(headers['x-inmobile-request-id'], 'utf8'),\n    Buffer.from(timestampText, 'utf8'),\n    bodyBuffer\n  ]);\n  const publicKey = createPublicKey({\n    key: Buffer.from(publicKeyBase64, 'base64'),\n    format: 'der',\n    type: 'spki'\n  });\n\n  const verifier = createVerify('SHA256');\n  verifier.update(payload);\n  verifier.end();\n\n  return verifier.verify(publicKey, Buffer.from(headers['x-inmobile-signature'], 'base64'));\n}\n```\n",
    "version": "version 4"
  },
  "servers": [
    {
      "url": "https://api.inmobile.com"
    }
  ],
  "paths": {
    "/v4/blacklist": {
      "get": {
        "tags": [
          "Blacklist"
        ],
        "summary": "Get all blacklists",
        "description": "This response is a paged result and will contain the property '_links.next'.\nIf there are more pages, the next page in the paged result will be provided here.",
        "operationId": "Blacklist_GetAll",
        "parameters": [
          {
            "name": "pageLimit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of blacklists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPageModelOfBlacklistOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Blacklist"
        ],
        "summary": "Create an entry in blacklist",
        "operationId": "Blacklist_Create",
        "requestBody": {
          "x-name": "blacklist",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BlacklistCreateApiModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "The created blacklist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlacklistOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/blacklist/{blackListId}": {
      "get": {
        "tags": [
          "Blacklist"
        ],
        "summary": "Get entry by id",
        "operationId": "Blacklist_Get",
        "parameters": [
          {
            "name": "blackListId",
            "in": "path",
            "required": true,
            "description": "Id of the blacklist",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A blacklist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlacklistOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Blacklist"
        ],
        "summary": "Delete entry by id",
        "operationId": "Blacklist_Delete",
        "parameters": [
          {
            "name": "blackListId",
            "in": "path",
            "required": true,
            "description": "Id of the blacklist",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/blacklist/ByNumber": {
      "get": {
        "tags": [
          "Blacklist"
        ],
        "summary": "Get entry by number",
        "operationId": "Blacklist_GetByNumber",
        "parameters": [
          {
            "name": "countryCode",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "x-position": 1
          },
          {
            "name": "phoneNumber",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlacklistOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Blacklist"
        ],
        "summary": "Delete entry by number",
        "operationId": "Blacklist_DeleteByNumber",
        "parameters": [
          {
            "name": "countryCode",
            "in": "query",
            "description": "The country code of the phone number",
            "schema": {
              "type": "string"
            },
            "x-position": 1
          },
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "The phone number to delete from the blacklist",
            "schema": {
              "type": "string"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/email/outgoing/sendusingtemplate": {
      "post": {
        "tags": [
          "Email - Outgoing"
        ],
        "summary": "Send an email using a template",
        "operationId": "EmailOutgoing_SendUsingTemplate",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailOutgoingTemplatePostRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailOutgoingTemplatePostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/email/outgoing": {
      "post": {
        "tags": [
          "Email - Outgoing"
        ],
        "summary": "Send an email",
        "operationId": "EmailOutgoing_Send",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailOutgoingPostRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailOutgoingBasePostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/email/outgoing/events": {
      "get": {
        "tags": [
          "Email - Outgoing"
        ],
        "summary": "Get email events",
        "description": "Each event will only be returned once. Once called, the event has been removed from our side and cannot be retrieved again using this method.",
        "operationId": "EmailOutgoing_GetEvents",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "How many events to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of email events",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailEventListModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/email/templates": {
      "get": {
        "tags": [
          "Email - Templates"
        ],
        "summary": "Get all email templates",
        "description": "This response is a paged result and will contain the property '_links.next'.\nIf there are more pages, the next page in the paged result will be provided here.",
        "operationId": "EmailTemplates_GetAllEmailTemplates",
        "parameters": [
          {
            "name": "pageLimit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of email templates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPageModelOfEmailTemplateOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/email/templates/{id}": {
      "get": {
        "tags": [
          "Email - Templates"
        ],
        "summary": "Get email template by id",
        "operationId": "EmailTemplates_GetEmailTemplate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "An email template",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailTemplateOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/folders/{folderId}/files": {
      "post": {
        "tags": [
          "Files"
        ],
        "summary": "Upload file",
        "description": "A request must be less than 100mb.",
        "operationId": "Files_UploadJson",
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "required": true,
            "description": "The ID of the folder to upload the file to",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "request",
          "description": "The file upload request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadApiFileModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "An object that contains the ID and URL of the uploaded resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadApiFileResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "507": {
            "description": "Insufficient storage",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Files"
        ],
        "summary": "Get all files in a folder",
        "description": "This response is a paged result and will contain the property '_links.next'.\nIf there are more pages, the next page in the paged result will be provided here.",
        "operationId": "Files_GetAll",
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "required": true,
            "description": "The ID of the folder to retrieve files from",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "pageLimit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "A list of files",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPageModelOfApiFileListModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/folders/{folderId}/files/{fileId}": {
      "get": {
        "tags": [
          "Files"
        ],
        "summary": "Get file",
        "operationId": "Files_Get",
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "required": true,
            "description": "The ID of the folder containing the file",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "description": "The ID of the file",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "The file",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiFileListModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Files"
        ],
        "summary": "Delete file",
        "operationId": "Files_Delete",
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "required": true,
            "description": "The ID of the folder containing the file",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "description": "The ID of the file",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/folders": {
      "post": {
        "tags": [
          "Folders"
        ],
        "summary": "Create folder",
        "operationId": "Folders_CreateFolder",
        "requestBody": {
          "x-name": "folder",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderInputApiModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "The created folder",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Folders"
        ],
        "summary": "Get all folders",
        "description": "This response is a paged result and will contain the property '_links.next'.\nIf there are more pages, the next page in the paged result will be provided here.",
        "operationId": "Folders_GetAll",
        "parameters": [
          {
            "name": "pageLimit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of folders",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPageModelOfFolderOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/folders/{folderId}": {
      "get": {
        "tags": [
          "Folders"
        ],
        "summary": "Get folder",
        "operationId": "Folders_Get",
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "required": true,
            "description": "Id of the folder",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "The folder",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Folders"
        ],
        "summary": "Delete folder",
        "description": "The folder must be empty before it can be deleted.",
        "operationId": "Folders_DeleteFolder",
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "required": true,
            "description": "Id of the folder",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/sms/gdpr/deletionrequests": {
      "post": {
        "tags": [
          "Gdpr"
        ],
        "summary": "Create information Deletion Request",
        "operationId": "Gdpr_DeletionRequests",
        "requestBody": {
          "x-name": "deletionRequest",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeletionRequestCreateInfo"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "The created information Deletion Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestDeletionOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/lists": {
      "get": {
        "tags": [
          "Lists"
        ],
        "summary": "Get all lists",
        "description": "This response is a paged result and will contain the property '_links.next'.\nIf there are more pages, the next page in the paged result will be provided here.",
        "operationId": "Lists_GetAllLists",
        "parameters": [
          {
            "name": "pageLimit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of lists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPageModelOfGroupOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Lists"
        ],
        "summary": "Create list",
        "operationId": "Lists_CreateList",
        "requestBody": {
          "x-name": "list",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupInputApiModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "The created list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/lists/{listId}": {
      "get": {
        "tags": [
          "Lists"
        ],
        "summary": "Get list",
        "operationId": "Lists_GetList",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Lists"
        ],
        "summary": "Delete list",
        "operationId": "Lists_DeleteList",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Lists"
        ],
        "summary": "Update list",
        "operationId": "Lists_UpdateList",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "The id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "list",
          "description": "The list object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupInputApiModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The updated list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/lists/{listId}/recipients": {
      "get": {
        "tags": [
          "Lists"
        ],
        "summary": "Get all recipients in a list",
        "description": "This response is a paged result and will contain the property '_links.next'.\nIf there are more pages, the next page in the paged result will be provided here.",
        "operationId": "Lists_GetAllRecipient",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "pageLimit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "A list of recipients",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPageModelOfRecipientOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Lists"
        ],
        "summary": "Create recipient",
        "operationId": "Lists_CreateRecipient",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "recipient",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipientCreateApiModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The created recipient",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecipientOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/lists/{listId}/recipients/all": {
      "delete": {
        "tags": [
          "Lists"
        ],
        "summary": "Deletes all recipients from a list",
        "operationId": "Lists_DeleteAllRecipients",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The affected count"
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/lists/{listId}/recipients/{recipientId}": {
      "get": {
        "tags": [
          "Lists"
        ],
        "summary": "Get recipient by id",
        "operationId": "Lists_GetRecipient",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "recipientId",
            "in": "path",
            "required": true,
            "description": "Id of the recipient",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "A recipient",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecipientOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Lists"
        ],
        "summary": "Delete recipient by id",
        "operationId": "Lists_DeleteRecipient",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "recipientId",
            "in": "path",
            "required": true,
            "description": "Id of the recipient",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Lists"
        ],
        "summary": "Update recipient",
        "description": "Only mentioned fields are updated, e.g. leave out fields[\"email\"] if you do not want to update this field. On the other hand, set fields[\"email\"] = null in case you want to erase the existing value.",
        "operationId": "Lists_UpdateRecipient",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "recipientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 2
          }
        ],
        "requestBody": {
          "x-name": "recipient",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipientUpdateApiModel"
              }
            }
          },
          "required": true,
          "x-position": 3
        },
        "responses": {
          "200": {
            "description": "The updated recipient",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecipientOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/lists/{listId}/recipients/ByNumber": {
      "get": {
        "tags": [
          "Lists"
        ],
        "summary": "Get recipient by number",
        "operationId": "Lists_GetRecipientByNumber",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "countryCode",
            "in": "query",
            "description": "Target countryCode",
            "schema": {
              "type": "string"
            },
            "x-position": 2
          },
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "Target phoneNumber",
            "schema": {
              "type": "string"
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "A recipient",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecipientOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Lists"
        ],
        "summary": "Delete recipient by number",
        "operationId": "Lists_DeleteRecipientByNumber",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "countryCode",
            "in": "query",
            "description": "Target countryCode",
            "schema": {
              "type": "string"
            },
            "x-position": 2
          },
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "Target phoneNumber",
            "schema": {
              "type": "string"
            },
            "x-position": 3
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Lists"
        ],
        "summary": "Create or update recipient by number",
        "operationId": "Lists_CreateOrUpdateRecipientByNumber",
        "parameters": [
          {
            "name": "listId",
            "in": "path",
            "required": true,
            "description": "Id of the list",
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          },
          {
            "name": "countryCode",
            "in": "query",
            "description": "Target countryCode",
            "schema": {
              "type": "string"
            },
            "x-position": 2
          },
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "Target phoneNumber",
            "schema": {
              "type": "string"
            },
            "x-position": 3
          }
        ],
        "requestBody": {
          "x-name": "recipient",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipientCreateOrUpdateApiModel"
              }
            }
          },
          "required": true,
          "x-position": 4
        },
        "responses": {
          "200": {
            "description": "The created or updated recipient",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecipientOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/agents": {
      "get": {
        "tags": [
          "RCS - Agents"
        ],
        "summary": "Get all RCS agents",
        "description": "This response is a paged result and will contain the property '_links.next'.</br>\nIf there are more pages, the next page in the paged result will be provided here.",
        "operationId": "RcsAgents_GetAll",
        "parameters": [
          {
            "name": "pageLimit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of RCS agents",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPageModelOfRcsAgentGetAllApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/agents/{rcsAgentId}": {
      "post": {
        "tags": [
          "RCS - Agents"
        ],
        "summary": "Update RCS agent",
        "operationId": "RcsAgents_Update",
        "parameters": [
          {
            "name": "rcsAgentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RcsAgentUpdateRequestApiModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RcsAgentUpdateResponseApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        },
        "callbacks": {
          "events": {
            "https://[your_domain]/your/desired/path/typing/events": {
              "post": {
                "summary": "Typing callback url (Webhook)",
                "description": "The callback url to receive typing information on when end users are typing to an agent.\nThis is a call done by us to you and the url to be called\nThe payload may be extended with more properties in the future. We do not consider it a breaking change to add properties",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/RcsAgentEventListModelOfRcsTypingCallbackModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/capabilities": {
      "post": {
        "tags": [
          "RCS - Capabilities"
        ],
        "summary": "Get RCS capabilities",
        "description": "Get RCS capabilities for the provided MSISDNs for a specific agent.</br>\nThis endpoint relies on Google for up-to-date capability information, so response times can be slower than on other endpoints.</br>\nOne or more MSISDNs can return a transient error.</br>\nWhen that happens, <c>rcsSupport.value</c> is <c>3 = TransientError</c>.</br>\nWe recommend waiting a few minutes before retrying the affected entries.</br>\nIf <c>rcsSupport.value</c> is <c>2 = SupportsRcs</c> and <c>featuresSupported</c> is empty, Google did not report any explicit supported features for that MSISDN, and only text-based RCS messages are supported.",
        "operationId": "RcsCapabilities_Post",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RcsCapabilitiesPostRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RcsCapabilitiesPostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/incoming/messages": {
      "get": {
        "tags": [
          "RCS - Incoming"
        ],
        "summary": "Get incoming RCS messages",
        "description": "Each message will only be returned once. Once called, the message has been marked as read from our side and cannot be retrieved again using this method.",
        "operationId": "RcsIncoming_GetMessages",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of messages",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncomingRcsMessageListApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/outgoing/text": {
      "post": {
        "tags": [
          "RCS - Outgoing"
        ],
        "summary": "Send RCS text only messages",
        "operationId": "RcsOutgoing_Create",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RcsOutgoingCreatePostRequestOfRcsOutgoingCreateTextMessageModel"
              },
              "examples": {
                "replyDialUrlAndLocation": {
                  "summary": "Reply, dial, URL, and location suggestions",
                  "description": "Shows a suggested reply plus dial, open URL, and view location suggested actions.",
                  "value": {
                    "messages": [
                      {
                        "to": "4512345678",
                        "countryHint": "45",
                        "agentId": "65a53287-862b-44dd-afed-0e7aef22a688",
                        "messageTrafficType": 3,
                        "messageId": "PetShop",
                        "respectBlacklist": true,
                        "validityPeriodInSeconds": 90,
                        "msisdnCooldownInMinutes": 1440,
                        "suggestions": [
                          {
                            "reply": {
                              "text": "Yes",
                              "postbackData": "WUVTX1NFTEVDVEVE"
                            }
                          },
                          {
                            "action": {
                              "text": "Call us",
                              "postbackData": "Q0FMTF9TRUxFQ1RFRA==",
                              "dialAction": {
                                "to": "4512345678",
                                "countryHint": "45"
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Open website",
                              "postbackData": "T1BFTl9XRUJTSVRF",
                              "openUrlAction": {
                                "url": "https://www.inmobile.com",
                                "application": 1
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Show location",
                              "postbackData": "U0hPV19MT0NBVElPTg==",
                              "viewLocationAction": {
                                "latitude": 55.6761,
                                "longitude": 12.5683
                              }
                            }
                          }
                        ],
                        "webhooks": {
                          "statusCallbackUrl": "https://[your_domain]/your/desired/path",
                          "readCallbackUrl": "https://[your_domain]/your/desired/path"
                        },
                        "text": "This is a message text to be sent"
                      }
                    ]
                  }
                },
                "calendarAndShareLocation": {
                  "summary": "Calendar and share location suggestions",
                  "description": "Shows create calendar event and share location suggested actions.",
                  "value": {
                    "messages": [
                      {
                        "to": "4512345678",
                        "countryHint": "45",
                        "agentId": "65a53287-862b-44dd-afed-0e7aef22a688",
                        "messageTrafficType": 3,
                        "messageId": "PetShop",
                        "respectBlacklist": true,
                        "validityPeriodInSeconds": 90,
                        "msisdnCooldownInMinutes": 1440,
                        "suggestions": [
                          {
                            "reply": {
                              "text": "Remind me",
                              "postbackData": "UkVNSU5EX01FX1NFTEVDVEVE"
                            }
                          },
                          {
                            "action": {
                              "text": "Add event",
                              "postbackData": "QUREX0VWRU5U",
                              "createCalendarEventAction": {
                                "startTime": "2026-06-24T14:00:00Z",
                                "endTime": "2026-06-24T15:00:00Z",
                                "title": "Meeting",
                                "description": "Remember meeting"
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Share location",
                              "postbackData": "U0hBUkVfTE9DQVRJT04=",
                              "shareLocationAction": {}
                            }
                          }
                        ],
                        "webhooks": {
                          "statusCallbackUrl": "https://[your_domain]/your/desired/path",
                          "readCallbackUrl": "https://[your_domain]/your/desired/path"
                        },
                        "text": "This is a message text to be sent"
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RcsOutgoingCreatePostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        },
        "callbacks": {
          "events": {
            "https://[your_domain]/your/desired/path/read/events": {
              "post": {
                "summary": "Read events callback url (Webhook)",
                "description": "The callback url to receive read information on when a recipient has read the message.\nThis is a call done by us to you and the url to be called\nThe payload may be extended with more properties in the future. We do not consider it a breaking change to add properties",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/RcsReadReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            },
            "https://[your_domain]/your/desired/path/status/events": {
              "post": {
                "summary": "Status callback url (Webhook)",
                "description": "The callback url to receive status information on when a message is either delivered or fails delivery.\nThis is a call done by us to you and the url to be called\nThe payload may be extended with more properties in the future. We do not consider it a breaking change to add properties",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/RcsStatusReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/outgoing/contentinfo": {
      "post": {
        "tags": [
          "RCS - Outgoing"
        ],
        "summary": "Send RCS messages with content info (e.g. file attachments)",
        "operationId": "RcsOutgoing_Create2",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RcsOutgoingCreatePostRequestOfRcsOutgoingCreateContentInfoMessageModel"
              },
              "examples": {
                "replyDialUrlAndLocation": {
                  "summary": "Reply, dial, URL, and location suggestions",
                  "description": "Shows a suggested reply plus dial, open URL, and view location suggested actions.",
                  "value": {
                    "messages": [
                      {
                        "to": "4512345678",
                        "countryHint": "45",
                        "agentId": "65a53287-862b-44dd-afed-0e7aef22a688",
                        "messageTrafficType": 3,
                        "messageId": "PetShop",
                        "respectBlacklist": true,
                        "validityPeriodInSeconds": 90,
                        "msisdnCooldownInMinutes": 1440,
                        "suggestions": [
                          {
                            "reply": {
                              "text": "Yes",
                              "postbackData": "WUVTX1NFTEVDVEVE"
                            }
                          },
                          {
                            "action": {
                              "text": "Call us",
                              "postbackData": "Q0FMTF9TRUxFQ1RFRA==",
                              "dialAction": {
                                "to": "4512345678",
                                "countryHint": "45"
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Open website",
                              "postbackData": "T1BFTl9XRUJTSVRF",
                              "openUrlAction": {
                                "url": "https://www.inmobile.com",
                                "application": 1
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Show location",
                              "postbackData": "U0hPV19MT0NBVElPTg==",
                              "viewLocationAction": {
                                "latitude": 55.6761,
                                "longitude": 12.5683
                              }
                            }
                          }
                        ],
                        "webhooks": {
                          "statusCallbackUrl": "https://[your_domain]/your/desired/path",
                          "readCallbackUrl": "https://[your_domain]/your/desired/path"
                        },
                        "fileUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg",
                        "thumbnailUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
                      }
                    ]
                  }
                },
                "calendarAndShareLocation": {
                  "summary": "Calendar and share location suggestions",
                  "description": "Shows create calendar event and share location suggested actions.",
                  "value": {
                    "messages": [
                      {
                        "to": "4512345678",
                        "countryHint": "45",
                        "agentId": "65a53287-862b-44dd-afed-0e7aef22a688",
                        "messageTrafficType": 3,
                        "messageId": "PetShop",
                        "respectBlacklist": true,
                        "validityPeriodInSeconds": 90,
                        "msisdnCooldownInMinutes": 1440,
                        "suggestions": [
                          {
                            "reply": {
                              "text": "Remind me",
                              "postbackData": "UkVNSU5EX01FX1NFTEVDVEVE"
                            }
                          },
                          {
                            "action": {
                              "text": "Add event",
                              "postbackData": "QUREX0VWRU5U",
                              "createCalendarEventAction": {
                                "startTime": "2026-06-24T14:00:00Z",
                                "endTime": "2026-06-24T15:00:00Z",
                                "title": "Meeting",
                                "description": "Remember meeting"
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Share location",
                              "postbackData": "U0hBUkVfTE9DQVRJT04=",
                              "shareLocationAction": {}
                            }
                          }
                        ],
                        "webhooks": {
                          "statusCallbackUrl": "https://[your_domain]/your/desired/path",
                          "readCallbackUrl": "https://[your_domain]/your/desired/path"
                        },
                        "fileUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg",
                        "thumbnailUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RcsOutgoingCreatePostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        },
        "callbacks": {
          "events": {
            "https://[your_domain]/your/desired/path/read/events": {
              "post": {
                "summary": "Read events callback url (Webhook)",
                "description": "The callback url to receive read information on when a recipient has read the message.\nThis is a call done by us to you and the url to be called\nThe payload may be extended with more properties in the future. We do not consider it a breaking change to add properties",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/RcsReadReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            },
            "https://[your_domain]/your/desired/path/status/events": {
              "post": {
                "summary": "Status callback url (Webhook)",
                "description": "The callback url to receive status information on when a message is either delivered or fails delivery.\nThis is a call done by us to you and the url to be called\nThe payload may be extended with more properties in the future. We do not consider it a breaking change to add properties",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/RcsStatusReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/outgoing/standalone": {
      "post": {
        "tags": [
          "RCS - Outgoing"
        ],
        "summary": "Send RCS standalone rich card messages",
        "operationId": "RcsOutgoing_Create3",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RcsOutgoingCreatePostRequestOfRcsOutgoingCreateStandaloneRichCardMessageModel"
              },
              "examples": {
                "replyDialUrlAndLocation": {
                  "summary": "Reply, dial, URL, and location suggestions",
                  "description": "Shows a suggested reply plus dial, open URL, and view location suggested actions.",
                  "value": {
                    "messages": [
                      {
                        "to": "4512345678",
                        "countryHint": "45",
                        "agentId": "65a53287-862b-44dd-afed-0e7aef22a688",
                        "messageTrafficType": 3,
                        "messageId": "PetShop",
                        "respectBlacklist": true,
                        "validityPeriodInSeconds": 90,
                        "msisdnCooldownInMinutes": 1440,
                        "suggestions": [
                          {
                            "reply": {
                              "text": "Yes",
                              "postbackData": "WUVTX1NFTEVDVEVE"
                            }
                          },
                          {
                            "action": {
                              "text": "Call us",
                              "postbackData": "Q0FMTF9TRUxFQ1RFRA==",
                              "dialAction": {
                                "to": "4512345678",
                                "countryHint": "45"
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Open website",
                              "postbackData": "T1BFTl9XRUJTSVRF",
                              "openUrlAction": {
                                "url": "https://www.inmobile.com",
                                "application": 1
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Show location",
                              "postbackData": "U0hPV19MT0NBVElPTg==",
                              "viewLocationAction": {
                                "latitude": 55.6761,
                                "longitude": 12.5683
                              }
                            }
                          }
                        ],
                        "webhooks": {
                          "statusCallbackUrl": "https://[your_domain]/your/desired/path",
                          "readCallbackUrl": "https://[your_domain]/your/desired/path"
                        },
                        "cardOrientation": 1,
                        "thumbnailImageAlignment": 1,
                        "cardContent": {
                          "title": "Card Title",
                          "description": "This is a description of the card content",
                          "suggestions": [
                            {
                              "reply": {
                                "text": "Yes",
                                "postbackData": "WUVTX1NFTEVDVEVE"
                              }
                            },
                            {
                              "action": {
                                "text": "Call us",
                                "postbackData": "Q0FMTF9TRUxFQ1RFRA==",
                                "dialAction": {
                                  "to": "4512345678",
                                  "countryHint": "45"
                                }
                              }
                            },
                            {
                              "action": {
                                "text": "Open website",
                                "postbackData": "T1BFTl9XRUJTSVRF",
                                "openUrlAction": {
                                  "url": "https://www.inmobile.com",
                                  "application": 1
                                }
                              }
                            },
                            {
                              "action": {
                                "text": "Show location",
                                "postbackData": "U0hPV19MT0NBVElPTg==",
                                "viewLocationAction": {
                                  "latitude": 55.6761,
                                  "longitude": 12.5683
                                }
                              }
                            }
                          ],
                          "media": {
                            "height": 1,
                            "contentInfo": {
                              "fileUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg",
                              "thumbnailUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
                            }
                          }
                        }
                      }
                    ]
                  }
                },
                "calendarAndShareLocation": {
                  "summary": "Calendar and share location suggestions",
                  "description": "Shows create calendar event and share location suggested actions.",
                  "value": {
                    "messages": [
                      {
                        "to": "4512345678",
                        "countryHint": "45",
                        "agentId": "65a53287-862b-44dd-afed-0e7aef22a688",
                        "messageTrafficType": 3,
                        "messageId": "PetShop",
                        "respectBlacklist": true,
                        "validityPeriodInSeconds": 90,
                        "msisdnCooldownInMinutes": 1440,
                        "suggestions": [
                          {
                            "reply": {
                              "text": "Remind me",
                              "postbackData": "UkVNSU5EX01FX1NFTEVDVEVE"
                            }
                          },
                          {
                            "action": {
                              "text": "Add event",
                              "postbackData": "QUREX0VWRU5U",
                              "createCalendarEventAction": {
                                "startTime": "2026-06-24T14:00:00Z",
                                "endTime": "2026-06-24T15:00:00Z",
                                "title": "Meeting",
                                "description": "Remember meeting"
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Share location",
                              "postbackData": "U0hBUkVfTE9DQVRJT04=",
                              "shareLocationAction": {}
                            }
                          }
                        ],
                        "webhooks": {
                          "statusCallbackUrl": "https://[your_domain]/your/desired/path",
                          "readCallbackUrl": "https://[your_domain]/your/desired/path"
                        },
                        "cardOrientation": 1,
                        "thumbnailImageAlignment": 1,
                        "cardContent": {
                          "title": "Card Title",
                          "description": "This is a description of the card content",
                          "suggestions": [
                            {
                              "reply": {
                                "text": "Remind me",
                                "postbackData": "UkVNSU5EX01FX1NFTEVDVEVE"
                              }
                            },
                            {
                              "action": {
                                "text": "Add event",
                                "postbackData": "QUREX0VWRU5U",
                                "createCalendarEventAction": {
                                  "startTime": "2026-06-24T14:00:00Z",
                                  "endTime": "2026-06-24T15:00:00Z",
                                  "title": "Meeting",
                                  "description": "Remember meeting"
                                }
                              }
                            },
                            {
                              "action": {
                                "text": "Share location",
                                "postbackData": "U0hBUkVfTE9DQVRJT04=",
                                "shareLocationAction": {}
                              }
                            }
                          ],
                          "media": {
                            "height": 1,
                            "contentInfo": {
                              "fileUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg",
                              "thumbnailUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
                            }
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RcsOutgoingCreatePostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        },
        "callbacks": {
          "events": {
            "https://[your_domain]/your/desired/path/read/events": {
              "post": {
                "summary": "Read events callback url (Webhook)",
                "description": "The callback url to receive read information on when a recipient has read the message.\nThis is a call done by us to you and the url to be called\nThe payload may be extended with more properties in the future. We do not consider it a breaking change to add properties",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/RcsReadReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            },
            "https://[your_domain]/your/desired/path/status/events": {
              "post": {
                "summary": "Status callback url (Webhook)",
                "description": "The callback url to receive status information on when a message is either delivered or fails delivery.\nThis is a call done by us to you and the url to be called\nThe payload may be extended with more properties in the future. We do not consider it a breaking change to add properties",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/RcsStatusReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/outgoing/carousel": {
      "post": {
        "tags": [
          "RCS - Outgoing"
        ],
        "summary": "Send RCS carousel rich card messages",
        "operationId": "RcsOutgoing_Create4",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RcsOutgoingCreatePostRequestOfRcsOutgoingCreateCarouselRichCardMessageModel"
              },
              "examples": {
                "replyDialUrlAndLocation": {
                  "summary": "Reply, dial, URL, and location suggestions",
                  "description": "Shows a suggested reply plus dial, open URL, and view location suggested actions.",
                  "value": {
                    "messages": [
                      {
                        "to": "4512345678",
                        "countryHint": "45",
                        "agentId": "65a53287-862b-44dd-afed-0e7aef22a688",
                        "messageTrafficType": 3,
                        "messageId": "PetShop",
                        "respectBlacklist": true,
                        "validityPeriodInSeconds": 90,
                        "msisdnCooldownInMinutes": 1440,
                        "suggestions": [
                          {
                            "reply": {
                              "text": "Yes",
                              "postbackData": "WUVTX1NFTEVDVEVE"
                            }
                          },
                          {
                            "action": {
                              "text": "Call us",
                              "postbackData": "Q0FMTF9TRUxFQ1RFRA==",
                              "dialAction": {
                                "to": "4512345678",
                                "countryHint": "45"
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Open website",
                              "postbackData": "T1BFTl9XRUJTSVRF",
                              "openUrlAction": {
                                "url": "https://www.inmobile.com",
                                "application": 1
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Show location",
                              "postbackData": "U0hPV19MT0NBVElPTg==",
                              "viewLocationAction": {
                                "latitude": 55.6761,
                                "longitude": 12.5683
                              }
                            }
                          }
                        ],
                        "webhooks": {
                          "statusCallbackUrl": "https://[your_domain]/your/desired/path",
                          "readCallbackUrl": "https://[your_domain]/your/desired/path"
                        },
                        "cardWidth": 1,
                        "carouselCards": [
                          {
                            "title": "Card 1",
                            "description": "This is a description of the card content",
                            "suggestions": [
                              {
                                "reply": {
                                  "text": "Yes",
                                  "postbackData": "WUVTX1NFTEVDVEVE"
                                }
                              },
                              {
                                "action": {
                                  "text": "Call us",
                                  "postbackData": "Q0FMTF9TRUxFQ1RFRA==",
                                  "dialAction": {
                                    "to": "4512345678",
                                    "countryHint": "45"
                                  }
                                }
                              },
                              {
                                "action": {
                                  "text": "Open website",
                                  "postbackData": "T1BFTl9XRUJTSVRF",
                                  "openUrlAction": {
                                    "url": "https://www.inmobile.com",
                                    "application": 1
                                  }
                                }
                              },
                              {
                                "action": {
                                  "text": "Show location",
                                  "postbackData": "U0hPV19MT0NBVElPTg==",
                                  "viewLocationAction": {
                                    "latitude": 55.6761,
                                    "longitude": 12.5683
                                  }
                                }
                              }
                            ],
                            "media": {
                              "height": 1,
                              "contentInfo": {
                                "fileUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg",
                                "thumbnailUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
                              }
                            }
                          },
                          {
                            "title": "Card 2",
                            "description": "This is a description of the card content",
                            "suggestions": [
                              {
                                "reply": {
                                  "text": "Yes",
                                  "postbackData": "WUVTX1NFTEVDVEVE"
                                }
                              },
                              {
                                "action": {
                                  "text": "Call us",
                                  "postbackData": "Q0FMTF9TRUxFQ1RFRA==",
                                  "dialAction": {
                                    "to": "4512345678",
                                    "countryHint": "45"
                                  }
                                }
                              },
                              {
                                "action": {
                                  "text": "Open website",
                                  "postbackData": "T1BFTl9XRUJTSVRF",
                                  "openUrlAction": {
                                    "url": "https://www.inmobile.com",
                                    "application": 1
                                  }
                                }
                              },
                              {
                                "action": {
                                  "text": "Show location",
                                  "postbackData": "U0hPV19MT0NBVElPTg==",
                                  "viewLocationAction": {
                                    "latitude": 55.6761,
                                    "longitude": 12.5683
                                  }
                                }
                              }
                            ],
                            "media": {
                              "height": 1,
                              "contentInfo": {
                                "fileUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg",
                                "thumbnailUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                },
                "calendarAndShareLocation": {
                  "summary": "Calendar and share location suggestions",
                  "description": "Shows create calendar event and share location suggested actions.",
                  "value": {
                    "messages": [
                      {
                        "to": "4512345678",
                        "countryHint": "45",
                        "agentId": "65a53287-862b-44dd-afed-0e7aef22a688",
                        "messageTrafficType": 3,
                        "messageId": "PetShop",
                        "respectBlacklist": true,
                        "validityPeriodInSeconds": 90,
                        "msisdnCooldownInMinutes": 1440,
                        "suggestions": [
                          {
                            "reply": {
                              "text": "Remind me",
                              "postbackData": "UkVNSU5EX01FX1NFTEVDVEVE"
                            }
                          },
                          {
                            "action": {
                              "text": "Add event",
                              "postbackData": "QUREX0VWRU5U",
                              "createCalendarEventAction": {
                                "startTime": "2026-06-24T14:00:00Z",
                                "endTime": "2026-06-24T15:00:00Z",
                                "title": "Meeting",
                                "description": "Remember meeting"
                              }
                            }
                          },
                          {
                            "action": {
                              "text": "Share location",
                              "postbackData": "U0hBUkVfTE9DQVRJT04=",
                              "shareLocationAction": {}
                            }
                          }
                        ],
                        "webhooks": {
                          "statusCallbackUrl": "https://[your_domain]/your/desired/path",
                          "readCallbackUrl": "https://[your_domain]/your/desired/path"
                        },
                        "cardWidth": 1,
                        "carouselCards": [
                          {
                            "title": "Card 1",
                            "description": "This is a description of the card content",
                            "suggestions": [
                              {
                                "reply": {
                                  "text": "Remind me",
                                  "postbackData": "UkVNSU5EX01FX1NFTEVDVEVE"
                                }
                              },
                              {
                                "action": {
                                  "text": "Add event",
                                  "postbackData": "QUREX0VWRU5U",
                                  "createCalendarEventAction": {
                                    "startTime": "2026-06-24T14:00:00Z",
                                    "endTime": "2026-06-24T15:00:00Z",
                                    "title": "Meeting",
                                    "description": "Remember meeting"
                                  }
                                }
                              },
                              {
                                "action": {
                                  "text": "Share location",
                                  "postbackData": "U0hBUkVfTE9DQVRJT04=",
                                  "shareLocationAction": {}
                                }
                              }
                            ],
                            "media": {
                              "height": 1,
                              "contentInfo": {
                                "fileUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg",
                                "thumbnailUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
                              }
                            }
                          },
                          {
                            "title": "Card 2",
                            "description": "This is a description of the card content",
                            "suggestions": [
                              {
                                "reply": {
                                  "text": "Remind me",
                                  "postbackData": "UkVNSU5EX01FX1NFTEVDVEVE"
                                }
                              },
                              {
                                "action": {
                                  "text": "Add event",
                                  "postbackData": "QUREX0VWRU5U",
                                  "createCalendarEventAction": {
                                    "startTime": "2026-06-24T14:00:00Z",
                                    "endTime": "2026-06-24T15:00:00Z",
                                    "title": "Meeting",
                                    "description": "Remember meeting"
                                  }
                                }
                              },
                              {
                                "action": {
                                  "text": "Share location",
                                  "postbackData": "U0hBUkVfTE9DQVRJT04=",
                                  "shareLocationAction": {}
                                }
                              }
                            ],
                            "media": {
                              "height": 1,
                              "contentInfo": {
                                "fileUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg",
                                "thumbnailUrl": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RcsOutgoingCreatePostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        },
        "callbacks": {
          "events": {
            "https://[your_domain]/your/desired/path/read/events": {
              "post": {
                "summary": "Read events callback url (Webhook)",
                "description": "The callback url to receive read information on when a recipient has read the message.\nThis is a call done by us to you and the url to be called\nThe payload may be extended with more properties in the future. We do not consider it a breaking change to add properties",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/RcsReadReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            },
            "https://[your_domain]/your/desired/path/status/events": {
              "post": {
                "summary": "Status callback url (Webhook)",
                "description": "The callback url to receive status information on when a message is either delivered or fails delivery.\nThis is a call done by us to you and the url to be called\nThe payload may be extended with more properties in the future. We do not consider it a breaking change to add properties",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/RcsStatusReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/outgoing/reports": {
      "get": {
        "tags": [
          "RCS - Outgoing"
        ],
        "summary": "Get RCS status reports",
        "description": "Each report will only be returned once. Once called, the status has been removed from our side and cannot be retrieved again using this method.",
        "operationId": "RcsOutgoing_GetReports",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of status reports",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RcsStatusReportListModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/rcs/outgoing/readreports": {
      "get": {
        "tags": [
          "RCS - Outgoing"
        ],
        "summary": "Get RCS read reports",
        "description": "Each read report will only be returned once. Once called, the event has been marked as fetched from our side and cannot be retrieved again using this method.",
        "operationId": "RcsOutgoing_GetReadReports",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of read reports",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RcsReadReportListModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/sms/incoming/messages": {
      "get": {
        "tags": [
          "Sms - Incoming"
        ],
        "summary": "Get incoming sms messages.",
        "description": "Each message will only be returned once. Once called, the message has been marked as read from our side and cannot be retrieved again using this method.\nUsing api callbacks in combination with this call does not conflict.",
        "operationId": "SmsIncoming_GetMessages",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of messages",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncomingMessageListModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/sms/outgoing": {
      "post": {
        "tags": [
          "Sms - Outgoing"
        ],
        "summary": "Send sms messages.",
        "operationId": "SmsOutgoing_Create",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SmsOutgoingPostRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmsOutgoingPostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        },
        "callbacks": {
          "status": {
            "https://[your_domain]/your/desired/path": {
              "post": {
                "summary": "Status callback url (Webhook)",
                "description": "The status callback url to receive status information on when sms messages are delivered (or if they fail).\nThis is a call done by us to you and the url to be called, is the one specified when sending the messages.\n            \nOnly messages with 100% identical message callbacks will be grouped together into the same call. Messages with different callback urls will never be grouped together in a single callback.",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/StatusReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v4/sms/outgoing/sendusingquery": {
      "get": {
        "tags": [
          "Sms - Outgoing"
        ],
        "summary": "Send sms messages using query parameters.",
        "description": "It is strongly recommended to use the POST version instead of this version to send text messages. This endpoint is only a emergency fallback option for systems that are not capable of doing an HTTP post.",
        "operationId": "SmsOutgoing_SendUsingQueryGET",
        "parameters": [
          {
            "name": "Text",
            "in": "query",
            "description": "The text message.",
            "schema": {
              "type": "string",
              "maxLength": 10000,
              "minLength": 1,
              "example": "This is a message text to be sent"
            },
            "x-position": 1
          },
          {
            "name": "From",
            "in": "query",
            "description": "The sender. This can either be a 3-11 chars text sender or an up to 14 digit long sender number.</br>\nIf the max length is exceeded, the string is truncated.",
            "schema": {
              "type": "string",
              "example": "PetShop"
            },
            "x-position": 2
          },
          {
            "name": "Flash",
            "in": "query",
            "description": "If true, the message will be shown as a flash message (also known as a class0 message) on the target phone. If false, it will be received as a standard text message.</br>\nDefault: false",
            "schema": {
              "type": "boolean",
              "nullable": true,
              "example": false
            },
            "x-position": 3
          },
          {
            "name": "Encoding",
            "in": "query",
            "description": "The encoding of the message. Can be either \"gsm7\", \"ucs2\" or \"auto\".</br>\n\"gsm7\" is the default alphabet for text messages and when using gsm7, a single sms message can contain 160 characters. If the length exceeds 160 characters, the message is actually split up into parts of 153 characters and charged according to this. Please note, that a few, specific characters fill up 2 bytes and count for 2 letters. Ref: https://en.wikipedia.org/wiki/GSM_03.38</br>\n\"ucs2\" allows for more non-roman characters to be used along with smileys. When using this encoding, a single message can consist of 70 characters. If the message exceeds 70 characters, the final message is actually split into parts of 67 characters.</br>\n\"auto\" can be used in case the sender wishes to support non-roman characters but wants to save the expenses on all the traffic that only contains gsm characters anyway.</br>\nDefault: \"gsm7\"",
            "schema": {
              "type": "string",
              "example": "gsm7"
            },
            "x-position": 4
          },
          {
            "name": "To",
            "in": "query",
            "description": "The msisdn (country code and number) to send to. (Remember to include countrycode in all numbers, e.g. 4512345678).</br>\nIf max length is exceeded, the entire api call will fail.",
            "schema": {
              "type": "string",
              "maxLength": 20,
              "minLength": 0,
              "example": "4512345678"
            },
            "x-position": 5
          },
          {
            "name": "CountryHint",
            "in": "query",
            "description": "For optimal phone number validation, we encourage you to provide us with a country code.</br>\nThis can be the numeric country code (like 44) or the two-letter ISO 3166-1 alpha-2 code (like GB).</br>\nIf this field is empty it is important that you add the country code (e.g 44) in front of the phone number in “to”.",
            "schema": {
              "type": "string",
              "maxLength": 6,
              "minLength": 0,
              "example": "45"
            },
            "x-position": 6
          },
          {
            "name": "MessageId",
            "in": "query",
            "description": "An optional message id used to identify the message.</br>\nIf no message id is provided, a new message id is generated and assigned to the message. This id must be unique across all messages created on the same account.</br>\n(In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)</br>\nIf max length is exceeded, the entire api call will fail.",
            "schema": {
              "type": "string",
              "maxLength": 50,
              "minLength": 1,
              "example": "PetShop"
            },
            "x-position": 7
          },
          {
            "name": "RespectBlacklist",
            "in": "query",
            "description": "If true, this message will be blocked from sending if the target number is on the account's blacklist. If false, the message will be sent no matter blacklist settings.</br>\nDefault: true",
            "schema": {
              "type": "boolean",
              "nullable": true,
              "example": true
            },
            "x-position": 8
          },
          {
            "name": "ValidityPeriodInSeconds",
            "in": "query",
            "description": "The validity period in seconds. Minimum is 60 seconds and maximum is 172800 (48 hours).</br>\nIf not specified, the messages is attempted to be delivered in 48 hours. A typical use of validityPeriod is for messages that makes no sense to delivery after a certain time frame, in the case the phone is turned off, e.g. two-factor codes.</br>\nPlease note, that messages are still charged even though the operator is cancelling the delivery attempt due to an exceeded validity period.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 172800.0,
              "minimum": 60.0,
              "nullable": true,
              "example": 90
            },
            "x-position": 9
          },
          {
            "name": "StatusCallbackUrl",
            "in": "query",
            "description": "In case you would like a callback from us when the message is delivered, you can specify it here, and we will call it when we have new message statuses.</br>\nThe callback payload will be an array of status objects.</br>\nApi calls sending messages with the same apikey will be subject to being bulked together.",
            "schema": {
              "type": "string",
              "maxLength": 500,
              "minLength": 0,
              "example": "https://[your_domain]/your/desired/path"
            },
            "x-position": 10
          },
          {
            "name": "SendTime.UtcTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "x-position": 11
          },
          {
            "name": "SendTime.LocalServerTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "x-position": 12
          },
          {
            "name": "MsisdnCooldownInMinutes",
            "in": "query",
            "description": "If set, the message will be cancelled if the same mobile number already has received an SMS or an RCS message within this specified time period.</br>\nFx. used to prevent spamming a mobile number.</br>\nMinimum 60 minutes (1 hour) and maximum is 43200 minutes (30 days).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 43200.0,
              "minimum": 60.0,
              "nullable": true,
              "example": 1440
            },
            "x-position": 13
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmsOutgoingPostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        },
        "callbacks": {
          "status": {
            "https://[your_domain]/your/desired/path": {
              "post": {
                "summary": "Status callback url (Webhook)",
                "description": "The status callback url to receive status information on when sms messages are delivered (or if they fail).\nThis is a call done by us to you and the url to be called, is the one specified when sending the messages.\n            \nOnly messages with 100% identical message callbacks will be grouped together into the same call. Messages with different callback urls will never be grouped together in a single callback.",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/StatusReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Sms - Outgoing"
        ],
        "summary": "Send sms messages using query parameters.",
        "description": "It is strongly recommended to use the POST version instead of this version to send text messages. This endpoint is only a emergency fallback option for systems that are not capable of doing an HTTP post.",
        "operationId": "SmsOutgoing_SendUsingQueryPOST",
        "parameters": [
          {
            "name": "Text",
            "in": "query",
            "description": "The text message.",
            "schema": {
              "type": "string",
              "maxLength": 10000,
              "minLength": 1,
              "example": "This is a message text to be sent"
            },
            "x-position": 1
          },
          {
            "name": "From",
            "in": "query",
            "description": "The sender. This can either be a 3-11 chars text sender or an up to 14 digit long sender number.</br>\nIf the max length is exceeded, the string is truncated.",
            "schema": {
              "type": "string",
              "example": "PetShop"
            },
            "x-position": 2
          },
          {
            "name": "Flash",
            "in": "query",
            "description": "If true, the message will be shown as a flash message (also known as a class0 message) on the target phone. If false, it will be received as a standard text message.</br>\nDefault: false",
            "schema": {
              "type": "boolean",
              "nullable": true,
              "example": false
            },
            "x-position": 3
          },
          {
            "name": "Encoding",
            "in": "query",
            "description": "The encoding of the message. Can be either \"gsm7\", \"ucs2\" or \"auto\".</br>\n\"gsm7\" is the default alphabet for text messages and when using gsm7, a single sms message can contain 160 characters. If the length exceeds 160 characters, the message is actually split up into parts of 153 characters and charged according to this. Please note, that a few, specific characters fill up 2 bytes and count for 2 letters. Ref: https://en.wikipedia.org/wiki/GSM_03.38</br>\n\"ucs2\" allows for more non-roman characters to be used along with smileys. When using this encoding, a single message can consist of 70 characters. If the message exceeds 70 characters, the final message is actually split into parts of 67 characters.</br>\n\"auto\" can be used in case the sender wishes to support non-roman characters but wants to save the expenses on all the traffic that only contains gsm characters anyway.</br>\nDefault: \"gsm7\"",
            "schema": {
              "type": "string",
              "example": "gsm7"
            },
            "x-position": 4
          },
          {
            "name": "To",
            "in": "query",
            "description": "The msisdn (country code and number) to send to. (Remember to include countrycode in all numbers, e.g. 4512345678).</br>\nIf max length is exceeded, the entire api call will fail.",
            "schema": {
              "type": "string",
              "maxLength": 20,
              "minLength": 0,
              "example": "4512345678"
            },
            "x-position": 5
          },
          {
            "name": "CountryHint",
            "in": "query",
            "description": "For optimal phone number validation, we encourage you to provide us with a country code.</br>\nThis can be the numeric country code (like 44) or the two-letter ISO 3166-1 alpha-2 code (like GB).</br>\nIf this field is empty it is important that you add the country code (e.g 44) in front of the phone number in “to”.",
            "schema": {
              "type": "string",
              "maxLength": 6,
              "minLength": 0,
              "example": "45"
            },
            "x-position": 6
          },
          {
            "name": "MessageId",
            "in": "query",
            "description": "An optional message id used to identify the message.</br>\nIf no message id is provided, a new message id is generated and assigned to the message. This id must be unique across all messages created on the same account.</br>\n(In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)</br>\nIf max length is exceeded, the entire api call will fail.",
            "schema": {
              "type": "string",
              "maxLength": 50,
              "minLength": 1,
              "example": "PetShop"
            },
            "x-position": 7
          },
          {
            "name": "RespectBlacklist",
            "in": "query",
            "description": "If true, this message will be blocked from sending if the target number is on the account's blacklist. If false, the message will be sent no matter blacklist settings.</br>\nDefault: true",
            "schema": {
              "type": "boolean",
              "nullable": true,
              "example": true
            },
            "x-position": 8
          },
          {
            "name": "ValidityPeriodInSeconds",
            "in": "query",
            "description": "The validity period in seconds. Minimum is 60 seconds and maximum is 172800 (48 hours).</br>\nIf not specified, the messages is attempted to be delivered in 48 hours. A typical use of validityPeriod is for messages that makes no sense to delivery after a certain time frame, in the case the phone is turned off, e.g. two-factor codes.</br>\nPlease note, that messages are still charged even though the operator is cancelling the delivery attempt due to an exceeded validity period.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 172800.0,
              "minimum": 60.0,
              "nullable": true,
              "example": 90
            },
            "x-position": 9
          },
          {
            "name": "StatusCallbackUrl",
            "in": "query",
            "description": "In case you would like a callback from us when the message is delivered, you can specify it here, and we will call it when we have new message statuses.</br>\nThe callback payload will be an array of status objects.</br>\nApi calls sending messages with the same apikey will be subject to being bulked together.",
            "schema": {
              "type": "string",
              "maxLength": 500,
              "minLength": 0,
              "example": "https://[your_domain]/your/desired/path"
            },
            "x-position": 10
          },
          {
            "name": "SendTime.UtcTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "x-position": 11
          },
          {
            "name": "SendTime.LocalServerTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "x-position": 12
          },
          {
            "name": "MsisdnCooldownInMinutes",
            "in": "query",
            "description": "If set, the message will be cancelled if the same mobile number already has received an SMS or an RCS message within this specified time period.</br>\nFx. used to prevent spamming a mobile number.</br>\nMinimum 60 minutes (1 hour) and maximum is 43200 minutes (30 days).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 43200.0,
              "minimum": 60.0,
              "nullable": true,
              "example": 1440
            },
            "x-position": 13
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmsOutgoingPostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        },
        "callbacks": {
          "status": {
            "https://[your_domain]/your/desired/path": {
              "post": {
                "summary": "Status callback url (Webhook)",
                "description": "The status callback url to receive status information on when sms messages are delivered (or if they fail).\nThis is a call done by us to you and the url to be called, is the one specified when sending the messages.\n            \nOnly messages with 100% identical message callbacks will be grouped together into the same call. Messages with different callback urls will never be grouped together in a single callback.",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/StatusReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v4/sms/outgoing/sendusingtemplate": {
      "post": {
        "tags": [
          "Sms - Outgoing"
        ],
        "summary": "Send sms messages using a template.",
        "operationId": "SmsOutgoing_SendUsingTemplate",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SmsOutgoingTemplatePostRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmsOutgoingTemplatePostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        },
        "callbacks": {
          "status": {
            "https://[your_domain]/your/desired/path": {
              "post": {
                "summary": "Status callback url (Webhook)",
                "description": "The status callback url to receive status information on when sms messages are delivered (or if they fail).\nThis is a call done by us to you and the url to be called, is the one specified when sending the messages.\n            \nOnly messages with 100% identical message callbacks will be grouped together into the same call. Messages with different callback urls will never be grouped together in a single callback.",
                "requestBody": {
                  "x-name": "payload",
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/StatusReportListModel"
                      }
                    }
                  },
                  "required": true,
                  "x-position": 1
                },
                "responses": {
                  "200": {
                    "description": ""
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v4/sms/outgoing/cancel": {
      "post": {
        "tags": [
          "Sms - Outgoing"
        ],
        "summary": "Cancel sms messages",
        "operationId": "SmsOutgoing_Cancel",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SmsOutgoingCancelPostRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmsOutgoingCancelPostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/sms/outgoing/reports": {
      "get": {
        "tags": [
          "Sms - Outgoing"
        ],
        "summary": "Get sms status reports.",
        "description": "Each report will only be returned once. Once called, the status has been removed from our side and cannot be retrieved again using this method.\nUsing api callbacks in combination with this call does not conflict.",
        "operationId": "SmsOutgoing_GetReports",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of status reports",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusReportListModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/email/suppressionlist": {
      "get": {
        "tags": [
          "Email - Suppression list"
        ],
        "summary": "Get all email suppressions",
        "description": "This response is a paged result and will contain the property '_links.next'.\nIf there are more pages, the next page in the paged result will be provided here.",
        "operationId": "Suppressions_GetAll",
        "parameters": [
          {
            "name": "pageLimit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of email suppressions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPageModelOfSuppressionOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Email - Suppression list"
        ],
        "summary": "Create a new email suppression",
        "operationId": "Suppressions_Create",
        "requestBody": {
          "x-name": "suppression",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuppressionCreateApiModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "A suppression entry",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuppressionOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/email/suppressionlist/{suppressionId}": {
      "get": {
        "tags": [
          "Email - Suppression list"
        ],
        "summary": "Get email suppression by id",
        "operationId": "Suppressions_Get",
        "parameters": [
          {
            "name": "suppressionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A suppression entry",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuppressionOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Email - Suppression list"
        ],
        "summary": "Delete an email suppression by id",
        "operationId": "Suppressions_Delete",
        "parameters": [
          {
            "name": "suppressionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "guid"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/email/suppressionlist/ByEmailAddress": {
      "get": {
        "tags": [
          "Email - Suppression list"
        ],
        "summary": "Get email suppression by email address",
        "operationId": "Suppressions_GetByEmailAddress",
        "parameters": [
          {
            "name": "emailAddress",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A suppression entry",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuppressionOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Email - Suppression list"
        ],
        "summary": "Delete an email suppression by email address",
        "operationId": "Suppressions_DeleteByEmailAddress",
        "parameters": [
          {
            "name": "emailAddress",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/sms/templates": {
      "get": {
        "tags": [
          "Sms - Templates"
        ],
        "summary": "Get all templates",
        "description": "This response is a paged result and will contain the property '_links.next'.\nIf there are more pages, the next page in the paged result will be provided here.",
        "operationId": "Templates_GetAllTemplates",
        "parameters": [
          {
            "name": "pageLimit",
            "in": "query",
            "description": "How many records to return (must be between 1 and 250)",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A list of templates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPageModelOfStandardTextOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/sms/templates/{id}": {
      "get": {
        "tags": [
          "Sms - Templates"
        ],
        "summary": "Get template by id",
        "operationId": "Templates_GetTemplate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "A template",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardTextOutputApiModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v4/tools/parsephonenumbers": {
      "post": {
        "tags": [
          "Tools"
        ],
        "summary": "Parse phone numbers",
        "operationId": "Tools_ParsePhoneNumbers",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParsePhoneNumberPostRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParsePhoneNumberPostReply"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorMessage"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "RecipientOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RecipientBaseWithNumberInfoApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "The id of the recipient.",
                "format": "guid",
                "example": "99e0543f-b059-4127-9b50-c42112f19cc9"
              },
              "listId": {
                "type": "string",
                "description": "The id of the list that the recipient belongs to.",
                "format": "guid",
                "example": "4a5f91d5-3aa4-4419-890e-f7b103406dbf"
              },
              "created": {
                "type": "string",
                "description": "When the recipient was created e.g. 2001-02-30T14:50:23Z (UTC time).",
                "example": "2001-02-30T14:50:23Z"
              }
            }
          }
        ]
      },
      "RecipientBaseWithNumberInfoApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RecipientBaseApiModel"
          },
          {
            "type": "object",
            "x-abstract": true,
            "additionalProperties": false,
            "properties": {
              "numberInfo": {
                "$ref": "#/components/schemas/NumberInfo"
              }
            }
          }
        ]
      },
      "NumberInfo": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "countryCode",
          "phoneNumber"
        ],
        "properties": {
          "countryCode": {
            "type": "string",
            "description": "The country code part of the number",
            "minLength": 1,
            "example": "45"
          },
          "phoneNumber": {
            "type": "string",
            "description": "The local phonenumber part of the number",
            "minLength": 1,
            "example": "12345678"
          }
        }
      },
      "RecipientBaseApiModel": {
        "type": "object",
        "x-abstract": true,
        "additionalProperties": false,
        "properties": {
          "externalCreated": {
            "type": "string",
            "description": "When the recipient was created in an external system e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "fields": {
            "description": "The fields to update in the given recipient.",
            "example": {
              "firstname": "Friedhelm",
              "lastname": "Hillebrand",
              "birthday": "1945-04-30",
              "custom1": "Custom1",
              "custom2": "Custom2",
              "custom3": "Custom3",
              "custom4": "Custom4",
              "custom5": "Custom5",
              "custom6": "Custom6",
              "email": "test@test.dk",
              "zipCode": "8000",
              "address": "testroad 12",
              "companyName": "test company"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/RecipientFieldsCollection"
              }
            ]
          }
        }
      },
      "RecipientFieldsCollection": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "ApiErrorMessage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "errorMessage": {
            "type": "string",
            "description": "An overall description of the error."
          },
          "details": {
            "type": "array",
            "description": "If available, more details will be provided here.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RecipientCreateOrUpdateByMsisdnAndCountryHintApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RecipientBaseApiModel"
          },
          {
            "type": "object",
            "description": "Only used for ActiveCampaign specific endpoint",
            "additionalProperties": false
          }
        ]
      },
      "BlacklistOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BlacklistApiModelbase"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "The id of the blacklist entry",
                "format": "guid",
                "example": "683862c7-c814-40cc-a74d-048d9f2f8cb7"
              },
              "created": {
                "type": "string",
                "description": "When the blacklist entry was created e.g. 2001-02-30T14:50:23Z (UTC time)",
                "example": "2001-02-30T14:50:23Z"
              },
              "reasonCode": {
                "description": "Why the blacklist was created",
                "example": 5,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/BlacklistReason"
                  }
                ]
              },
              "reasonCodeDescription": {
                "type": "string",
                "description": "Text version of the ReasonCode",
                "example": "AddFromApi"
              }
            }
          }
        ]
      },
      "BlacklistReason": {
        "type": "integer",
        "description": "1 = CustomerSpecificUnsubscription\n2 = SharedUnsubscription\n3 = CountryBanLaw\n4 = AddWithUserInterface\n5 = AddFromApi\n6 = Custom\n7 = AddFromCrm\n8 = RecipientSyncRemoval\n9 = Autoblacklist\n10 = SpamLimit\n11 = UnsubscribeForm\n12 = CustomDomain\n13 = Rcs\n14 = WhatsApp",
        "x-enumNames": [
          "CustomerSpecificUnsubscription",
          "SharedUnsubscription",
          "CountryBanLaw",
          "AddWithUserInterface",
          "AddFromApi",
          "Custom",
          "AddFromCrm",
          "RecipientSyncRemoval",
          "Autoblacklist",
          "SpamLimit",
          "UnsubscribeForm",
          "CustomDomain",
          "Rcs",
          "WhatsApp"
        ],
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14
        ]
      },
      "BlacklistApiModelbase": {
        "type": "object",
        "x-abstract": true,
        "additionalProperties": false,
        "required": [
          "numberInfo"
        ],
        "properties": {
          "numberInfo": {
            "$ref": "#/components/schemas/NumberInfo"
          },
          "comment": {
            "type": "string",
            "description": "A comment describing the specific blacklisting.",
            "maxLength": 200,
            "minLength": 0,
            "example": "Some text provided when created"
          }
        }
      },
      "BlacklistCreateByMsisdnAndCountryHintApiModel": {
        "type": "object",
        "description": "Only used for ActiveCampaign specific endpoint",
        "additionalProperties": false,
        "properties": {
          "comment": {
            "type": "string",
            "description": "A comment describing the specific blacklisting.",
            "maxLength": 200,
            "minLength": 0,
            "example": "Some text provided when created"
          },
          "removeFromAllLists": {
            "type": "boolean",
            "description": "If true, the number will also be removed from all lists. Default: false",
            "nullable": true,
            "example": false
          }
        }
      },
      "ApiPageModelOfBlacklistOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfBlacklistOutputApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "ApiPageLinks": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "next": {
            "type": "string",
            "description": "The link to the next page, e.g. /Feature/Something/cAw2WeS3rdf",
            "example": "/Feature/Something/cAw2WeS3rdf"
          },
          "isLastPage": {
            "type": "boolean",
            "description": "true if this is the last page, false if there are more pages. NextPageUrl is always defined when this is false and never defined when it is true."
          }
        }
      },
      "OutputListApiModelOfBlacklistOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BlacklistOutputApiModel"
            }
          }
        }
      },
      "BlacklistCreateApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BlacklistApiModelbase"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "removeFromAllLists": {
                "type": "boolean",
                "description": "If true, the number will also be removed from all lists. Default: false",
                "nullable": true,
                "example": false
              }
            }
          }
        ]
      },
      "CompanyLookupOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyLookupOutputCompanyModel"
            }
          }
        }
      },
      "CompanyLookupOutputCompanyModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "msisdn": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          },
          "fullAddress": {
            "type": "string"
          },
          "acceptsMarketing": {
            "type": "boolean",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string"
          }
        }
      },
      "ConsumerLookupOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "persons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NumberLookupOutputPersonModel"
            }
          }
        }
      },
      "NumberLookupOutputPersonModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "msisdn": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "fullAddress": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          }
        }
      },
      "EmailOutgoingTemplatePostReply": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EmailOutgoingBasePostReply"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "usedPlaceholderKeys": {
                "type": "array",
                "description": "A list of used placeholder keys.",
                "example": [
                  "{name}",
                  "{lastname}"
                ],
                "items": {
                  "type": "string"
                }
              },
              "notUsedPlaceholderKeys": {
                "type": "array",
                "description": "A list of not used placeholder keys.",
                "example": [
                  "{name}",
                  "{lastname}"
                ],
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "EmailOutgoingBasePostReply": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "messageId": {
            "type": "string",
            "description": "An optional message id used to identify the message.\nIf no message id is provided, a new message id is generated and assigned to the message. This id must be unique across all messages created on the same account.\n(In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)\nIf max length is exceeded, the entire api call will fail.",
            "example": "8fe266b2-56e9-4b5f-938f-cc5e22530721"
          },
          "to": {
            "type": "array",
            "description": "The list of created Receivers",
            "items": {
              "$ref": "#/components/schemas/EmailRecipient"
            }
          }
        }
      },
      "EmailRecipient": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "emailAddress",
          "displayName"
        ],
        "properties": {
          "emailAddress": {
            "type": "string",
            "description": "The email address of the recipient",
            "minLength": 1,
            "example": "roy@tomlinson.com"
          },
          "displayName": {
            "type": "string",
            "description": "The display name to use for the recipient. If max length is exceeded, the entire api call will fail.",
            "maxLength": 300,
            "minLength": 1,
            "example": "Roy Tomlinson"
          }
        }
      },
      "EmailOutgoingTemplatePostRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EmailOutgoingApiBaseCreateModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "templateId"
            ],
            "properties": {
              "templateId": {
                "type": "string",
                "description": "The id of the template to use.",
                "minLength": 1,
                "example": "ecdcb257-c1e9-4b44-8a4e-f05822372d82"
              },
              "placeholders": {
                "description": "A key-value list of placeholders to replace in the template html, text and subject. Keys must be encapsulated with {}. E.g. {NAME}.",
                "example": {
                  "{name}": "Ray",
                  "{lastname}": "Tomlinson"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiDynamicKeyValueCollection"
                  }
                ]
              }
            }
          }
        ]
      },
      "ApiDynamicKeyValueCollection": {
        "allOf": [
          {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "LinkMsisdnOrNull": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CountryCodeAndPhoneNumber"
                  }
                ]
              }
            }
          }
        ]
      },
      "CountryCodeAndPhoneNumber": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "countryCodeId": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "msisdn": {
            "type": "string"
          }
        }
      },
      "EmailOutgoingApiBaseCreateModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "from",
          "to"
        ],
        "properties": {
          "from": {
            "description": "The from info of the message.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/EmailRecipient"
              }
            ]
          },
          "to": {
            "type": "array",
            "description": "A list of receiver objects. Allowed to contain between 1 and 100 elements.",
            "maxItems": 100,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/EmailRecipient"
            }
          },
          "replyTo": {
            "type": "array",
            "description": "A list of optional Reply To objects.",
            "maxItems": 100,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/EmailReplyToRecipient"
            }
          },
          "messageId": {
            "type": "string",
            "description": "An optional message id used to identify the message.\nIf no message id is provided, a new message id is generated and assigned to the message. This id must be unique across all messages created on the same account.\n(In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)\nIf max length is exceeded, the entire api call will fail.",
            "maxLength": 50,
            "minLength": 1,
            "example": "8fe266b2-56e9-4b5f-938f-cc5e22530721"
          },
          "sendTime": {
            "type": "string",
            "description": "If set, this defines to time in the future for the message to be sent. e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "tracking": {
            "type": "boolean",
            "description": "If true, this will add Open and Click tracking to your email. Default: true.",
            "example": false
          },
          "attachments": {
            "type": "array",
            "description": "An array of attachments to add to the message. Can not collectively go above 10MB in size after Base64 encoding (with Html and Text). Keep in mind that Base64 increases the size of the binary data by about 33%.\nIf max size is exceeded or if the content is not in Base64 format, the entire api call will fail.\nSupported file types: .pdf, .json, .doc, .dot, .xls, .xlt, .xla, .ppt, .pot, .pps, .ppa, .xlsx, .docx, .pptx, .gif, .jpg, .jpeg, .png, .tiff, .webp, .mp4, .mpeg, .mpga, .csv, .txt and .ics",
            "items": {
              "$ref": "#/components/schemas/EmailAttachment"
            }
          },
          "listUnsubscribe": {
            "type": "boolean",
            "description": "If true, this will add a List-Unsubscribe header to your email.\nIf a subscriber unsubscribes using this method, an event will be created.\nPlease note that it is your responsibility to unsubscribe the email address in your system, as we do not add the email address to an unsubscribe list in inMobile.\nDefault: false.",
            "example": true
          },
          "anonymizeOptions": {
            "type": "array",
            "description": "Choose the fields that should be anonymized. You can anonymize none or all of the fields. The fields will be anonymized instantly after the email has been handled.\nDefault: \"none\".\nAllowed values: \"none\", \"all\"",
            "minItems": 1,
            "example": [
              "all"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "EmailReplyToRecipient": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "emailAddress"
        ],
        "properties": {
          "emailAddress": {
            "type": "string",
            "description": "The email address of the recipient",
            "minLength": 1,
            "example": "roy@tomlinson.com"
          }
        }
      },
      "EmailAttachment": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "content"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The file name of the attachment. With extension.",
            "minLength": 1,
            "example": "MyFile.pdf"
          },
          "content": {
            "type": "string",
            "description": "The Base64 encoded content of the attachment.",
            "minLength": 1,
            "example": "SGVsbG8gd29ybGQ="
          }
        }
      },
      "EmailOutgoingPostRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EmailOutgoingApiBaseCreateModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "subject",
              "html"
            ],
            "properties": {
              "subject": {
                "type": "string",
                "description": "The subject of the email.\nIf max length is exceeded, the entire api call will fail.",
                "maxLength": 255,
                "minLength": 0,
                "example": "This is the subject of the email"
              },
              "html": {
                "type": "string",
                "description": "The HTML body of the email. Max size of 2 MB.\nIf max size is exceeded, the entire api call will fail.",
                "minLength": 1,
                "example": "<!DOCTYPE html><html><head></head><body><p>This is an email to be sent</p></body></html>"
              },
              "text": {
                "type": "string",
                "description": "The text body of the email. If none is provided this will be generated from the HTML. Max size of 2 MB.\nIf max size is exceeded, the entire api call will fail.",
                "example": "This is the text version of the email"
              }
            }
          }
        ]
      },
      "EmailEventListModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailEvent"
            }
          }
        }
      },
      "EmailEvent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "messageId": {
            "type": "string",
            "description": "The id of the message.",
            "example": "id1"
          },
          "eventType": {
            "description": "Contains a code for what event type the event is.",
            "example": 3,
            "oneOf": [
              {
                "$ref": "#/components/schemas/EmailEventType"
              }
            ]
          },
          "eventTypeDescription": {
            "type": "string",
            "description": "A text description of the event type.",
            "example": "Delivered"
          },
          "eventTimestamp": {
            "type": "string",
            "description": "When the event happened e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          }
        }
      },
      "EmailEventType": {
        "type": "integer",
        "description": "0 = Undefined\n1 = Clicked\n2 = Complained\n3 = Delivered\n4 = Opened\n5 = PermanentFail\n6 = TemporaryFail\n7 = Unsubscribed\n8 = Queued\n9 = Attempt",
        "x-enumNames": [
          "Undefined",
          "Clicked",
          "Complained",
          "Delivered",
          "Opened",
          "PermanentFail",
          "TemporaryFail",
          "Unsubscribed",
          "Queued",
          "Attempt"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ]
      },
      "ApiPageModelOfEmailTemplateOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfEmailTemplateOutputApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "OutputListApiModelOfEmailTemplateOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailTemplateOutputApiModel"
            }
          }
        }
      },
      "EmailTemplateOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the email template.",
            "example": "c9b6c7a8-aa22-4a59-b6d5-fdbbeced27bc"
          },
          "name": {
            "type": "string",
            "description": "The name of the email template.",
            "example": "My email template"
          },
          "html": {
            "type": "string",
            "description": "The Html of the email template.",
            "example": "<!DOCTYPE html><html><head></head><body><p>Hello {name} {lastname}. This is an email to be sent</p></body></html>"
          },
          "text": {
            "type": "string",
            "description": "The text version of the Html.",
            "example": "Hello {name} This is the text version of the email"
          },
          "subject": {
            "type": "string",
            "description": "The subject of the email template.",
            "example": "Hello {lastname} This is the subject of the email"
          },
          "preheader": {
            "type": "string",
            "description": "The preheader of the email.",
            "example": "This is the preheader of the email"
          },
          "placeholders": {
            "type": "array",
            "description": "A list of the placeholders found in the template html, text and subject.",
            "example": [
              "{name}",
              "{lastname}"
            ],
            "items": {
              "type": "string"
            }
          },
          "created": {
            "type": "string",
            "description": "When the email template was created e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "lastUpdated": {
            "type": "string",
            "description": "When the email template was last updated e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          }
        }
      },
      "UploadApiFileResponseModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the uploaded resource.",
            "format": "guid",
            "example": "81780a45-ee03-4d02-950b-f623a117a2ef"
          },
          "url": {
            "type": "string",
            "description": "A url to the uploaded resource.",
            "example": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg"
          }
        }
      },
      "UploadApiFileModel": {
        "type": "object",
        "description": "Exactly one of data or url must be set.",
        "additionalProperties": false,
        "required": [
          "fileName",
          "mimeType"
        ],
        "properties": {
          "fileName": {
            "type": "string",
            "description": "The file name of the uploaded file.",
            "maxLength": 200,
            "minLength": 1,
            "example": "file.png"
          },
          "mimeType": {
            "type": "string",
            "description": "The mime type of the file. The mime type must match the extension of the file. E.g a .png file must have mime type image/png.",
            "maxLength": 100,
            "minLength": 1,
            "example": "image/png"
          }
        },
        "oneOf": [
          {
            "title": "Data",
            "type": "object",
            "description": "The data in base64 encoding.",
            "required": [
              "data"
            ],
            "properties": {
              "data": {
                "type": "string",
                "description": "The data in base64 encoding.",
                "example": "iVBORw0KGgoAAAANSUhEUgAAAAUA"
              }
            }
          },
          {
            "title": "Url",
            "type": "object",
            "description": "The url to get the file from.",
            "required": [
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "description": "The url to get the file from.",
                "example": "https://example.com/file.png"
              }
            }
          }
        ]
      },
      "ApiPageModelOfApiFileListModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfApiFileListModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "OutputListApiModelOfApiFileListModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiFileListModel"
            }
          }
        }
      },
      "ApiFileListModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the uploaded resource.",
            "format": "guid",
            "example": "81780a45-ee03-4d02-950b-f623a117a2ef"
          },
          "url": {
            "type": "string",
            "description": "A url to the uploaded resource.",
            "example": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg"
          },
          "fileName": {
            "type": "string",
            "description": "The file name of the uploaded resource.",
            "example": "file.png"
          },
          "mimeType": {
            "type": "string",
            "description": "The mime type of the uploaded resource.",
            "example": "image/png"
          },
          "createdAt": {
            "type": "string",
            "description": "When the file was created e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          }
        }
      },
      "FolderOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the folder",
            "format": "guid",
            "example": "81780a45-ee03-4d02-950b-f623a117a2ef"
          },
          "name": {
            "type": "string",
            "description": "The name of the folder",
            "example": "My folder"
          },
          "created": {
            "type": "string",
            "description": "When the folder was created e.g. 2001-02-30T14:50:23Z (UTC time)",
            "example": "2001-02-30T14:50:23Z"
          }
        }
      },
      "FolderInputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the folder.",
            "maxLength": 200,
            "minLength": 1,
            "example": "My folder"
          }
        }
      },
      "ApiPageModelOfFolderOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfFolderOutputApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "OutputListApiModelOfFolderOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FolderOutputApiModel"
            }
          }
        }
      },
      "RequestDeletionOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The Id of the Deletion request.",
            "example": "cf97f715-63d4-41df-92a1-34eb87b866b5"
          }
        }
      },
      "DeletionRequestCreateInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "numberInfo": {
            "$ref": "#/components/schemas/NumberInfo"
          }
        }
      },
      "ApiPageModelOfGroupOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfGroupOutputApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "OutputListApiModelOfGroupOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupOutputApiModel"
            }
          }
        }
      },
      "GroupOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the list.",
            "format": "guid",
            "example": "a80e5daa-1bf9-48ca-b67e-ff79eeab1c39"
          },
          "name": {
            "type": "string",
            "description": "The name of the list.",
            "example": "My list"
          },
          "created": {
            "type": "string",
            "description": "When the list was created e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          }
        }
      },
      "GroupInputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the list.",
            "example": "My list"
          }
        }
      },
      "ApiPageModelOfRecipientOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfRecipientOutputApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "OutputListApiModelOfRecipientOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecipientOutputApiModel"
            }
          }
        }
      },
      "RecipientCreateOrUpdateApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RecipientBaseWithNumberInfoApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ]
      },
      "RecipientUpdateApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RecipientBaseWithNumberInfoApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ]
      },
      "RecipientCreateApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RecipientBaseWithNumberInfoApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ]
      },
      "ApiPageModelOfRcsAgentGetAllApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfRcsAgentGetAllApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "OutputListApiModelOfRcsAgentGetAllApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RcsAgentGetAllApiModel"
            }
          }
        }
      },
      "RcsAgentGetAllApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RcsAgentApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "status": {
                "description": "The status of the RCS agent.",
                "example": 3,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RcsAgentStateType"
                  }
                ]
              },
              "statusDescription": {
                "type": "string",
                "description": "Text version of the Status.",
                "example": "Launched"
              },
              "useCase": {
                "description": "The use case of the RCS agent.",
                "example": 4,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RcsAgentUseCaseApiModel"
                  }
                ]
              },
              "useCaseDescription": {
                "type": "string",
                "description": "Text version of the UseCase.",
                "example": "MultiUse"
              },
              "webhooks": {
                "description": "The collection of webhooks configured for the RCS agent.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RcsAgentGetAllWebhooksApiModel"
                  }
                ]
              }
            }
          }
        ]
      },
      "RcsAgentStateType": {
        "type": "integer",
        "description": "A code describing the state of the agent.\n\r0 = Draft\n\r1 = Unlaunched\n\r2 = PendingLaunch\n\r3 = Launched\n\r",
        "format": "int32",
        "example": 1
      },
      "RcsAgentUseCaseApiModel": {
        "type": "integer",
        "description": "A code describing the use case of the agent. See the [message traffic type section](#section/RCS/Message-traffic-type) for how use cases map to message traffic types.\n\r0 = Unspecified\n\r1 = Transactional\n\r2 = Promotional\n\r3 = Otp\n\r4 = MultiUse\n\r",
        "format": "int32",
        "example": 1
      },
      "RcsAgentGetAllWebhooksApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "typingCallbackUrl": {
            "type": "string",
            "nullable": true,
            "example": "https://mydomain.com/typing-callback"
          }
        }
      },
      "RcsAgentApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the RCS agent.",
            "format": "guid",
            "example": "683862c7-c814-40cc-a74d-048d9f2f8cb7"
          },
          "name": {
            "type": "string",
            "description": "The name of the RCS agent.",
            "example": "PetShop"
          }
        }
      },
      "RcsAgentUpdateResponseApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the RCS agent.",
            "format": "guid",
            "example": "683862c7-c814-40cc-a74d-048d9f2f8cb7"
          },
          "name": {
            "type": "string",
            "description": "The name of the RCS agent.",
            "example": "PetShop"
          },
          "webhooks": {
            "description": "The collection of webhooks configured for the RCS agent.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsAgentWebhooksApiModel"
              }
            ]
          }
        }
      },
      "RcsAgentWebhooksApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "typingCallbackUrl": {
            "type": "string",
            "example": "https://mydomain.com/typing-callback"
          }
        }
      },
      "RcsAgentUpdateRequestApiModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "webhooks"
        ],
        "properties": {
          "webhooks": {
            "$ref": "#/components/schemas/RcsAgentUpdateWebhooksApiModel"
          }
        }
      },
      "RcsAgentUpdateWebhooksApiModel": {
        "type": "object",
        "description": "Only HTTP and HTTPS URLs are allowed as callback URLs.\nOmitting a callback URL or setting it to an empty string, is interpreted as a null value, which means that the callback URL will be deleted.",
        "additionalProperties": false,
        "properties": {
          "typingCallbackUrl": {
            "type": "string",
            "maxLength": 500,
            "minLength": 0,
            "example": "https://mydomain.com/typing-callback"
          }
        }
      },
      "RcsAgentEventListModelOfRcsTypingCallbackModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RcsTypingCallbackModel"
            }
          }
        }
      },
      "RcsTypingCallbackModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "agent": {
            "description": "The agent the event is related to.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsAgentApiModel"
              }
            ]
          },
          "numberDetails": {
            "description": "The MSISDN of the number that is typing",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsAgentEventNumberDetails"
              }
            ]
          },
          "eventType": {
            "description": "Always 6 (typing).",
            "example": 6,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsEventTypeApiModel"
              }
            ]
          },
          "eventTypeDescription": {
            "type": "string",
            "description": "A text description of the event type",
            "example": "Typing"
          },
          "occurredAt": {
            "type": "string",
            "description": "When the event happened e.g. 2001-02-30T14:50:23Z (UTC time)",
            "example": "2001-02-30T14:50:23Z"
          }
        }
      },
      "RcsAgentEventNumberDetails": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "countryCode": {
            "type": "string",
            "description": "The country code part of the msisdn, e.g. 45.",
            "example": "45"
          },
          "phoneNumber": {
            "type": "string",
            "description": "The phone number part of the msisdn, e.g. 12345678.",
            "example": "12345678"
          },
          "msisdn": {
            "type": "string",
            "description": "The final cleaned msisdn",
            "example": "4512345678"
          }
        }
      },
      "RcsEventTypeApiModel": {
        "type": "integer",
        "description": "A code describing the type of event.\n\r0 = Undefined\n\r1 = Delivered\n\r2 = Read\n\r3 = Unsubscribed\n\r4 = Subscribed\n\r5 = TtlExpirationRevoked\n\r6 = Typing\n\r",
        "format": "int32",
        "example": 5
      },
      "RcsCapabilitiesPostReply": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "result": {
            "type": "array",
            "description": "Capability results for each requested msisdn in request order.",
            "items": {
              "$ref": "#/components/schemas/RcsCapabilitiesResultModel"
            }
          }
        }
      },
      "RcsCapabilitiesResultModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "msisdn": {
            "$ref": "#/components/schemas/NumberDetails"
          },
          "rcsSupport": {
            "description": "Structured information about the RCS support status for the msisdn.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsSupportModel"
              }
            ]
          },
          "featuresSupported": {
            "type": "array",
            "description": "RCS features supported by the msisdn.",
            "items": {
              "$ref": "#/components/schemas/RcsCapabilitiesFeatureModel"
            }
          }
        }
      },
      "NumberDetails": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "countryCode": {
            "type": "string",
            "description": "The country code part of the msisdn, e.g. 45.",
            "example": "45"
          },
          "phoneNumber": {
            "type": "string",
            "description": "The phone number part of the msisdn, e.g. 12345678.",
            "example": "12345678"
          },
          "rawMsisdn": {
            "type": "string",
            "description": "The input msisdn in its unaltered format. This is the value provided when sending the text message.",
            "example": "45 12 34 56 78"
          },
          "msisdn": {
            "type": "string",
            "description": "The final cleaned msisdn.",
            "example": "4512345678"
          },
          "isValidMsisdn": {
            "type": "boolean",
            "description": "True if the input msisdn was valid.",
            "example": true
          },
          "countryHint": {
            "type": "string",
            "description": "The country code hint if provided in the request.",
            "example": "45"
          }
        }
      },
      "RcsSupportModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "description": "The status for if the msisdn supports RCS.",
            "example": 2,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsSupportValue"
              }
            ]
          },
          "description": {
            "type": "string",
            "description": "A text description of the status.",
            "example": "Supports RCS"
          }
        }
      },
      "RcsSupportValue": {
        "type": "integer",
        "description": "A code describing whether the msisdn supports RCS. Transient error is returned when the Google capability lookup fails transiently.\n\r1 = Does not support RCS\n\r2 = Supports RCS\n\r3 = Transient error\n\r",
        "format": "int32",
        "example": 2
      },
      "RcsCapabilitiesFeatureModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "description": "RCS feature supported by the msisdn.",
            "example": 1,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsCapabilitiesFeature"
              }
            ]
          },
          "description": {
            "type": "string",
            "description": "A text description of the feature.",
            "example": "Richcard Standalone"
          }
        }
      },
      "RcsCapabilitiesFeature": {
        "type": "integer",
        "description": "A code describing an RCS feature supported by the msisdn.\n\r1 = Single Rich Card\n\r2 = Carousel\n\r3 = Action Create Calendar Event\n\r4 = Action Dial\n\r5 = Action Open URL\n\r6 = Action Share Location\n\r7 = Action View Location\n\r8 = Action Open URL In Web View\n\r",
        "format": "int32",
        "example": 5
      },
      "RcsCapabilitiesPostRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "agentId",
          "msisdns"
        ],
        "properties": {
          "agentId": {
            "type": "string",
            "description": "Public RCS agent identifier used for the capability lookup.",
            "format": "guid",
            "minLength": 1,
            "example": "5c9a6973-c102-4c29-bf79-89c1406f9ed3"
          },
          "msisdns": {
            "type": "array",
            "description": "Msisdn entries to validate and query for capabilities.",
            "maxItems": 250,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/RcsCapabilitiesMsisdnInputModel"
            }
          }
        }
      },
      "RcsCapabilitiesMsisdnInputModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "msisdn"
        ],
        "properties": {
          "msisdn": {
            "type": "string",
            "description": "The msisdn (country code and number) to send to. (Remember to include countrycode in all numbers, e.g. 4512345678).</br>\nIf max length is exceeded, the entire api call will fail.",
            "maxLength": 20,
            "minLength": 0,
            "example": "4512345678"
          },
          "countryHint": {
            "type": "string",
            "description": "For optimal phone number validation, we encourage you to provide us with a country code.</br>\nThis can be the numeric country code (like 44) or the two-letter ISO 3166-1 alpha-2 code (like GB).</br>\nIf this field is empty it is important that you add the country code (e.g 44) in front of the phone number in “to”.",
            "maxLength": 6,
            "minLength": 0,
            "example": "45"
          }
        }
      },
      "IncomingRcsMessageListApiModel": {
        "type": "object",
        "example": {
          "messages": [
            {
              "from": {
                "countryCode": "45",
                "phoneNumber": "12345678",
                "msisdn": "4512345678"
              },
              "to": {
                "id": "683862c7-c814-40cc-a74d-048d9f2f8cb7",
                "name": "PetShop"
              },
              "content": {
                "messageType": 1,
                "text": {
                  "text": "Text message content"
                }
              },
              "receivedAt": "2026-06-09T14:00:00Z"
            },
            {
              "from": {
                "countryCode": "45",
                "phoneNumber": "12345678",
                "msisdn": "4512345678"
              },
              "to": {
                "id": "683862c7-c814-40cc-a74d-048d9f2f8cb7",
                "name": "PetShop"
              },
              "content": {
                "messageType": 2,
                "file": {
                  "thumbnail": {
                    "mimeType": "image/jpeg",
                    "fileSizeInBytes": 6873,
                    "fileUri": "https://example.com/thumbnail.jpg"
                  },
                  "payload": {
                    "mimeType": "image/jpeg",
                    "fileSizeInBytes": 91297,
                    "fileName": "image.jpg",
                    "fileUri": "https://example.com/image.jpg"
                  }
                }
              },
              "receivedAt": "2026-06-09T14:00:00Z"
            },
            {
              "from": {
                "countryCode": "45",
                "phoneNumber": "12345678",
                "msisdn": "4512345678"
              },
              "to": {
                "id": "683862c7-c814-40cc-a74d-048d9f2f8cb7",
                "name": "PetShop"
              },
              "content": {
                "messageType": 3,
                "location": {
                  "latitude": 55.6761,
                  "longitude": 12.5683
                }
              },
              "receivedAt": "2026-06-09T14:00:00Z"
            },
            {
              "from": {
                "countryCode": "45",
                "phoneNumber": "12345678",
                "msisdn": "4512345678"
              },
              "to": {
                "id": "683862c7-c814-40cc-a74d-048d9f2f8cb7",
                "name": "PetShop"
              },
              "content": {
                "messageType": 4,
                "suggestionResponse": {
                  "postbackData": "VEVTVF9CVVRUT05fUFJFU1NFRA==",
                  "text": "Yes",
                  "suggestionResponseTypeDescription": "Reply"
                }
              },
              "receivedAt": "2026-06-09T14:00:00Z"
            }
          ]
        },
        "additionalProperties": false,
        "properties": {
          "messages": {
            "type": "array",
            "example": [
              {
                "from": {
                  "countryCode": "45",
                  "phoneNumber": "12345678",
                  "msisdn": "4512345678"
                },
                "to": {
                  "id": "683862c7-c814-40cc-a74d-048d9f2f8cb7",
                  "name": "PetShop"
                },
                "content": {
                  "messageType": 1,
                  "text": {
                    "text": "Text message content"
                  }
                },
                "receivedAt": "2026-06-09T14:00:00Z"
              },
              {
                "from": {
                  "countryCode": "45",
                  "phoneNumber": "12345678",
                  "msisdn": "4512345678"
                },
                "to": {
                  "id": "683862c7-c814-40cc-a74d-048d9f2f8cb7",
                  "name": "PetShop"
                },
                "content": {
                  "messageType": 2,
                  "file": {
                    "thumbnail": {
                      "mimeType": "image/jpeg",
                      "fileSizeInBytes": 6873,
                      "fileUri": "https://example.com/thumbnail.jpg"
                    },
                    "payload": {
                      "mimeType": "image/jpeg",
                      "fileSizeInBytes": 91297,
                      "fileName": "image.jpg",
                      "fileUri": "https://example.com/image.jpg"
                    }
                  }
                },
                "receivedAt": "2026-06-09T14:00:00Z"
              },
              {
                "from": {
                  "countryCode": "45",
                  "phoneNumber": "12345678",
                  "msisdn": "4512345678"
                },
                "to": {
                  "id": "683862c7-c814-40cc-a74d-048d9f2f8cb7",
                  "name": "PetShop"
                },
                "content": {
                  "messageType": 3,
                  "location": {
                    "latitude": 55.6761,
                    "longitude": 12.5683
                  }
                },
                "receivedAt": "2026-06-09T14:00:00Z"
              },
              {
                "from": {
                  "countryCode": "45",
                  "phoneNumber": "12345678",
                  "msisdn": "4512345678"
                },
                "to": {
                  "id": "683862c7-c814-40cc-a74d-048d9f2f8cb7",
                  "name": "PetShop"
                },
                "content": {
                  "messageType": 4,
                  "suggestionResponse": {
                    "postbackData": "VEVTVF9CVVRUT05fUFJFU1NFRA==",
                    "text": "Yes",
                    "suggestionResponseTypeDescription": "Reply"
                  }
                },
                "receivedAt": "2026-06-09T14:00:00Z"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/IncomingRcsMessageApiModel"
            }
          }
        }
      },
      "IncomingRcsMessageApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "from": {
            "description": "The sender of the message.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsNumberDetails"
              }
            ]
          },
          "to": {
            "description": "The agent that received the message.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsAgentApiModel"
              }
            ]
          },
          "content": {
            "description": "The content of the message.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/IncomingRcsMessageContentApiModel"
              }
            ]
          },
          "receivedAt": {
            "type": "string",
            "description": "The time the message was received e.g., 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          }
        }
      },
      "RcsNumberDetails": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "countryCode": {
            "type": "string",
            "description": "The country code part of the msisdn, e.g. 45.",
            "example": "45"
          },
          "phoneNumber": {
            "type": "string",
            "description": "The phone number part of the msisdn, e.g. 12345678. Null if the message has been anonymized.",
            "example": "12345678"
          },
          "msisdn": {
            "type": "string",
            "description": "The final cleansed msisdn. If the message has been anonymized, this is the partially anonymized msisdn, e.g. 451122????.",
            "example": "4512345678"
          },
          "isAnonymized": {
            "type": "boolean",
            "description": "Specifies whether the message has been anonymized or not.",
            "example": false
          }
        }
      },
      "IncomingRcsMessageContentApiModel": {
        "type": "object",
        "description": "Exactly one of text, file, location, or suggestionResponse is present.",
        "additionalProperties": false,
        "properties": {
          "messageType": {
            "$ref": "#/components/schemas/RcsMessageType"
          }
        },
        "oneOf": [
          {
            "title": "Text",
            "type": "object",
            "description": "The text content of the message.",
            "required": [
              "text"
            ],
            "properties": {
              "text": {
                "description": "The text content of the message.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/IncomingRcsTextContentApiModel"
                  }
                ]
              }
            }
          },
          {
            "title": "File",
            "type": "object",
            "description": "The file content of the message.",
            "required": [
              "file"
            ],
            "properties": {
              "file": {
                "description": "The file content of the message.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/IncomingRcsFileContent"
                  }
                ]
              }
            }
          },
          {
            "title": "Location",
            "type": "object",
            "description": "The location content of the message.",
            "required": [
              "location"
            ],
            "properties": {
              "location": {
                "description": "The location content of the message.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/IncomingRcsLocationContent"
                  }
                ]
              }
            }
          },
          {
            "title": "Suggestion Response",
            "type": "object",
            "description": "The suggestion response of the message",
            "required": [
              "suggestionResponse"
            ],
            "properties": {
              "suggestionResponse": {
                "description": "The suggestion response of the message",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/IncomingRcsSuggestionResponseContentApiModel"
                  }
                ]
              }
            }
          }
        ]
      },
      "RcsMessageType": {
        "type": "integer",
        "description": "The type of RCS message content.\n\r1 = Text\n\r2 = File\n\r3 = Location\n\r4 = SuggestionResponse\n\r",
        "format": "int32",
        "example": 1
      },
      "IncomingRcsTextContentApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "text": {
            "type": "string",
            "description": "The actual text received",
            "example": "Text message content"
          }
        }
      },
      "IncomingRcsFileContent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "thumbnail": {
            "description": "The thumbnail received and its metadata",
            "oneOf": [
              {
                "$ref": "#/components/schemas/IncomingRcsFileThumbnail"
              }
            ]
          },
          "payload": {
            "description": "The file received and its metadata.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/IncomingRcsFilePayload"
              }
            ]
          }
        }
      },
      "IncomingRcsFileThumbnail": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mimeType": {
            "type": "string",
            "description": "The mimetype of the thumbnail.",
            "example": "image/png"
          },
          "fileSizeInBytes": {
            "type": "integer",
            "description": "The size of the thumbnail in bytes.",
            "format": "int32",
            "example": 256
          },
          "fileUri": {
            "type": "string",
            "description": "URI of the thumbnail received."
          }
        }
      },
      "IncomingRcsFilePayload": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mimeType": {
            "type": "string",
            "description": "The mimetype of the file."
          },
          "fileSizeInBytes": {
            "type": "integer",
            "description": "The size of the file in bytes.",
            "format": "int32"
          },
          "fileName": {
            "type": "string",
            "description": "The name of the file."
          },
          "fileUri": {
            "type": "string",
            "description": "URI of the file received."
          }
        }
      },
      "IncomingRcsLocationContent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "latitude": {
            "type": "number",
            "description": "The latitude in degrees.",
            "format": "double",
            "maximum": 90.0,
            "minimum": -90.0,
            "example": 45.0
          },
          "longitude": {
            "type": "number",
            "description": "The longitude in degrees.",
            "format": "double",
            "maximum": 180.0,
            "minimum": -180.0,
            "example": 90.0
          }
        }
      },
      "IncomingRcsSuggestionResponseContentApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "postbackData": {
            "type": "string",
            "description": "The postback data specified by the agent when the agent sent the suggestion to the user.",
            "example": "VEVTVF9CVVRUT05fUFJFU1NFRA=="
          },
          "text": {
            "type": "string",
            "description": "The user-visible text of the suggestion that the user tapped.",
            "example": "test button"
          },
          "suggestionResponseType": {
            "description": "Code indicating the type of response.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/IncomingRcsSuggestionResponseType"
              }
            ]
          },
          "suggestionResponseTypeDescription": {
            "type": "string",
            "description": "A text description of the suggestion response type.",
            "example": "Reply"
          }
        }
      },
      "IncomingRcsSuggestionResponseType": {
        "type": "integer",
        "description": "Code describing the type of suggestion response.\n\r1 = Action\n\r2 = Reply\n\r",
        "format": "int32",
        "example": 1
      },
      "RcsOutgoingCreatePostReply": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RcsOutgoingCreateResultModel"
            }
          }
        }
      },
      "RcsOutgoingCreateResultModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "numberDetails": {
            "$ref": "#/components/schemas/NumberDetails"
          },
          "agentId": {
            "type": "string",
            "description": "The agent ID.",
            "example": "foo-123-bar"
          },
          "messageId": {
            "type": "string",
            "description": "A message id used to identify the message. This id must be unique across all messages created on the same account.\n(In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)",
            "example": "PetShop"
          }
        }
      },
      "RcsOutgoingCreatePostRequestOfRcsOutgoingCreateTextMessageModel": {
        "type": "object",
        "description": "Request wrapper for creating RCS messages in bulk.",
        "additionalProperties": false,
        "required": [
          "messages"
        ],
        "properties": {
          "messages": {
            "type": "array",
            "description": "A list of the RCS messages to be sent.",
            "maxItems": 250,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/RcsOutgoingCreateTextMessageModel"
            }
          }
        }
      },
      "RcsOutgoingCreateTextMessageModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RcsOutgoingCreateMessageModelWithSuggestions"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "text"
            ],
            "properties": {
              "text": {
                "type": "string",
                "description": "The text message.",
                "maxLength": 3072,
                "minLength": 1,
                "example": "This is a message text to be sent"
              }
            }
          }
        ]
      },
      "RcsOutgoingCreateMessageModelWithSuggestions": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RcsOutgoingCreateBaseModel"
          },
          {
            "type": "object",
            "x-abstract": true,
            "additionalProperties": false,
            "properties": {
              "suggestions": {
                "type": "array",
                "description": "List of suggestions to show underneath the message.",
                "maxItems": 10,
                "items": {
                  "$ref": "#/components/schemas/RcsOutgoingMessageCreateSuggestionModel"
                }
              }
            }
          }
        ]
      },
      "RcsOutgoingMessageCreateSuggestionModel": {
        "type": "object",
        "description": "Exactly one of reply or action must be set.",
        "additionalProperties": false,
        "oneOf": [
          {
            "title": "Reply",
            "type": "object",
            "description": "Suggested reply.",
            "additionalProperties": false,
            "required": [
              "reply"
            ],
            "properties": {
              "reply": {
                "description": "Suggested reply.",
                "$ref": "#/components/schemas/RcsOutgoingMessageSuggestedReply"
              }
            }
          },
          {
            "title": "Action",
            "type": "object",
            "description": "Suggested action.",
            "additionalProperties": false,
            "required": [
              "action"
            ],
            "properties": {
              "action": {
                "description": "Suggested action.",
                "$ref": "#/components/schemas/RcsOutgoingMessageSuggestedAction"
              }
            }
          }
        ]
      },
      "RcsOutgoingMessageSuggestedReply": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "text",
          "postbackData"
        ],
        "properties": {
          "text": {
            "type": "string",
            "description": "Text that is shown in the suggested reply and sent back to the agent when the user taps it.",
            "maxLength": 25,
            "minLength": 1,
            "example": "This is text"
          },
          "postbackData": {
            "type": "string",
            "description": "The base64-encoded payload that the agent receives in a user event when the user taps the suggested reply.",
            "maxLength": 2048,
            "minLength": 1,
            "example": "eyJ0eXBlIjowfQ=="
          }
        }
      },
      "RcsOutgoingMessageSuggestedAction": {
        "type": "object",
        "description": "Exactly one action property must be set.",
        "additionalProperties": false,
        "required": [
          "text",
          "postbackData"
        ],
        "properties": {
          "text": {
            "type": "string",
            "description": "Text that is shown in the suggested action.",
            "maxLength": 25,
            "minLength": 1,
            "example": "This is text"
          },
          "postbackData": {
            "type": "string",
            "description": "Base64-encoded payload that will be sent to the agent in the user event generated when the user taps the suggested action. Maximum 2048 characters.",
            "maxLength": 2048,
            "minLength": 1,
            "example": "eyJ0eXBlIjowfQ=="
          },
          "fallbackUrl": {
            "type": "string",
            "description": "Fallback URL to use if a client doesn't support a suggested action. Fallback URLs open in new browser windows. Must be a valid URI as defined in RFC 3986.",
            "maxLength": 2048,
            "minLength": 0,
            "example": "https://example.com/fallback"
          }
        },
        "oneOf": [
          {
            "title": "Dial Action",
            "type": "object",
            "description": "Dial action",
            "required": [
              "dialAction"
            ],
            "properties": {
              "dialAction": {
                "description": "Dial action",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutgoingMessageSuggestedActionDial"
                  }
                ]
              }
            }
          },
          {
            "title": "Create Calendar Event Action",
            "type": "object",
            "description": "Create calendar event action",
            "required": [
              "createCalendarEventAction"
            ],
            "properties": {
              "createCalendarEventAction": {
                "description": "Create calendar event action",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutgoingMessageSuggestedActionCreateCalendarEvent"
                  }
                ]
              }
            }
          },
          {
            "title": "Open URL Action",
            "type": "object",
            "description": "Open URL action",
            "required": [
              "openUrlAction"
            ],
            "properties": {
              "openUrlAction": {
                "description": "Open URL action",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutgoingMessageSuggestedActionOpenUrl"
                  }
                ]
              }
            }
          },
          {
            "title": "Share Location Action",
            "type": "object",
            "description": "Share location action",
            "required": [
              "shareLocationAction"
            ],
            "properties": {
              "shareLocationAction": {
                "description": "Share location action",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutgoingMessageSuggestedActionShareLocation"
                  }
                ]
              }
            }
          },
          {
            "title": "View Location Action",
            "type": "object",
            "description": "View location action",
            "required": [
              "viewLocationAction"
            ],
            "properties": {
              "viewLocationAction": {
                "description": "View location action",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutgoingMessageLatLong"
                  }
                ]
              }
            }
          }
        ]
      },
      "RcsOutgoingMessageSuggestedActionDial": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "to",
          "countryHint"
        ],
        "properties": {
          "to": {
            "type": "string",
            "description": "The phone number to call.",
            "maxLength": 20,
            "minLength": 3,
            "example": "4512345678"
          },
          "countryHint": {
            "type": "string",
            "description": "For optimal phone number validation, we encourage you to provide us with a country code.</br>\nThis can be the numeric country code (like 44) or the two-letter ISO 3166-1 alpha-2 code (like GB).</br>\nIf this field is empty it is important that you add the country code (e.g 44) in front of the phone number in “to”.",
            "maxLength": 6,
            "minLength": 1,
            "example": "45"
          }
        }
      },
      "RcsOutgoingMessageSuggestedActionCreateCalendarEvent": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "startTime",
          "endTime",
          "title"
        ],
        "properties": {
          "startTime": {
            "type": "string",
            "description": "The starttime of the event e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "endTime": {
            "type": "string",
            "description": "The endtime of the event e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "title": {
            "type": "string",
            "description": "The title of the event.",
            "maxLength": 100,
            "minLength": 1,
            "example": "Meeting"
          },
          "description": {
            "type": "string",
            "description": "The description of the event.",
            "maxLength": 500,
            "minLength": 0,
            "example": "Remember meeting"
          }
        }
      },
      "RcsOutgoingMessageSuggestedActionOpenUrl": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "url",
          "application"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "Must be a valid URI as defined in RFC 3986.",
            "maxLength": 2048,
            "minLength": 1,
            "example": "https://example.com"
          },
          "application": {
            "description": "URL open application, browser or webview.",
            "maximum": 2.0,
            "minimum": 0.0,
            "example": 1,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OutgoingRcsMessageOpenUrlOpenAction"
              }
            ]
          },
          "webviewViewMode": {
            "description": "View mode for webview.",
            "example": 1,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OutgoingRcsMessageOpenUrlWebviewViewMode"
              }
            ]
          },
          "description": {
            "type": "string",
            "description": "Accessibility description for webview.",
            "example": "This is a description"
          }
        }
      },
      "OutgoingRcsMessageOpenUrlOpenAction": {
        "type": "integer",
        "description": "How the URL should be opened.\n\r0 = OpenUrlApplicationUnspecified\n\r1 = Browser\n\r2 = Webview\n\r",
        "format": "int32",
        "example": 1
      },
      "OutgoingRcsMessageOpenUrlWebviewViewMode": {
        "type": "integer",
        "description": "How the URL should be displayed in the webview.\n\r0 = WebviewViewModeUnspecified\n\r1 = Full\n\r2 = Half\n\r3 = Tall\n\r",
        "format": "int32",
        "example": 2
      },
      "RcsOutgoingMessageSuggestedActionShareLocation": {
        "type": "object",
        "additionalProperties": false
      },
      "RcsOutgoingMessageLatLong": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "latitude",
          "longitude"
        ],
        "properties": {
          "latitude": {
            "type": "number",
            "description": "The latitude in degrees.",
            "format": "double",
            "maximum": 90.0,
            "minimum": -90.0,
            "example": 55.6
          },
          "longitude": {
            "type": "number",
            "description": "The longitude in degrees.",
            "format": "double",
            "maximum": 180.0,
            "minimum": -180.0,
            "example": 12.5
          }
        }
      },
      "RcsOutgoingCreateBaseModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "to",
          "agentId",
          "messageTrafficType",
          "messageId"
        ],
        "properties": {
          "to": {
            "type": "string",
            "description": "The msisdn (country code and number) to send to. (Remember to include countrycode in all numbers, e.g. 4512345678).</br>\nIf max length is exceeded, the entire api call will fail.",
            "maxLength": 20,
            "minLength": 3,
            "example": "4512345678"
          },
          "countryHint": {
            "type": "string",
            "description": "For optimal phone number validation, we encourage you to provide us with a country code.</br>\nThis can be the numeric country code (like 44) or the two-letter ISO 3166-1 alpha-2 code (like GB).</br>\nIf this field is empty it is important that you add the country code (e.g 44) in front of the phone number in “to”.",
            "maxLength": 6,
            "minLength": 0,
            "example": "45"
          },
          "agentId": {
            "type": "string",
            "description": "The ID of the agent to use.</br>\nThis agentId can be retrieved from the agent list endpoint.",
            "format": "guid",
            "minLength": 1,
            "example": "65a53287-862b-44dd-afed-0e7aef22a688"
          },
          "messageTrafficType": {
            "description": "The message traffic type.",
            "maximum": 5.0,
            "minimum": 0.0,
            "example": 3,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OutgoingRcsMessageApiMessageTrafficType"
              }
            ]
          },
          "messageId": {
            "type": "string",
            "description": "A message id used to identify the message. This id must be unique across all messages created on the same account.</br>\n(In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)</br>\nIf max length is exceeded, the entire api call will fail.",
            "maxLength": 50,
            "minLength": 1,
            "example": "PetShop"
          },
          "respectBlacklist": {
            "type": "boolean",
            "description": "If true, this message will be blocked from sending if the target number is on the account's blacklist.</br>\nIf false, the message will be sent no matter blacklist settings.</br>\nDefault: true",
            "nullable": true,
            "example": true
          },
          "validityPeriodInSeconds": {
            "type": "integer",
            "description": "The validity period in seconds. Minimum is 60 seconds and maximum is 1296000 seconds (15 days).</br>\nIf not specified, the message is attempted to be delivered within 30 days. </br>\nA typical use of validityPeriod is for messages that make no sense to deliver after a certain time frame, in the case the phone is turned off, e.g. two-factor codes.</br>\nPlease note that messages are still charged if the RCS platform charges for messages where the delivery attempts are cancelled due to an exceeded validity period.",
            "format": "int32",
            "maximum": 1296000.0,
            "minimum": 60.0,
            "nullable": true,
            "example": 90
          },
          "msisdnCooldownInMinutes": {
            "type": "integer",
            "description": "If set, the message will be cancelled if the same mobile number already has received an RCS message or SMS message within this specified time period.</br>\nFx. used to prevent spamming a mobile number.</br>\nMinimum 60 minutes (1 hour) and maximum is 43200 minutes (30 days).",
            "format": "int32",
            "maximum": 43200.0,
            "minimum": 60.0,
            "nullable": true,
            "example": 1440
          },
          "webhooks": {
            "description": "Webhooks for status and read callbacks for this message.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsOutgoingWebhooks"
              }
            ]
          }
        }
      },
      "OutgoingRcsMessageApiMessageTrafficType": {
        "type": "integer",
        "description": "A code describing the type of message being sent. Must match with the use case of the Agent being used. See the [message traffic type section](#section/RCS/Message-traffic-type) for details.\n\r0 = MessageTrafficTypeUnspecified\n\r1 = Authentication\n\r2 = Transaction\n\r3 = Promotion\n\r4 = ServiceRequest\n\r5 = Acknowledgement\n\r",
        "format": "int32",
        "example": 4
      },
      "RcsOutgoingWebhooks": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "statusCallbackUrl": {
            "type": "string",
            "description": "In case you would like a callback from us when the message is delivered or failed, you can specify it here, and we will call it when we have new message statuses.</br>\nThe callback payload will be an array of status objects.</br>\nApi calls sending messages with the same apikey will be subject to being bulked together.",
            "maxLength": 500,
            "minLength": 0,
            "example": "https://[your_domain]/your/desired/path"
          },
          "readCallbackUrl": {
            "type": "string",
            "description": "In case you would like a callback from us when the message is read, you can specify it here, and we will call it when we receive a read event.</br>\nApi calls sending messages with the same apikey will be subject to being bulked together.",
            "maxLength": 500,
            "minLength": 0,
            "example": "https://[your_domain]/your/desired/path"
          }
        }
      },
      "RcsOutgoingCreatePostRequestOfRcsOutgoingCreateContentInfoMessageModel": {
        "type": "object",
        "description": "Request wrapper for creating RCS messages in bulk.",
        "additionalProperties": false,
        "required": [
          "messages"
        ],
        "properties": {
          "messages": {
            "type": "array",
            "description": "A list of the RCS messages to be sent.",
            "maxItems": 250,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/RcsOutgoingCreateContentInfoMessageModel"
            }
          }
        }
      },
      "RcsOutgoingCreateContentInfoMessageModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RcsOutgoingCreateMessageModelWithSuggestions"
          },
          {
            "type": "object",
            "description": "Request model for creating a content info object for RCS messages, including file URL and optional thumbnail URL.",
            "additionalProperties": false,
            "required": [
              "fileUrl"
            ],
            "properties": {
              "fileUrl": {
                "type": "string",
                "description": "URL to the file to be sent.\nThe file must be uploaded to the inMobile platform first, and the URL must be provided here.\nAny other URL will be rejected.",
                "maxLength": 200,
                "minLength": 1,
                "example": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg"
              },
              "thumbnailUrl": {
                "type": "string",
                "description": "Thumbnail URL for the file.\nUsed only for image, audio and video files.\nIf no thumbnail is provided, the RCS platform will determine the thumbnail automatically based on the file type, which could result in blank thumbnails.\nThe file must be uploaded to the inMobile platform first, and the URL must be provided here.\nAny other URL will be rejected.",
                "maxLength": 200,
                "minLength": 0,
                "example": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
              }
            }
          }
        ]
      },
      "RcsOutgoingCreatePostRequestOfRcsOutgoingCreateStandaloneRichCardMessageModel": {
        "type": "object",
        "description": "Request wrapper for creating RCS messages in bulk.",
        "additionalProperties": false,
        "required": [
          "messages"
        ],
        "properties": {
          "messages": {
            "type": "array",
            "description": "A list of the RCS messages to be sent.",
            "maxItems": 250,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/RcsOutgoingCreateStandaloneRichCardMessageModel"
            }
          }
        }
      },
      "RcsOutgoingCreateStandaloneRichCardMessageModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RcsOutgoingCreateMessageModelWithSuggestions"
          },
          {
            "type": "object",
            "description": "Request model for creating a standalone rich card RCS message.",
            "additionalProperties": false,
            "required": [
              "cardOrientation",
              "cardContent"
            ],
            "properties": {
              "cardOrientation": {
                "description": "The orientation of the card.",
                "example": 1,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OutgoingRcsApiStandaloneCardOrientation"
                  }
                ]
              },
              "thumbnailImageAlignment": {
                "description": "Image preview alignment for horizontal layout cards.\nRequired for Horizontal cards.",
                "nullable": true,
                "example": 1,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OutgoingRcsStandaloneCardThumbnailImageAlignment"
                  }
                ]
              },
              "cardContent": {
                "description": "The content of the card, including title, description, media, and card-level suggestions. Title, description, and media are all optional, but at least one must be provided.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutgoingRichCardContentModel"
                  }
                ]
              }
            }
          }
        ]
      },
      "OutgoingRcsApiStandaloneCardOrientation": {
        "type": "integer",
        "description": "The orientation of the card.\n\r1 = Horizontal\n\r2 = Vertical\n\r",
        "format": "int32",
        "example": 1
      },
      "OutgoingRcsStandaloneCardThumbnailImageAlignment": {
        "type": "integer",
        "description": "How the thumbnail image should be aligned.\n\r1 = Left\n\r2 = Right\n\r",
        "format": "int32",
        "example": 1
      },
      "RcsOutgoingRichCardContentModel": {
        "type": "object",
        "description": "Card content for rich cards, including title, description, media, and card-level suggestions.",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the card.",
            "maxLength": 200,
            "minLength": 0,
            "example": "Card Title"
          },
          "description": {
            "type": "string",
            "description": "Description of the card.",
            "maxLength": 2000,
            "minLength": 0,
            "example": "This is a description of the card content"
          },
          "suggestions": {
            "type": "array",
            "description": "List of suggestions to show on the card.",
            "maxItems": 4,
            "example": [
              {
                "reply": {
                  "text": "Yes",
                  "postbackData": "WUVTX1NFTEVDVEVE"
                }
              },
              {
                "action": {
                  "text": "Call us",
                  "postbackData": "Q0FMTF9TRUxFQ1RFRA==",
                  "dialAction": {
                    "to": "4512345678",
                    "countryHint": "45"
                  }
                }
              },
              {
                "action": {
                  "text": "Open website",
                  "postbackData": "T1BFTl9XRUJTSVRF",
                  "openUrlAction": {
                    "url": "https://www.inmobile.com",
                    "application": 1
                  }
                }
              },
              {
                "action": {
                  "text": "Show location",
                  "postbackData": "U0hPV19MT0NBVElPTg==",
                  "viewLocationAction": {
                    "latitude": 55.6761,
                    "longitude": 12.5683
                  }
                }
              }
            ],
            "items": {
              "$ref": "#/components/schemas/RcsOutgoingMessageCreateSuggestionModel"
            }
          },
          "media": {
            "description": "Media to display in the card.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsOutgoingRichCardMediaModel"
              }
            ]
          }
        }
      },
      "RcsOutgoingRichCardMediaModel": {
        "type": "object",
        "description": "Media for a rich card.",
        "additionalProperties": false,
        "required": [
          "contentInfo"
        ],
        "properties": {
          "height": {
            "description": "Height of the media when used in a vertical layout. Ignored for standalone cards with horizontal orientation.",
            "example": 1,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OutgoingRcsMediaHeight"
              }
            ]
          },
          "contentInfo": {
            "description": "Content info for the media file.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsOutgoingRichCardContentInfoModel"
              }
            ]
          }
        }
      },
      "OutgoingRcsMediaHeight": {
        "type": "integer",
        "description": "The height of the media.\n\r0 = HeightUnspecified\n\r1 = Short\n\r2 = Medium\n\r3 = Tall\n\r",
        "format": "int32",
        "example": 2
      },
      "RcsOutgoingRichCardContentInfoModel": {
        "type": "object",
        "description": "Content info for a rich card media file.",
        "additionalProperties": false,
        "required": [
          "fileUrl"
        ],
        "properties": {
          "fileUrl": {
            "type": "string",
            "description": "URL to the media file to be displayed in the card.\nThe file must be uploaded to the inMobile platform first, and the URL must be provided here.\nAny other URL will be rejected.",
            "maxLength": 200,
            "minLength": 1,
            "example": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/file.jpg"
          },
          "thumbnailUrl": {
            "type": "string",
            "description": "Thumbnail URL for the media file.\nThumbnails are displayed for video media. For image media, the thumbnail is ignored.\nThe file must be uploaded to the inMobile platform first, and the URL must be provided here.\nAny other URL will be rejected.",
            "maxLength": 200,
            "minLength": 0,
            "example": "https://example.inmobile.com/12345678-1234-1234-1234-123456789012/thumbnail.jpg"
          }
        }
      },
      "RcsOutgoingCreatePostRequestOfRcsOutgoingCreateCarouselRichCardMessageModel": {
        "type": "object",
        "description": "Request wrapper for creating RCS messages in bulk.",
        "additionalProperties": false,
        "required": [
          "messages"
        ],
        "properties": {
          "messages": {
            "type": "array",
            "description": "A list of the RCS messages to be sent.",
            "maxItems": 250,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/RcsOutgoingCreateCarouselRichCardMessageModel"
            }
          }
        }
      },
      "RcsOutgoingCreateCarouselRichCardMessageModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RcsOutgoingCreateMessageModelWithSuggestions"
          },
          {
            "type": "object",
            "description": "Request model for creating a carousel rich card RCS message.",
            "additionalProperties": false,
            "required": [
              "cardWidth",
              "carouselCards"
            ],
            "properties": {
              "cardWidth": {
                "description": "Width of all cards in the carousel.",
                "example": 1,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OutgoingRcsCarouselCardWidth"
                  }
                ]
              },
              "carouselCards": {
                "type": "array",
                "description": "The cards to include in the carousel. Title, description, and media are all optional, but at least one must be provided.",
                "maxItems": 10,
                "minItems": 2,
                "items": {
                  "$ref": "#/components/schemas/RcsOutgoingRichCardContentModel"
                }
              }
            }
          }
        ]
      },
      "OutgoingRcsCarouselCardWidth": {
        "type": "integer",
        "description": "The width of the cards.\n\r1 = Small\n\r2 = Medium\n\r",
        "format": "int32",
        "example": 1
      },
      "RcsStatusReportListModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "reports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RcsStatusReport"
            }
          }
        }
      },
      "RcsStatusReport": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "messageId": {
            "type": "string",
            "description": "A message id used to identify the message.",
            "example": "PetShop"
          },
          "numberDetails": {
            "description": "The MSISDN of the receiver of the message",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsNumberDetails"
              }
            ]
          },
          "deliveryInfo": {
            "description": "Information about the delivery of the message, such as delivery state, timestamps and any error codes if relevant.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsDeliveryInfo"
              }
            ]
          }
        }
      },
      "RcsDeliveryInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "stateCode": {
            "$ref": "#/components/schemas/RcsMessageStateCode"
          },
          "stateDescription": {
            "type": "string",
            "description": "A text description of the state code",
            "example": "Failed"
          },
          "sendTime": {
            "type": "string",
            "description": "When the message was sent e.g. 2001-02-30T14:50:23Z (UTC time)",
            "example": "2001-02-30T14:50:23Z"
          },
          "doneTime": {
            "type": "string",
            "description": "When the delivery of the message fails or is delivered, e.g. 2001-02-30T14:50:23Z (UTC time)",
            "example": "2001-02-30T14:50:23Z"
          },
          "errorCode": {
            "$ref": "#/components/schemas/RcsErrorCode"
          },
          "errorDescription": {
            "type": "string",
            "description": "A text description of the error code",
            "example": "Undeliverable message"
          }
        }
      },
      "RcsMessageStateCode": {
        "type": "integer",
        "description": "A code describing if the message is Failed or Delivered. If the message is Failed, the errorCode field wil be present.\n\r1 = Delivered\n\r2 = Failed\n\r",
        "format": "int32",
        "example": 1
      },
      "RcsErrorCode": {
        "type": "integer",
        "description": "A code describing the error if the state is not Delivered. This property will be absent in case the state is Delivered.\n\r1 = Device failed capabilities check\n\r2 = Agent missing\n\r3 = Recipient does not support rcs\n\r4 = Missing or invalid origin when creating fallback\n\r5 = Failed delivery to endpoint\n\r6 = Mobile number cooldown\n\r7 = Msisdn blacklisted on account\n\r8 = Expired by external platform\n\r9 = Expired by timeout\n\r10 = Cancelled\n\r",
        "format": "int32",
        "example": 1
      },
      "RcsReadReportListModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "readReports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RcsReadReport"
            }
          }
        }
      },
      "RcsReadReport": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "agent": {
            "description": "The agent related to the message that has been read",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsAgentApiModel"
              }
            ]
          },
          "numberDetails": {
            "description": "The MSISDN of the receiver of the message that has been read",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsNumberDetails"
              }
            ]
          },
          "readInfo": {
            "description": "Information about the read report",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsReadReportInfo"
              }
            ]
          }
        }
      },
      "RcsReadReportInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "messageId": {
            "type": "string",
            "description": "A message id provided by you during message creation",
            "example": "PetShop"
          },
          "readAt": {
            "type": "string",
            "description": "When the message was read e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "sentAt": {
            "type": "string",
            "description": "When the message was sent e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          }
        }
      },
      "ApiPageModelOfRcsTemplateOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfRcsTemplateOutputApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "OutputListApiModelOfRcsTemplateOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RcsTemplateOutputApiModel"
            }
          }
        }
      },
      "RcsTemplateOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the RCS template.",
            "example": "c9b6c7a8-aa22-4a59-b6d5-fdbbeced27bc"
          },
          "name": {
            "type": "string",
            "description": "The name of the RCS template.",
            "example": "My RCS template"
          },
          "placeholders": {
            "type": "array",
            "description": "A list of the placeholders found in the template content.",
            "example": [
              "{name}",
              "{lastname}"
            ],
            "items": {
              "type": "string"
            }
          },
          "created": {
            "type": "string",
            "description": "When the RCS template was created e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "lastUpdated": {
            "type": "string",
            "description": "When the RCS template was last updated e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "unsubscribeInfo": {
            "description": "The template's unsubscription configuration.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsTemplateUnsubscribeInfoApiModel"
              }
            ]
          }
        }
      },
      "RcsTemplateUnsubscribeInfoApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "unsubscribeMethod": {
            "description": "The method used for unsubscription.",
            "example": 2,
            "oneOf": [
              {
                "$ref": "#/components/schemas/RcsTemplateUnsubscribeMethod"
              }
            ]
          },
          "unsubscribeMethodDescription": {
            "type": "string",
            "description": "A text description of the unsubscribe method.",
            "example": "Domain"
          }
        }
      },
      "RcsTemplateUnsubscribeMethod": {
        "type": "integer",
        "description": "0 = None\n2 = Domain",
        "x-enumNames": [
          "None",
          "Domain"
        ],
        "enum": [
          0,
          2
        ]
      },
      "IncomingMessageListModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncomingMessage"
            }
          }
        }
      },
      "IncomingMessage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "from": {
            "description": "Who sent the message.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/IncomingMessageSender"
              }
            ]
          },
          "to": {
            "description": "Who received the message.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/IncomingMessageTarget"
              }
            ]
          },
          "text": {
            "type": "string",
            "description": "The text message.",
            "example": "This is a message text"
          },
          "receivedAt": {
            "type": "string",
            "description": "When the incoming message was received e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          }
        }
      },
      "IncomingMessageSender": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "countryCode": {
            "type": "string",
            "example": "45"
          },
          "phoneNumber": {
            "type": "string",
            "example": "12345678"
          },
          "rawSource": {
            "type": "string",
            "example": "4512345678"
          },
          "isValidMsisdn": {
            "type": "boolean",
            "example": true
          }
        }
      },
      "IncomingMessageTarget": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "countryCode": {
            "type": "string",
            "example": "45"
          },
          "phoneNumber": {
            "type": "string",
            "example": "12345678"
          },
          "msisdn": {
            "type": "string",
            "example": "4512345678"
          }
        }
      },
      "SmsOutgoingPostReply": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SmsOutgoingApiCreateResultModel"
            }
          }
        }
      },
      "SmsOutgoingApiCreateResultModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "numberDetails": {
            "$ref": "#/components/schemas/NumberDetails"
          },
          "text": {
            "type": "string",
            "description": "The text message.",
            "example": "This is a message text to be sent"
          },
          "from": {
            "type": "string",
            "description": "The sender.",
            "example": "PetShop"
          },
          "smsCount": {
            "type": "integer",
            "description": "The number of sms messages this message will be split into when sent to the operator. Charging will also be done according to this number.",
            "format": "int32",
            "example": 1
          },
          "messageId": {
            "type": "string",
            "description": "An optional message id used to identify the message.\nIf no message id is provided, a new message id is generated and assigned to the message. This id must be unique across all messages created on the same account.\n(In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)",
            "example": "PetShop"
          },
          "encoding": {
            "type": "string",
            "description": "The encoding of the message. Can be either \"gsm7\" or \"ucs2\". In case the message was submitted with encoding \"auto\", this report will reveal the final encoding based on the characters in the message text.\n\"gsm7\" is the default alphabet for text messages and when using gsm7, a single sms message can contain 160 characters. If the length exceeds 160 characters, the message is actually split up into parts of 153 characters and charged according to this. Please note, that a few, specific characters fill up 2 bytes and count for 2 letters. Ref: https://en.wikipedia.org/wiki/GSM_03.38\n\"ucs2\" allows for more non-roman characters to be used along with smileys. When using this encoding, a single message can consist of 70 characters. If the message exceeds 70 characters, the final message is actually split into parts of 67 characters.",
            "example": "gsm7"
          }
        }
      },
      "SmsOutgoingPostRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "messages"
        ],
        "properties": {
          "messages": {
            "type": "array",
            "description": "A list of the sms messages to be sent. Allowed to contain between 1 and 250 elements.",
            "maxItems": 250,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/SmsOutgoingApiCreateModel"
            }
          }
        }
      },
      "SmsOutgoingApiCreateModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SmsOutgoingBaseApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "text",
              "from"
            ],
            "properties": {
              "text": {
                "type": "string",
                "description": "The text message.",
                "maxLength": 10000,
                "minLength": 1,
                "example": "This is a message text to be sent"
              },
              "from": {
                "type": "string",
                "description": "The sender. This can either be a 3-11 chars text sender or an up to 14 digit long sender number.</br>\nIf the max length is exceeded, the string is truncated.",
                "minLength": 1,
                "example": "PetShop"
              },
              "flash": {
                "type": "boolean",
                "description": "If true, the message will be shown as a flash message (also known as a class0 message) on the target phone. If false, it will be received as a standard text message.</br>\nDefault: false",
                "nullable": true,
                "example": false
              },
              "encoding": {
                "type": "string",
                "description": "The encoding of the message. Can be either \"gsm7\", \"ucs2\" or \"auto\".</br>\n\"gsm7\" is the default alphabet for text messages and when using gsm7, a single sms message can contain 160 characters. If the length exceeds 160 characters, the message is actually split up into parts of 153 characters and charged according to this. Please note, that a few, specific characters fill up 2 bytes and count for 2 letters. Ref: https://en.wikipedia.org/wiki/GSM_03.38</br>\n\"ucs2\" allows for more non-roman characters to be used along with smileys. When using this encoding, a single message can consist of 70 characters. If the message exceeds 70 characters, the final message is actually split into parts of 67 characters.</br>\n\"auto\" can be used in case the sender wishes to support non-roman characters but wants to save the expenses on all the traffic that only contains gsm characters anyway.</br>\nDefault: \"gsm7\"",
                "example": "gsm7"
              }
            }
          }
        ]
      },
      "SmsOutgoingBaseApiModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "to"
        ],
        "properties": {
          "to": {
            "type": "string",
            "description": "The msisdn (country code and number) to send to. (Remember to include countrycode in all numbers, e.g. 4512345678).</br>\nIf max length is exceeded, the entire api call will fail.",
            "maxLength": 20,
            "minLength": 0,
            "example": "4512345678"
          },
          "countryHint": {
            "type": "string",
            "description": "For optimal phone number validation, we encourage you to provide us with a country code.</br>\nThis can be the numeric country code (like 44) or the two-letter ISO 3166-1 alpha-2 code (like GB).</br>\nIf this field is empty it is important that you add the country code (e.g 44) in front of the phone number in “to”.",
            "maxLength": 6,
            "minLength": 0,
            "example": "45"
          },
          "messageId": {
            "type": "string",
            "description": "An optional message id used to identify the message.</br>\nIf no message id is provided, a new message id is generated and assigned to the message. This id must be unique across all messages created on the same account.</br>\n(In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)</br>\nIf max length is exceeded, the entire api call will fail.",
            "maxLength": 50,
            "minLength": 1,
            "example": "PetShop"
          },
          "respectBlacklist": {
            "type": "boolean",
            "description": "If true, this message will be blocked from sending if the target number is on the account's blacklist. If false, the message will be sent no matter blacklist settings.</br>\nDefault: true",
            "nullable": true,
            "example": true
          },
          "validityPeriodInSeconds": {
            "type": "integer",
            "description": "The validity period in seconds. Minimum is 60 seconds and maximum is 172800 (48 hours).</br>\nIf not specified, the messages is attempted to be delivered in 48 hours. A typical use of validityPeriod is for messages that makes no sense to delivery after a certain time frame, in the case the phone is turned off, e.g. two-factor codes.</br>\nPlease note, that messages are still charged even though the operator is cancelling the delivery attempt due to an exceeded validity period.",
            "format": "int32",
            "maximum": 172800.0,
            "minimum": 60.0,
            "nullable": true,
            "example": 90
          },
          "statusCallbackUrl": {
            "type": "string",
            "description": "In case you would like a callback from us when the message is delivered, you can specify it here, and we will call it when we have new message statuses.</br>\nThe callback payload will be an array of status objects.</br>\nApi calls sending messages with the same apikey will be subject to being bulked together.",
            "maxLength": 500,
            "minLength": 0,
            "example": "https://[your_domain]/your/desired/path"
          },
          "sendTime": {
            "type": "string",
            "description": "If set, this defines to time in the future for the message to be sent. e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "msisdnCooldownInMinutes": {
            "type": "integer",
            "description": "If set, the message will be cancelled if the same mobile number already has received an SMS or an RCS message within this specified time period.</br>\nFx. used to prevent spamming a mobile number.</br>\nMinimum 60 minutes (1 hour) and maximum is 43200 minutes (30 days).",
            "format": "int32",
            "maximum": 43200.0,
            "minimum": 60.0,
            "nullable": true,
            "example": 1440
          }
        }
      },
      "StatusReportListModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "reports": {
            "type": "array",
            "description": "A list of reports.",
            "items": {
              "$ref": "#/components/schemas/StatusReport"
            }
          }
        }
      },
      "StatusReport": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "messageId": {
            "type": "string",
            "description": "The id of the message.",
            "example": "id1"
          },
          "numberDetails": {
            "$ref": "#/components/schemas/StatusReportNumberDetails"
          },
          "deliveryInfo": {
            "$ref": "#/components/schemas/DeliveryInfo"
          },
          "chargeInfo": {
            "$ref": "#/components/schemas/ChargeInfo"
          }
        }
      },
      "StatusReportNumberDetails": {
        "allOf": [
          {
            "$ref": "#/components/schemas/NumberDetails"
          },
          {
            "type": "object",
            "description": "The parsed extended details about the msisdn provided.",
            "additionalProperties": false,
            "properties": {
              "isAnonymized": {
                "type": "boolean",
                "description": "Specifies whether the message has been anonymized or not.",
                "example": false
              }
            }
          }
        ]
      },
      "DeliveryInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "stateCode": {
            "description": "Contains a code indicating whether a message is delivered, failed or cancelled.",
            "example": -1,
            "oneOf": [
              {
                "$ref": "#/components/schemas/MessageStateCode"
              }
            ]
          },
          "stateDescription": {
            "type": "string",
            "description": "A text description of the state code",
            "example": "Failed"
          },
          "sendTime": {
            "type": "string",
            "description": "When the message was sent e.g. 2001-02-30T14:50:23Z (UTC time)",
            "example": "2001-02-30T14:50:23Z"
          },
          "doneTime": {
            "type": "string",
            "description": "When the delivery of the message fails, is cancelled, or is delivered. If the operator does not support reporting the actual delivery time, this will be the time when the delivery report is received from the operator.\nIn some cases where the message is not sent, this value can be null.",
            "example": "2001-02-30T14:50:23Z"
          },
          "errorCode": {
            "$ref": "#/components/schemas/ErrorCode"
          },
          "errorDescription": {
            "type": "string",
            "description": "A text description of the error code",
            "example": "Undeliverable message"
          }
        }
      },
      "MessageStateCode": {
        "type": "integer",
        "description": "0 = Unknown\n1 = Delivered\n-2 = Cancelled\n-1 = Failed",
        "x-enumNames": [
          "Unknown",
          "Delivered",
          "Cancelled",
          "Failed"
        ],
        "enum": [
          0,
          1,
          -2,
          -1
        ]
      },
      "ErrorCode": {
        "type": "integer",
        "description": "A code describing the error if the state is not Delivered. This property will be absent in case the state is Delivered.\n\r-1 = Undeliverable message\n\r-2 = Msisdn blacklisted by operator\n\r-3 = Invalid mobile number\n\r-4 = Country not available\n\r-5 = Delivery timeout\n\r-6 = Not delivered removed from gateway\n\r-8 = Insufficient funds\n\r-9 = Authorize failed\n\r-10 = Capture failed\n\r-11 = Overcharge donation limit exceeded\n\r-12 = Overcharge type not activated\n\r-13 = Overcharge settings not valid\n\r-14 = Sender name blocked\n\r-15 = Route not available\n\r-16 = Refund not available\n\r-17 = Refund not possible for message\n\r-18 = Refund failed\n\r-19 = Refund not possible for pending message\n\r-20 = Refund not possible for failed message\n\r-21 = Refund failed already refunded\n\r-22 = Delivery timeout before sent\n\r-23 = Message queue full at operator\n\r-80 = Imported from other system\n\r-99 = Submit failed\n\r-100 = Communication error\n\r-101 = Unknown id\n\r-102 = Cancelled\n\r-103 = Unknown error processing message\n\r-104 = Unknown id at operator\n\r-105 = Msisdn blacklisted on account\n\r-106 = Mobile number cooldown\n\r-107 = Quota limit exceeded\n\r-201 = Suspicious sms content\n\r-202 = Account deactivated\n\r-300 = Pdu sequence incomplete\n\r-301 = Pdu sequence invalid\n\r",
        "format": "int32",
        "example": -1
      },
      "ChargeInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "isCharged": {
            "type": "boolean",
            "description": "True if the message will be charged.",
            "example": true
          },
          "smsCount": {
            "type": "integer",
            "description": "The total sms count in the message. If IsCharged is true, this is the number of sms'es that will be charged.",
            "format": "int32",
            "example": 2
          },
          "encoding": {
            "type": "string",
            "description": "The encoding of the message. Can be either \"gsm7\" or \"ucs2\". In case the message was submitted with encoding \"auto\", this report will reveal the final encoding based on the characters in the message text.\n\"gsm7\" is the default alfabet for text messages and when using gsm7, a single sms message can contain 160 characters. If the length exceeeds 160 characters, the message is actually split up into parts of 153 characters and charged according to this. Please note, that a few, specific characters fill up 2 bytes and count for 2 letters. Ref: https://en.wikipedia.org/wiki/GSM_03.38\n\"ucs2\"\" allows for more non-roman characters to be used along with smileys. When using this encoding, a single message can consist of 70 characters. If the message exceeds 70 characters, the final message is actually split into parts of 67 characters.",
            "example": "gsm7"
          }
        }
      },
      "SmsOutgoingTemplatePostReply": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "usedPlaceholderKeys": {
            "type": "array",
            "description": "A list of used placeholder keys",
            "example": [
              "{name}",
              "{lastname}"
            ],
            "items": {
              "type": "string"
            }
          },
          "notUsedPlaceholderKeys": {
            "type": "array",
            "description": "A list of not used placeholder keys",
            "example": [
              "{name}",
              "{lastname}"
            ],
            "items": {
              "type": "string"
            }
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SmsOutgoingApiCreateResultModel"
            }
          }
        }
      },
      "SmsOutgoingTemplatePostRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "templateId",
          "messages"
        ],
        "properties": {
          "templateId": {
            "type": "string",
            "description": "The id of the template to use.",
            "minLength": 1,
            "example": "ecdcb257-c1e9-4b44-8a4e-f05822372d82"
          },
          "messages": {
            "type": "array",
            "description": "A list of the sms messages to be sent. Allowed to contain between 1 and 250 elements.",
            "maxItems": 250,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/SmsOutgoingTemplateApiCreateModel"
            }
          }
        }
      },
      "SmsOutgoingTemplateApiCreateModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SmsOutgoingBaseApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "placeholders": {
                "description": "A key-value list of placeholders to replace in the template text. Keys must be encapsulated with {}. E.g. {NAME}.",
                "example": {
                  "{name}": "Friedhelm",
                  "{lastname}": "Hillebrand"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApiDynamicKeyValueCollection"
                  }
                ]
              }
            }
          }
        ]
      },
      "SmsOutgoingCancelPostReply": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "results": {
            "type": "array",
            "description": "A list of results",
            "items": {
              "$ref": "#/components/schemas/SmsOutgoingCancelPostReplyResultModel"
            }
          }
        }
      },
      "SmsOutgoingCancelPostReplyResultModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "messageId": {
            "type": "string",
            "description": "The MessageId of the message that was attempted cancelled.",
            "example": "8fe266b2-56e9-4b5f-938f-cc5e22530721"
          },
          "resultCode": {
            "description": "A value indicating if the message was cancelled.",
            "example": 1,
            "oneOf": [
              {
                "$ref": "#/components/schemas/CancelResultCode"
              }
            ]
          },
          "resultDescription": {
            "type": "string",
            "description": "A description of the result.",
            "example": "Success"
          }
        }
      },
      "CancelResultCode": {
        "type": "integer",
        "description": "0 = Unknown\n1 = Success\n-2 = MessageNotFound\n-1 = NotCancelled",
        "x-enumNames": [
          "Unknown",
          "Success",
          "MessageNotFound",
          "NotCancelled"
        ],
        "enum": [
          0,
          1,
          -2,
          -1
        ]
      },
      "SmsOutgoingCancelPostRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "messageIds"
        ],
        "properties": {
          "messageIds": {
            "type": "array",
            "description": "A list of the sms message ids to be cancelled. Allowed to contain between 1 and 250 elements.",
            "maxItems": 250,
            "minItems": 1,
            "example": [
              "id1",
              "id2"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ApiPageModelOfSuppressionOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfSuppressionOutputApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "OutputListApiModelOfSuppressionOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SuppressionOutputApiModel"
            }
          }
        }
      },
      "SuppressionOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SuppressionBaseApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "The id of the suppression list entry.",
                "format": "guid",
                "example": "76e5aeb9-7139-462f-b097-01e8ea5a635d"
              },
              "created": {
                "type": "string",
                "description": "When the suppression list entry was created e.g. 2001-02-30T14:50:23Z (UTC time).",
                "example": "2001-02-30T14:50:23Z"
              }
            }
          }
        ]
      },
      "SuppressionBaseApiModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "emailAddress"
        ],
        "properties": {
          "comment": {
            "type": "string",
            "description": "A comment describing the specific suppression.",
            "example": "Some text provided when created"
          },
          "emailAddress": {
            "type": "string",
            "description": "The suppressed mail.",
            "minLength": 1,
            "example": "roy@tomlinson.com"
          }
        }
      },
      "SuppressionCreateApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SuppressionBaseApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ]
      },
      "ApiPageModelOfStandardTextOutputApiModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OutputListApiModelOfStandardTextOutputApiModel"
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "_links": {
                "$ref": "#/components/schemas/ApiPageLinks"
              }
            }
          }
        ]
      },
      "OutputListApiModelOfStandardTextOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StandardTextOutputApiModel"
            }
          }
        }
      },
      "StandardTextOutputApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the template.",
            "example": "c7114ec3-8f89-4e26-8048-686585c1da2a"
          },
          "name": {
            "type": "string",
            "description": "The name of the template.",
            "example": "My template"
          },
          "text": {
            "type": "string",
            "description": "The template text.",
            "example": "My template text {name} {lastname}"
          },
          "senderName": {
            "type": "string",
            "description": "The sendername to use with this template.",
            "example": "My sendername"
          },
          "encoding": {
            "type": "string",
            "description": "The encoding of the message. Can be either \"gsm7\" or \"ucs2\"\n\"gsm7\" is the default alphabet for text messages and when using gsm7, a single sms message can contain 160 characters. If the length exceeds 160 characters, the message is actually split up into parts of 153 characters and charged according to this. Please note, that a few, specific characters fill up 2 bytes and count for 2 letters. Ref: https://en.wikipedia.org/wiki/GSM_03.38\n\"ucs2\" allows for more non-roman characters to be used along with smileys. When using this encoding, a single message can consist of 70 characters. If the message exceeds 70 characters, the final message is actually split into parts of 67 characters.",
            "example": "gsm7"
          },
          "placeholders": {
            "type": "array",
            "description": "A list of the placeholders found in the template text.",
            "example": [
              "{name}",
              "{lastname}"
            ],
            "items": {
              "type": "string"
            }
          },
          "created": {
            "type": "string",
            "description": "When the template was created e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "lastUpdated": {
            "type": "string",
            "description": "When the template was last updated e.g. 2001-02-30T14:50:23Z (UTC time).",
            "example": "2001-02-30T14:50:23Z"
          },
          "unsubscribeInfo": {
            "description": "The template's unsubscription configuration.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/StandardTextUnsubscribeInfoApiModel"
              }
            ]
          }
        }
      },
      "StandardTextUnsubscribeInfoApiModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "unsubscribeMethod": {
            "description": "The method used for unsubscription.",
            "example": 1,
            "oneOf": [
              {
                "$ref": "#/components/schemas/StandardTextUnsubscribeMethod"
              }
            ]
          },
          "unsubscribeMethodDescription": {
            "type": "string",
            "description": "A text description of the unsubscribe method.",
            "example": "Sms"
          },
          "unsubscribeText": {
            "type": "string",
            "description": "The unsubscription text.",
            "example": "Some unsubscribe text"
          }
        }
      },
      "StandardTextUnsubscribeMethod": {
        "type": "integer",
        "description": "0 = None\n1 = Sms\n2 = Domain",
        "x-enumNames": [
          "None",
          "Sms",
          "Domain"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "ParsePhoneNumberPostReply": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NumberDetails"
            }
          }
        }
      },
      "ParsePhoneNumberPostRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "numbersToParse"
        ],
        "properties": {
          "numbersToParse": {
            "type": "array",
            "description": "A list of the numbersToParse and country hints to be parsed",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/RawMsisdnAndCountryHint"
            }
          }
        }
      },
      "RawMsisdnAndCountryHint": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "countryHint": {
            "type": "string",
            "description": "The country part of the msisdn, e.g. 45 or DK.",
            "example": "45"
          },
          "rawMsisdn": {
            "type": "string",
            "description": "The input msisdn in its unaltered format. This is the value provided when sending the text message.",
            "example": "+45 12 34 56 78"
          }
        }
      }
    },
    "securitySchemes": {
      "BasicAuth": {
        "type": "http",
        "description": "Provide Basic Authentication with an arbitrary username and your api key as password, e.g. some_value_to_be_ignored:your_api_key_here",
        "scheme": "basic"
      },
      "QueryParameter": {
        "type": "apiKey",
        "description": "Specify your apikey in the url as https://api.inmobile.com/some/path?apikey=your_api_key_here. This method is only recommended if basic authorization is not possible.",
        "name": "apikey",
        "in": "query"
      }
    }
  },
  "security": [
    {
      "BasicAuth": []
    },
    {
      "QueryParameter": []
    }
  ],
  "tags": [
    {
      "name": "Sms - Outgoing"
    },
    {
      "name": "Sms - Incoming"
    },
    {
      "name": "Blacklist"
    },
    {
      "name": "Lists"
    },
    {
      "name": "Gdpr"
    },
    {
      "name": "Email - Outgoing"
    },
    {
      "name": "Email - Templates"
    },
    {
      "name": "Email - Suppression list"
    },
    {
      "name": "Sms - Templates"
    },
    {
      "name": "Tools"
    },
    {
      "name": "RCS - Outgoing"
    },
    {
      "name": "RCS - Incoming"
    },
    {
      "name": "RCS - Agents"
    },
    {
      "name": "RCS - Capabilities"
    },
    {
      "name": "Folders"
    },
    {
      "name": "Files"
    }
  ],
  "x-tagGroups": [
    {
      "name": "SMS",
      "tags": [
        "Sms - Outgoing",
        "Sms - Incoming",
        "Sms - Templates"
      ]
    },
    {
      "name": "RCS",
      "tags": [
        "RCS - Outgoing",
        "RCS - Incoming",
        "RCS - Agents",
        "RCS - Capabilities"
      ]
    },
    {
      "name": "Email",
      "tags": [
        "Email - Outgoing",
        "Email - Templates",
        "Email - Suppression list"
      ]
    },
    {
      "name": "Files and folders",
      "tags": [
        "Folders",
        "Files"
      ]
    },
    {
      "name": "Recipients",
      "tags": [
        "Blacklist",
        "Lists"
      ]
    },
    {
      "name": "Other",
      "tags": [
        "Gdpr",
        "Tools"
      ]
    }
  ]
}