{
   "openapi": "3.0.3",
   "info": {
      "version": "1.0.34",
      "title": "10DLC Brand and Campaign Provisioning",
      "x-metaTitle": "Vonage 10DLC API Reference | Vonage API Documentation",
      "x-metaDescription": "Find quick answers to questions about the Vonage 10DLC API in this reference guide. Learn more in Vonage's API documentation.",
      "contact": {
         "name": "Vonage",
         "url": "https://developer.nexmo.com",
         "email": "devrel@vonage.com"
      },
      "description": "# Overview\n\nAPIs relating to 10DLC brand and campaign management\n\nFor more information, please read the following documentation:\n- [What is 10DLC?](https://api.support.vonage.com/hc/en-us/articles/7995696869788-What-is-10DLC)\n- [10DLC - Guide of guides](https://api.support.vonage.com/hc/en-us/articles/7990660170908-10DLC-Guide-of-guides)\n\n# Changes\n\n### Upcoming changes\n\n#### Reseller requirements\nDate: ~~**Dec 1st 2024**~~ \\\nThe feature was postponed by TCR. In an effort to give more time to adapt to our customers, this change is being rescheduled and should be released around the **6th of January 2025**.\n\nTCR is making the reseller ID attribute mandatory on all new and updated campaigns starting on December 1st.\n\nCustomer campaigns (aka non reseller campaigns) will be assigned a default reseller ID `R000000` by Vonage.\nPreventing any further modification to the reseller information for that campaign.\n\nAs a reminder, Vonage introduced the concept of reseller brands, handling automatically the reseller information for all its campaigns, by setting `brand.reseller` to `true`. \n\nMore information [here](https://api.support.vonage.com/hc/en-us/articles/16376606152988-10DLC-Update-Reseller-ID-requirements-Dec-2024).\n\n---\n\n#### message_flow deprecation\nDate: **Jan 6th 2025** \n\nThe `message_flow` field in the `POST /brands/{brand_id}/campaigns` and `PATCH /brands/{brand_id}/campaigns/{campaign_id}` endpoints was deprecated in favor of `message_flow_details`.\nIt will be removed on January 6th.\n\nThe `message_flow` will still exist and be readable. Its value will be computed by the API from the `message_flow_details` object.\n\nPlease make the appropriate changes in the time.\n\n### Changelog\n\n#### Active campaign reviews\nDate: **Oct 28th 2024**\n\nVonage is introducing a new `traffic_enabled` flag and will now trigger a new compliance review after campaign updates.\nPlease remember that 10DLC campaign should adhere to 10DLC compliance requirements through their lifetime.\n\nMore information on:\n- The october changes [here](https://api.support.vonage.com/hc/en-us/articles/15161297898012-10DLC-Update-Introducing-campaign-updates-reviews-Oct-2024).\n- 10DLC campaign requirements [here](https://api.support.vonage.com/hc/en-us/articles/12132309081500-10DLC-Campaign-requirements).\n\n---\n\n#### Authentication+\nDate: **Oct 17th 2024**\n\nTCR is introduction a new brand verification process named \"Authentication+\" which involves a 2FA verification email.\nThis new verification process is required for all new and existing `PUBLIC_PROFIT` brands.\nTCR will extend to more entity types in the future.\n\nMore information [here](https://api.support.vonage.com/hc/en-us/articles/15852493708444-10DLC-Update-Brand-Authentication-verification-Oct-2024).\n"
   },
   "servers": [
      {
         "url": "https://api-eu.vonage.com"
      }
   ],
   "tags": [
      {
         "name": "Enums",
         "description": "The list of values available for enum properties across all APIs"
      },
      {
         "name": "Account",
         "description": "This section outlines the endpoints to view and manage all account level 10DLC features:\n* [Opt-Out Assist](https://api.support.vonage.com/hc/en-us/articles/9398221473564-Vonage-Opt-Out-Assist)\n"
      },
      {
         "name": "Brands",
         "description": "This section outlines the endpoints to register and manage your 10DLC brands.\n\n[Guide](https://api.support.vonage.com/hc/en-us/articles/360052940172-10DLC-Brand-registration-guide) - [Requirements](https://api.support.vonage.com/hc/en-us/articles/8279270417692-10DLC-Brand-requirements)\n\n**Recently updated**:\n* `reseller` (boolean): designates a brand as reseller brand  \n_Updating the reseller boolean on existing brands will attempt to update all existing campaigns with the reseller ID information._  \n_All campaigns registered on reseller brands will be designated as reseller campaigns automatically._\n* **`PUBLIC_PROFIT` brands only**\n  * `verification_email` (string): Email address used for the Authentication+ verification\n  * `verification_email_completion_date` (string): Completion date of the Authentication+ verification\n* Only registered 10DLC Resellers (`PENDING` or `APPROVED`) can register reseller brands\n"
      },
      {
         "name": "Brand verification",
         "description": "This section outlines the endpoints to verify your brand.\nPlease read [this guide](https://api.support.vonage.com/hc/en-us/articles/8021156408732-10DLC-Brand-verification-requirements) for more information.\n\n### Brand verification\n* Basic verification\n* Authentication+ verification - [details](https://api.support.vonage.com/hc/en-us/articles/15852493708444-10DLC-Update-Brand-Authentication-verification-Oct-2024)\n* Sole Proprietor OTP verification - [details](https://api.support.vonage.com/hc/en-us/articles/8429087361436-10DLC-Verify-a-sole-proprietor-brand)\n\n### Brand vetting\n* Standard vet\n* Enhanced vet\n* Political vet\n\n### Verification and vetting appeals\n"
      },
      {
         "name": "Campaigns",
         "description": "This section outlines the endpoints to register and manage your 10DLC campaigns.\n\n[Guide](https://api.support.vonage.com/hc/en-us/articles/360053422591-10DLC-Campaign-registration-guide) - [Requirements](https://api.support.vonage.com/hc/en-us/articles/12132309081500-10DLC-Campaign-requirements)\n\nImportant information:\n* **Unverified** brands cannot register campaigns.\n* **Verified** brands can only register:\n  * `SOLE_PROPRIETOR` campaigns for Sole Proprietor brands \n  * `CHARITY` campaigns for recognized non-profit brands\n  * `POLITICAL` campaigns for recognized non-profit brands or brands with a **successful political vet**\n  * `LOW_VOLUME_MIXED` campaigns\n* A **successful standard or enhanced vet** is required for most other use-cases\n* For some special use-cases, a pre-approval is required (reach out to your AM or open a support ticket)\n* Only registered 10DLC Resellers (`PENDING` or `APPROVED`) can register reseller campaigns \n* Only approved 10DLC Partners can use the campaign importation endpoint\n"
      },
      {
         "name": "Numbers",
         "description": "APIs relating to working with Numbers in Campaigns"
      },
      {
         "name": "Resellers",
         "description": "APIs for managing resellers associated with your account."
      }
   ],
   "security": [
      {
         "basicAuth": []
      }
   ],
   "paths": {
      "/v1/10dlc/enum": {
         "get": {
            "tags": [
               "Enums"
            ],
            "description": "Get the list of all enum values available for each enum parameter",
            "summary": "Get enumeration values",
            "operationId": "getEnumValues",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/EnumResponse"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               }
            }
         }
      },
      "/v1/10dlc/account": {
         "get": {
            "tags": [
               "Account"
            ],
            "summary": "Get account settings",
            "description": "Get all 10DLC account level settings and features.\n",
            "operationId": "getAccount",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/Account"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         },
         "patch": {
            "tags": [
               "Account"
            ],
            "summary": "Update account settings",
            "description": "Update account settings. Oonly the primary account is allowed to update the account attributes.\n",
            "operationId": "updateAccount",
            "requestBody": {
               "$ref": "#/components/requestBodies/UpdateAccount"
            },
            "responses": {
               "204": {
                  "description": "No Content"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "403": {
                  "$ref": "#/components/responses/ErrorForbiddenResponse"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands": {
         "get": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/Page"
               },
               {
                  "$ref": "#/components/parameters/PageSize"
               },
               {
                  "$ref": "#/components/parameters/filter"
               },
               {
                  "$ref": "#/components/parameters/brand_status"
               }
            ],
            "tags": [
               "Brands"
            ],
            "summary": "Get all brands with specific Account ID.",
            "description": "Retrieve all brands with Account ID.",
            "operationId": "listBrands",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/MultiBrands"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         },
         "post": {
            "tags": [
               "Brands"
            ],
            "summary": "Create a new brand for your account",
            "description": "Create a new brand for your account. A brand is a business or individual\nidentity behind the campaign. Most accounts will be created immediately,\nand you can move on to qualifying a new campaign for the brand. Some\nbrands may require additional vetting. In such cases, please move on to\nthe vetting API endpoints before attempting to create a campaign.\n\nPlease note the `entity_type` field, as that field value will help determine which fields are required.`\n",
            "operationId": "createBrand",
            "requestBody": {
               "$ref": "#/components/requestBodies/CreateBrand"
            },
            "responses": {
               "201": {
                  "$ref": "#/components/responses/SingleBrand"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "409": {
                  "$ref": "#/components/responses/ErrorConflict"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}": {
         "parameters": [
            {
               "$ref": "#/components/parameters/brand_id"
            }
         ],
         "get": {
            "tags": [
               "Brands"
            ],
            "summary": "Get a brand by Brand ID.",
            "description": "Retrieve a specific brand with Brand ID.",
            "operationId": "getBrand",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/SingleBrand"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         },
         "patch": {
            "tags": [
               "Brands"
            ],
            "summary": "Partially update a brand",
            "description": "This operation applies a partial update of a brand enabling the CSP to keep brand details updated in the registry. \nPlease note that if vetting is successfully completed, the `ein` `ein_issuing_country` and `entity_type` fields will be locked and the associated values cannot be changed.\n",
            "operationId": "patchBrand",
            "requestBody": {
               "required": true,
               "content": {
                  "application/json": {
                     "schema": {
                        "$ref": "#/components/schemas/BrandEditableFields"
                     }
                  }
               }
            },
            "responses": {
               "200": {
                  "$ref": "#/components/responses/SingleBrand"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         },
         "delete": {
            "tags": [
               "Brands"
            ],
            "summary": "Remove a specific brand from your account",
            "description": "This operation deletes a brand.\n\nA brand can be deleted if it does not have active campaigns.\nOnce a brand is deleted, it will be in a `DELETED` state and it cannot be restored to an `ACTIVE` state.\nDeleted brands will remain in the system for a period of time and can be searched using the GET/brand endpoint with the query filter `status` = ACTIVE.\nWhile deleted brands are searchable, all other API endpoints involving a deleted brand will result in a `502 - Brand not found` error.\n",
            "operationId": "deleteBrand",
            "responses": {
               "204": {
                  "description": "No Content"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "409": {
                  "$ref": "#/components/responses/ErrorConflict"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/feedback": {
         "get": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/brand_id"
               }
            ],
            "tags": [
               "Brands"
            ],
            "operationId": "getBrandFeedback",
            "summary": "Get feedback of a brand by Brand ID.",
            "description": "Retrieve feedback of a specific brand with Brand ID.\n\nThe endpoint will only respond correctly if the brand's identity status is already checked.\nIf the brand's identity status is still `PENDING`, it will answer with a 422 error.\n\nAlso, if the brand's identity status is not `UNVERIFIED`, the response should be empty.\n",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/BrandFeedbackResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/usecases/{usecase}": {
         "parameters": [
            {
               "$ref": "#/components/parameters/brand_id"
            },
            {
               "$ref": "#/components/parameters/usecase"
            }
         ],
         "get": {
            "tags": [
               "Brands"
            ],
            "description": "Check to see if a brand is qualified to run a campaign against a given\nuse case. A brand must check this endpoint before attempting to generate\na new campaign.\n\nIf the use case is not qualified, the brand may request additional third\nparty vetting to see if the additional use cases can be added to their\naccount.\n",
            "summary": "Check Use Case Qualifications for a Brand",
            "operationId": "qualifyBrandUseCase",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/QualifiedUseCase"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/start_verification": {
         "post": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/brand_id"
               }
            ],
            "tags": [
               "Brand verification"
            ],
            "summary": "Triggers the emission of OTP or 2FA verification",
            "description": "Triggers an OTP verification for Sole proprietor brands, or 2FA email verification for Authentication+.\n* OTP message is sent to brand's registered mobile phone number ([details](https://api.support.vonage.com/hc/en-us/articles/8429087361436-10DLC-Verify-a-sole-proprietor-brand))\n* 2FA email is sent to brand's verification email ([details](https://api.support.vonage.com/hc/en-us/articles/15852493708444-10DLC-Update-Brand-Authentication-verification-Oct-2024))\n",
            "operationId": "startverification",
            "requestBody": {
               "$ref": "#/components/requestBodies/StartVerification"
            },
            "responses": {
               "200": {
                  "$ref": "#/components/responses/TriggerOTPResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/verify": {
         "post": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/brand_id"
               }
            ],
            "tags": [
               "Brand verification"
            ],
            "summary": "Verify the OTP code sent to brand's registered mobile phone number.",
            "description": "Verify an OTP code sent to brand's registered mobile phone number.",
            "operationId": "verify",
            "requestBody": {
               "content": {
                  "application/json": {
                     "schema": {
                        "type": "object",
                        "required": [
                           "otp_pin"
                        ],
                        "properties": {
                           "otp_pin": {
                              "description": "Code received by the brand's registered mobile phone number after starting the OTP verification process.",
                              "type": "string",
                              "minLength": 6,
                              "maxLength": 6
                           }
                        }
                     }
                  }
               }
            },
            "responses": {
               "204": {
                  "description": "No Content"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "403": {
                  "$ref": "#/components/responses/ErrorForbiddenResponse"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/verification/{reference_id}": {
         "get": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/brand_id"
               },
               {
                  "$ref": "#/components/parameters/otp_reference_id"
               }
            ],
            "tags": [
               "Brand verification"
            ],
            "summary": "Retrieves SMS OTP status by referenceId.",
            "description": "API endpoint provides two key pieces of information; OTP verify status and SMS delivery status of the OTP message.",
            "operationId": "getOTPStatus",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/GetOTPStatusResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "403": {
                  "$ref": "#/components/responses/ErrorForbiddenResponse"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/vetting/requests": {
         "parameters": [
            {
               "$ref": "#/components/parameters/brand_id"
            }
         ],
         "get": {
            "tags": [
               "Brand verification"
            ],
            "summary": "Retrieve a list of vetting records for a brand",
            "description": "Retrieve a list of vetting records for a brand",
            "operationId": "getVettingRequests",
            "responses": {
               "200": {
                  "description": "Returns a list of vetting requests",
                  "content": {
                     "application/json": {
                        "schema": {
                           "type": "array",
                           "items": {
                              "$ref": "#/components/schemas/VettingRequest"
                           }
                        }
                     }
                  }
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorVettingParameters"
               }
            }
         },
         "post": {
            "tags": [
               "Brand verification"
            ],
            "summary": "Request vetting for a brand",
            "description": "This operation requests the specific vetting provider to perform\nvetting on a brand. This authorizes Vonage to allow the vetting\npartner access to the particular brand information stored in The Campaign Registry (TCR). This request\ncan take anywhere from a few minutes to 48 hours.\n",
            "operationId": "requestVetting",
            "requestBody": {
               "$ref": "#/components/requestBodies/VettingRequest"
            },
            "responses": {
               "200": {
                  "$ref": "#/components/responses/VettingRequest"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorVettingParameters"
               },
               "429": {
                  "$ref": "#/components/responses/ThrottledError"
               }
            }
         },
         "put": {
            "tags": [
               "Brand verification"
            ],
            "summary": "Import an existing vetting request to Vonage",
            "description": "Vetting requests can either be automated or manual. In the case that a\nvetting request has been manually performed or was requested outside of\nVonage, you can request that the request be imported. The vetting\nrequest will be validated and, if successful, saved with the brand in TCR and the vetting record will be considered for future campaign qualification. This\nvalidation process is not immediate.\n",
            "operationId": "importVettingRequest",
            "requestBody": {
               "$ref": "#/components/requestBodies/ExistingVettingRequest"
            },
            "responses": {
               "200": {
                  "$ref": "#/components/responses/VettingRequest"
               },
               "409": {
                  "$ref": "#/components/responses/ErrorVettingConflict"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorVettingParameters"
               },
               "429": {
                  "$ref": "#/components/responses/ThrottledError"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/vetting/requests/{vetting_id}/appeal": {
         "parameters": [
            {
               "$ref": "#/components/parameters/brand_id"
            },
            {
               "in": "path",
               "name": "vetting_id",
               "description": "Vetting ID",
               "required": true,
               "schema": {
                  "type": "string"
               }
            }
         ],
         "post": {
            "tags": [
               "Brand verification"
            ],
            "summary": "Request vetting appeal for a brand",
            "description": "This creates an appeal for the selected vetting.\n\nEvidence files, previously uploaded with endpoint `POST /v1/10dlc/brands/{brand_id}/appeal/evidence` can be attached to the appeal.\n\nLimitations:\n* A maximum of 10 evidence files can be submitted with the appeal\n* Each file's size cannot exceed 10MB\n* The total size of the evidence files cannot exceed 100MB\n",
            "operationId": "postBrandVettingAppeal",
            "requestBody": {
               "content": {
                  "application/json": {
                     "schema": {
                        "type": "object",
                        "required": [
                           "categories",
                           "evidence_ids",
                           "explanation"
                        ],
                        "properties": {
                           "categories": {
                              "$ref": "#/components/schemas/VettingAppealCategories"
                           },
                           "evidence_ids": {
                              "type": "array",
                              "items": {
                                 "type": "string"
                              },
                              "minItems": 0,
                              "maxItems": 10,
                              "description": "An array referencing previously uploaded evidence files IDs.\n"
                           },
                           "explanation": {
                              "type": "string",
                              "maxLength": 1024,
                              "description": "Explanation of why the appeal should be granted."
                           }
                        },
                        "example": {
                           "categories": [
                              "LOW_SCORE"
                           ],
                           "evidence_ids": [
                              "OWUwZTA5MmUtOGNjYS00ZGI0LWFkNWUtZTg4MmUwNzhjMDUy",
                              "ZDk4NzhiMzktY2IwZC00ZTg1LTg0OTEtZWI3ZmI0ZmM3NDM5"
                           ],
                           "explanation": "We think the low score is not warranted because ..."
                        }
                     }
                  }
               }
            },
            "responses": {
               "204": {
                  "description": "No Content"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorVettingParameters"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/revet": {
         "parameters": [
            {
               "$ref": "#/components/parameters/brand_id"
            }
         ],
         "post": {
            "tags": [
               "Brand verification"
            ],
            "summary": "Request a brand revetting",
            "description": "This operation allows you to revet the brand; however, revetting is\nallowed once after the successful brand registration. Search for campaigns you registered by any combination of `brand_id`, `reseller_id`, `status`, `usecase`, and `vertical`. This operation supports pagination with a maximum of 500 records per fetch. Values for `brand_id`, `reseller_id`, `status`, `usecase`, and `vertical` must be exact matches if supplied.\n",
            "operationId": "brandRevet",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/SingleBrand"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/appeal/evidence": {
         "parameters": [
            {
               "$ref": "#/components/parameters/Page"
            },
            {
               "$ref": "#/components/parameters/PageSize"
            },
            {
               "$ref": "#/components/parameters/filter"
            },
            {
               "$ref": "#/components/parameters/brand_id"
            }
         ],
         "get": {
            "tags": [
               "Brand verification"
            ],
            "summary": "List vetting appeal evidence files",
            "description": "List files that can be used for vetting appeals.\n",
            "operationId": "brandListAppealEvidence",
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "allOf": [
                              {
                                 "$ref": "#/components/schemas/TokenPagination"
                              },
                              {
                                 "type": "object",
                                 "properties": {
                                    "_embedded": {
                                       "type": "object",
                                       "properties": {
                                          "evidences": {
                                             "type": "array",
                                             "items": {
                                                "$ref": "#/components/schemas/AttachmentInfo"
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                           ]
                        }
                     }
                  }
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               }
            }
         },
         "post": {
            "tags": [
               "Brand verification"
            ],
            "summary": "Upload evidence for a vetting appeal",
            "description": "This operation allows you to import evidence files to be used to appeal an existing vetting.\n\nMultiple files can be uploaded at once, with following limitations:\n* The size of each file cannot exceed 10MB\n* The total size of the HTTP request cannot exceed 100MB\n* Supported file types are: jpg jpeg png bmp raw tiff pdf docx htm odt rtf txt xml\n\nWe expect the filename to be populated in the Content-Disposition header and the Content-Type to be set in each subpart.\n",
            "operationId": "brandUploadAppealEvidence",
            "requestBody": {
               "content": {
                  "multipart/form-data": {
                     "schema": {
                        "required": [
                           "file"
                        ],
                        "type": "object",
                        "properties": {
                           "file": {
                              "type": "string",
                              "format": "binary"
                           }
                        }
                     }
                  }
               }
            },
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "$ref": "#/components/schemas/AttachmentInfo"
                        }
                     }
                  }
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/appeal/evidence/{evidence_id}": {
         "parameters": [
            {
               "$ref": "#/components/parameters/brand_id"
            },
            {
               "in": "path",
               "name": "evidence_id",
               "description": "The ID of the evidence to download",
               "required": true,
               "schema": {
                  "type": "string"
               }
            }
         ],
         "get": {
            "tags": [
               "Brand verification"
            ],
            "summary": "Download appeal evidence file",
            "description": "This operation allows you to download an evidence file.\nThe Content-Type header might vary and will reflect the Mime-Type of the file.\nThe Content-Disposition header will hold the filename.\n",
            "operationId": "brandDownloadAppealEvidence",
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/octet-stream": {
                        "schema": {
                           "type": "string",
                           "format": "binary"
                        }
                     }
                  }
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               }
            }
         },
         "delete": {
            "tags": [
               "Brand verification"
            ],
            "summary": "Delete appeal evidence file",
            "operationId": "deleteAppealEvidence",
            "description": "This operation allows you to delete an evidence file.\n",
            "responses": {
               "204": {
                  "description": "OK",
                  "content": {
                     "application/octet-stream": {
                        "schema": {
                           "type": "string",
                           "format": "binary"
                        }
                     }
                  }
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/campaigns": {
         "get": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/brand_id"
               },
               {
                  "$ref": "#/components/parameters/Page"
               },
               {
                  "$ref": "#/components/parameters/PageSize"
               },
               {
                  "$ref": "#/components/parameters/filter"
               },
               {
                  "$ref": "#/components/parameters/campaign_status"
               }
            ],
            "tags": [
               "Campaigns"
            ],
            "description": "List campaigns",
            "operationId": "listCampaigns",
            "summary": "Retrieve all of the campaigns associated with a brand",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/MultiCampaignsResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         },
         "post": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/brand_id"
               }
            ],
            "tags": [
               "Campaigns"
            ],
            "description": "Create Campaign\n\n**Message samples**\n\nThe number of required message samples on the maximum of these 3 values:\n1. The number of `min_msg_samples` for the usecase, as returned by the /enum endpoint.        \n2. The number of entries in the `sub_usecases` field.\n3. The maximum of min_msg_samples asked by MNOs on the brand qualification endpoint. \n\n**Notes**:\n\n1. `opt_in_message` is mandatory if `opt_in_keywords` is set.\n2. Either `message_flow` or `message_flow_details` is required, but only one of them may be specified.\n",
            "operationId": "createCampaign",
            "summary": "Add a new campaign to a brand",
            "requestBody": {
               "$ref": "#/components/requestBodies/CreateCampaign"
            },
            "responses": {
               "201": {
                  "$ref": "#/components/responses/SingleCampaignResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "409": {
                  "$ref": "#/components/responses/ErrorConflict"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/campaigns/message_flow": {
         "post": {
            "tags": [
               "Campaigns"
            ],
            "summary": "Preview message flow",
            "description": "Creates a message flow text, based on the structured object given.\n\nThe result is the same text that would be computed from field `message_flow_details` to fill `message_flow` when creating a campaign.\n\n**Note:** if the resulting `message_flow` length is not in the allowed range (40 to 4096), the endpoint will return a 422 error.\n",
            "operationId": "previewCampaignsMessageFlow",
            "requestBody": {
               "content": {
                  "application/json": {
                     "schema": {
                        "allOf": [
                           {
                              "$ref": "#/components/schemas/MessageFlowDetails"
                           },
                           {
                              "type": "object",
                              "properties": {
                                 "opt_in_keywords": {
                                    "$ref": "#/components/schemas/OptInKeywords"
                                 }
                              }
                           }
                        ]
                     }
                  }
               }
            },
            "responses": {
               "200": {
                  "description": "An object holding the computed message flow.",
                  "content": {
                     "application/json": {
                        "schema": {
                           "type": "object",
                           "properties": {
                              "message_flow": {
                                 "$ref": "#/components/schemas/CampaignReadMessageFlow"
                              }
                           }
                        }
                     }
                  }
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/campaigns/{campaign_id}": {
         "parameters": [
            {
               "$ref": "#/components/parameters/brand_id"
            },
            {
               "$ref": "#/components/parameters/campaign_id"
            }
         ],
         "get": {
            "tags": [
               "Campaigns"
            ],
            "summary": "Retrieve a specific campaign",
            "description": "Get a campaign",
            "operationId": "getCampaign",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/SingleCampaignResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         },
         "patch": {
            "tags": [
               "Campaigns"
            ],
            "summary": "Partially update a specific campaign",
            "description": "Update campaign parameters\n\nWhat can be updated depends on the campaign's state:\n* If the campaign's status is `TERMINATED` or `CANCELED`, the campaign may not be updated.\n* If the campaign's status is `PENDING_REVIEW` or `UPDATES_REQUIRED`, all fields may be updated.\n* For other statuses, the following fields may not be updated since they are read only after the initial approval of the campaign by Vonage compliance team:\n  * vertical\n  * usecase\n  * sub_usecases\n  * age_gated\n  * direct_lending\n  * embedded_link\n  * embedded_phone\n  * status\n* The `hipaa` field can only be updated if no number was ever linked to that campaign.\n\nForced values\n* `status` can only be set to `“CANCELED”`, to cancel a campaign, Otherwise, it must be left out, or set to null.\n\n**NB**:\n1. `opt_in_message` is mandatory if `opt_in_keywords` is set.\n2. `message_flow` and `message_flow_details` are mutually exclusive.\n  * if `message_flow` is passed, it will erase any stored `message_flow_details`.\n  * if `message_flow_details` is passed, it will be stored and used to compute `message_flow`.\n",
            "operationId": "patchCampaign",
            "requestBody": {
               "required": true,
               "content": {
                  "application/json": {
                     "schema": {
                        "$ref": "#/components/schemas/CampaignUpdatePayload"
                     }
                  }
               }
            },
            "responses": {
               "200": {
                  "$ref": "#/components/responses/SingleCampaignResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         },
         "delete": {
            "deprecated": true,
            "tags": [
               "Campaigns"
            ],
            "summary": "Stop a specific campaign on a brand",
            "description": "<b style=\"color:white;background-color:red\">Deprecated</b><br>\n\n<s>Cancels the campaign auto-renewal.\nThe cancellation of renewal cannot be reverted.</s>\n\n<s>The actual deletion will happen after campaign's expiration date.</s>\n\n**NB:** Will soon be deprecated. Use the [Campaign PATCH](#patchCampaign) with the `auto_renewal` \nproperty set to `false` to achieve a similar outcome.<br>\n",
            "operationId": "deleteCampaign",
            "responses": {
               "204": {
                  "description": "No content"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/campaigns/{campaign_id}/resubmit": {
         "put": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/brand_id"
               },
               {
                  "$ref": "#/components/parameters/campaign_id"
               }
            ],
            "tags": [
               "Campaigns"
            ],
            "summary": "Re-submit active campaign against specific MNO CRE.",
            "description": "Re-submit active campaign against specific MNO CRE.",
            "operationId": "campaignResubmit",
            "requestBody": {
               "$ref": "#/components/requestBodies/MNOResubmit"
            },
            "responses": {
               "200": {
                  "$ref": "#/components/responses/ResubmitCampaignResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/campaigns/terms_and_conditions": {
         "get": {
            "tags": [
               "Campaigns"
            ],
            "description": "Get campaign terms and conditions",
            "operationId": "campaignT&C",
            "summary": "The terms and conditions governing the creation of a campaign.",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/CampaignTnCResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/partnercampaigns/import": {
         "post": {
            "summary": "Import a partner campaign to Vonage",
            "description": "Import a partner campaign by sharing it with Vonage. Your account needs a special capability to be able to carry on with this operation.\n",
            "tags": [
               "Campaigns"
            ],
            "operationId": "importPartnerCampaign",
            "requestBody": {
               "content": {
                  "application/json": {
                     "schema": {
                        "type": "object",
                        "properties": {
                           "account_id": {
                              "$ref": "#/components/schemas/AccountID"
                           },
                           "campaign_id": {
                              "$ref": "#/components/schemas/TCRCampaignID"
                           },
                           "label": {
                              "$ref": "#/components/schemas/CampaignLabel"
                           },
                           "cnp_migration": {
                              "type": "boolean",
                              "description": "Indicates if the campaign is part of the CNP migration.\nIt must be set to true, if a CNP migration has been initiated.\n"
                           }
                        },
                        "required": [
                           "account_id",
                           "campaign_id"
                        ]
                     }
                  }
               }
            },
            "responses": {
               "201": {
                  "$ref": "#/components/responses/ImportPartnerCampaignResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/partnercampaigns/{campaign_id}": {
         "get": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/campaign_id"
               }
            ],
            "summary": "Get partner campaign sharing information",
            "description": "Get partner campaign sharing information",
            "tags": [
               "Campaigns"
            ],
            "operationId": "getPartnerCampaign",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/PartnerCampaignResponse"
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/campaigns/{campaign_id}/numbers": {
         "parameters": [
            {
               "$ref": "#/components/parameters/brand_id"
            },
            {
               "$ref": "#/components/parameters/campaign_id"
            },
            {
               "$ref": "#/components/parameters/filter"
            }
         ],
         "get": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/Page"
               },
               {
                  "$ref": "#/components/parameters/PageSize"
               }
            ],
            "tags": [
               "Numbers"
            ],
            "summary": "Retrieve Numbers associated with a campaign",
            "description": "Get numbers in campaign",
            "operationId": "getNumbers",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/MultiNumbersResponse"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorNumbersParameters"
               }
            }
         },
         "post": {
            "tags": [
               "Numbers"
            ],
            "summary": "Link number to a campaign",
            "operationId": "linkNumberToCampaign",
            "description": "Links an existing Vonage number to a 10DLC campaign.\n",
            "requestBody": {
               "$ref": "#/components/requestBodies/LinkNumber"
            },
            "responses": {
               "202": {
                  "description": "Accepted",
                  "content": {
                     "application/json": {
                        "schema": {
                           "$ref": "#/components/schemas/NumberResponse"
                        }
                     }
                  }
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "409": {
                  "$ref": "#/components/responses/ErrorNumbersAlreadyLinked"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorNumbersParameters"
               }
            }
         }
      },
      "/v1/10dlc/brands/{brand_id}/campaigns/{campaign_id}/numbers/{number}": {
         "parameters": [
            {
               "$ref": "#/components/parameters/brand_id"
            },
            {
               "$ref": "#/components/parameters/campaign_id"
            },
            {
               "$ref": "#/components/parameters/Number"
            }
         ],
         "get": {
            "tags": [
               "Numbers"
            ],
            "summary": "Retrieve information about a number in a campaign",
            "description": "Retrieve information about a number in a campaign",
            "operationId": "getNumber",
            "responses": {
               "200": {
                  "$ref": "#/components/responses/NumberResponse"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorNumbersParameters"
               }
            }
         },
         "delete": {
            "tags": [
               "Numbers"
            ],
            "summary": "Unlink a number from a campaign",
            "description": "Unlink a number from a campaign",
            "operationId": "unlinkNumber",
            "responses": {
               "204": {
                  "description": "No Content"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorNumbersParameters"
               }
            }
         }
      },
      "/v1/10dlc/resellers": {
         "post": {
            "tags": [
               "Resellers"
            ],
            "description": "Add resellers to your account.\n",
            "operationId": "createReseller",
            "summary": "Create a new reseller",
            "requestBody": {
               "content": {
                  "application/json": {
                     "schema": {
                        "type": "object",
                        "properties": {
                           "company_name": {
                              "description": "Company name of the reseller.",
                              "type": "string",
                              "example": "Microsoft",
                              "maxLength": 100
                           },
                           "phone": {
                              "$ref": "#/components/schemas/MobilePhone"
                           },
                           "email": {
                              "description": "Valid email address of reseller contact.",
                              "type": "string",
                              "maxLength": 100,
                              "example": "john.doe@microsoft.com"
                           }
                        },
                        "required": [
                           "company_name",
                           "phone",
                           "email"
                        ]
                     }
                  }
               }
            },
            "responses": {
               "201": {
                  "description": "Created",
                  "content": {
                     "application/json": {
                        "schema": {
                           "$ref": "#/components/schemas/Reseller"
                        }
                     }
                  }
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               },
               "409": {
                  "$ref": "#/components/responses/ErrorConflict"
               }
            }
         },
         "get": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/Page"
               },
               {
                  "$ref": "#/components/parameters/PageSize"
               }
            ],
            "tags": [
               "Resellers"
            ],
            "description": "List the resellers associated with your Account.",
            "operationId": "listResellers",
            "summary": "List the resellers",
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "allOf": [
                              {
                                 "$ref": "#/components/schemas/TokenPagination"
                              },
                              {
                                 "type": "object",
                                 "properties": {
                                    "_embedded": {
                                       "type": "object",
                                       "properties": {
                                          "resellers": {
                                             "type": "array",
                                             "items": {
                                                "$ref": "#/components/schemas/Reseller"
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                           ]
                        }
                     }
                  }
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               }
            }
         }
      },
      "/v1/10dlc/resellers/{reseller_id}": {
         "get": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/path_reseller_id"
               }
            ],
            "tags": [
               "Resellers"
            ],
            "description": "Get a reseller",
            "operationId": "getReseller",
            "summary": "Get a reseller",
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "$ref": "#/components/schemas/Reseller"
                        }
                     }
                  }
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "404": {
                  "$ref": "#/components/responses/NotFoundError"
               }
            }
         }
      },
      "/v1/10dlc/throughputs": {
         "get": {
            "parameters": [
               {
                  "$ref": "#/components/parameters/PageSize"
               },
               {
                  "$ref": "#/components/parameters/page_token"
               },
               {
                  "name": "campaign_id",
                  "in": "query",
                  "required": true,
                  "schema": {
                     "$ref": "#/components/schemas/CampaignID"
                  }
               }
            ],
            "tags": [
               "Campaigns"
            ],
            "description": "Get throughput applied to a campaign for the available MNOs.",
            "operationId": "listThroughput",
            "summary": "Get throughput applied to a campaign.",
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "allOf": [
                              {
                                 "$ref": "#/components/schemas/TokenPagination"
                              },
                              {
                                 "type": "object",
                                 "properties": {
                                    "_embedded": {
                                       "type": "object",
                                       "properties": {
                                          "throughputs": {
                                             "type": "array",
                                             "items": {
                                                "$ref": "#/components/schemas/ThroughputItem"
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                           ]
                        }
                     }
                  }
               },
               "400": {
                  "$ref": "#/components/responses/ErrorBadRequest"
               },
               "401": {
                  "$ref": "#/components/responses/BadCredentialsError"
               },
               "422": {
                  "$ref": "#/components/responses/ErrorUnprocessableResourceResponse"
               }
            }
         }
      }
   },
   "components": {
      "examples": {
         "LinkBrand": {
            "value": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK"
         },
         "LinkCampaign": {
            "value": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/C1DEB879/"
         },
         "LinkNumber": {
            "value": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/C1DEB879/numbers/14155550110"
         },
         "Numbers": {
            "value": [
               "12025550150",
               "12025550142",
               "12025550178",
               "12025550117",
               "12025550182",
               "12025550192"
            ]
         },
         "UseCases": {
            "value": [
               "ACCOUNT_NOTIFICATION",
               "CONVERSATIONAL",
               "DELIVERY_NOTIFICATION"
            ]
         }
      },
      "responses": {
         "ErrorNumbersAlreadyLinked": {
            "description": "The number that was requested to link is already associated with another campaign",
            "content": {
               "application/json": {
                  "schema": {
                     "allOf": [
                        {
                           "$ref": "#/components/schemas/schema"
                        },
                        {
                           "type": "object",
                           "description": "Errors with submission",
                           "properties": {
                              "title": {
                                 "description": "Generic error message",
                                 "example": "Number Already Linked"
                              },
                              "type": {
                                 "description": "Link to error / remediation options",
                                 "example": "https://developer.vonage.com/api-errors/10dlc#number-already-linked"
                              },
                              "detail": {
                                 "description": "Additional information about the error",
                                 "example": "The number requested has already been linked to another campaign"
                              }
                           }
                        }
                     ]
                  }
               }
            }
         },
         "ErrorNumbersParameters": {
            "description": "Various errors that can occur during number data submission",
            "content": {
               "application/json": {
                  "schema": {
                     "allOf": [
                        {
                           "$ref": "#/components/schemas/schema"
                        },
                        {
                           "type": "object",
                           "description": "Errors with submission",
                           "properties": {
                              "title": {
                                 "description": "Generic error message",
                                 "example": "There were some issues with the submitted data"
                              },
                              "type": {
                                 "description": "Link to error / remediation options",
                                 "example": "https://developer.vonage.com/api-errors/10dlc#invalid-number-data"
                              },
                              "detail": {
                                 "description": "Additional information about the error",
                                 "example": "There were some errors submitting your campaign, please correct the requested fields"
                              },
                              "invalid_parameters": {
                                 "description": "Errors from the number system",
                                 "type": "array",
                                 "items": {
                                    "type": "object",
                                    "properties": {
                                       "field": {
                                          "type": "string",
                                          "description": "Field that had a data issue",
                                          "example": "country"
                                       },
                                       "description": {
                                          "type": "string",
                                          "description": "Error text",
                                          "example": "Field 'country' is not a valid value"
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     ]
                  }
               }
            }
         },
         "ErrorVettingConflict": {
            "description": "Error that can occur if there is a conflict during a vetting request",
            "content": {
               "application/json": {
                  "schema": {
                     "allOf": [
                        {
                           "$ref": "#/components/schemas/schema"
                        },
                        {
                           "type": "object",
                           "description": "Conflict when a vetting is requested for a brand",
                           "properties": {
                              "title": {
                                 "description": "Generic error message",
                                 "example": "An error occurred while requesting third party vetting"
                              },
                              "type": {
                                 "description": "Link to error / remediation options",
                                 "example": "https://developer.vonage.com/api-errors/10dlc#vetting-conflict"
                              },
                              "detail": {
                                 "description": "Additional information about the error",
                                 "example": "An unknown error occurred while requesting vetting with the carrier system. Please contact support or try again later."
                              }
                           }
                        }
                     ]
                  }
               }
            }
         },
         "ErrorVettingParameters": {
            "description": "Various errors that can occur during vetting requests",
            "content": {
               "application/json": {
                  "schema": {
                     "allOf": [
                        {
                           "$ref": "#/components/schemas/schema"
                        },
                        {
                           "type": "object",
                           "description": "Errors with submission",
                           "properties": {
                              "title": {
                                 "description": "Generic error message",
                                 "example": "There were some issues with the submitted data"
                              },
                              "type": {
                                 "description": "Link to error / remediation options",
                                 "example": "https://developer.vonage.com/api-errors/10dlc#invalid-vetting-data"
                              },
                              "detail": {
                                 "description": "Additional information about the error",
                                 "example": "There were some errors submitting your vetting request, please correct the requested fields"
                              },
                              "invalid_parameters": {
                                 "description": "Errors that are passed through from the Campaign Registry",
                                 "type": "array",
                                 "items": {
                                    "type": "object",
                                    "properties": {
                                       "code": {
                                          "type": "integer",
                                          "description": "Campaign Registry error code",
                                          "example": 503
                                       },
                                       "field": {
                                          "type": "string",
                                          "description": "Field that had a data issue",
                                          "example": "evp_id"
                                       },
                                       "description": {
                                          "type": "string",
                                          "description": "Error text",
                                          "example": "Field 'evp_id' is not unique"
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     ]
                  }
               }
            }
         },
         "MultiNumbersResponse": {
            "description": "List of numbers that are associated with a campaign",
            "content": {
               "application/json": {
                  "schema": {
                     "allOf": [
                        {
                           "$ref": "#/components/schemas/PagedResponse"
                        },
                        {
                           "type": "object",
                           "properties": {
                              "_embedded": {
                                 "type": "object",
                                 "properties": {
                                    "numbers": {
                                       "type": "array",
                                       "items": {
                                          "$ref": "#/components/schemas/NumberResponse"
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     ]
                  }
               }
            }
         },
         "NumberResponse": {
            "description": "Information about a number",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/NumberResponse"
                  }
               }
            }
         },
         "VettingRequest": {
            "description": "Information about a vetting request",
            "content": {
               "application/json": {
                  "schema": {
                     "allOf": [
                        {
                           "$ref": "#/components/schemas/VettingRequest"
                        }
                     ]
                  }
               }
            }
         },
         "EnumResponse": {
            "description": "List of all enumeration values",
            "content": {
               "application/json": {
                  "schema": {
                     "description": "Enumeration values used in other API objects.\nThese values are dynamic and can be changed regularly.\n",
                     "type": "object",
                     "properties": {
                        "alt_business_id_type": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "brand_relationship": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "brand_status": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "campaign_status": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "description": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "campaign_op_status": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "compliance": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "country": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "description": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "cnp": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "description": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "dca": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "description": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "entity_type": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "event_category": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "identity_status": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "mno": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 },
                                 "mno": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "nudge_intent": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "number_status": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "opt_attribute_name": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "description": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 },
                                 "type": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "sharing_status": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "stock_exchange": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "country": {
                                    "type": "string"
                                 },
                                 "description": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "tcr_campaign_status": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "tmo_brand_tier": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "usecase": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "classification": {
                                    "type": "string"
                                 },
                                 "description": {
                                    "type": "string"
                                 },
                                 "display_name": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 },
                                 "max_sub_usecases": {
                                    "type": "number"
                                 },
                                 "min_sub_usecases": {
                                    "type": "number"
                                 },
                                 "valid_sub_usecase": {
                                    "type": "number"
                                 },
                                 "min_msg_samples": {
                                    "description": "This is the minimum number of message samples for a campaign's usecase. \nThis does not account for additional samples needed by a campaign's sub usecases.\n",
                                    "type": "number"
                                 }
                              }
                           }
                        },
                        "usstate": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "description": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "vertical": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "description": {
                                    "type": "string"
                                 },
                                 "display_name": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 },
                                 "industry_id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "vetting_class": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "description": {
                                    "type": "string"
                                 },
                                 "display_name": {
                                    "type": "string"
                                 },
                                 "enabled": {
                                    "type": "number"
                                 },
                                 "id": {
                                    "type": "string"
                                 },
                                 "validity_months": {
                                    "type": "number"
                                 }
                              }
                           }
                        },
                        "vetting_provider": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "display_name": {
                                    "type": "string"
                                 },
                                 "id": {
                                    "type": "string"
                                 },
                                 "vetting_classes": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "vetting_status": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 }
                              }
                           }
                        },
                        "vetting_appeal_category": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "id": {
                                    "type": "string"
                                 },
                                 "display_name": {
                                    "type": "string"
                                 },
                                 "description": {
                                    "type": "string"
                                 }
                              }
                           }
                        }
                     },
                     "example": {
                        "alt_business_id_type": [
                           {
                              "id": "DUNS"
                           },
                           {
                              "id": "GIIN"
                           },
                           {
                              "id": "LEI"
                           },
                           {
                              "id": "NONE"
                           }
                        ],
                        "brand_relationship": [
                           {
                              "id": "BASIC_ACCOUNT"
                           },
                           {
                              "id": "KEY_ACCOUNT"
                           },
                           {
                              "id": "LARGE_ACCOUNT"
                           },
                           {
                              "id": "MEDIUM_ACCOUNT"
                           },
                           {
                              "id": "SMALL_ACCOUNT"
                           }
                        ],
                        "brand_status": [
                           {
                              "id": "ACTIVE"
                           },
                           {
                              "id": "DELETED"
                           },
                           {
                              "id": "UNKNOWN"
                           }
                        ],
                        "campaign_status": [
                           {
                              "description": "The campaign has been approved by every party and traffic can now be sent.",
                              "id": "ACTIVE"
                           },
                           {
                              "description": "The campaign has expired.",
                              "id": "CANCELED"
                           },
                           {
                              "description": "The campaign has been approved by our internal process. It is created in the registry and is pending approval from third parties.",
                              "id": "CARRIERS_REVIEW"
                           },
                           {
                              "description": "The campaign is active but will not be renewed. It will be canceled at the next renewal date.",
                              "id": "PENDING_CANCELLATION"
                           },
                           {
                              "description": "The initial state of a campaign. The campaign has been submitted for an internal review and cannot be used to send traffic yet.",
                              "id": "PENDING_REVIEW"
                           },
                           {
                              "description": "The campaign has been suspended, along with any traffic it's used to send. This can happen if suspicious traffic has been detected (spam, ...) or after an MNO complaint. This triggers an internal review process which can lead to the unsuspension or termination of the campaign.",
                              "id": "SUSPENDED"
                           },
                           {
                              "description": "The campaign has been terminated. A campaign cannot be recovered after it's been terminated.",
                              "id": "TERMINATED"
                           },
                           {
                              "description": "The campaign has been reviewed after submission, but needs changes before it can be approved.",
                              "id": "UPDATES_REQUIRED"
                           }
                        ],
                        "campaign_op_status": [
                           {
                              "id": "REGISTERED"
                           },
                           {
                              "id": "REJECTED"
                           },
                           {
                              "id": "REVIEW"
                           },
                           {
                              "id": "SUSPENDED"
                           },
                           {
                              "id": "UNKNOWN"
                           }
                        ],
                        "compliance": [
                           {
                              "id": "HIPAA"
                           },
                           {
                              "id": "NONE"
                           }
                        ],
                        "country": [
                           {
                              "description": "United Kingdom of Great Britain and Northern Ireland",
                              "id": "GB"
                           },
                           {
                              "description": "United States of America",
                              "id": "US"
                           }
                        ],
                        "cnp": [
                           {
                              "description": "Bandwidth",
                              "id": "BANDW"
                           }
                        ],
                        "dca": [
                           {
                              "description": "Bandwidth",
                              "id": "BANDW"
                           }
                        ],
                        "entity_type": [
                           {
                              "id": "GOVERNMENT"
                           },
                           {
                              "id": "NON_PROFIT"
                           },
                           {
                              "id": "PRIVATE_PROFIT"
                           },
                           {
                              "id": "PUBLIC_PROFIT"
                           },
                           {
                              "id": "SOLE_PROPRIETOR"
                           }
                        ],
                        "event_category": [
                           {
                              "id": "BRAND"
                           },
                           {
                              "id": "CAMPAIGN"
                           }
                        ],
                        "identity_status": [
                           {
                              "id": "SELF_DECLARED"
                           },
                           {
                              "id": "PENDING"
                           },
                           {
                              "id": "UNVERIFIED"
                           },
                           {
                              "id": "VERIFIED"
                           },
                           {
                              "id": "VETTED_VERIFIED"
                           }
                        ],
                        "mno": [
                           {
                              "id": "10017",
                              "mno": "AT&T"
                           },
                           {
                              "id": "10035",
                              "mno": "T-Mobile"
                           },
                           {
                              "id": "10037",
                              "mno": "US Cellular"
                           },
                           {
                              "id": "10038",
                              "mno": "Verizon Wireless"
                           },
                           {
                              "id": "10631",
                              "mno": "ClearSky"
                           },
                           {
                              "id": "10901",
                              "mno": "Interop"
                           }
                        ],
                        "nudge_intent": [
                           {
                              "id": "APPEAL_REJECTION"
                           },
                           {
                              "id": "REVIEW"
                           }
                        ],
                        "number_status": [
                           {
                              "id": "LINKING"
                           },
                           {
                              "id": "LINKED"
                           },
                           {
                              "id": "REJECTED"
                           },
                           {
                              "id": "UNLINKING"
                           },
                           {
                              "id": "UNLINKED"
                           }
                        ],
                        "opt_attribute_name": [
                           {
                              "description": "Confirmation that the brand is a closely affiliated, generally by government ownership or control, with federal, state or local governments.",
                              "id": "governmentEntity",
                              "type": "BOOLEAN"
                           },
                           {
                              "description": "Political committee Locale. Possible values are federal, state, local and tribal.",
                              "id": "politicalCommitteeLocale",
                              "type": "STRING"
                           },
                           {
                              "description": "Publicly traded company identified in the Russell 3000 Index",
                              "id": "russell3000",
                              "type": "BOOLEAN"
                           },
                           {
                              "description": "527 group is a type of U.S. tax-exempt organization organized under Section 527 of the U.S. Internal Revenue Code.",
                              "id": "section527",
                              "type": "BOOLEAN"
                           },
                           {
                              "description": "Nonprofit organization tax-exempt status per section 501 of the U.S. tax code. Example: '501c3'. Please refer to IRS code, section 501 - Ballotpedia for more info.",
                              "id": "taxExemptStatus",
                              "type": "STRING"
                           }
                        ],
                        "sharing_status": [
                           {
                              "id": "ACCEPTED"
                           },
                           {
                              "id": "DECLINED"
                           },
                           {
                              "id": "PENDING"
                           },
                           {
                              "id": "UNKNOWN"
                           }
                        ],
                        "stock_exchange": [
                           {
                              "country": "US",
                              "description": "Nasdaq",
                              "id": "NASDAQ"
                           },
                           {
                              "country": "US",
                              "description": "New York Stock Exchange",
                              "id": "NYSE"
                           }
                        ],
                        "tcr_campaign_status": [
                           {
                              "id": "ACTIVE"
                           },
                           {
                              "id": "EXPIRED"
                           },
                           {
                              "id": "UNKNOWN"
                           }
                        ],
                        "tmo_brand_tier": [
                           {
                              "id": "LOW"
                           },
                           {
                              "id": "SOLE_PROPRIETOR"
                           },
                           {
                              "id": "TOP"
                           }
                        ],
                        "usecase": [
                           {
                              "classification": "STANDARD",
                              "description": "A notification that the security of a system, either software or hardware, has been compromised in some way and there is an action you need to take",
                              "display_name": "Security Alert",
                              "id": "SECURITY_ALERT",
                              "max_sub_usecases": 0,
                              "min_sub_usecases": 0,
                              "valid_sub_usecase": 1
                           },
                           {
                              "classification": "SPECIAL",
                              "description": "Sole Proprietor",
                              "display_name": "Sole Proprietor",
                              "id": "SOLE_PROPRIETOR",
                              "max_sub_usecases": 5,
                              "min_sub_usecases": 1,
                              "valid_sub_usecase": 0
                           }
                        ],
                        "usstate": [
                           {
                              "description": "New York",
                              "id": "NY"
                           },
                           {
                              "description": "Washington",
                              "id": "WA"
                           }
                        ],
                        "vertical": [
                           {
                              "description": "Agriculture businesses and services.",
                              "display_name": "Agriculture",
                              "id": "AGRICULTURE",
                              "industry_id": "agriculture"
                           },
                           {
                              "description": "Communication and mass media.",
                              "display_name": "Communication and Mass Media",
                              "id": "COMMUNICATION",
                              "industry_id": "mass-media-and-communication"
                           }
                        ],
                        "vetting_class": [
                           {
                              "description": "Detailed vetting along with vet report",
                              "display_name": "Enhanced",
                              "enabled": 1,
                              "id": "ENHANCED",
                              "validity_months": 1200
                           },
                           {
                              "description": "Required for federal level political campaign.",
                              "display_name": "Political",
                              "enabled": 1,
                              "id": "POLITICAL",
                              "validity_months": 12
                           },
                           {
                              "description": "Standard Vetting covering all but Political, Exempted and Political use-cases",
                              "display_name": "Standard",
                              "enabled": 1,
                              "id": "STANDARD",
                              "validity_months": 12
                           }
                        ],
                        "vetting_provider": [
                           {
                              "display_name": "Aegis Mobile",
                              "id": "AEGIS",
                              "vetting_classes": "STANDARD,POLITICAL,ENHANCED"
                           },
                           {
                              "display_name": "Campaign Verify",
                              "id": "CV",
                              "vetting_classes": "POLITICAL_FEDERAL"
                           },
                           {
                              "display_name": "WMC Global",
                              "id": "WMC",
                              "vetting_classes": "STANDARD"
                           }
                        ],
                        "vetting_status": [
                           {
                              "id": "ACTIVE"
                           },
                           {
                              "id": "EXPIRED"
                           },
                           {
                              "id": "FAILED"
                           },
                           {
                              "id": "PENDING"
                           },
                           {
                              "id": "UNSCORE"
                           }
                        ],
                        "vetting_appeal_category": [
                           {
                              "id": "VERIFY_TAX_ID",
                              "display_name": "Verify tax ID",
                              "description": "Select this category if the record is FAILED due to an inability to match the tax ID."
                           },
                           {
                              "id": "VERIFY_NON_PROFIT",
                              "display_name": "Verify Non-Profit status/subsection",
                              "description": "Select this category if the record submitted as a Non-Profit entity type is VETTED_VERIFIED and is missing a 'Tax Exempt Status'."
                           },
                           {
                              "id": "VERIFY_GOVERNMENT",
                              "display_name": "Verify Government status",
                              "description": "Select this category if the record submitted as a Government entity type is VETTED_VERIFIED and is missing a “Government Entity” status."
                           },
                           {
                              "id": "LOW_SCORE",
                              "display_name": "Low score",
                              "description": "Select this category if the vetting score is too low based on the Company's characteristics, including size, years in business, business reputation, financial history, civil and criminal legal history, regulatory history, official registration and standing, and business messaging integrity record. This category applies only for Standard external vets."
                           }
                        ]
                     }
                  }
               }
            }
         },
         "BadCredentialsError": {
            "description": "Credential is missing or invalid",
            "content": {
               "application/json": {
                  "schema": {
                     "properties": {
                        "type": {
                           "type": "string",
                           "example": "https://developer.vonage.com/api-errors#unauthorized"
                        },
                        "title": {
                           "type": "string",
                           "example": "Invalid credentials supplied"
                        },
                        "detail": {
                           "type": "string",
                           "example": "You did not provide correct credentials."
                        },
                        "instance": {
                           "$ref": "#/components/schemas/instance"
                        }
                     }
                  }
               }
            }
         },
         "Account": {
            "description": "OK",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "opt_out_assist": {
                           "$ref": "#/components/schemas/OptOutAssist"
                        }
                     }
                  }
               }
            }
         },
         "ErrorUnprocessableResourceResponse": {
            "description": "Resource Unprocessable",
            "content": {
               "application/json": {
                  "schema": {
                     "allOf": [
                        {
                           "$ref": "#/components/schemas/schema"
                        },
                        {
                           "type": "object",
                           "description": "Errors with submission",
                           "properties": {
                              "invalid_parameters": {
                                 "type": "array",
                                 "items": {
                                    "type": "object",
                                    "properties": {
                                       "field": {
                                          "type": "string",
                                          "description": "Field that had a data issue",
                                          "example": "brand_id"
                                       },
                                       "description": {
                                          "type": "string",
                                          "description": "Error description",
                                          "example": "brand_id must be shorter than 50 characters"
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     ]
                  },
                  "example": {
                     "type": "https://developer.vonage.com/api-errors#invalid",
                     "title": "There were some issues with the submitted data",
                     "detail": "There were some errors submitting your data, please correct the requested fields",
                     "instance": "3c2548d132ca4b09870da17d56969a75",
                     "invalid_parameters": [
                        {
                           "field": "brand_id",
                           "description": "brand_id must be shorter than 50 characters"
                        },
                        {
                           "field": "description",
                           "description": "description is required"
                        }
                     ]
                  }
               }
            }
         },
         "ErrorForbiddenResponse": {
            "description": "Forbidden action",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/schema"
                  },
                  "example": {
                     "type": "https://developer.vonage.com/api-errors#forbidden",
                     "title": "Permission denied",
                     "detail": "Your account does not have permission to perform this action",
                     "instance": "3c2548d132ca4b09870da17d56969a75"
                  }
               }
            }
         },
         "MultiBrands": {
            "description": "List of brands that are associated with an account",
            "content": {
               "application/json": {
                  "schema": {
                     "allOf": [
                        {
                           "$ref": "#/components/schemas/PagedResponse"
                        },
                        {
                           "type": "object",
                           "properties": {
                              "_embedded": {
                                 "type": "object",
                                 "properties": {
                                    "brands": {
                                       "type": "array",
                                       "items": {
                                          "$ref": "#/components/schemas/BrandResponse"
                                       }
                                    }
                                 }
                              },
                              "_links": {
                                 "type": "object",
                                 "properties": {
                                    "self": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK?page=2"
                                          }
                                       }
                                    },
                                    "next": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/?page=3"
                                          }
                                       }
                                    },
                                    "previous": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/?page=1"
                                          }
                                       }
                                    },
                                    "first": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/?page=1"
                                          }
                                       }
                                    },
                                    "last": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/?page=10"
                                          }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     ]
                  }
               }
            }
         },
         "ErrorBadRequest": {
            "description": "Bad Request",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/schema"
                  },
                  "example": {
                     "type": "https://developer.vonage.com/api-errors#invalid-json",
                     "title": "Invalid request body",
                     "detail": "The request body did not contain valid JSON",
                     "instance": "3c2548d132ca4b09870da17d56969a75"
                  }
               }
            }
         },
         "NotFoundError": {
            "description": "Resource Not Found",
            "content": {
               "application/json": {
                  "schema": {
                     "properties": {
                        "type": {
                           "type": "string",
                           "example": "https://developer.vonage.com/api-errors#not-found"
                        },
                        "title": {
                           "type": "string",
                           "example": "Not Found"
                        },
                        "detail": {
                           "type": "string",
                           "example": "ID 'ABC123' does not exist, or you do not have access"
                        },
                        "instance": {
                           "$ref": "#/components/schemas/instance"
                        }
                     }
                  }
               }
            }
         },
         "SingleBrand": {
            "description": "Return a single brand",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/BrandResponse"
                  },
                  "examples": {
                     "vonage": {
                        "value": {
                           "$ref": "#/components/examples/Brand/value"
                        }
                     }
                  }
               }
            }
         },
         "ErrorConflict": {
            "description": "Indicates that the request could not be processed because of conflict in the current state of the resource, such as:\n* an edit conflict between multiple simultaneous updates\n* the balance of your account being too low\n",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/schema"
                  },
                  "example": {
                     "type": "https://developer.vonage.com/api-errors#low-balance",
                     "title": "Insufficient balance",
                     "detail": "This request could not be performed due to your account balance being low.",
                     "instance": "3c2548d132ca4b09870da17d56969a75"
                  }
               }
            }
         },
         "BrandFeedbackResponse": {
            "description": "Return feedback for a brand",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "categories": {
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "name": {
                                    "type": "string"
                                 },
                                 "description": {
                                    "type": "string"
                                 },
                                 "fields": {
                                    "type": "array",
                                    "items": {
                                       "type": "string"
                                    }
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         },
         "QualifiedUseCase": {
            "description": "A valid qualified use case for a brand",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "usecase": {
                           "type": "string",
                           "example": "POLITICAL"
                        },
                        "quarterly_fee": {
                           "type": "integer",
                           "format": "int32",
                           "example": 30
                        },
                        "annual_fee": {
                           "type": "integer",
                           "format": "int32",
                           "example": 30
                        },
                        "mno_metadata": {
                           "type": "array",
                           "items": {
                              "$ref": "#/components/schemas/MnoMetadata"
                           },
                           "example": [
                              {
                                 "network_id": "10017",
                                 "min_msg_samples": 2,
                                 "att_msg_class": "Q",
                                 "req_subscriber_opt_in": false,
                                 "req_subscriber_help": false,
                                 "req_subscriber_opt_out": false,
                                 "mno": "AT&T",
                                 "att_tpm": 2000,
                                 "mno_support": true,
                                 "mno_review": true,
                                 "no_embedded_link": true,
                                 "qualify": true,
                                 "tmo_brand_tier": null
                              },
                              {
                                 "network_id": "10035",
                                 "min_msg_samples": 2,
                                 "req_subscriber_opt_in": false,
                                 "req_subscriber_help": false,
                                 "req_subscriber_opt_out": false,
                                 "mno": "TMO",
                                 "mno_support": true,
                                 "mno_review": true,
                                 "no_embedded_link": true,
                                 "no_embedded_phone": true,
                                 "qualify": true,
                                 "tmo_brand_tier": "LOW",
                                 "att_tpm": null,
                                 "att_msg_class": null
                              }
                           ]
                        }
                     }
                  },
                  "examples": {
                     "simple": {
                        "value": {
                           "$ref": "./common.yml#/components/examples/ValidUseCase/value"
                        }
                     }
                  }
               }
            }
         },
         "TriggerOTPResponse": {
            "description": "OK",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "brand_id": {
                           "$ref": "#/components/schemas/BrandID"
                        },
                        "reference_id": {
                           "$ref": "#/components/schemas/OTPReferenceID"
                        }
                     }
                  }
               }
            }
         },
         "GetOTPStatusResponse": {
            "description": "OK",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "brand_id": {
                           "$ref": "#/components/schemas/BrandID"
                        },
                        "reference_id": {
                           "$ref": "#/components/schemas/OTPReferenceID"
                        },
                        "mobile_phone": {
                           "$ref": "#/components/schemas/MobilePhone"
                        },
                        "request_date": {
                           "description": "SMS OTP initial requested timestamp.",
                           "type": "string",
                           "format": "date-time"
                        },
                        "verity_date": {
                           "description": "OTP verification complete timestamp.",
                           "type": "string",
                           "format": "date-time"
                        },
                        "delivery_status": {
                           "description": "The most recent SMS delivery status as provided by an SMS service provider, if supported by the SMS service provider. The delivery status information is not guaranteed to be timely or consistent with OTP verify status. This information should only be used to facilitate triaging SMS derivability issue.",
                           "type": "string",
                           "enum": [
                              "DELIVERED_HANDSET",
                              "DELIVERED_GATEWAY",
                              "FAILED_ROUTING",
                              "FAILED_BLOCKED",
                              "FAILED_EXPIRED",
                              "FAILED_UNKNOWN",
                              "UNKNOWN_STATUS",
                              "IN_TRANSIT"
                           ]
                        },
                        "delivery_status_date": {
                           "description": "Timestamp corresponding to the updated SMS OTP delivery status. This field is `null` if delivery_status is `null`.",
                           "type": "string",
                           "format": "date-time"
                        },
                        "delivery_status_details": {
                           "description": "OTP SMS delivery status details provided by the OTP SMS service provider, if supported by the SMS service provider.",
                           "type": "string",
                           "maxLength": 1024,
                           "format": "date-time"
                        }
                     }
                  }
               }
            }
         },
         "ThrottledError": {
            "description": "Too many requests",
            "content": {
               "application/json": {
                  "schema": {
                     "properties": {
                        "type": {
                           "type": "string",
                           "example": "https://developer.vonage.com/api-errors#throttled"
                        },
                        "title": {
                           "type": "string",
                           "example": "Too many requests"
                        },
                        "detail": {
                           "type": "string",
                           "example": "Your account has reached it's API limit and has been throttled"
                        },
                        "instance": {
                           "$ref": "#/components/schemas/instance"
                        },
                        "retry_after": {
                           "description": "Time in seconds the client should wait before sending a new request",
                           "type": "integer",
                           "example": 30
                        }
                     }
                  }
               }
            }
         },
         "MultiCampaignsResponse": {
            "description": "List of campaigns that are associated with a brand",
            "content": {
               "application/json": {
                  "schema": {
                     "allOf": [
                        {
                           "$ref": "#/components/schemas/PagedResponse"
                        },
                        {
                           "type": "object",
                           "properties": {
                              "_embedded": {
                                 "type": "object",
                                 "properties": {
                                    "campaigns": {
                                       "type": "array",
                                       "items": {
                                          "$ref": "#/components/schemas/CampaignResponse"
                                       }
                                    }
                                 }
                              },
                              "_links": {
                                 "type": "object",
                                 "properties": {
                                    "brand": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK"
                                          }
                                       }
                                    },
                                    "self": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/?page=2"
                                          }
                                       }
                                    },
                                    "next": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/?page=1"
                                          }
                                       }
                                    },
                                    "previous": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/?page=1"
                                          }
                                       }
                                    },
                                    "first": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/?page=1"
                                          }
                                       }
                                    },
                                    "last": {
                                       "type": "object",
                                       "properties": {
                                          "href": {
                                             "type": "string",
                                             "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/?page=10"
                                          }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     ]
                  }
               }
            }
         },
         "SingleCampaignResponse": {
            "description": "Return a single campaign",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/CampaignResponse"
                  }
               }
            }
         },
         "ResubmitCampaignResponse": {
            "description": "Resubmitted campaign response",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "campaign_id": {
                           "$ref": "#/components/schemas/CampaignID"
                        },
                        "brand_id": {
                           "$ref": "#/components/schemas/BrandID"
                        },
                        "mno_metadata": {
                           "type": "array",
                           "items": {
                              "$ref": "#/components/schemas/MnoMetadata"
                           },
                           "example": [
                              {
                                 "network_id": "10017",
                                 "min_msg_samples": 2,
                                 "att_msg_class": "Q",
                                 "req_subscriber_opt_in": false,
                                 "req_subscriber_help": false,
                                 "req_subscriber_opt_out": false,
                                 "mno": "AT&T",
                                 "att_tpm": 2000,
                                 "mno_support": true,
                                 "mno_review": true,
                                 "no_embedded_link": true,
                                 "qualify": true,
                                 "tmo_brand_tier": null
                              },
                              {
                                 "network_id": "10035",
                                 "min_msg_samples": 2,
                                 "req_subscriber_opt_in": false,
                                 "req_subscriber_help": false,
                                 "req_subscriber_opt_out": false,
                                 "mno": "TMO",
                                 "mno_support": true,
                                 "mno_review": true,
                                 "no_embedded_link": true,
                                 "no_embedded_phone": true,
                                 "qualify": true,
                                 "tmo_brand_tier": "LOW",
                                 "att_tpm": null,
                                 "att_msg_class": null
                              }
                           ]
                        },
                        "_links": {
                           "type": "object",
                           "properties": {
                              "self": {
                                 "type": "object",
                                 "properties": {
                                    "href": {
                                       "type": "string",
                                       "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/vetting/requests/abcd1234"
                                    }
                                 }
                              },
                              "brand": {
                                 "type": "object",
                                 "properties": {
                                    "href": {
                                       "type": "string",
                                       "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK"
                                    }
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         },
         "CampaignTnCResponse": {
            "description": "campaign terms and conditions",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "sub_terms": {
                           "type": "array",
                           "items": {
                              "type": "string"
                           },
                           "example": [
                              "I confirm that this campaign will not be used for Affiliate Marketing."
                           ]
                        }
                     }
                  }
               }
            }
         },
         "ImportPartnerCampaignResponse": {
            "description": "Imported partner campaign summary",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "brand_id": {
                           "$ref": "#/components/schemas/BrandID"
                        },
                        "campaign_id": {
                           "$ref": "#/components/schemas/CampaignID"
                        },
                        "sharing_status": {
                           "$ref": "#/components/schemas/SharingStatus"
                        },
                        "downstream_cnp_id": {
                           "$ref": "#/components/schemas/CnpID"
                        },
                        "upstream_cnp_id": {
                           "$ref": "#/components/schemas/CnpID"
                        }
                     }
                  }
               }
            }
         },
         "PartnerCampaignResponse": {
            "description": "Partner campaign sharing status",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "campaign_id": {
                           "$ref": "#/components/schemas/CampaignID"
                        },
                        "sharing_status": {
                           "$ref": "#/components/schemas/SharingStatus"
                        },
                        "downstream_cnp_id": {
                           "$ref": "#/components/schemas/CnpID"
                        },
                        "upstream_cnp_id": {
                           "$ref": "#/components/schemas/CnpID"
                        }
                     }
                  }
               }
            }
         }
      },
      "requestBodies": {
         "LinkNumber": {
            "required": true,
            "content": {
               "application/json": {
                  "schema": {
                     "description": "Information needed to link a number to a campaign",
                     "type": "object",
                     "properties": {
                        "country": {
                           "$ref": "#/components/schemas/Country"
                        },
                        "number": {
                           "$ref": "#/components/schemas/Number"
                        }
                     },
                     "required": [
                        "country",
                        "number"
                     ]
                  }
               }
            }
         },
         "ExistingVettingRequest": {
            "required": true,
            "content": {
               "application/json": {
                  "schema": {
                     "description": "Information needed to import a vetting request",
                     "type": "object",
                     "properties": {
                        "evp_id": {
                           "description": "The identity of the vetting partner. This value must be the ID associated with one of the supported vetting providers.",
                           "type": "string",
                           "enum": [
                              "Aegis",
                              "CV",
                              "WMC"
                           ],
                           "example": "abcd123"
                        },
                        "vetting_token": {
                           "description": "Token verifying the vetting ID (only applicable to Aegis vetting).",
                           "type": "string",
                           "example": "abcd123"
                        },
                        "vetting_id": {
                           "description": "Unique ID that identifies a vetting transaction performed by a vetting provider. This ID is provided by the vetting provider at time of vetting.",
                           "type": "string",
                           "example": "abcd123"
                        }
                     },
                     "required": [
                        "evp_id",
                        "vetting_class",
                        "vetting_id"
                     ]
                  }
               }
            }
         },
         "VettingRequest": {
            "required": true,
            "content": {
               "application/json": {
                  "schema": {
                     "description": "Information needed to authorize a vetting request",
                     "type": "object",
                     "properties": {
                        "evp_id": {
                           "description": "This value must be the ID associated with one of the supported vetting providers.",
                           "type": "string",
                           "enum": [
                              "Aegis",
                              "CV",
                              "WMC"
                           ],
                           "example": "abcd123"
                        },
                        "vetting_class": {
                           "description": "Type of vetting to perform.",
                           "type": "string",
                           "example": "abcd123"
                        },
                        "vetting_political_details": {
                           "$ref": "#/components/schemas/VettingPoliticalDetails"
                        },
                        "appeals": {
                           "description": "Contains vetting appeals, if any has been submitted.\n",
                           "type": "array",
                           "items": {
                              "type": "object",
                              "properties": {
                                 "explanation": {
                                    "type": "string",
                                    "description": "Explanation that was given when creating the appeal.\n"
                                 },
                                 "status": {
                                    "description": "The status of the appeal.\nPlease refer to the /enum endpoint for an updated list of valid values.\n",
                                    "type": "string",
                                    "enum": [
                                       "PENDING",
                                       "COMPLETE"
                                    ]
                                 },
                                 "categories": {
                                    "$ref": "#/components/schemas/VettingAppealCategories"
                                 },
                                 "evidences": {
                                    "description": "The list of evidence files that were sent with this appeal.",
                                    "type": "array",
                                    "items": {
                                       "$ref": "#/components/schemas/AttachmentInfo"
                                    }
                                 },
                                 "outcome": {
                                    "description": "The outcome of the appeal. This is filled only when the appeal is completed.",
                                    "type": "object",
                                    "properties": {
                                       "vetting_status": {
                                          "$ref": "#/components/schemas/VettingStatus"
                                       },
                                       "vetting_score": {
                                          "$ref": "#/components/schemas/VettingScore"
                                       },
                                       "feedback": {
                                          "description": "Feedback given by the provider to explain the vetting outcome.",
                                          "type": "object",
                                          "properties": {
                                             "reasons": {
                                                "type": "array",
                                                "items": {
                                                   "type": "string"
                                                }
                                             }
                                          }
                                       }
                                    }
                                 },
                                 "created_date": {
                                    "$ref": "#/components/schemas/CreatedDate"
                                 },
                                 "last_updated": {
                                    "$ref": "#/components/schemas/LastUpdated"
                                 }
                              }
                           },
                           "example": [
                              {
                                 "explanation": "Please find attached the evidence proving our tax ID.",
                                 "status": "COMPLETE",
                                 "categories": [
                                    "VERIFY_TAX_ID"
                                 ],
                                 "evidences": [
                                    {
                                       "id": "c94eea77-1494-4b8f-99dc-63a036126368",
                                       "file_name": "tax_registration.pdf",
                                       "mime_type": "application/pdf"
                                    }
                                 ],
                                 "outcome": {
                                    "vetting_status": "ACTIVE",
                                    "vetting_score": 100,
                                    "feedback": {
                                       "reasons": [
                                          "Provided evidence match the tax id."
                                       ]
                                    }
                                 },
                                 "created_date": "2023-01-01T00:00:00.000Z",
                                 "last_updated": "2023-01-03T00:00:00.000Z"
                              },
                              {
                                 "explanation": "We think the low score is not warranted because ...",
                                 "status": "PENDING",
                                 "categories": [
                                    "LOW_SCORE"
                                 ],
                                 "evidences": [
                                    {
                                       "id": "b4513738-72c3-4720-bd73-47919ddde812",
                                       "file_name": "explanation_details.txt",
                                       "mime_type": "text/plain"
                                    }
                                 ],
                                 "created_date": "2023-02-01T00:00:00.000Z",
                                 "last_updated": "2023-02-03T00:00:00.000Z"
                              }
                           ]
                        }
                     },
                     "required": [
                        "evp_id",
                        "vetting_class"
                     ]
                  }
               }
            }
         },
         "UpdateAccount": {
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "opt_out_assist": {
                           "$ref": "#/components/schemas/OptOutAssist"
                        }
                     },
                     "required": [
                        "opt_out_assist"
                     ]
                  }
               }
            }
         },
         "CreateBrand": {
            "required": true,
            "content": {
               "application/json": {
                  "schema": {
                     "oneOf": [
                        {
                           "$ref": "#/components/schemas/CreateStandardBrand"
                        },
                        {
                           "$ref": "#/components/schemas/CreateStandardBrand"
                        },
                        {
                           "$ref": "#/components/schemas/CreatePublicCompanyBrand"
                        },
                        {
                           "$ref": "#/components/schemas/CreateSoleProprietorBrand"
                        }
                     ],
                     "discriminator": {
                        "propertyName": "entity_type"
                     }
                  }
               }
            }
         },
         "StartVerification": {
            "required": false,
            "description": "Optional body to customize the OTP flow.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "description": "Customized OTP message.\n",
                     "properties": {
                        "verify_sms": {
                           "description": "Template OTP message to be sent to the brand's mobilePhone.\nMust contain either @OTP_PIN@ or @OTP_YES@ macro element.\nIf @OTP_YES@ macro is only with SMS reply confirmation flow.\n",
                           "example": "Your verification code is @OTP_PIN@",
                           "type": "string",
                           "pattern": "^(.*)@(OTP_PIN|OTP_YES)@(.*)$"
                        },
                        "success_sms": {
                           "description": "SMS to be sent to the brand's mobile phone upon successful SMS reply OTP confirmation.\n",
                           "example": "Your verification code has been confirmed successfully",
                           "type": "string"
                        }
                     }
                  }
               }
            }
         },
         "CreateCampaign": {
            "required": true,
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "required": [
                        "account_id",
                        "description",
                        "help_message",
                        "opt_in_message",
                        "opt_out_message",
                        "usecase",
                        "tc_agreed"
                     ],
                     "properties": {
                        "account_id": {
                           "$ref": "#/components/schemas/AccountID"
                        },
                        "vertical": {
                           "$ref": "#/components/schemas/Vertical-2"
                        },
                        "usecase": {
                           "$ref": "#/components/schemas/UseCase"
                        },
                        "sub_usecases": {
                           "type": "array",
                           "items": {
                              "$ref": "#/components/schemas/UseCase"
                           }
                        },
                        "reseller_id": {
                           "$ref": "#/components/schemas/TCRResellerId"
                        },
                        "reseller": {
                           "$ref": "#/components/schemas/Reseller-3"
                        },
                        "description": {
                           "$ref": "#/components/schemas/CampaignDescription"
                        },
                        "age_gated": {
                           "$ref": "#/components/schemas/CampaignAgeGated"
                        },
                        "direct_lending": {
                           "$ref": "#/components/schemas/CampaignDirectLending"
                        },
                        "sample_one": {
                           "$ref": "#/components/schemas/SampleOne"
                        },
                        "sample_two": {
                           "$ref": "#/components/schemas/SampleTwo"
                        },
                        "sample_three": {
                           "$ref": "#/components/schemas/SampleThree"
                        },
                        "sample_four": {
                           "$ref": "#/components/schemas/SampleFour"
                        },
                        "sample_five": {
                           "$ref": "#/components/schemas/SampleFive"
                        },
                        "message_flow": {
                           "$ref": "#/components/schemas/CampaignWriteMessageFlow"
                        },
                        "message_flow_details": {
                           "$ref": "#/components/schemas/MessageFlowDetails"
                        },
                        "url_samples": {
                           "$ref": "#/components/schemas/UrlSamples"
                        },
                        "help_message": {
                           "$ref": "#/components/schemas/HelpMessage"
                        },
                        "opt_in_message": {
                           "$ref": "#/components/schemas/OptInMessage"
                        },
                        "opt_out_message": {
                           "$ref": "#/components/schemas/OptOutMessage"
                        },
                        "help_keywords": {
                           "$ref": "#/components/schemas/HelpKeywords"
                        },
                        "opt_in_keywords": {
                           "$ref": "#/components/schemas/OptInKeywords"
                        },
                        "opt_out_keywords": {
                           "$ref": "#/components/schemas/OptOutKeywords"
                        },
                        "tc_agreed": {
                           "$ref": "#/components/schemas/TermsAndConditionsAgreed"
                        },
                        "embedded_link": {
                           "$ref": "#/components/schemas/EmbeddedLink"
                        },
                        "embedded_phone": {
                           "$ref": "#/components/schemas/EmbeddedPhone"
                        },
                        "label": {
                           "$ref": "#/components/schemas/CampaignLabel"
                        },
                        "hipaa": {
                           "$ref": "#/components/schemas/HIPAA"
                        }
                     }
                  }
               }
            }
         },
         "MNOResubmit": {
            "required": true,
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "required": [
                        "mno_ids"
                     ],
                     "properties": {
                        "mno_ids": {
                           "type": "array",
                           "minItems": 1,
                           "items": {
                              "type": "string",
                              "description": "ID of MNO. Please refer to the [/enum](#Enums) endpoint for an updated list of valid values."
                           },
                           "example": [
                              "10017"
                           ]
                        }
                     }
                  }
               }
            }
         }
      },
      "schemas": {
         "VettingStatus": {
            "description": "Identifies a vetting request status. Please refer to the /enum endpoint for an updated list of valid values.",
            "type": "string",
            "enum": [
               "PENDING",
               "UNSCORE",
               "ACTIVE",
               "FAILED",
               "EXPIRED"
            ]
         },
         "VettingScore": {
            "description": "Vetting score ranging from 0-100.",
            "type": "integer",
            "minimum": 0,
            "maximum": 100
         },
         "ResellerID": {
            "description": "Unique identifier assigned to the reseller.",
            "type": "string",
            "example": "5782db87-a867-4ccd-a0b5-1b7203cc438c"
         },
         "Reseller": {
            "description": "A reseller is a role or business that comes in between csp and brand.",
            "type": "object",
            "properties": {
               "id": {
                  "$ref": "#/components/schemas/ResellerID"
               },
               "tcr_reseller_id": {
                  "description": "Unique identifier assigned to the reseller by the registry.\nThis field is only present if the reseller is APPROVED.\n",
                  "type": "string"
               },
               "company_name": {
                  "description": "Company name of the reseller.",
                  "type": "string",
                  "example": "Microsoft",
                  "maxLength": 100
               },
               "phone": {
                  "$ref": "#/components/schemas/MobilePhone"
               },
               "email": {
                  "description": "Valid email address of reseller contact.",
                  "type": "string",
                  "maxLength": 100,
                  "example": "john.doe@microsoft.com"
               },
               "status": {
                  "description": "Approval status of the reseller.\nUpon submitting a creation of a reseller, the status is set to PENDING.\nAfter review of your request, the status of the reseller will be set to either APPROVED or REJECTED.\nIf the status is REJECTED, you should have the detailed reason of the rejection in the rejection_reason field.\n",
                  "type": "string",
                  "enum": [
                     "PENDING",
                     "APPROVED",
                     "REJECTED"
                  ],
                  "example": "APPROVED"
               },
               "rejection_reason": {
                  "description": "The reason why the reseller was rejected.\nThis field is only populated when the status is REJECTED.\n",
                  "type": "string",
                  "example": "You are not allowed to register a reseller with this company name."
               }
            },
            "required": [
               "company_name",
               "phone",
               "email",
               "status"
            ]
         },
         "VettingAppealCategories": {
            "type": "array",
            "items": {
               "type": "string"
            },
            "minItems": 1,
            "description": "An array of categories that the appeal applies to.\nPlease refer to the /enum endpoint for an updated list of valid values.\n"
         },
         "CreatedDate": {
            "description": "Date-time when this record was created.",
            "type": "string",
            "format": "date-time"
         },
         "LastUpdated": {
            "description": "Date-time when this record was last updated.",
            "type": "string",
            "format": "date-time"
         },
         "AttachmentInfo": {
            "description": "Describes an attachment's information.",
            "type": "object",
            "properties": {
               "id": {
                  "type": "string",
                  "description": "ID of the evidence. To be used in the appeal process."
               },
               "file_name": {
                  "type": "string",
                  "description": "The name of the uploaded file."
               },
               "mime_type": {
                  "type": "string",
                  "description": "The mime type of the uploaded file."
               }
            },
            "example": {
               "id": "OWUwZTA5MmUtOGNjYS00ZGI0LWFkNWUtZTg4MmUwNzhjMDUy",
               "file_name": "evidence.txt",
               "mime_type": "text/plain"
            }
         },
         "OTPReferenceID": {
            "description": "Reference ID for tracking the status of the OTP request.",
            "type": "string",
            "example": "OTP1234567"
         },
         "Country": {
            "type": "string",
            "example": "US",
            "description": "The two character country code in ISO 3166-1 alpha-2 format",
            "pattern": "^[A-Z]{2}$"
         },
         "ErrorCouldNotRemoveNumber": {
            "allOf": [
               {
                  "$ref": "#/components/schemas/schema"
               },
               {
                  "type": "object",
                  "description": "Deletion Errors",
                  "properties": {
                     "title": {
                        "description": "Generic error message",
                        "example": "There were errors removing numbers from the pool"
                     },
                     "type": {
                        "description": "Link to error / remediation options",
                        "example": "https://developer.nexmo.com/api-errors/10dlc#number-deletion-failure"
                     },
                     "detail": {
                        "description": "Additional information about the error",
                        "example": "We were unable to remove any of the numbers from the campaign."
                     },
                     "errors": {
                        "type": "array",
                        "items": {
                           "type": "object",
                           "properties": {
                              "title": {
                                 "description": "Generic error message",
                                 "example": "Number not found"
                              },
                              "type": {
                                 "description": "Link to error / remediation options",
                                 "example": "https://developer.nexmo.com/api-errors/10dlc#missing-number"
                              },
                              "detail": {
                                 "description": "Additional information about the error",
                                 "example": "One or more numbers being deleted are not available in the campaign"
                              },
                              "numbers": {
                                 "type": "array",
                                 "items": {
                                    "$ref": "#/components/schemas/Number"
                                 },
                                 "example": [
                                    "15556660001"
                                 ]
                              }
                           }
                        }
                     }
                  }
               }
            ]
         },
         "Number": {
            "description": "Telephone Number",
            "example": "14155550110",
            "type": "string",
            "minLength": 7,
            "maxLength": 15,
            "pattern": "^[0-9]{7,15}$"
         },
         "NumberResponse": {
            "type": "object",
            "properties": {
               "number": {
                  "$ref": "#/components/schemas/Number"
               },
               "country": {
                  "$ref": "#/components/schemas/Country"
               },
               "status": {
                  "$ref": "#/components/schemas/NumberStatus"
               },
               "compliance": {
                  "$ref": "#/components/schemas/NumberCompliance"
               },
               "_links": {
                  "type": "object",
                  "properties": {
                     "self": {
                        "type": "object",
                        "properties": {
                           "href": {
                              "type": "string",
                              "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/C1DEB879/numbers/14155550110"
                           }
                        }
                     },
                     "campaign": {
                        "type": "object",
                        "properties": {
                           "href": {
                              "type": "string",
                              "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/C1DEB879/"
                           }
                        }
                     },
                     "brand": {
                        "type": "object",
                        "properties": {
                           "href": {
                              "type": "string",
                              "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK"
                           }
                        }
                     }
                  }
               }
            }
         },
         "NumberCompliance": {
            "type": "array",
            "description": "List of compliance flags.",
            "items": {
               "type": "string",
               "example": "HIPPA"
            }
         },
         "VettingRequest": {
            "type": "object",
            "properties": {
               "account_id": {
                  "$ref": "#/components/schemas/AccountID"
               },
               "evp_id": {
                  "$ref": "#/components/schemas/VettingRequestId"
               },
               "vetting_id": {
                  "type": "string"
               },
               "vetting_token": {
                  "type": "string"
               },
               "vetting_score": {
                  "$ref": "#/components/schemas/VettingScore"
               },
               "vetting_class": {
                  "type": "string"
               },
               "vetting_status": {
                  "$ref": "#/components/schemas/VettingStatus"
               },
               "vetting_details": {
                  "$ref": "#/components/schemas/VettingDetails"
               },
               "vetted_date": {
                  "description": "Vetting effective date. This is the date when vetting was completed, or the starting effective date. If this date is missing, then the vetting was not complete or not valid.",
                  "type": "string",
                  "format": "date-time"
               },
               "created_date": {
                  "type": "string",
                  "format": "date-time"
               },
               "failed_reasons": {
                  "description": "The list of reasons for a `FAILED` external vetting.",
                  "type": "array",
                  "readOnly": true,
                  "items": {
                     "type": "string"
                  }
               },
               "additional_info": {
                  "$ref": "#/components/schemas/VettingAdditionalInfo"
               },
               "_links": {
                  "type": "object",
                  "properties": {
                     "self": {
                        "type": "object",
                        "properties": {
                           "href": {
                              "type": "string",
                              "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/vetting/requests/abcd1234"
                           }
                        }
                     },
                     "brand": {
                        "type": "object",
                        "properties": {
                           "href": {
                              "type": "string",
                              "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK"
                           }
                        }
                     }
                  }
               }
            }
         },
         "VettingRequestId": {
            "description": "ID associated with a vetting request",
            "type": "string",
            "pattern": "^[0-9A-F]{7}$"
         },
         "VettingPoliticalDetails": {
            "description": "Additional political details in json format, required for POLITICAL type vetting. If non-POLITICAL type its neglected.",
            "type": "object",
            "properties": {
               "requestor_first_name": {
                  "description": "First name of vetting requester.",
                  "type": "string",
                  "example": "John"
               },
               "requestor_last_name": {
                  "description": "Last name of vetting requester.",
                  "type": "string",
                  "example": "Doe"
               },
               "locale": {
                  "description": "Locale.",
                  "type": "string",
                  "enum": [
                     "Federal",
                     "State",
                     "Local",
                     "Tribal"
                  ],
                  "example": "Federal"
               },
               "fec_committee_type_code": {
                  "description": "Committee type codes.",
                  "type": "string",
                  "enum": [
                     "C",
                     "D",
                     "E",
                     "H",
                     "I",
                     "N",
                     "O",
                     "P",
                     "Q",
                     "S",
                     "U",
                     "V",
                     "W",
                     "X",
                     "Y",
                     "Z"
                  ],
                  "example": "C"
               },
               "committee_id": {
                  "description": "Free text field. The committee/campaign ID issued for Federal and any other locale - if not issued, enter \"00000\".",
                  "type": "string",
                  "example": "00000"
               },
               "candidate_type": {
                  "description": "Free text field. Required for campaigns. If committee is not candidate-specific, enter \"PAC\".",
                  "type": "string",
                  "example": "PAC"
               },
               "state_local_committee_type": {
                  "description": "Free text field. Required for State, Local, and Tribal -- if Federal, enter \"FEDERAL\".",
                  "type": "string",
                  "example": "FEDERAL"
               },
               "local_committee_state": {
                  "description": "If Federal Congress, enter the state(2 letter code) to be represented; if President, enter \"US\".",
                  "type": "string",
                  "example": "AZ"
               },
               "local_committee_municipality": {
                  "description": "Free text field. If Federal Congress, enter district to be represented; if President, enter \"US\".",
                  "type": "string",
                  "example": "US"
               },
               "tribal_location": {
                  "description": "Free text field. If non-tribal, enter \"US\".",
                  "type": "string",
                  "example": "US"
               },
               "filing_url": {
                  "description": "Should be a valid URL format. Election authority website URL where the filing information can be found.",
                  "type": "string",
                  "example": "https://example.com"
               },
               "filing_record_url_instructions": {
                  "description": "Free text field. Additional instructions to aid in locating the filing record.",
                  "type": "string",
                  "example": "Additional instructions"
               },
               "filing_email": {
                  "description": "Free text field. Exactly as filed with election authority. If not supplied, PIN cannot be sent via email.",
                  "type": "string",
                  "example": "john@email.com"
               },
               "election_date": {
                  "description": "Date string in the format yyyy-mm-dd. Must be in the future.",
                  "type": "string",
                  "example": "2022-10-31"
               },
               "pin_preference": {
                  "description": "Pin preference.",
                  "type": "string",
                  "enum": [
                     "Regular",
                     "Express",
                     "Email"
                  ],
                  "example": "Regular"
               }
            },
            "required": [
               "requestor_first_name",
               "requestor_last_name",
               "locale",
               "fec_committee_type_code",
               "committee_id",
               "candidate_type",
               "state_local_committee_type",
               "local_committee_state",
               "local_committee_municipality",
               "tribal_location",
               "filing_url",
               "election_date",
               "pin_preference"
            ]
         },
         "VettingAdditionalInfo": {
            "description": "Additional brand information in json format. Required for POLITICAL type vets.",
            "type": "object",
            "properties": {
               "requestor_first_name": {
                  "description": "First name of vetting requester.",
                  "type": "string",
                  "example": "John"
               },
               "requestor_last_name": {
                  "description": "Last name of vetting requester.",
                  "type": "string",
                  "example": "Doe"
               },
               "locale": {
                  "description": "Locale.",
                  "type": "string",
                  "enum": [
                     "Federal",
                     "State",
                     "Local",
                     "Tribal"
                  ],
                  "example": "Federal"
               },
               "fec_committee_type_code": {
                  "description": "Committee type codes.",
                  "type": "string",
                  "enum": [
                     "C",
                     "D",
                     "E",
                     "H",
                     "I",
                     "N",
                     "O",
                     "P",
                     "Q",
                     "S",
                     "U",
                     "V",
                     "W",
                     "X",
                     "Y",
                     "Z"
                  ],
                  "example": "C"
               },
               "committee_id": {
                  "description": "Free text field. The committee/campaign ID issued for Federal and any other locale - if not issued, enter \"00000\".",
                  "type": "string",
                  "example": "00000"
               },
               "candidate_type": {
                  "description": "Free text field. Required for campaigns. If committee is not candidate-specific, enter \"PAC\".",
                  "type": "string",
                  "example": "PAC"
               },
               "state_local_committee_type": {
                  "description": "Free text field. Required for State, Local, and Tribal -- if Federal, enter \"FEDERAL\".",
                  "type": "string",
                  "example": "FEDERAL"
               },
               "local_committee_state": {
                  "description": "If Federal Congress, enter the state(2 letter code) to be represented; if President, enter \"US\".",
                  "type": "string",
                  "example": "AZ"
               },
               "local_committee_municipality": {
                  "description": "Free text field. If Federal Congress, enter district to be represented; if President, enter \"US\".",
                  "type": "string",
                  "example": "US"
               },
               "tribal_location": {
                  "description": "Free text field. If non-tribal, enter \"US\".",
                  "type": "string",
                  "example": "US"
               },
               "filing_url": {
                  "description": "Should be a valid URL format. Election authority website URL where the filing information can be found.",
                  "type": "string",
                  "example": "https://example.com"
               },
               "filing_record_url_instructions": {
                  "description": "Free text field. Additional instructions to aid in locating the filing record.",
                  "type": "string",
                  "example": "Additional instructions"
               },
               "filing_email": {
                  "description": "Free text field. Exactly as filed with election authority. If not supplied, PIN cannot be sent via email.",
                  "type": "string",
                  "example": "John@email.com"
               },
               "election_date": {
                  "description": "Date string in the format yyyy-dd-mm. Must be in the future.",
                  "type": "string",
                  "example": "2022-31-10"
               },
               "pin_preference": {
                  "description": "Pin preference.",
                  "type": "string",
                  "enum": [
                     "Regular",
                     "Express",
                     "Email"
                  ],
                  "example": "Regular"
               }
            },
            "required": [
               "requestor_first_name",
               "requestor_last_name",
               "locale",
               "fec_committee_type_code",
               "committee_id",
               "candidate_type",
               "state_local_committee_type",
               "local_committee_state",
               "local_committee_municipality",
               "tribal_location",
               "filing_url",
               "election_date",
               "pin_preference"
            ]
         },
         "VettingDetails": {
            "type": "object",
            "description": "Collection of non-standard attributes (key-value pairs), applicable to some vetting records."
         },
         "ThroughputID": {
            "description": "Throughput ID.",
            "type": "string",
            "format": "uuid",
            "example": "91cd871e-ce9e-4f4d-a792-23277cbc287d"
         },
         "ThroughputItem": {
            "type": "object",
            "description": "Represents a throughput counter (text messages per period),\nwith the list of carriers it applies to,\nthe scope it applies to and period covered.\n\nThe id field is only defined in case of custom throughput overrides.\n",
            "properties": {
               "id": {
                  "$ref": "#/components/schemas/ThroughputID"
               },
               "brand_id": {
                  "$ref": "#/components/schemas/BrandID"
               },
               "campaign_id": {
                  "$ref": "#/components/schemas/CampaignID"
               },
               "carriers": {
                  "description": "List of carriers to which the throughput applies.",
                  "type": "array",
                  "items": {
                     "type": "string",
                     "description": "Carrier name"
                  },
                  "example": [
                     "AT&T",
                     "ClearSky"
                  ]
               },
               "value": {
                  "oneOf": [
                     {
                        "$ref": "#/components/schemas/ThroughputValueShared"
                     },
                     {
                        "$ref": "#/components/schemas/ThroughputValueDetailed"
                     },
                     {
                        "$ref": "#/components/schemas/ThroughputValueUnlimited"
                     }
                  ]
               },
               "period": {
                  "$ref": "#/components/schemas/ThroughputPeriod"
               },
               "scope": {
                  "$ref": "#/components/schemas/ThroughputScope"
               }
            },
            "required": [
               "id",
               "carriers",
               "value",
               "period",
               "scope"
            ]
         },
         "ThroughputValueShared": {
            "type": "object",
            "description": "Shared throughput value for both SMS and MMS.",
            "properties": {
               "shared": {
                  "type": "integer",
                  "description": "Shared throughput value for both SMS and MMS.",
                  "example": 1000
               }
            },
            "required": [
               "shared"
            ]
         },
         "ThroughputValueDetailed": {
            "type": "object",
            "description": "Separate throughput values for SMS and MMS.",
            "properties": {
               "sms": {
                  "type": "integer",
                  "description": "SMS throughput value.",
                  "example": 750
               },
               "mms": {
                  "type": "integer",
                  "description": "MMS throughput value.",
                  "example": 250
               }
            },
            "required": [
               "sms",
               "mms"
            ]
         },
         "ThroughputValueUnlimited": {
            "type": "object",
            "description": "The throughput is unlimited for both SMS and MMS.",
            "properties": {
               "unlimited": {
                  "type": "boolean",
                  "description": "The throughput is unlimited for both SMS and MMS.",
                  "example": true
               }
            },
            "required": [
               "unlimited"
            ]
         },
         "ThroughputPeriod": {
            "description": "The period for which the throughput applies.",
            "type": "string",
            "enum": [
               "minute",
               "day"
            ]
         },
         "ThroughputScope": {
            "description": "The scope of the throughput.",
            "type": "string",
            "enum": [
               "campaign",
               "brand",
               "number"
            ]
         },
         "instance": {
            "description": "Instance ID",
            "type": "string",
            "example": "797a8f199c45014ab7b08bfe9cc1c12c"
         },
         "OptOutAssist": {
            "description": "Specifies whether opt-out assist is enabled for this account.\n\n[Documentation](https://api.support.vonage.com/hc/en-us/articles/9398221473564-Vonage-Opt-Out-Assist) - [Developer](https://developer.vonage.com/en/opt-out-assist/guides/enabling-opt-out-assist)\n\nIt is only possible to enable opt out assist. To disable, please reach out to support.\n",
            "type": "boolean",
            "example": true
         },
         "schema": {
            "properties": {
               "type": {
                  "type": "string",
                  "example": "https://developer.vonage.com/api-errors#TO_BE_UPDATED"
               },
               "title": {
                  "type": "string",
                  "example": "THIS ERROR NEEDS REPLACING"
               },
               "detail": {
                  "type": "string",
                  "example": "THIS IS A PLACEHOLDER FOR OTHER ERRORS"
               },
               "instance": {
                  "$ref": "#/components/schemas/instance"
               }
            }
         },
         "Page": {
            "description": "Page Offset",
            "example": 2,
            "type": "integer",
            "minimum": 1
         },
         "PageSize": {
            "description": "Items per page",
            "example": 10,
            "type": "integer",
            "minimum": 0
         },
         "Filter": {
            "type": "array",
            "title": "Filter",
            "description": "This is a double array representing filters combined with AND and OR operators.\nThe first level is combined with an AND operator and the second one with an OR.\n\n**Note**: the total number of rules should not exceed 3.\n\nExample:\n\n  The filter\n\n  [[{\"field\":\"name\",\"type\":\"==\",\"value\":\"doe\"},{\"field\":\"age\",\"type\":\"<=\",\"value\":42}],[{\"field\":\"address.country\",\"type\":\"regexp\",\"value\":\"^EN$|^FR$\"}]]\n\n  is URL-encoded as a query parameter:\n\n  filter=%5B%5B%7B%22field%22%3A%22name%22%2C%22type%22%3A%22%3D%3D%22%2C%22value%22%3A%22doe%22%7D%2C%7B%22field%22%3A%22age%22%2C%22type%22%3A%22%3C%3D%22%2C%22value%22%3A42%7D%5D%2C%5B%7B%22field%22%3A%22address.country%22%2C%22type%22%3A%22regexp%22%2C%22value%22%3A%22%5EEN%24%7C%5EFR%24%22%7D%5D%5D\n\n  the equivalent logic is:\n\n  ((name==doe OR age<=42) AND (address.country match \"EN\" or \"FR\"))\n",
            "minItems": 1,
            "maxItems": 3,
            "items": {
               "type": "array",
               "minItems": 1,
               "maxItems": 3,
               "items": {
                  "type": "object",
                  "title": "Rule",
                  "description": "Represents a single rule that can be combined into a filter.",
                  "required": [
                     "field",
                     "type",
                     "value"
                  ],
                  "properties": {
                     "field": {
                        "type": "string",
                        "title": "Field selector",
                        "description": "The path used to get the field of an input item to evaluate against.\nIt can target a nested field, in which case it's dot-separated.\n",
                        "example": "address.country"
                     },
                     "type": {
                        "type": "string",
                        "title": "Type",
                        "description": "The type of the rule",
                        "example": "==",
                        "enum": [
                           "regexp",
                           "!=",
                           "!=$",
                           "!==",
                           "!^=",
                           "!~=",
                           "<",
                           "<=",
                           "=",
                           "=$",
                           "==",
                           ">",
                           ">=",
                           "^=",
                           "~="
                        ]
                     },
                     "value": {
                        "title": "The value to evaluate against",
                        "example": "NGO",
                        "oneOf": [
                           {
                              "type": "string"
                           },
                           {
                              "type": "number"
                           },
                           {
                              "type": "boolean"
                           },
                           {
                              "type": "integer"
                           }
                        ]
                     }
                  }
               }
            }
         },
         "BrandStatus": {
            "enum": [
               "ACTIVE",
               "SUSPENDED",
               "TERMINATED",
               "DELETED"
            ],
            "type": "string"
         },
         "TotalPages": {
            "description": "Number of pages in the entire result set",
            "example": 100,
            "type": "integer",
            "minimum": 1
         },
         "TotalItems": {
            "description": "Number of items in the entire result set",
            "example": 100,
            "type": "integer",
            "minimum": 0
         },
         "PagedResponse": {
            "type": "object",
            "properties": {
               "page_size": {
                  "$ref": "#/components/schemas/PageSize"
               },
               "page": {
                  "$ref": "#/components/schemas/Page"
               },
               "total_pages": {
                  "$ref": "#/components/schemas/TotalPages"
               },
               "total_items": {
                  "$ref": "#/components/schemas/TotalItems"
               }
            }
         },
         "AccountID": {
            "description": "The Vonage Account ID",
            "type": "string",
            "example": "abcd1234",
            "pattern": "^[A-Za-z0-9]{1,50}$"
         },
         "PrimaryAccountID": {
            "description": "The Vonage Primary Account ID (the parent account of account_id).",
            "type": "string",
            "example": "abcd1234",
            "pattern": "^[A-Za-z0-9]{1,50}$"
         },
         "EntityType": {
            "type": "string",
            "enum": [
               "PRIVATE_PROFIT",
               "PUBLIC_PROFIT",
               "NON_PROFIT",
               "SOLE_PROPRIETOR",
               "GOVERNMENT"
            ],
            "description": "Entity type behind the brand.\nThis is the form of business establishment.\n**NB:** The `GOVERNMENT` entity_type is ONLY applicable to US governmental agencies (FBI, CIA, Department of defence etc.) Other countries’ governmental agencies must use `NON_PROFIT` entity type.\nPlease refer to the [/enum](#Enums) endpoint for an update list of valid values.\n",
            "example": "PUBLIC_PROFIT"
         },
         "FirstName": {
            "type": "string",
            "maxLength": 100,
            "description": "First name of business contact. **NB:** Required for `SOLE_PROPRIETOR` entity type",
            "example": "John"
         },
         "LastName": {
            "type": "string",
            "maxLength": 100,
            "description": "last name of business contact. **NB:** Required for `SOLE_PROPRIETOR` entity type",
            "example": "Smith"
         },
         "DisplayName": {
            "type": "string",
            "maxLength": 255,
            "description": "Display or marketing name of the brand.",
            "example": "Vonage"
         },
         "CompanyName": {
            "type": "string",
            "maxLength": 255,
            "description": "Legal company name.",
            "example": "Vonage"
         },
         "EIN": {
            "type": "string",
            "pattern": "^([0-9]{2}[-]?[0-9]{7})$|^([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})$",
            "maxLength": 21,
            "description": "(Required for Non-profit) Government assigned corporate tax ID. EIN is 9-digits in U.S.A.",
            "example": "20-1111111"
         },
         "EINIssuingCountry": {
            "type": "string",
            "pattern": "^[A-Z]{2}$",
            "description": "ISO3166-Alpha2 country code.",
            "example": "US"
         },
         "UniversalEIN": {
            "type": "string",
            "pattern": "^([0-9]{2}[-]?[0-9]{7})$|^([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})$",
            "maxLength": 50,
            "description": "Universal EIN of Brand, Read-Only",
            "example": "20-1111111"
         },
         "AltBusinessIDType": {
            "type": "string",
            "maxLength": 50,
            "description": "Required if alt_business_id is provided.",
            "enum": [
               "DUNS",
               "GIIN",
               "LEI"
            ],
            "example": "DUNS"
         },
         "AltBusinessID": {
            "type": "string",
            "maxLength": 50,
            "description": "Required if alt_business_id_type is provided.",
            "example": "150483782"
         },
         "Phone": {
            "type": "string",
            "description": "Valid phone number in E.164 international format without the + prefix.",
            "example": "15556660001"
         },
         "MobilePhone": {
            "description": "Valid mobile phone number in E.164 international format without the + prefix. It is required field for SoleProprietor brand.",
            "type": "string",
            "pattern": "^[1-9][0-9]{7,14}$",
            "example": "123123222334"
         },
         "Street": {
            "type": "string",
            "maxLength": 100,
            "description": "Street number and name.",
            "example": "23 Main Street"
         },
         "City": {
            "type": "string",
            "maxLength": 100,
            "description": "City name",
            "example": "Holmdel"
         },
         "State": {
            "type": "string",
            "maxLength": 20,
            "description": "State. Must be 2 letters code for U.S.A.",
            "example": "NJ"
         },
         "PostalCode": {
            "type": "string",
            "maxLength": 10,
            "description": "Postal codes. Use 5 digit zipcode for United States",
            "example": "07733"
         },
         "Country-2": {
            "type": "string",
            "description": "ISO3166-Alpha2 country code.",
            "example": "US"
         },
         "Email": {
            "type": "string",
            "maxLength": 100,
            "description": "Valid email address of brand support contact.",
            "example": "devrel@vonage.com"
         },
         "StockSymbol": {
            "type": "string",
            "maxLength": 10,
            "description": "Stock Symbol - Required if entity_type=PUBLIC_PROFIT.",
            "example": "VG"
         },
         "StockExchange": {
            "type": "string",
            "maxLength": 10,
            "description": "Required if entity_type=PUBLIC_PROFIT.",
            "enum": [
               "NONE",
               "AMEX",
               "AMX",
               "ASX",
               "B3",
               "BME",
               "BSE",
               "FRA",
               "ICEX",
               "JSE",
               "KRX",
               "LON",
               "NASDAQ",
               "NSE",
               "NYSE",
               "OMX",
               "SEHK",
               "SSE",
               "STO",
               "SWX",
               "SZSE",
               "TSX",
               "TWSE",
               "VSE"
            ],
            "example": "NASDAQ"
         },
         "Website": {
            "type": "string",
            "description": "Brand website URL. Required for `PUBLIC_PROFIT` brands.",
            "example": "https://vonage.com"
         },
         "Vertical": {
            "type": "string",
            "description": "Business/industry segment of this campaign.\nUse the [/enum](#Enums)  endpoint to get an updated list of verticals\n",
            "enum": [
               "REAL_ESTATE",
               "HEALTHCARE",
               "ENERGY",
               "ENTERTAINMENT",
               "RETAIL",
               "AGRICULTURE",
               "INSURANCE",
               "EDUCATION",
               "HOSPITALITY",
               "FINANCIAL",
               "GAMBLING",
               "CONSTRUCTION",
               "NGO",
               "MANUFACTURING",
               "GOVERNMENT",
               "TECHNOLOGY",
               "COMMUNICATION"
            ],
            "example": "TECHNOLOGY"
         },
         "VerificationEmail": {
            "type": "string",
            "maxLength": 100,
            "description": "Valid verification email address of brand. Required if entity_type=PUBLIC_PROFIT.",
            "example": "verification_email@vonage.com"
         },
         "VerificationEmailCompletionDate": {
            "type": "string",
            "format": "date-time",
            "description": "Completion date when verification email address has been successfully verified.",
            "example": "2019-08-24 14:15:22"
         },
         "Reseller-2": {
            "type": "boolean",
            "description": "Indicates if a brand is a reseller brand.\n\nThis can only be enabled if a valid reseller (status `PENDING` or `APPROVED`) is linked to the primary account of the brand. \n\nCampaigns created on a reseller brand will automatically have their `reseller_id` field set with the primary account's reseller id.\n"
         },
         "BrandBase": {
            "type": "object",
            "description": "All base fields of brand that are common to all brand creations and returned on all endpoints.",
            "properties": {
               "account_id": {
                  "$ref": "#/components/schemas/AccountID"
               },
               "primary_account_id": {
                  "$ref": "#/components/schemas/PrimaryAccountID"
               },
               "entity_type": {
                  "$ref": "#/components/schemas/EntityType"
               },
               "first_name": {
                  "$ref": "#/components/schemas/FirstName"
               },
               "last_name": {
                  "$ref": "#/components/schemas/LastName"
               },
               "display_name": {
                  "$ref": "#/components/schemas/DisplayName"
               },
               "company_name": {
                  "$ref": "#/components/schemas/CompanyName"
               },
               "ein": {
                  "$ref": "#/components/schemas/EIN"
               },
               "ein_issuing_country": {
                  "$ref": "#/components/schemas/EINIssuingCountry"
               },
               "universal_ein": {
                  "$ref": "#/components/schemas/UniversalEIN"
               },
               "alt_business_id_type": {
                  "$ref": "#/components/schemas/AltBusinessIDType"
               },
               "alt_business_id": {
                  "$ref": "#/components/schemas/AltBusinessID"
               },
               "phone": {
                  "$ref": "#/components/schemas/Phone"
               },
               "mobile_phone": {
                  "$ref": "#/components/schemas/MobilePhone"
               },
               "street": {
                  "$ref": "#/components/schemas/Street"
               },
               "city": {
                  "$ref": "#/components/schemas/City"
               },
               "state": {
                  "$ref": "#/components/schemas/State"
               },
               "postal_code": {
                  "$ref": "#/components/schemas/PostalCode"
               },
               "country": {
                  "$ref": "#/components/schemas/Country-2"
               },
               "email": {
                  "$ref": "#/components/schemas/Email"
               },
               "stock_symbol": {
                  "$ref": "#/components/schemas/StockSymbol"
               },
               "stock_exchange": {
                  "$ref": "#/components/schemas/StockExchange"
               },
               "website": {
                  "$ref": "#/components/schemas/Website"
               },
               "vertical": {
                  "$ref": "#/components/schemas/Vertical"
               },
               "verification_email": {
                  "$ref": "#/components/schemas/VerificationEmail"
               },
               "verification_email_completion_date": {
                  "$ref": "#/components/schemas/VerificationEmailCompletionDate"
               },
               "reseller": {
                  "$ref": "#/components/schemas/Reseller-2"
               }
            }
         },
         "BrandID": {
            "description": "TCR Brand ID.",
            "type": "string",
            "pattern": "^[0-9A-F]{7}$",
            "maxLength": 50,
            "example": "BLQKOPK"
         },
         "CarrierBrandSuspension": {
            "description": "The brand has been suspended by one of the carriers.\n",
            "type": "object",
            "properties": {
               "category": {
                  "type": "string",
                  "description": "Summarize the reason of the suspension."
               },
               "explanation": {
                  "type": "string",
                  "description": "Detailed explanation of the cause of the suspension."
               }
            },
            "example": [
               {}
            ]
         },
         "BrandRelationship": {
            "description": "Brand relationship level.",
            "type": "string",
            "example": "BASIC_ACCOUNT",
            "enum": [
               "BASIC_ACCOUNT",
               "SMALL_ACCOUNT",
               "MEDIUM_ACCOUNT",
               "LARGE_ACCOUNT",
               "KEY_ACCOUNT"
            ]
         },
         "VerifiedDate": {
            "description": "Date-time when brand mobile phone was verified.",
            "type": "string",
            "format": "date-time"
         },
         "BrandSystemFields": {
            "description": "Fields that are added to a brand by the system",
            "type": "object",
            "properties": {
               "brand_id": {
                  "$ref": "#/components/schemas/BrandID"
               },
               "campaign_count": {
                  "type": "integer",
                  "description": "Number of not deleted campaigns associated with the brand",
                  "example": 5
               },
               "carrier_suspensions": {
                  "type": "array",
                  "items": {
                     "$ref": "#/components/schemas/CarrierBrandSuspension"
                  }
               },
               "brand_relationship": {
                  "$ref": "#/components/schemas/BrandRelationship"
               },
               "partner": {
                  "description": "Flag indicating the brand is related to a partner customer (brand & campaigns registered directly on TCR and shared with Vonage)",
                  "type": "boolean"
               },
               "shared": {
                  "description": "True when the brand is shared with the current Account ID.",
                  "type": "boolean"
               },
               "owner": {
                  "description": "True when the brand is owned by the requesting account.",
                  "type": "boolean"
               },
               "status": {
                  "description": "Brand status.",
                  "type": "string"
               },
               "reference_id": {
                  "description": "Unique identifier for preventing duplicate brand registration into TCR.",
                  "type": "string"
               },
               "verified_date": {
                  "$ref": "#/components/schemas/VerifiedDate"
               },
               "created_date": {
                  "type": "string",
                  "pattern": "^\\d{4}-[01]\\d-[0-3]\\d [0-2]\\d:[0-5]\\d:[0-5]\\d$",
                  "example": "2019-08-24 14:15:22"
               },
               "last_updated": {
                  "type": "string",
                  "pattern": "^\\d{4}-[01]\\d-[0-3]\\d [0-2]\\d:[0-5]\\d:[0-5]\\d$",
                  "example": "2019-09-24 14:15:22"
               }
            }
         },
         "BrandResponse": {
            "allOf": [
               {
                  "$ref": "#/components/schemas/BrandBase"
               },
               {
                  "$ref": "#/components/schemas/BrandSystemFields"
               },
               {
                  "type": "object",
                  "properties": {
                     "_links": {
                        "type": "object",
                        "properties": {
                           "self": {
                              "type": "object",
                              "properties": {
                                 "href": {
                                    "type": "string",
                                    "example": "https://api.nexmo.com/10dlc/brands/BLQKOPK"
                                 }
                              }
                           },
                           "campaigns": {
                              "type": "object",
                              "properties": {
                                 "href": {
                                    "type": "string",
                                    "example": "https://api.nexmo.com/10dlc/brands/BLQKOPK/campaigns"
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            ]
         },
         "CreateStandardBrand": {
            "title": "Non-Profit or Private Company",
            "x-tab-id": "NonProfitOrPrivateCompany",
            "description": "Fields required to create a brand with type other than PUBLIC_PROFIT or SOLE_PROPRIETOR.",
            "allOf": [
               {
                  "$ref": "#/components/schemas/BrandBase"
               },
               {
                  "type": "object",
                  "properties": {
                     "account_id": {
                        "$ref": "#/components/schemas/AccountID"
                     }
                  },
                  "required": [
                     "account_id",
                     "entity_type",
                     "display_name",
                     "company_name",
                     "vertical",
                     "ein",
                     "phone",
                     "email",
                     "street",
                     "city",
                     "state",
                     "postal_code",
                     "country"
                  ]
               }
            ]
         },
         "CreatePublicCompanyBrand": {
            "title": "Public Company",
            "x-tab-id": "PublicCompany",
            "description": "Fields required to create PUBLIC_PROFIT brand.",
            "allOf": [
               {
                  "$ref": "#/components/schemas/BrandBase"
               },
               {
                  "type": "object",
                  "properties": {
                     "account_id": {
                        "$ref": "#/components/schemas/AccountID"
                     }
                  },
                  "required": [
                     "account_id",
                     "entity_type",
                     "display_name",
                     "company_name",
                     "vertical",
                     "ein",
                     "phone",
                     "email",
                     "verification_email",
                     "stock_symbol",
                     "stock_exchange",
                     "street",
                     "city",
                     "state",
                     "postal_code",
                     "country"
                  ]
               }
            ]
         },
         "CreateSoleProprietorBrand": {
            "title": "Sole Proprietor",
            "x-tab-id": "SoleProprietor",
            "description": "Fields required to create SOLE_PROPRIETOR brand.",
            "allOf": [
               {
                  "$ref": "#/components/schemas/BrandBase"
               },
               {
                  "type": "object",
                  "properties": {
                     "account_id": {
                        "$ref": "#/components/schemas/AccountID"
                     }
                  },
                  "required": [
                     "account_id",
                     "entity_type",
                     "first_name",
                     "last_name",
                     "display_name",
                     "company_name",
                     "ein",
                     "phone",
                     "email",
                     "street",
                     "city",
                     "state",
                     "postal_code",
                     "country",
                     "mobile_phone"
                  ]
               }
            ]
         },
         "BrandEditableFields": {
            "description": "Fields that are editable for a brand",
            "type": "object",
            "properties": {
               "company_name": {
                  "$ref": "#/components/schemas/CompanyName"
               },
               "first_name": {
                  "$ref": "#/components/schemas/FirstName"
               },
               "last_name": {
                  "$ref": "#/components/schemas/LastName"
               },
               "display_name": {
                  "$ref": "#/components/schemas/DisplayName"
               },
               "ein": {
                  "$ref": "#/components/schemas/EIN"
               },
               "ein_issuing_country": {
                  "$ref": "#/components/schemas/EINIssuingCountry"
               },
               "entity_type": {
                  "$ref": "#/components/schemas/EntityType"
               },
               "website": {
                  "$ref": "#/components/schemas/Website"
               },
               "phone": {
                  "$ref": "#/components/schemas/Phone"
               },
               "mobile_phone": {
                  "$ref": "#/components/schemas/MobilePhone"
               },
               "street": {
                  "$ref": "#/components/schemas/Street"
               },
               "city": {
                  "$ref": "#/components/schemas/City"
               },
               "state": {
                  "$ref": "#/components/schemas/State"
               },
               "postal_code": {
                  "$ref": "#/components/schemas/PostalCode"
               },
               "country": {
                  "$ref": "#/components/schemas/Country-2"
               },
               "email": {
                  "$ref": "#/components/schemas/Email"
               },
               "stock_symbol": {
                  "$ref": "#/components/schemas/StockSymbol"
               },
               "stock_exchange": {
                  "$ref": "#/components/schemas/StockExchange"
               },
               "vertical": {
                  "$ref": "#/components/schemas/Vertical"
               },
               "reseller": {
                  "$ref": "#/components/schemas/Reseller-2"
               }
            }
         },
         "MnoStatus": {
            "type": "string",
            "description": "MNO campaign operation status. Please refer to the campaign_op_status property of the /enum endpoint response for an updated list of valid values."
         },
         "MNOComplaintDescription": {
            "description": "Description of this MNO complaint.",
            "type": "string",
            "maxLength": 65535
         },
         "MnoComplaints": {
            "type": "object",
            "properties": {
               "complaints": {
                  "type": "array",
                  "items": {
                     "type": "object",
                     "properties": {
                        "description": {
                           "$ref": "#/components/schemas/MNOComplaintDescription"
                        },
                        "dca": {
                           "type": "string",
                           "description": "dca name",
                           "example": "SINCH"
                        },
                        "created_at": {
                           "description": "Date-time when this record was created.",
                           "type": "string",
                           "format": "date-time"
                        }
                     }
                  }
               }
            }
         },
         "MnoMetadata": {
            "type": "object",
            "properties": {
               "network_id": {
                  "type": "string",
                  "description": "Network ID of the MNO.",
                  "example": "10017"
               },
               "mno": {
                  "type": "string",
                  "description": "Name of the MNO.",
                  "example": "AT&T"
               },
               "status": {
                  "$ref": "#/components/schemas/MnoStatus"
               },
               "mno_support": {
                  "type": "boolean",
                  "description": "If 'false', then the desired usecase cannot be supported by the MNO."
               },
               "mno_review": {
                  "type": "boolean",
                  "description": "If 'true', then the submitted campaign is subject to the MNO (manual) review process."
               },
               "qualify": {
                  "type": "boolean",
                  "description": "If 'false', then the brand does not qualify for the desired usecase on the MNO."
               },
               "min_msg_samples": {
                  "type": "integer",
                  "description": "The minimum number of message samples required by MNO for submission of the desired usecase.",
                  "example": 2
               },
               "req_subscriber_opt_in": {
                  "type": "boolean",
                  "description": "If 'true' then MNO requires the subscriber to opt-into the campaign before the message may be sent to the subscriber. The opt-in mechanism can be mobile or web opt-in."
               },
               "req_subscriber_opt_out": {
                  "type": "boolean",
                  "description": "If 'true' then MNO requires a campaign to support an opt-out mechanism through MO stop keywords such as 'STOP', 'QUIT'. Upon receive the STOP message from a subscriber, the campaign must stop sending messages to the subscriber immediately."
               },
               "req_subscriber_help": {
                  "type": "boolean",
                  "description": "If 'true' then MNO requires a campaign to support a 'help' mechanism through MO help key words such as 'HELP', 'INFO'."
               },
               "no_embedded_link": {
                  "type": "boolean",
                  "description": "If 'true' then MNO forbids call-to-action link/URL to be embedded in all messages sent to the subscriber."
               },
               "no_embedded_phone": {
                  "type": "boolean",
                  "description": "If 'true' then MNO forbids call-to-action phone number to be embedded in all messages sent to the subscriber."
               },
               "att_msg_class": {
                  "type": "string",
                  "description": "(Only for AT&T). Message class assigned to the campaign by MNO. Please refer to the AT&T 10DLC guide for a complete list of available message class and definition.",
                  "example": "Q"
               },
               "att_tpm": {
                  "type": "integer",
                  "description": "(Only for AT&T). SMS Message TPM (throughput per minute) qualified by the brand for the desired usecase.",
                  "example": 3000
               },
               "att_mms_tpm": {
                  "type": "integer",
                  "description": "(Only for AT&T). MMS Message TPM (throughput per minute) qualified by the brand for the desired usecase.",
                  "example": 3000
               },
               "att_number_based": {
                  "type": "boolean",
                  "description": "(Only for AT&T). Whether is the MNO applying the TPM per number or per campaign."
               },
               "tmo_brand_tier": {
                  "type": "string",
                  "enum": [
                     "LOW",
                     "LOWER_MID",
                     "UPPER_MID",
                     "TOP",
                     "UNCAPPED"
                  ],
                  "description": "(Only for T-Mobile). Daily message volume is restricted based on brand tier or brand qualification. The daily volume restriction applies to brand across campaigns and CSPs. Please refer to the /enum endpoint for an updated list of valid values.",
                  "example": "LOW"
               },
               "tmo_tpd": {
                  "type": "integer",
                  "description": "(Only for TMobile). Message TPD (throughput per day) qualified by the brand for the desired usecase."
               },
               "complaints": {
                  "type": "array",
                  "items": {
                     "$ref": "#/components/schemas/MnoComplaints"
                  }
               }
            }
         },
         "TokenPagination": {
            "type": "object",
            "properties": {
               "next_page": {
                  "description": "page_token to access the next page.",
                  "type": "string",
                  "minimum": 1,
                  "maximum": 512
               },
               "previous_page": {
                  "description": "page_token to access the previous page.",
                  "type": "string",
                  "minimum": 1,
                  "maximum": 512
               },
               "last_page": {
                  "description": "page_token to access the last page.",
                  "type": "string",
                  "minimum": 1,
                  "maximum": 512
               },
               "first_page": {
                  "description": "page_token to access the first page.",
                  "type": "string",
                  "minimum": 1,
                  "maximum": 512
               },
               "_links": {
                  "type": "object",
                  "properties": {
                     "next": {
                        "description": "Link to the next page.",
                        "type": "object",
                        "properties": {
                           "href": {
                              "type": "string"
                           }
                        }
                     },
                     "previous": {
                        "description": "Link to the previous page.",
                        "type": "object",
                        "properties": {
                           "href": {
                              "type": "string"
                           }
                        }
                     },
                     "first": {
                        "description": "Link to the first page.",
                        "type": "object",
                        "properties": {
                           "href": {
                              "type": "string"
                           }
                        }
                     },
                     "last": {
                        "description": "Link to the last page.",
                        "type": "object",
                        "properties": {
                           "href": {
                              "type": "string"
                           }
                        }
                     }
                  }
               }
            }
         },
         "CampaignStatus": {
            "description": "Campaign Status.\n\n * `PENDING_REVIEW`: This is the initial status of a campaign. This implies that the campaign has been submitted for an internal review and cannot be used yet.\n * `UPDATES_REQUIRED`: The campaign has been reviewed but requires changes before it can be approved.\n * `CARRIERS_REVIEW`: The campaign has been approved by our internal process. It has been created in the registry and but pending approval from third parties i.e: mobile carrier.\n * `ACTIVE`: The campaign has been approved by every party and traffic can now be sent.\n * `PENDING_CANCELLATION`: The campaign is active but will not be renewed. It will be canceled at the next renewal date.\n * `SUSPENDED`: The campaign has been suspended, along with any traffic it's used to send. This can happen if suspicious traffic has been detected (e.g.: spam) or after an MNO complaint. This triggers an internal review process which can lead to the un-suspension or termination of the campaign.\n * `TERMINATED`: The campaign has been terminated. A campaign cannot be recovered after it's been terminated.\n * `EXPIRED`: The campaign has expired.\n * `REJECTED`: This implies the campaign was rejected by the compliance team as it is not compliant with 10DLC requirements. Further reasons can be found in the description of the rejection event received from TCR. You may update the campaign using TCR’s API or dashboard, and re-share the campaign with Vonage for a new review.\n * `CNP_CANCELED`: The campaign has been canceled during a CNP migration. You are required to restart a CNP migration.\n * `PORTED_OUT`: The campaign has been ported out from Vonage. You are required to start a CNP migration.\n",
            "type": "string",
            "example": "ACTIVE",
            "enum": [
               "PENDING_REVIEW",
               "UPDATES_REQUIRED",
               "CARRIERS_REVIEW",
               "ACTIVE",
               "PENDING_CANCELLATION",
               "SUSPENDED",
               "TERMINATED",
               "CANCELED",
               "REJECTED",
               "CNP_CANCELED",
               "PORTED_OUT"
            ]
         },
         "CampaignID": {
            "description": "Vonage Campaign ID.",
            "type": "string",
            "maxLength": 50,
            "example": "VC987XYZ"
         },
         "TCRCampaignID": {
            "description": "TCR Campaign ID.",
            "type": "string",
            "maxLength": 50,
            "example": "C123ABC"
         },
         "TCRResellerId": {
            "type": "string",
            "description": "Alphanumeric TCR identifier of the reseller associated with this campaign. \\\n`R000000` is a special value meaning this is **not** a reseller campaign.\n\nThis is **required** when creating a campaign on behalf of another company or entity.\n\nIn `POST` and `PATCH` endpoints, this is ignored if the `reseller` field on the same call. It will also be ignored if the brand's `reseller` field is `true`. \\\nIf `tcr_campaign_id` and `reseller_id` are set (not an empty string) then this field cannot be changed anymore.\n",
            "maxLength": 8,
            "example": "R123456"
         },
         "Reseller-3": {
            "type": "boolean",
            "description": "Indicates if a campaign is a reseller campaign.\n\nThis is **required** when creating a campaign on behalf of another company or entity.\n\nThis can only be enabled if a valid reseller (status `PENDING` or `APPROVED`) is linked to the primary account of the brand.\n\nIn `POST` and `PATCH` endpoints, this is ignored if the brand's `reseller` field is `true`.\n"
         },
         "CampaignLabel": {
            "description": "Friendly name associated with this campaign.",
            "type": "string",
            "maxLength": 50,
            "example": "This is a sample campaign"
         },
         "CampaignTrafficEnabled": {
            "description": "Indicates if traffic is enabled for this campaign.\n\nTraffic first becomes enabled when the campaign's status becomes `ACTIVE`.\nIt can be suspended later due to a number of reasons (campaign suspension, expiration, termination, ...).\n\n**NB** This is only a requirement for traffic to be allowed but not is not the only requirement. Traffic can also be stopped due to brand suspensions, number not linked properly, ...\n",
            "type": "boolean"
         },
         "UseCase": {
            "type": "string",
            "description": "Campaign usecase.\nPlease refer to the [/enum](#Enums) endpoint for an updated list of valid values.\n",
            "maxLength": 50,
            "enum": [
               "CUSTOMER_CARE",
               "POLLING_VOTING",
               "HIGHER_EDUCATION",
               "PUBLIC_SERVICE_ANNOUNCEMENT",
               "MARKETING",
               "SECURITY_ALERT",
               "DELIVERY_NOTIFICATION",
               "ACCOUNT_NOTIFICATION",
               "2FA",
               "FRAUD_ALERT",
               "TRIAL",
               "CHARITY",
               "POLITICAL",
               "EMERGENCY",
               "SWEEPSTAKE",
               "CONVERSATIONAL",
               "MIXED",
               "CARRIER_EXEMPT",
               "SOCIAL",
               "LOW_VOLUME"
            ],
            "example": "ACCOUNT_NOTIFICATION"
         },
         "CampaignDescription": {
            "type": "string",
            "description": "Summary description of this campaign",
            "minLength": 40,
            "maxLength": 4096,
            "example": "User notifications"
         },
         "CampaignReadMessageFlow": {
            "type": "string",
            "description": "Message flow, also known as Call to Action, of the campaign.\nIt will always be filled with data computed from `message_flow_details`.\n\nThis field should describe how a consumer opts-in to the campaign, therefore giving consent to the sender to receive their messages. \nThe call-to-action must be explicitly clear and inform the consumer of the nature of the program.\n\n- Entering a telephone number through a website;\n- Clicking a button on a mobile webpage;\n- Sending a message from the Consumer’s mobile device that contains an\nadvertising\nkeyword;\n- Initiating the text message exchange in which the Message Sender\nreplies to the\nConsumer only with responsive information;\n- Signing up at a point-of-sale (POS) or other Message Sender on-site\nlocation; or\n- Opting-in over the phone using interactive voice response (IVR)\ntechnology.\n\nIf multiple opt-in methods can be used for the same campaign, you must list them all.\n\nDescribes what the `opt_in` option was used for.\n",
            "minLength": 40,
            "maxLength": 4096,
            "example": "Brand: My brand \\\nConsent mechanisms: \\\n- TEXT_TO_JOIN: Opt-in Keywords: START,JOIN. A text will be sent to the customer. He can reply yes to consent and opt in. \\\n- ONLINE_FORM: This is an online form \\\n  Link: https://mybrand.com/optin \\\nMessage & data rates may apply. - Message frequency varies \\\nCarriers are not liable for delayed or undelivered messages. \\\nText HELP for help. Text STOP to opt-out.\n"
         },
         "MessageFlowDetails": {
            "title": "Detailed message flow.",
            "description": "Message flow details specifies the `message_flow` field as a structured object instead of a single text field.\n\nWhen creating or updating a campaign:\n1. either `message_flow` or `message_flow_details` may be specified, but not both.\n2. if `message_flow_details` is specified, the object's fields will be used to fill a template.\nThe resulting templated text will be used to fill the `message_flow` field of the campaign. \n\nWhen reading a campaign `message_flow_details` will only be filled if it's been used to create or update the campaign.\n\nFor more information on Campaign message flows, please see this [campaign requirements article](https://api.support.vonage.com/hc/en-us/articles/12132309081500-10DLC-Campaign-requirements#h_01HKWA9PV34CD8DW9EABF10PGN).\n",
            "type": "object",
            "required": [
               "brand_name",
               "consent_mechanisms",
               "pricing_disclosure",
               "frequency",
               "privacy_policy",
               "terms_and_conditions"
            ],
            "properties": {
               "brand_name": {
                  "description": "A brand name associated with the campaign.\nThis can be different from the name of the brand the campaign belongs to (e.g. for subsidiaries, ...).\n\n**NB:** This is optional for sole proprietors.\n",
                  "type": "string"
               },
               "consent_mechanisms": {
                  "description": "Describe the different mechanisms a customer may use to consent to the campaign.\n\nIt is required to provide an attachment for all consent methods, except `TEXT_TO_JOIN`.\n",
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 5,
                  "items": {
                     "type": "object",
                     "description": "`ONLINE_FORM`, `LIVE_OPERATOR`, `POINT_OF_SALE`, `TEXT_TO_JOIN`, `OTHER`\n",
                     "required": [
                        "method",
                        "details"
                     ],
                     "properties": {
                        "method": {
                           "type": "string",
                           "enum": [
                              "ONLINE_FORM",
                              "LIVE_OPERATOR",
                              "POINT_OF_SALE",
                              "TEXT_TO_JOIN",
                              "OTHER"
                           ]
                        },
                        "details": {
                           "description": "Details on the consent mechanism.",
                           "type": "string"
                        },
                        "attachment": {
                           "description": "An HTTP(S) link to the resource describing the mechanism.",
                           "type": "string",
                           "format": "uri"
                        }
                     }
                  }
               },
               "pricing_disclosure": {
                  "description": "This field needs to be true to consent to adding the pricing disclosure to the template.\n\nThe following will be added: `Message and Data rates may apply`\n",
                  "type": "boolean",
                  "enum": [
                     true
                  ]
               },
               "carrier_disclaimer": {
                  "description": "Whether to add the following disclaimer:\n`Carriers are not liable for delayed or undelivered messages.`\n",
                  "type": "boolean",
                  "enum": [
                     true
                  ]
               },
               "frequency": {
                  "description": "The frequency of the messages sent by the campaign.",
                  "type": "string",
                  "enum": [
                     "ONE_TIME",
                     "RECURRING"
                  ]
               },
               "privacy_policy": {
                  "description": "Link to the campaign's privacy policy.",
                  "type": "string",
                  "format": "uri"
               },
               "terms_and_conditions": {
                  "description": "Link to the campaign's terms and conditions.",
                  "type": "string",
                  "format": "uri"
               }
            },
            "example": {
               "brand_name": "My brand",
               "consent_mechanisms": [
                  {
                     "method": "TEXT_TO_JOIN",
                     "details": "A text will be sent to the customer. He can reply yes to consent and opt in."
                  },
                  {
                     "method": "ONLINE_FORM",
                     "details": "An online form allows the customer to subscribe.",
                     "attachment": "https://mybrand.com/optin"
                  }
               ],
               "pricing_disclosure": true,
               "frequency": "RECURRING",
               "privacy_policy": "https://mybrand.com/privacy_policy",
               "terms_and_conditions": "https://mybrand.com/terms_and_conditions"
            }
         },
         "UrlSamples": {
            "type": "array",
            "description": "Samples of links that might be sent to subscribers.\n",
            "minItems": 0,
            "maxItems": 15,
            "items": {
               "type": "object",
               "properties": {
                  "url": {
                     "type": "string",
                     "example": "https://mybrand.com/account/appointments"
                  }
               }
            },
            "example": [
               {
                  "url": "https://mybrand.com/account/appointments"
               }
            ]
         },
         "SubscriberOptIn": {
            "type": "boolean",
            "description": "Does campaign require subscriber to opt-in before SMS is sent to subscriber?",
            "default": true,
            "example": false
         },
         "OptInKeywords": {
            "description": "Opt in keywords of the campaign, separated by comas.\n",
            "type": "string",
            "maxLength": 255,
            "example": "START,SUBSCRIBE"
         },
         "OptInMessage": {
            "description": "Opt in message sent to confirmation enrollment to a recurring message campaign. \nAlso provide information on how to get `HELP` or undo enrollment.\nIf consumers can text in a keyword,the response should include the Brand name.\n<br>\n**NB: This field is mandatory if `opt_in_keywords` is set.**\n",
            "type": "string",
            "minLength": 20,
            "maxLength": 320,
            "example": "<Brand Name>: You are now opted-in. For help, reply HELP. To opt-out, reply STOP\n"
         },
         "SubscriberOptOut": {
            "type": "boolean",
            "description": "Does campaign support subscriber opt-out keyword(s)?",
            "default": true,
            "example": false
         },
         "OptOutKeywords": {
            "description": "Opt out keywords of the campaign, separated by commas.\nThis field **must not** contain spaces around commas (spaces within multi-word keywords like \"OPT OUT\" are allowed).\n\nThe following keywords are mandatory and need to be specified when creating or updating a campaign: `STOP,END,QUIT,CANCEL,UNSUBSCRIBE,REVOKE,OPT OUT`\n",
            "type": "string",
            "maxLength": 255,
            "default": "STOP,END,QUIT,CANCEL,UNSUBSCRIBE,REVOKE,OPT OUT",
            "example": "STOP,END,QUIT,CANCEL,UNSUBSCRIBE,REVOKE,OPT OUT,REMOVE ME"
         },
         "OptOutMessage": {
            "description": "Opt out message of the campaign. The response to the `STOP` keyword may include the Brand name but should include an acknowledgement of the opt-out request and confirmation that no further messages will be sent. <br> **NB: Required for all recurring campaigns or for SMS opt-in.**\n",
            "type": "string",
            "minLength": 20,
            "maxLength": 320,
            "example": "<Brand Name>: You are now opted-out and will receive no further messages.\n"
         },
         "SubscriberHelp": {
            "type": "boolean",
            "description": "Does campaign responds to help keyword(s)?",
            "default": true,
            "example": false
         },
         "HelpKeywords": {
            "description": "Help keywords of the campaign, separated by comas.\nThis field **must not** contain any spaces, and **must** contain the `HELP` keyword if set.\n",
            "type": "string",
            "maxLength": 255,
            "default": "HELP",
            "example": "HELP,INFO"
         },
         "HelpMessage": {
            "type": "string",
            "description": "Help message of the campaign.\n\nThe response to HELP keyword may include the Brand name and additional support contact information.\n",
            "minLength": 20,
            "maxLength": 320,
            "example": "<Brand Name>: For help, email support@example.com. To opt-out, reply STOP\n"
         },
         "SampleOne": {
            "type": "string",
            "description": "Message sample. Some campaign tiers require 1 or more message samples.",
            "minLength": 20,
            "maxLength": 1024,
            "example": "Hi\nThis is a reminder that you have a scheduled appointment with Dr. Doe tomorrow at 4:00PM.\n"
         },
         "SampleTwo": {
            "type": "string",
            "description": "Message sample. Some campaign tiers require 2 or more message samples.",
            "minLength": 20,
            "maxLength": 1024,
            "example": "Hello,\nYour order, number XXXXXXX, has been shipped.\n"
         },
         "SampleThree": {
            "type": "string",
            "description": "Message sample. Some campaign tiers require 3 or more message samples.",
            "minLength": 20,
            "maxLength": 1024,
            "example": "Here is you unique PIN number to access the application: 123456\n"
         },
         "SampleFour": {
            "type": "string",
            "description": "Message sample. Some campaign tiers require 4 or more message samples.",
            "minLength": 20,
            "maxLength": 1024,
            "example": "Hello Mr Doe,\nYour payment of 9.99$ was authorized. You can find your invoice in your customer account.\n"
         },
         "SampleFive": {
            "type": "string",
            "description": "Message sample. Some campaign tiers require 5.",
            "minLength": 20,
            "maxLength": 1024,
            "example": "Your delivery is scheduled for tomorrow between 8am and 2pm.\nIf you wish to change the delivery date please reply by typing 1 (tomorrow), 2 (Thursday) or 3 (deliver to post office) below.\n"
         },
         "CampaignAgeGated": {
            "type": "boolean",
            "description": "Subscribers will be required to provide their age to opt-in if set to `true`.\n**NB:** Sex, Hate, Alcohol, Firearms, and Tobacco related (S.H.A.F.T) messages are prohibited.\n",
            "example": true
         },
         "CampaignDirectLending": {
            "type": "boolean",
            "description": "Set to `true` if messages are related to money lending or loan arrangements.\n",
            "example": true
         },
         "EmbeddedLink": {
            "type": "boolean",
            "description": "Set to `true` if the campaign message includes links.\n**NB:** [Shortened URLs](https://en.wikipedia.org/wiki/URL_shortening) are forbidden.\n",
            "example": false
         },
         "EmbeddedPhone": {
            "type": "boolean",
            "description": "Does message generated by the campaign include phone number in SMS?",
            "example": false
         },
         "CampaignPartner": {
            "description": "Indicates the brand or campaign belong to a partner campaign.",
            "type": "boolean",
            "example": true
         },
         "AutoRenewal": {
            "description": "Campaign subscription auto-renewal option.\n\nDefines the behaviour at the end of the billing cycle:\n* if `true`, the campaign will automatically renewed\n* if `false`, the campaign will expire and its status will become `CANCELED`\n",
            "type": "boolean"
         },
         "HIPAA": {
            "type": "boolean",
            "description": "Indicates if HIPAA is enabled for this campaign.\n\nThis is kept nullable to avoid breaking changes, but it is best to set it when creating the campaign.\nOtherwise, this will be set when attempting to link the first number of the campaign, whether the attempt is successful or not.\nAfter that, it will not be possible to update that field anymore.\n"
         },
         "TCRCampaignStatus": {
            "description": "Campaign TCR status.",
            "type": "string",
            "enum": [
               "UNKNOWN",
               "ACTIVE",
               "CANCELED"
            ]
         },
         "Vertical-2": {
            "description": "Business/industry segment of this campaign. Please refer to the vertical property of the /enum endpoint for an updated list of valid values.",
            "type": "string",
            "enum": [
               "REAL_ESTATE",
               "HEALTHCARE",
               "ENERGY",
               "ENTERTAINMENT",
               "RETAIL",
               "AGRICULTURE",
               "INSURANCE",
               "EDUCATION",
               "HOSPITALITY",
               "FINANCIAL",
               "GAMBLING",
               "CONSTRUCTION",
               "NGO",
               "MANUFACTURING",
               "GOVERNMENT",
               "TECHNOLOGY",
               "COMMUNICATION"
            ],
            "example": "TECHNOLOGY"
         },
         "CampaignNumberPool": {
            "type": "boolean",
            "description": "Set to `true` if campaign uses a pool of numbers.\n",
            "default": true,
            "example": false
         },
         "RegistrationDate": {
            "description": "Date-time when campaign was registered with TCR.",
            "type": "string",
            "format": "date-time"
         },
         "TCRRenewalDate": {
            "description": "Date when the campaign will be renewed and billed, if `auto_renewal` is `true`.\n",
            "type": "string",
            "format": "date"
         },
         "CreatedDate-2": {
            "description": "Date when this record was created.",
            "type": "string",
            "format": "date-time"
         },
         "BilledDate": {
            "description": "Date-time when this campaign was billed.",
            "type": "string",
            "format": "date-time"
         },
         "CampaignBase": {
            "type": "object",
            "properties": {
               "primary_account_id": {
                  "$ref": "#/components/schemas/PrimaryAccountID"
               },
               "account_id": {
                  "$ref": "#/components/schemas/AccountID"
               },
               "brand_id": {
                  "$ref": "#/components/schemas/BrandID"
               },
               "campaign_id": {
                  "$ref": "#/components/schemas/CampaignID"
               },
               "tcr_campaign_id": {
                  "$ref": "#/components/schemas/TCRCampaignID"
               },
               "reseller_id": {
                  "$ref": "#/components/schemas/TCRResellerId"
               },
               "reseller": {
                  "$ref": "#/components/schemas/Reseller-3"
               },
               "label": {
                  "$ref": "#/components/schemas/CampaignLabel"
               },
               "status": {
                  "$ref": "#/components/schemas/CampaignStatus"
               },
               "traffic_enabled": {
                  "$ref": "#/components/schemas/CampaignTrafficEnabled"
               },
               "usecase": {
                  "$ref": "#/components/schemas/UseCase"
               },
               "sub_usecases": {
                  "type": "array",
                  "description": "Campaign sub-usecases.\nPlease refer to the [/enum](#Enums) endpoint for an updated list of valid values.\n",
                  "items": {
                     "$ref": "#/components/schemas/UseCase"
                  },
                  "example": [
                     "2FA",
                     "SECURITY_ALERT"
                  ]
               },
               "description": {
                  "$ref": "#/components/schemas/CampaignDescription"
               },
               "message_flow": {
                  "$ref": "#/components/schemas/CampaignReadMessageFlow"
               },
               "message_flow_details": {
                  "$ref": "#/components/schemas/MessageFlowDetails"
               },
               "url_samples": {
                  "$ref": "#/components/schemas/UrlSamples"
               },
               "subscriber_opt_in": {
                  "$ref": "#/components/schemas/SubscriberOptIn"
               },
               "opt_in_keywords": {
                  "$ref": "#/components/schemas/OptInKeywords"
               },
               "opt_in_message": {
                  "$ref": "#/components/schemas/OptInMessage"
               },
               "subscriber_opt_out": {
                  "$ref": "#/components/schemas/SubscriberOptOut"
               },
               "opt_out_keywords": {
                  "$ref": "#/components/schemas/OptOutKeywords"
               },
               "opt_out_message": {
                  "$ref": "#/components/schemas/OptOutMessage"
               },
               "subscriber_help": {
                  "$ref": "#/components/schemas/SubscriberHelp"
               },
               "help_keywords": {
                  "$ref": "#/components/schemas/HelpKeywords"
               },
               "help_message": {
                  "$ref": "#/components/schemas/HelpMessage"
               },
               "sample_one": {
                  "$ref": "#/components/schemas/SampleOne"
               },
               "sample_two": {
                  "$ref": "#/components/schemas/SampleTwo"
               },
               "sample_three": {
                  "$ref": "#/components/schemas/SampleThree"
               },
               "sample_four": {
                  "$ref": "#/components/schemas/SampleFour"
               },
               "sample_five": {
                  "$ref": "#/components/schemas/SampleFive"
               },
               "age_gated": {
                  "$ref": "#/components/schemas/CampaignAgeGated"
               },
               "direct_lending": {
                  "$ref": "#/components/schemas/CampaignDirectLending"
               },
               "embedded_link": {
                  "$ref": "#/components/schemas/EmbeddedLink"
               },
               "embedded_phone": {
                  "$ref": "#/components/schemas/EmbeddedPhone"
               },
               "partner": {
                  "$ref": "#/components/schemas/CampaignPartner"
               },
               "auto_renewal": {
                  "$ref": "#/components/schemas/AutoRenewal"
               },
               "hipaa": {
                  "$ref": "#/components/schemas/HIPAA"
               },
               "tcr_status": {
                  "$ref": "#/components/schemas/TCRCampaignStatus"
               },
               "vertical": {
                  "$ref": "#/components/schemas/Vertical-2"
               },
               "number_pool": {
                  "$ref": "#/components/schemas/CampaignNumberPool"
               },
               "registration_date": {
                  "$ref": "#/components/schemas/RegistrationDate"
               },
               "renewal_date": {
                  "$ref": "#/components/schemas/TCRRenewalDate"
               },
               "created_date": {
                  "$ref": "#/components/schemas/CreatedDate-2"
               },
               "last_updated": {
                  "$ref": "#/components/schemas/LastUpdated"
               },
               "billed_date": {
                  "$ref": "#/components/schemas/BilledDate"
               }
            }
         },
         "OptOutAssist-2": {
            "type": "boolean",
            "description": "Specifies whether opt out assist is enabled for this account. \\\nOn a campaign, indicates whether it's enabled on the primary account of the campaign's brand.\n",
            "example": false
         },
         "CampaignResponse": {
            "allOf": [
               {
                  "$ref": "#/components/schemas/CampaignBase"
               },
               {
                  "type": "object",
                  "properties": {
                     "opt_out_assist": {
                        "$ref": "#/components/schemas/OptOutAssist-2"
                     },
                     "last_status_changes": {
                        "type": "array",
                        "title": "The last status changes",
                        "description": "Lists the last changes of the status field.\n\n**Note**: this is only an extract. Not all changes are listed here.\n",
                        "items": {
                           "type": "object",
                           "properties": {
                              "status": {
                                 "$ref": "#/components/schemas/CampaignStatus"
                              },
                              "explanation": {
                                 "type": "string",
                                 "title": "The explanation of the change.",
                                 "description": "Describes why the status changed how it did.\n"
                              },
                              "change_date": {
                                 "type": "string",
                                 "format": "date-time",
                                 "title": "Date-time when the status changed.",
                                 "description": "Date-time when the status changed."
                              }
                           },
                           "example": {
                              "status": "APPROVED",
                              "reason": "Approved after internal review.",
                              "change_date": "2022-01-01 01:01:01"
                           }
                        }
                     },
                     "mno_metadata": {
                        "type": "array",
                        "items": {
                           "$ref": "#/components/schemas/MnoMetadata"
                        }
                     },
                     "carrier_brand_suspensions": {
                        "type": "array",
                        "items": {
                           "$ref": "#/components/schemas/CarrierBrandSuspension"
                        }
                     },
                     "_links": {
                        "type": "object",
                        "properties": {
                           "self": {
                              "type": "object",
                              "properties": {
                                 "href": {
                                    "type": "string",
                                    "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/C1DEB879"
                                 }
                              }
                           },
                           "brand": {
                              "type": "object",
                              "properties": {
                                 "href": {
                                    "type": "string",
                                    "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK"
                                 }
                              }
                           },
                           "numbers": {
                              "type": "object",
                              "properties": {
                                 "href": {
                                    "type": "string",
                                    "example": "https://api.nexmo.com/v1/10dlc/brands/BLQKOPK/campaigns/C1DEB879/numbers"
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            ]
         },
         "CampaignWriteMessageFlow": {
            "deprecated": true,
            "type": "string",
            "description": "Message flow, also known as Call to Action, of the campaign.\n\nThis field should describe how a consumer opts-in to the campaign, therefore giving consent to the sender to receive their messages. \nThe call-to-action must be explicitly clear and inform the consumer of the nature of the program.\n\n- Entering a telephone number through a website;\n- Clicking a button on a mobile webpage;\n- Sending a message from the Consumer’s mobile device that contains an\nadvertising\nkeyword;\n- Initiating the text message exchange in which the Message Sender\nreplies to the\nConsumer only with responsive information;\n- Signing up at a point-of-sale (POS) or other Message Sender on-site\nlocation; or\n- Opting-in over the phone using interactive voice response (IVR)\ntechnology.\n\nIf multiple opt-in methods can be used for the same campaign, you must list them all.\n\nWhen creating or updating a campaign, either `message_flow` or `message_flow_details` may be specified, but not both.\nWhen reading a campaign, `message_flow` will always be filled with data computed from `message_flow_details`.\n\nDescribes what the `opt_in` option was used for.\n**NB**This attribute will be deprecated on POST and PATCH endpoint. Please update your application to use the `message_flow_details` property instead.\n",
            "minLength": 40,
            "maxLength": 4096,
            "example": "Brand: My brand \\\nConsent mechanisms: \\\n- TEXT_TO_JOIN: Opt-in Keywords: START,JOIN. A text will be sent to the customer. He can reply yes to consent and opt in. \\\n- ONLINE_FORM: This is an online form \\\n  Link: https://mybrand.com/optin \\\nMessage & data rates may apply. - Message frequency varies \\\nCarriers are not liable for delayed or undelivered messages. \\\nText HELP for help. Text STOP to opt-out.\n"
         },
         "TermsAndConditionsAgreed": {
            "description": "Set to `true` to accept 10DLC's terms and conditions.\nT&Cs are determined by The Campaign Registry (TCR).\nYou may retrieve the latest version of those terms and conditions using the [campaign T&C endpoint](#campaignT&C).\n",
            "type": "boolean",
            "example": true
         },
         "CampaignUpdatePayload": {
            "type": "object",
            "properties": {
               "label": {
                  "$ref": "#/components/schemas/CampaignLabel"
               },
               "description": {
                  "$ref": "#/components/schemas/CampaignDescription"
               },
               "reseller_id": {
                  "$ref": "#/components/schemas/TCRResellerId"
               },
               "reseller": {
                  "$ref": "#/components/schemas/Reseller-3"
               },
               "sample_one": {
                  "$ref": "#/components/schemas/SampleOne"
               },
               "sample_two": {
                  "$ref": "#/components/schemas/SampleTwo"
               },
               "sample_three": {
                  "$ref": "#/components/schemas/SampleThree"
               },
               "sample_four": {
                  "$ref": "#/components/schemas/SampleFour"
               },
               "sample_five": {
                  "$ref": "#/components/schemas/SampleFive"
               },
               "message_flow": {
                  "$ref": "#/components/schemas/CampaignWriteMessageFlow"
               },
               "message_flow_details": {
                  "$ref": "#/components/schemas/MessageFlowDetails"
               },
               "url_samples": {
                  "$ref": "#/components/schemas/UrlSamples"
               },
               "help_message": {
                  "$ref": "#/components/schemas/HelpMessage"
               },
               "opt_in_message": {
                  "$ref": "#/components/schemas/OptInMessage"
               },
               "opt_out_message": {
                  "$ref": "#/components/schemas/OptOutMessage"
               },
               "help_keywords": {
                  "$ref": "#/components/schemas/HelpKeywords"
               },
               "opt_in_keywords": {
                  "$ref": "#/components/schemas/OptInKeywords"
               },
               "opt_out_keywords": {
                  "$ref": "#/components/schemas/OptOutKeywords"
               },
               "auto_renewal": {
                  "description": "Campaign subscription auto-renewal option.",
                  "type": "boolean"
               },
               "status": {
                  "description": "Campaign status. Only status CANCELED may be manually set.",
                  "type": "string",
                  "enum": [
                     "CANCELED"
                  ]
               },
               "vertical": {
                  "$ref": "#/components/schemas/Vertical-2"
               },
               "usecase": {
                  "$ref": "#/components/schemas/UseCase"
               },
               "sub_usecases": {
                  "type": "array",
                  "items": {
                     "$ref": "#/components/schemas/UseCase"
                  }
               },
               "age_gated": {
                  "$ref": "#/components/schemas/CampaignAgeGated"
               },
               "direct_lending": {
                  "$ref": "#/components/schemas/CampaignDirectLending"
               },
               "embedded_link": {
                  "$ref": "#/components/schemas/EmbeddedLink"
               },
               "embedded_phone": {
                  "$ref": "#/components/schemas/EmbeddedPhone"
               },
               "hipaa": {
                  "$ref": "#/components/schemas/HIPAA"
               }
            }
         },
         "SharingStatus": {
            "description": "Sharing Status. Please refer to the [/enum](#Enums) endpoint for an update list of valid values.",
            "type": "string",
            "maxLength": 50,
            "enum": [
               "PENDING",
               "ACCEPTED",
               "DECLINED"
            ]
         },
         "CnpID": {
            "description": "CNP ID. Please refer to the [/enum](#Enums) endpoint for an update list of valid values.",
            "type": "string",
            "maxLength": 50
         },
         "NumberStatus": {
            "type": "string",
            "description": "Current status of a number in a campaign. Only LINKED allows traffic.",
            "example": "LINKING",
            "enum": [
               "LINKING",
               "LINKED",
               "REJECTED",
               "UNLINKING",
               "UNLINKED"
            ]
         }
      },
      "securitySchemes": {
         "basicAuth": {
            "type": "http",
            "scheme": "basic"
         }
      },
      "parameters": {
         "path_reseller_id": {
            "in": "path",
            "name": "reseller_id",
            "description": "Unique identifier assigned to the reseller.",
            "required": true,
            "schema": {
               "$ref": "#/components/schemas/ResellerID"
            }
         },
         "Number": {
            "in": "path",
            "name": "number",
            "description": "Number to work with inside a campaign",
            "required": true,
            "schema": {
               "$ref": "#/components/schemas/Number"
            }
         },
         "Page": {
            "in": "query",
            "name": "page",
            "description": "Page of results to jump to",
            "required": false,
            "schema": {
               "$ref": "#/components/schemas/Page"
            }
         },
         "PageSize": {
            "in": "query",
            "name": "page_size",
            "description": "Number of results per page",
            "required": false,
            "schema": {
               "$ref": "#/components/schemas/PageSize"
            }
         },
         "filter": {
            "description": "Narrow down results based on matching conditions.\nFollow the [comprehensive guide](https://developer.vonage.com/messages/10-dlc/filter) to learn how to craft filter queries.\n",
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
               "$ref": "#/components/schemas/Filter"
            },
            "examples": {
               "simple": {
                  "description": "Simple \"age == 42\" rule",
                  "value": [
                     [
                        {
                           "field": "age",
                           "type": "==",
                           "value": 42
                        }
                     ]
                  ]
               },
               "combination": {
                  "description": "Combination of AND or OR rules.\n((name==doe OR age<=42) AND (address.country match \"EN\" or \"FR\"))\n",
                  "value": [
                     [
                        {
                           "field": "name",
                           "type": "==",
                           "value": "doe"
                        },
                        {
                           "field": "age",
                           "type": "<=",
                           "value": 42
                        }
                     ],
                     [
                        {
                           "field": "address.country",
                           "type": "regexp",
                           "value": "^EN$|^FR$"
                        }
                     ]
                  ]
               }
            }
         },
         "brand_status": {
            "in": "query",
            "name": "status",
            "description": "One or multiple status can be given. Thus `ACTIVE` and `SUSPENDED`. The endpoint then returns the brands with the chosen status. If no status is chosen, both `ACTIVE` and `SUSPENDED` brands would be returned.\n",
            "required": false,
            "schema": {
               "$ref": "#/components/schemas/BrandStatus"
            }
         },
         "brand_id": {
            "name": "brand_id",
            "in": "path",
            "description": "TCR Brand ID",
            "required": true,
            "schema": {
               "$ref": "#/components/schemas/BrandID"
            }
         },
         "usecase": {
            "in": "path",
            "name": "usecase",
            "description": "Name of a use case",
            "required": true,
            "schema": {
               "type": "string",
               "enum": [
                  "CUSTOMER_CARE",
                  "POLLING_VOTING",
                  "HIGHER_EDUCATION",
                  "PUBLIC_SERVICE_ANNOUNCEMENT",
                  "MARKETING",
                  "SECURITY_ALERT",
                  "DELIVERY_NOTIFICATION",
                  "ACCOUNT_NOTIFICATION",
                  "2FA",
                  "FRAUD_ALERT",
                  "TRIAL",
                  "CHARITY",
                  "POLITICAL",
                  "EMERGENCY",
                  "SWEEPSTAKE",
                  "CONVERSATIONAL",
                  "MIXED",
                  "CARRIER_EXEMPT",
                  "SOCIAL",
                  "LOW_VOLUME"
               ]
            }
         },
         "otp_reference_id": {
            "in": "path",
            "name": "reference_id",
            "description": "SMS OTP reference ID is an alphanumeric identifier (with 'OTP' prefix).",
            "required": true,
            "schema": {
               "$ref": "#/components/schemas/OTPReferenceID"
            }
         },
         "campaign_status": {
            "in": "query",
            "name": "status",
            "description": "You can choose one or multiple statuses i.e: ACTIVE or CANCELED. If no status is given, then no filter would be applied and any campaign would be returned.\n",
            "required": false,
            "schema": {
               "$ref": "#/components/schemas/CampaignStatus"
            }
         },
         "campaign_id": {
            "name": "campaign_id",
            "in": "path",
            "description": "ID associated with a specific campaign",
            "required": true,
            "schema": {
               "$ref": "#/components/schemas/CampaignID"
            }
         },
         "page_token": {
            "description": "Token used to paginate.",
            "in": "query",
            "name": "page_token",
            "required": false,
            "schema": {
               "type": "string",
               "minimum": 1,
               "maximum": 512
            }
         }
      }
   },
   "x-errors": {
      "brand-conflict": {
         "description": "A conflict when a brand is being created or edited and there is an issue with a 3rd party vendor.",
         "resolution": "Ensure all required fields have values and there are no errors in those values. If the error persists, contact [support](mailto:${CUSTOMER_SUPPORT_EMAIL})."
      },
      "brand-parameters": {
         "description": "There are errors in the brand data submitted.",
         "resolution": "Ensure all required fields have values included and correct any errors to values in the specified fields."
      },
      "invalid-usecase-data": {
         "description": "There are errors in the data submitted for use case qualification.",
         "resolution": "Ensure all required fields have values included and correct any errors to values in the specified fields."
      },
      "use-case-denied": {
         "description": "The use case requested has been denied for this brand.",
         "resolution": "Ensure your use case does not require additional brand vetting or pre/post Mobile Network Operator approval."
      },
      "vetting-conflict": {
         "description": "A conflict during the brand vetting request has occurred.",
         "resolution": "If the error persists, contact [support](mailto:${CUSTOMER_SUPPORT_EMAIL})."
      },
      "invalid-vetting-data": {
         "description": "There are errors in the vetting request data submitted.",
         "resolution": "Ensure all required fields have values and correct any errors to values in the specified fields."
      },
      "invalid-json": {
         "description": "Your request cannot be parsed.",
         "resolution": "Ensure there are no invalid characters or values in your request."
      },
      "brand-not-qualified": {
         "description": "A conflict when a campaign is being created under a brand that hasn't qualified for the specified use case.",
         "resolution": "Verify the brand use case qualifies before submitting the campaign."
      },
      "invalid-campaign-data": {
         "description": "There are errors in the campaign data submitted.",
         "resolution": "Ensure all required fields have values and correct any errors to values in the specified fields."
      },
      "numbers-already-linked": {
         "description": "The number you are attempting to link is already linked to another campaign.",
         "resolution": "You must link a unique number to a campaign. Link a different number to this campaign."
      },
      "invalid-number-data": {
         "description": "There are errors in the number data submitted.",
         "resolution": "Ensure all required fields have values and correct any errors to values in the specified fields."
      }
   }
}