openapi: 3.0.3
info:
  title: Short Code and Short Code Campaign Provisioning
  description: |
    APIs to provision short codes for messaging.
  contact:
    name: Messaging Provisioning - Jellystone
    email: messaging-jellystone@bandwidth.com
  termsOfService: https://api.bandwidth.com
  version: 0.0.1
security:
  - Basic: []
servers:
  - url: https://api.bandwidth.com/api/v2
    description: Production
tags:
  - name: Short Codes
  - name: Short Code Campaigns
paths:
  /accounts/{accountId}/shortcodes:
    get:
      description: Retrieves all the short codes registered with an account.
      operationId: getAllShortCodesByAccount
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/shortCodeOffsetQueryParam'
        - $ref: '#/components/parameters/shortCodeLimitQueryParam'
        - $ref: '#/components/parameters/shortCodeShortCodeQueryParam'
        - $ref: '#/components/parameters/shortCodeCountryQueryParam'
      responses:
        '200':
          $ref: '#/components/responses/shortCodeGetAllShortCodesByAccountResponse'
        '400':
          $ref: '#/components/responses/shortCode400'
        '401':
          $ref: '#/components/responses/shortCode401'
        '403':
          $ref: '#/components/responses/shortCode403'
        '404':
          $ref: '#/components/responses/shortCode404'
        '405':
          $ref: '#/components/responses/shortCode405'
        '429':
          $ref: '#/components/responses/shortCode429'
        '500':
          $ref: '#/components/responses/shortCode500'
      summary: Retrieve short codes by account.
      tags:
        - Short Codes
  /accounts/{accountId}/shortcodes/{shortCode}/{country}/history:
    get:
      description: >-
        Retrieves a complete history of all updates associated with an account's
        registration of a short code for a single country.
      operationId: getShortCodeHistoryAccountIdCountryAndShortCode
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/shortCodePathParam'
        - $ref: '#/components/parameters/shortCodeCountryPathParam'
        - $ref: '#/components/parameters/shortCodeOffsetQueryParam'
        - $ref: '#/components/parameters/shortCodeLimitQueryParam'
        - $ref: '#/components/parameters/shortCodeHistoryShortCodeSortParam'
        - $ref: '#/components/parameters/shortCodeHistoryVersionSortParam'
      responses:
        '200':
          $ref: >-
            #/components/responses/shortCodeGetShortCodeHistoryAccountIdCountryAndShortCodeResponse
        '400':
          $ref: '#/components/responses/shortCode400'
        '401':
          $ref: '#/components/responses/shortCode401'
        '403':
          $ref: '#/components/responses/shortCode403'
        '404':
          $ref: '#/components/responses/shortCode404'
        '405':
          $ref: '#/components/responses/shortCode405'
        '429':
          $ref: '#/components/responses/shortCode429'
        '500':
          $ref: '#/components/responses/shortCode500'
      summary: Retrieve short code history.
      tags:
        - Short Codes
  /accounts/{accountId}/shortcodes/{shortCode}/{country}:
    get:
      description: >-
        Retrieve the details of an account's registration of a short code for a
        single country.
      operationId: getShortCodeByAccountIdCountryAndShortCode
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/shortCodePathParam'
        - $ref: '#/components/parameters/shortCodeCountryPathParam'
      responses:
        '200':
          $ref: >-
            #/components/responses/shortCodeGetShortCodeByAccountIdCountryAndShortCodeResponse
        '400':
          $ref: '#/components/responses/shortCode400'
        '401':
          $ref: '#/components/responses/shortCode401'
        '403':
          $ref: '#/components/responses/shortCode403'
        '404':
          $ref: '#/components/responses/shortCode404'
        '405':
          $ref: '#/components/responses/shortCode405'
        '429':
          $ref: '#/components/responses/shortCode429'
        '500':
          $ref: '#/components/responses/shortCode500'
      summary: Retrieve short code details.
      tags:
        - Short Codes
    patch:
      description: >-
        Update (field by field) an account's short code registration for a
        country. This utilizes [Json Patch](https://jsonpatch.com/).
      operationId: patchShortCodeLease
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/shortCodePathParam'
        - $ref: '#/components/parameters/shortCodeCountryPathParam'
      requestBody:
        $ref: '#/components/requestBodies/shortCodeJsonPatchShortCodeRequest'
      responses:
        '200':
          $ref: '#/components/responses/shortCodeUpdateShortCodeResponse'
        '400':
          $ref: '#/components/responses/shortCode400'
        '401':
          $ref: '#/components/responses/shortCode401'
        '403':
          $ref: '#/components/responses/shortCode403'
        '404':
          $ref: '#/components/responses/shortCode404'
        '405':
          $ref: '#/components/responses/shortCode405'
        '409':
          $ref: '#/components/responses/shortCode409'
        '429':
          $ref: '#/components/responses/shortCode429'
        '500':
          $ref: '#/components/responses/shortCode500'
      summary: >-
        Update the lease information of an account's short code registration for
        a country.
      tags:
        - Short Codes
  /accounts/{accountId}/shortcodes/campaigns:
    get:
      description: Retrieve all short code campaigns associated with an account.
      operationId: listShortCodeCampaigns
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/customerProfileIdQueryParam'
        - $ref: '#/components/parameters/customerProfileNameQueryParam'
        - $ref: '#/components/parameters/countryCodeQueryParam'
        - $ref: '#/components/parameters/shortCodePhoneNumberQueryParam'
        - $ref: '#/components/parameters/campaignStatusQueryParam'
        - $ref: '#/components/parameters/campaignLastUpdatedQueryParam'
        - $ref: '#/components/parameters/campaignNameQueryParam'
        - $ref: '#/components/parameters/resultsLimitQueryParam'
        - $ref: '#/components/parameters/resultsOffsetQueryParam'
      responses:
        '200':
          $ref: '#/components/responses/listCampaignsResponse'
        '400':
          $ref: '#/components/responses/shortCodeCampaignBadQueryParam400'
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaign404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      summary: Retrieve all short code campaigns associated with an account.
      tags:
        - Short Code Campaigns
    post:
      description: Create a new short code campaign for an account.
      operationId: createShortCodeCampaign
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
      requestBody:
        $ref: '#/components/requestBodies/createCampaignRequest'
      responses:
        '201':
          $ref: '#/components/responses/createCampaignResponse'
        '400':
          $ref: '#/components/responses/shortCodeCampaignBadBodyField400'
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaign404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      callbacks:
        campaignUpdateWebhook:
          $ref: '#/components/callbacks/campaignUpdateWebhook'
      summary: Create a new short code campaign for an account.
      tags:
        - Short Code Campaigns
  /accounts/{accountId}/shortcodes/campaigns/{campaignId}/history:
    get:
      description: >-
        Retrieve the full history of a short code campaign associated with an
        account. Optionally, use the version query parameter to retriever the
        history for only a specific version of the campaign.
      operationId: getShortCodeCampaignHistory
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/campaignIdPathParam'
        - $ref: '#/components/parameters/campaignVersionQueryParam'
      responses:
        '200':
          $ref: '#/components/responses/getCampaignHistoryResponse'
        '400':
          $ref: '#/components/responses/shortCodeCampaignBadQueryParam400'
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaign404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      summary: >-
        Retrieve the history of a short code campaign associated with an
        account.
      tags:
        - Short Code Campaigns
  /accounts/{accountId}/shortcodes/campaigns/{campaignId}:
    get:
      description: Retrieve a single short code campaign associated with an account.
      operationId: getShortCodeCampaign
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/campaignIdPathParam'
      responses:
        '200':
          $ref: '#/components/responses/getSingleCampaignResponse'
        '400':
          $ref: '#/components/responses/shortCodeCampaignBadQueryParam400'
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaign404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      summary: Retrieve a single short code campaign associated with an account.
      tags:
        - Short Code Campaigns
    put:
      description: Update a short code campaign associated with an account.
      operationId: updateShortCodeCampaign
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/campaignIdPathParam'
      requestBody:
        $ref: '#/components/requestBodies/updateCampaignRequest'
      responses:
        '201':
          $ref: '#/components/responses/updateCampaignResponse'
        '400':
          $ref: '#/components/responses/shortCodeCampaignBadBodyField400'
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaign404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      callbacks:
        campaignUpdateWebhook:
          $ref: '#/components/callbacks/campaignUpdateWebhook'
      summary: Update a short code campaign associated with an account.
      tags:
        - Short Code Campaigns
  /accounts/{accountId}/shortcodes/documents:
    post:
      description: >-
        Upload a document associated with a short code campaign. Max file size
        is 10MB.
      operationId: postShortCodeCampaignDocument
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
      requestBody:
        $ref: '#/components/requestBodies/campaignDocument'
      responses:
        '200':
          $ref: '#/components/responses/postShortCodeCampaignDocumentResponse'
        '400':
          $ref: '#/components/responses/postShortCodeCampaignDocument400'
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaignUploadUrl404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      summary: Upload Short Code Campaign Document
      tags:
        - Short Code Campaigns
  /accounts/{accountId}/shortcodes/documents/{documentId}:
    get:
      description: Get a document associated with a short code campaign
      operationId: getShortCodeCampaignDocument
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/documentIdPathParam'
      responses:
        '200':
          $ref: '#/components/responses/getShortCodeCampaignDocumentResponse'
        '400':
          $ref: '#/components/responses/getShortCodeCampaignDocument400'
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaignUploadUrl404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      summary: Get Short Code Campaign Document
      tags:
        - Short Code Campaigns
  /accounts/{accountId}/shortcodes/campaigns/webhooks/subscriptions:
    get:
      description: Get all webhook subscriptions for short code campaigns on an account.
      operationId: getShortCodeCampaignWebhookSubscriptions
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
      responses:
        '200':
          $ref: >-
            #/components/responses/getShortCodeCampaignWebhookSubscriptionsResponse
        '400':
          $ref: >-
            #/components/responses/shortCodeCampaignWebhookSubscriptionBadQueryParam400
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaignWebhookSubscription404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      summary: Get all webhook subscriptions for short code campaigns on an account.
      tags:
        - Short Code Campaigns
    post:
      description: Create a webhook subscription for short code campaigns on an account.
      operationId: createShortCodeCampaignWebhookSubscription
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
      requestBody:
        $ref: >-
          #/components/requestBodies/createShortCodeCampaignWebhookSubscriptionRequest
      responses:
        '201':
          $ref: >-
            #/components/responses/createShortCodeCampaignWebhookSubscriptionResponse
        '400':
          $ref: >-
            #/components/responses/shortCodeCampaignWebhookSubscriptionBadBodyField400
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaignWebhookSubscription404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      summary: Create a webhook subscription for short code campaigns on an account.
      tags:
        - Short Code Campaigns
  /accounts/{accountId}/shortcodes/campaigns/webhooks/subscriptions/{subscriptionId}:
    put:
      description: Update a webhook subscription for short code campaigns on an account.
      operationId: updateShortCodeCampaignWebhookSubscription
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/webhookSubscriptionIdPathParam'
      requestBody:
        $ref: >-
          #/components/requestBodies/updateShortCodeCampaignWebhookSubscriptionRequest
      responses:
        '200':
          $ref: >-
            #/components/responses/updateShortCodeCampaignWebhookSubscriptionResponse
        '400':
          $ref: >-
            #/components/responses/shortCodeCampaignWebhookSubscriptionBadBodyField400
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaignWebhookSubscriptionId404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      summary: Update a webhook subscription for short code campaigns on an account.
      tags:
        - Short Code Campaigns
    delete:
      description: Delete a webhook subscription for short code campaigns on an account.
      operationId: deleteShortCodeCampaignWebhookSubscription
      security:
        - Basic: []
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/webhookSubscriptionIdPathParam'
      responses:
        '204':
          $ref: >-
            #/components/responses/deleteShortCodeCampaignWebhookSubscriptionResponse
        '400':
          $ref: >-
            #/components/responses/shortCodeCampaignWebhookSubscriptionBadQueryParam400
        '401':
          $ref: '#/components/responses/shortCodeCampaign401'
        '403':
          $ref: '#/components/responses/shortCodeCampaign403'
        '404':
          $ref: '#/components/responses/shortCodeCampaignWebhookSubscriptionId404'
        '405':
          $ref: '#/components/responses/shortCodeCampaign405'
        '429':
          $ref: '#/components/responses/shortCodeCampaign429'
        '500':
          $ref: '#/components/responses/shortCodeCampaign500'
      summary: Delete a webhook subscription for short code campaigns on an account.
      tags:
        - Short Code Campaigns
components:
  callbacks:
    campaignUpdateWebhook:
      your_url.com/webhookService:
        post:
          description: >-
            Unique webhook URL provided by customers to which Bandwidth sends a
            POST request to notify customer regarding short code campaign
            updates.
          operationId: postFailureWebhook
          parameters:
            - description: >-
                64-character lowercase hexidecimal HMAC calculated with a shared
                secret key, the canonicalized request body, and SHA256. It is
                only included when a shared secret key is set through webhook
                subscription.
              example: ca7b9e9816c90d336f5dca529e733354b81535c7af027b81878ac98afb2dbaa2
              in: header
              name: x-bandwidth-signature-hmac-sha256
              schema:
                type: string
          requestBody:
            $ref: '#/components/requestBodies/campaignUpdateWebhookRequest'
          responses:
            '204':
              description: No content
          summary: Short code campaign updates sent to customer's webhook URL.
  securitySchemes:
    Basic:
      type: http
      scheme: basic
      description: >-
        Basic authentication is a simple authentication scheme built into the
        HTTP protocol. To use it, send your  HTTP requests with an Authorization
        header that contains the word Basic followed by a space and a
        base64-encoded string `username:password`. Example: `Authorization:
        Basic ZGVtbZpwQDU1dzByZA==`.
  responses:
    adminFeedbackResponse:
      content:
        application/json:
          examples:
            adminFeedbackResponseExample:
              $ref: '#/components/examples/adminFeedbackResponseExample'
          schema:
            $ref: '#/components/schemas/adminFeedbackResponseSchema'
      description: Created
    adminUpdateCampaignResponse:
      content:
        application/json:
          examples:
            adminUpdateCampaignResponseExample:
              $ref: '#/components/examples/adminUpdateCampaignResponseExample'
          schema:
            $ref: '#/components/schemas/adminUpdateCampaignResponseSchema'
      description: OK
    createCampaignResponse:
      content:
        application/json:
          examples:
            createCampaignResponseExample:
              $ref: '#/components/examples/createCampaignResponseExample'
          schema:
            $ref: '#/components/schemas/campaignResponseSchema'
      description: Created
    createShortCodeCampaignWebhookSubscriptionResponse:
      content:
        application/json:
          examples:
            createShortCodeCampaignWebhookSubscriptionResponseExample:
              $ref: >-
                #/components/examples/createShortCodeCampaignWebhookSubscriptionResponseExample
          schema:
            $ref: >-
              #/components/schemas/createShortCodeCampaignWebhookSubscriptionResponseSchema
      description: Created
    deleteCampaignResponse:
      content: {}
      description: No Content
    deleteShortCodeCampaignWebhookSubscriptionResponse:
      content: {}
      description: No Content
    getCampaignHistoryResponse:
      content:
        application/json:
          examples:
            getCampaignHistoryResponseExample:
              $ref: '#/components/examples/getCampaignHistoryResponseExample'
          schema:
            $ref: '#/components/schemas/getCampaignHistoryResponseSchema'
      description: OK
    getShortCodeCampaignDocument400:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignDocument400ResponseErrorExample
          schema:
            $ref: '#/components/schemas/shortCodeCampaignErrorResponseSchema'
      description: Bad Request
    getShortCodeCampaignDocumentResponse:
      content:
        application/octet-stream:
          examples:
            getShortCodeCampaignDocumentResponseExample:
              $ref: >-
                #/components/examples/getShortCodeCampaignDocumentResponseExample
          schema:
            description: Successful Operation
            format: binary
            type: string
      description: OK
    getShortCodeCampaignWebhookSubscriptionsResponse:
      content:
        application/json:
          examples:
            getShortCodeCampaignWebhookSubscriptionsResponseExample:
              $ref: >-
                #/components/examples/getShortCodeCampaignWebhookSubscriptionsResponseExample
          schema:
            $ref: >-
              #/components/schemas/getShortCodeCampaignWebhookSubscriptionsResponseSchema
      description: OK
    getSingleCampaignResponse:
      content:
        application/json:
          examples:
            getSingleCampaignResponseExample:
              $ref: '#/components/examples/getSingleCampaignResponseExample'
          schema:
            $ref: '#/components/schemas/getSingleCampaignResponseSchema'
      description: OK
    listCampaignsResponse:
      content:
        application/json:
          examples:
            listCampaignsResponseExample:
              $ref: '#/components/examples/listCampaignsResponseExample'
          schema:
            $ref: '#/components/schemas/listCampaignsResponseSchema'
      description: OK
    postShortCodeCampaignDocument400:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignDocument400ResponseErrorExample
          schema:
            $ref: '#/components/schemas/shortCodeCampaignErrorResponseSchema'
      description: Bad Request
    postShortCodeCampaignDocumentResponse:
      content:
        application/json:
          examples:
            postShortCodeCampaignDocumentResponseExample:
              $ref: >-
                #/components/examples/postShortCodeCampaignDocumentResponseExample
          schema:
            $ref: '#/components/schemas/postShortCodeCampaignDocumentResponseSchema'
      description: OK
    shortCode400:
      content:
        application/json:
          examples:
            example:
              value:
                description: Cannot process request.
                type: cannot process request
          schema:
            $ref: '#/components/schemas/shortCodeError400'
      description: Bad request, can not process the request.
    shortCode401:
      content:
        application/json:
          examples:
            example:
              value:
                description: Client is providing incorrect or invalid credentials.
                type: unauthorized
          schema:
            $ref: '#/components/schemas/shortCodeError'
      description: Client is providing incorrect or invalid credentials.
    shortCode403:
      content:
        application/json:
          examples:
            example:
              value:
                description: Client does not have access rights to the content.
                type: forbidden
          schema:
            $ref: '#/components/schemas/shortCodeError'
      description: Client is providing incorrect or invalid credentials.
    shortCode404:
      content:
        application/json:
          examples:
            example:
              value:
                description: Cannot find requested resource.
                type: not found
          schema:
            $ref: '#/components/schemas/shortCodeError'
      description: The short code details not have been found.
    shortCode405:
      content:
        application/json:
          examples:
            example:
              value:
                description: Request method 'POST' not supported.
                type: method not supported
          schema:
            $ref: '#/components/schemas/shortCodeError'
      description: Request method is not supported.
    shortCode409:
      content:
        application/json:
          examples:
            example:
              value:
                description: Short code already exists.
                type: conflict
          schema:
            $ref: '#/components/schemas/shortCodeError'
      description: The short code already exists.
    shortCode429:
      content:
        application/json:
          examples:
            example:
              value:
                description: Too many requests.
                type: too many requests
          schema:
            $ref: '#/components/schemas/shortCodeError'
      description: Too many requests.
    shortCode500:
      content:
        application/json:
          examples:
            example:
              value:
                description: The server has encountered an internal error.
                type: internal server error
          schema:
            $ref: '#/components/schemas/shortCodeError'
      description: The server has encountered an internal error.
    shortCodeCampaign401:
      content:
        application/json:
          example:
            $ref: '#/components/examples/shortCodeCampaign401ResponseErrorExample'
          schema:
            $ref: '#/components/schemas/shortCodeCampaign401ResponseSchema'
      description: Unauthorized
    shortCodeCampaign403:
      content:
        application/json:
          example:
            $ref: '#/components/examples/shortCodeCampaign403ResponseErrorExample'
          schema:
            $ref: '#/components/schemas/shortCodeCampaign403ResponseSchema'
      description: Forbidden
    shortCodeCampaign404:
      content:
        application/json:
          example:
            $ref: '#/components/examples/shortCodeCampaign404ResponseErrorExample'
          schema:
            $ref: '#/components/schemas/shortCodeCampaign404ResponseSchema'
      description: Not Found
    shortCodeCampaign405:
      content:
        application/json:
          example:
            $ref: '#/components/examples/shortCodeCampaign405ResponseErrorExample'
          schema:
            $ref: '#/components/schemas/shortCodeCampaign405ResponseSchema'
      description: Method Not Allowed
    shortCodeCampaign429:
      content:
        application/json:
          example:
            $ref: '#/components/examples/shortCodeCampaign429ResponseErrorExample'
          schema:
            $ref: '#/components/schemas/shortCodeCampaign429ResponseSchema'
      description: Too Many Requests
    shortCodeCampaign500:
      content:
        application/json:
          example:
            $ref: '#/components/examples/shortCodeCampaign500ResponseErrorExample'
          schema:
            $ref: '#/components/schemas/shortCodeCampaign500ResponseSchema'
      description: Internal Server Error
    shortCodeCampaignBadBodyField400:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignCustomerProfileId400ResponseErrorExample
          schema:
            $ref: '#/components/schemas/shortCodeCampaignErrorResponseSchema'
      description: Bad Request
    shortCodeCampaignBadFeedbackBodyField400:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignFeedbackComment400ResponseErrorExample
          schema:
            $ref: '#/components/schemas/shortCodeCampaignErrorResponseSchema'
      description: Bad Request
    shortCodeCampaignBadQueryParam400:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignCampaignId400ResponseErrorExample
          schema:
            $ref: '#/components/schemas/shortCodeCampaignErrorResponseSchema'
      description: Bad Request
    shortCodeCampaignUploadUrl404:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignUploadUrl404ResponseErrorExample
          schema:
            $ref: '#/components/schemas/shortCodeCampaignUploadUrl404ResponseSchema'
      description: Not Found
    shortCodeCampaignWebhookSubscription404:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignWebhookSubscription404ResponseErrorExample
          schema:
            $ref: >-
              #/components/schemas/shortCodeCampaignWebhookSubscription404ResponseSchema
      description: Not Found
    shortCodeCampaignWebhookSubscriptionBadBodyField400:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignWebhookSubscription400ResponseErrorExample
          schema:
            $ref: '#/components/schemas/shortCodeCampaignErrorResponseSchema'
      description: Bad Request
    shortCodeCampaignWebhookSubscriptionBadQueryParam400:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignWebhookSubscriptionQueryParam400ResponseErrorExample
          schema:
            $ref: '#/components/schemas/shortCodeCampaignErrorResponseSchema'
      description: Bad Request
    shortCodeCampaignWebhookSubscriptionId404:
      content:
        application/json:
          example:
            $ref: >-
              #/components/examples/shortCodeCampaignWebhookSubscriptionId404ResponseErrorExample
          schema:
            $ref: >-
              #/components/schemas/shortCodeCampaignWebhookSubscriptionId404ResponseSchema
      description: Not Found
    shortCodeGetAllShortCodesByAccountResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/shortCodeApiPage'
      description: Successful response with a paginated list of short codes.
    shortCodeGetShortCodeByAccountIdCountryAndShortCodeResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/shortCode'
      description: The short code details have been successfully retrieved and displayed.
    shortCodeGetShortCodeHistoryAccountIdCountryAndShortCodeResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/shortCodeHistoryApiPage'
      description: >-
        The short code number history details have been successfully retrieved
        and displayed.
    shortCodeUpdateShortCodeResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/shortCode'
      description: Updated short code data.
    updateCampaignResponse:
      content:
        application/json:
          examples:
            updateCampaignResponseExample:
              $ref: '#/components/examples/updateCampaignResponseExample'
          schema:
            $ref: '#/components/schemas/campaignResponseSchema'
      description: Created
    updateShortCodeCampaignWebhookSubscriptionResponse:
      content:
        application/json:
          examples:
            updateShortCodeCampaignWebhookSubscriptionResponseExample:
              $ref: >-
                #/components/examples/updateShortCodeCampaignWebhookSubscriptionResponseExample
          schema:
            $ref: >-
              #/components/schemas/updateShortCodeCampaignWebhookSubscriptionResponseSchema
      description: OK
  parameters:
    accountIdPathParam:
      name: accountId
      description: User's account ID.
      in: path
      required: true
      schema:
        type: string
      example: '1234567'
    campaignIdPathParam:
      name: campaignId
      in: path
      description: The path parameter for the unique identifier of the campaign.
      required: true
      example: '123123123'
      schema:
        $ref: '#/components/schemas/campaignId'
    campaignLastUpdatedQueryParam:
      name: lastUpdated
      in: query
      required: false
      style: deepObject
      explode: true
      schema:
        type: object
        properties:
          sort:
            $ref: '#/components/schemas/sort'
        example:
          sort: ASC
    campaignNameQueryParam:
      name: campaignName
      in: query
      required: false
      style: deepObject
      explode: true
      schema:
        type: object
        properties:
          contains:
            $ref: '#/components/schemas/campaignName'
          sort:
            $ref: '#/components/schemas/sort'
        example:
          contains: Marketing
          sort: ASC
    campaignStatusQueryParam:
      name: campaignStatus
      in: query
      required: false
      style: deepObject
      explode: true
      schema:
        type: object
        properties:
          contains:
            $ref: '#/components/schemas/campaignStatus'
          sort:
            $ref: '#/components/schemas/sort'
        example:
          contains: APPROVED
          sort: ASC
    campaignVersionQueryParam:
      name: version
      in: query
      description: >-
        The query parameter for the version of the campaign. This filters the
        short code campaign histories by the version.
      required: false
      example: 1
      schema:
        $ref: '#/components/schemas/version'
    countryCodeQueryParam:
      name: countryCode
      in: query
      description: >-
        The query parameter for the country code of the short code. This is used
        to sort and filter the short code campaigns by country code.
      required: false
      example: USA
      schema:
        $ref: '#/components/schemas/countryCodeA3'
    customerProfileIdQueryParam:
      name: customerProfileId
      in: query
      description: >-
        The query parameter for the unique identifier of the customer profile.
        This is used to sort and filter the short code campaigns by the customer
        profile.
      required: false
      style: deepObject
      explode: true
      schema:
        type: object
        properties:
          contains:
            $ref: '#/components/schemas/customerProfileId'
          sort:
            $ref: '#/components/schemas/sort'
        example:
          contains: abc
          sort: ASC
    customerProfileNameQueryParam:
      name: customerProfileName
      in: query
      description: >-
        The query parameter for the name of the customer profile. This is used
        to sort and filter the short code campaigns by the customer profile.
      required: false
      style: deepObject
      explode: true
      schema:
        type: object
        properties:
          contains:
            $ref: '#/components/schemas/customerProfileName'
          sort:
            $ref: '#/components/schemas/sort'
        example:
          contains: Customer Profile Name
          sort: ASC
    documentIdPathParam:
      name: documentId
      description: ID of the uploaded document
      in: path
      required: true
      schema:
        type: string
      example: bf1305b8-8998-1111-2222-51ba3ce52d4e
    resultsLimitQueryParam:
      name: limit
      in: query
      description: >-
        The query parameter for the number of results to return. This limits the
        number of short code campaigns returned.
      required: false
      example: 100
      schema:
        $ref: '#/components/schemas/limit'
    resultsOffsetQueryParam:
      name: offset
      in: query
      description: >-
        The query parameter for the number of results to skip. This skips the
        number of short code campaigns returned.
      required: false
      example: 1
      schema:
        $ref: '#/components/schemas/offset'
    shortCodeCountryPathParam:
      description: The short code number country.
      example: USA
      in: path
      name: country
      required: true
      schema:
        items:
          enum:
            - USA
            - CAN
        type: string
    shortCodeHistoryShortCodeSortParam:
      description: Sorting parameters for `shortCode`
      in: query
      name: shortCode
      style: deepObject
      required: false
      explode: true
      schema:
        example:
          sort: ASC
        properties:
          sort:
            type: string
            enum:
              - ASC
              - DESC
        type: object
    shortCodeHistoryVersionSortParam:
      description: Sorting parameters for `version`
      in: query
      name: version
      style: deepObject
      required: false
      explode: true
      schema:
        example:
          sort: ASC
        properties:
          sort:
            type: string
            enum:
              - ASC
              - DESC
        type: object
    shortCodeLimitQueryParam:
      description: The number of entities to return based in the offset.
      in: query
      name: limit
      required: false
      schema:
        default: 50
        maximum: 250
        type: integer
    shortCodeOffsetQueryParam:
      description: The offset number of the results to return.
      in: query
      name: offset
      required: false
      schema:
        default: 0
        type: integer
    shortCodePathParam:
      description: The short code number used in the request.
      example: '123321'
      in: path
      name: shortCode
      required: true
      schema:
        type: string
    shortCodePhoneNumberQueryParam:
      name: shortCodePhoneNumber
      in: query
      description: >-
        The query parameter for the short code. This is used to sort and filter
        the short code campaigns by the short code.
      required: false
      style: deepObject
      explode: true
      schema:
        type: object
        properties:
          contains:
            $ref: '#/components/schemas/shortCodePhoneNumber'
        example:
          contains: '12345'
    webhookSubscriptionIdPathParam:
      name: subscriptionId
      description: Webhook subscription ID
      in: path
      required: true
      schema:
        type: string
      example: 7bt57JcsVYJrN9K1OcV1Nu
    shortCodeShortCodeQueryParam:
      description: Query param to filter by 'shortCode'
      in: query
      name: shortCode
      style: deepObject
      explode: true
      schema:
        type: object
        properties:
          eq:
            type: string
        example:
          eq: '24345'
    shortCodeCountryQueryParam:
      description: Query param to filter by 'country'
      in: query
      name: country
      style: deepObject
      explode: true
      schema:
        type: object
        properties:
          eq:
            type: string
            enum:
              - USA
              - CAN
        example:
          eq: USA
  requestBodies:
    adminFeedbackRequest:
      description: >-
        Admin-only endpoint to provide feedback on a short code campaign. This
        will not change the state of a campaign.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/adminFeedbackRequestSchema'
    adminUpdateCampaignRequest:
      description: >-
        Admin-only endpoint to update a Short Code campaign request. This may be
        used to assign a short code to a campaign or update the state of a
        campaign.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/adminUpdateCampaignRequestSchema'
    campaignDocument:
      description: Document for a short code campaign.
      required: true
      content:
        multipart/form-data:
          schema:
            type: object
            properties:
              file:
                $ref: '#/components/schemas/campaignDocumentFile'
          encoding:
            file:
              contentType: >-
                application/pdf, image/jpeg, image/jpg, image/png,
                application/msword,
                application/vnd.openxmlformats-officedocument.wordprocessingml.document,
                text/csv
              style: deepObject
              explode: true
    campaignUpdateWebhookRequest:
      description: >-
        This webhook will be sent out when a campaign status is updated, a short
        code is assigned to a campaign, or there is an update from the carrier
        on the status of a campaign. A failure webhook will be sent if any
        internal error occurs.
      required: true
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/campaignUpdateWebhookSchema'
              - $ref: '#/components/schemas/failureWebhookSchema'
    createCampaignRequest:
      description: The request body for creating a new short code campaign.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/createCampaignRequestSchema'
    createShortCodeCampaignWebhookSubscriptionRequest:
      description: >-
        The request body for creating a new webhook subscription for short code
        campaigns on an account.
      required: true
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/createShortCodeCampaignWebhookSubscriptionRequestSchema
    shortCodeJsonPatchShortCodeRequest:
      content:
        application/json-patch+json:
          schema:
            $ref: '#/components/schemas/jsonPatch'
    updateCampaignRequest:
      description: The request body for updating a short code campaign.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/updateCampaignRequestSchema'
    updateShortCodeCampaignWebhookSubscriptionRequest:
      description: >-
        The request body for updating an existing webhook subscription for short
        code campaigns on an account.
      required: true
      content:
        application/json:
          schema:
            $ref: >-
              #/components/schemas/updateShortCodeCampaignWebhookSubscriptionRequestSchema
  schemas:
    accountId:
      description: User's account ID.
      example: '1234567'
      maxLength: 11
      type: string
    addressId:
      description: Address Id
      example: daa9dd0f-de97-4103-8530-b31bf4be8fc0
      title: Address Id
      type: string
    adminFeedbackSchema:
      properties:
        campaignId:
          $ref: '#/components/schemas/campaignId'
        comment:
          $ref: '#/components/schemas/comment'
        createdOn:
          $ref: '#/components/schemas/createdOn'
        userName:
          $ref: '#/components/schemas/userName'
      type: object
    adminFeedbackRequestSchema:
      description: The request body for providing feedback on a short code campaign.
      properties:
        comment:
          $ref: '#/components/schemas/comment'
      required:
        - comment
      type: object
    adminFeedbackResponseSchema:
      properties:
        data:
          $ref: '#/components/schemas/adminFeedbackSchema'
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/shortCodeLinkSchema'
      type: object
    adminUpdateCampaignSchema:
      allOf:
        - properties:
            accountId:
              $ref: '#/components/schemas/accountId'
            addressId:
              $ref: '#/components/schemas/addressId'
            campaignId:
              $ref: '#/components/schemas/campaignId'
            campaignStatus:
              $ref: '#/components/schemas/campaignStatus'
            countryCodeA3:
              $ref: '#/components/schemas/countryCodeA3'
            createdOn:
              $ref: '#/components/schemas/createdOn'
            customerProfileId:
              $ref: '#/components/schemas/customerProfileId'
            customerProfileName:
              $ref: '#/components/schemas/customerProfileName'
            deleted:
              $ref: '#/components/schemas/deleted'
            lastUpdatedOn:
              $ref: '#/components/schemas/lastUpdatedOn'
            shortCodePhoneNumber:
              $ref: '#/components/schemas/shortCodePhoneNumber'
            version:
              $ref: '#/components/schemas/version'
          required:
            - campaignId
            - accountId
            - customerProfileId
            - campaignStatus
            - createdOn
            - lastUpdatedOn
            - version
            - deleted
            - countryCodeA3
          type: object
        - $ref: '#/components/schemas/commonCampaignFields'
      description: The details of the updated short code campaign.
    adminUpdateCampaignRequestSchema:
      description: Fields that can be updated by an admin for a short code campaign.
      properties:
        campaignStatus:
          $ref: '#/components/schemas/campaignStatus'
        shortCodePhoneNumber:
          $ref: '#/components/schemas/shortCodePhoneNumber'
      required:
        - campaignStatus
      type: object
    adminUpdateCampaignResponseSchema:
      properties:
        data:
          $ref: '#/components/schemas/adminUpdateCampaignSchema'
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/shortCodeLinkSchema'
    billingType:
      description: >-
        The billing type of the short code. Either standard SMS or free to end
        user.
      enum:
        - STANDARD_SMS
        - FREE_TO_END_USER
      example: STANDARD_SMS
      type: string
    callToActionSample:
      description: A sample of the call to action message that the short code uses.
      example: Visit our website at www.example.com
      maximum: 500
      type: string
    callToActionType:
      description: The type of call to action that the short code uses.
      example:
        - WEB
        - TV
      items:
        $ref: '#/components/schemas/callToActionTypeEnum'
      type: array
    callToActionTypeEnum:
      description: The type of call to action that the short code uses.
      enum:
        - POINT_OF_SALE
        - PRINT
        - RADIO
        - TV
        - WEB
    campaignId:
      description: The unique identifier of the short code campaign.
      example: '123123123'
      maxLength: 30
      type: string
    campaignDocumentId:
      description: The unique id for the document
      example: daa9dd0f-de97-4103-8530-b31bf4be8fc0
      type: string
    campaignDocumentFile:
      example: H4sICPsdulsCAHJlYWRtZS50eHQAC0/NSc7PTVUoyVdISixONTPRSy8tKlUEAPCdUNYXAAAA
      format: binary
      type: string
    campaignName:
      description: The name for this campaign
      example: My Campaign
      maximum: 100
      minimum: 1
      type: string
    campaignResponseSchema:
      properties:
        data:
          $ref: '#/components/schemas/campaignSchema'
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/shortCodeLinkSchema'
    campaignSchema:
      allOf:
        - properties:
            accountId:
              $ref: '#/components/schemas/accountId'
            addressId:
              $ref: '#/components/schemas/addressId'
            campaignId:
              $ref: '#/components/schemas/campaignId'
            campaignStatus:
              $ref: '#/components/schemas/campaignStatus'
            countryCodeA3:
              $ref: '#/components/schemas/countryCodeA3'
            createdOn:
              $ref: '#/components/schemas/createdOn'
            customerProfileId:
              $ref: '#/components/schemas/customerProfileId'
            customerProfileName:
              $ref: '#/components/schemas/customerProfileName'
            deleted:
              $ref: '#/components/schemas/deleted'
            lastUpdatedOn:
              $ref: '#/components/schemas/lastUpdatedOn'
            shortCodePhoneNumber:
              $ref: '#/components/schemas/shortCodePhoneNumber'
            version:
              $ref: '#/components/schemas/version'
          required:
            - campaignId
            - accountId
            - campaignStatus
            - createdOn
            - lastUpdatedOn
            - customerProfileId
            - version
            - deleted
            - countryCodeA3
          type: object
        - $ref: '#/components/schemas/commonCampaignFields'
    campaignStatus:
      description: The status of the short code campaign.
      enum:
        - PENDING_USE_CASE_REVIEW
        - PENDING_BW_REVIEW
        - PROVISIONING_SHORTCODE
        - ACTION_REQUIRED
        - PENDING_CARRIER_REVIEW
        - APPROVED
        - DENIED
        - ABANDONED
        - DELETED
      example: ACTION_REQUIRED
      type: string
    campaignUpdateWebhookSchema:
      description: >-
        This webhook may be sent out when a campaign status is updated, a short
        code is assigned to a campaign, or there is an update from the carrier
        on the status of a campaign.
      properties:
        accountId:
          $ref: '#/components/schemas/accountId'
        campaignId:
          $ref: '#/components/schemas/campaignId'
        campaignStatus:
          $ref: '#/components/schemas/campaignStatus'
        carrierStatus:
          description: >-
            List of objects each providing the short code registration status
            for an individual carrier.
          items:
            $ref: '#/components/schemas/shortCodeCarrierInfo'
          type: array
        customerProfileId:
          $ref: '#/components/schemas/customerProfileId'
        description:
          example: Carrier status update
          type: string
        feedback:
          $ref: '#/components/schemas/feedback'
        shortCodePhoneNumber:
          $ref: '#/components/schemas/shortCodePhoneNumber'
        version:
          $ref: '#/components/schemas/version'
      required:
        - campaignId
        - accountId
        - customerProfileId
        - campaignStatus
        - description
        - shortCodePhoneNumber
        - feedback
        - carrierStatus
        - version
      type: object
    comment:
      description: >-
        The feedback comment for the short code campaign provided by a Bandwidth
        reviewer.
      example: We dont think you are a legit company, prove it!
      maxLength: 4000
      minLength: 0
      type: string
    commonCampaignFields:
      properties:
        billingType:
          $ref: '#/components/schemas/billingType'
        callToActionSample:
          $ref: '#/components/schemas/callToActionSample'
        callToActionType:
          $ref: '#/components/schemas/callToActionType'
        campaignName:
          $ref: '#/components/schemas/campaignName'
        customerProvidedShortCode:
          $ref: '#/components/schemas/customerProvidedShortCode'
        customerSupportEmail:
          $ref: '#/components/schemas/customerSupportEmail'
        customerSupportPhoneNumber:
          $ref: '#/components/schemas/customerSupportPhoneNumber'
        customerSupportUrl:
          $ref: '#/components/schemas/customerSupportUrl'
        doubleOptInMessage:
          $ref: '#/components/schemas/doubleOptInMessage'
        estimatedDailyVolumeMms:
          $ref: '#/components/schemas/estimatedDailyVolumeMms'
        estimatedDailyVolumeSms:
          $ref: '#/components/schemas/estimatedDailyVolumeSms'
        exampleAdvertisementAttachmentUrl:
          $ref: '#/components/schemas/exampleAdvertisementAttachmentUrl'
        exampleAdvertisementUrl:
          $ref: '#/components/schemas/exampleAdvertisementUrl'
        exampleAlertMessage:
          $ref: '#/components/schemas/exampleAlertMessage'
        exampleSecondAlertMessage:
          $ref: '#/components/schemas/exampleSecondAlertMessage'
        helpMessage:
          $ref: '#/components/schemas/helpMessage'
        isAdultContent:
          $ref: '#/components/schemas/isAdultContent'
        isMigratedShortCode:
          $ref: '#/components/schemas/isMigratedShortCode'
        isSelfOwned:
          $ref: '#/components/schemas/isSelfOwned'
        keywords:
          $ref: '#/components/schemas/keywords'
        leaseReceiptAttachmentUrl:
          $ref: '#/components/schemas/leaseReceiptAttachmentUrl'
        messageSenderUrl:
          $ref: '#/components/schemas/messageSenderUrl'
        messageType:
          $ref: '#/components/schemas/messageType'
        migrationLetterAttachmentUrl:
          $ref: '#/components/schemas/migrationLetterAttachmentUrl'
        optInConfirmationMessage:
          $ref: '#/components/schemas/optInConfirmationMessage'
        optInExplanation:
          $ref: '#/components/schemas/optInExplanation'
        optInType:
          $ref: '#/components/schemas/optInType'
        optInTypeOther:
          $ref: '#/components/schemas/optInTypeOther'
        optOutExplanation:
          $ref: '#/components/schemas/optOutExplanation'
        optOutMessage:
          $ref: '#/components/schemas/optOutMessage'
        privacyPolicyUrl:
          $ref: '#/components/schemas/privacyPolicyUrl'
        programDescription:
          $ref: '#/components/schemas/programDescription'
        programType:
          $ref: '#/components/schemas/programType'
        shortCodeLeaseContactEmail:
          $ref: '#/components/schemas/shortCodeContactEmail'
        shortCodeLeaseLength:
          $ref: '#/components/schemas/shortCodeLeaseLength'
        shortCodeType:
          $ref: '#/components/schemas/shortCodeType'
        termsAndConditionsAttachmentUrl:
          $ref: '#/components/schemas/termsAndConditionsAttachmentUrl'
        termsAndConditionsUrl:
          $ref: '#/components/schemas/termsAndConditionsUrl'
        brandType:
          $ref: '#/components/schemas/brandTypeEnum'
        legalEntityType:
          $ref: '#/components/schemas/legalEntityTypeEnum'
        organizationName:
          $ref: '#/components/schemas/organizationName'
        registrationCountryCodeA3:
          $ref: '#/components/schemas/registrationCountryCodeA3'
        stockMarketSymbol:
          $ref: '#/components/schemas/stockMarketSymbol'
        federalTaxId:
          $ref: '#/components/schemas/federalTaxId'
        dunsNumber:
          $ref: '#/components/schemas/dunsNumber'
        giinNumber:
          $ref: '#/components/schemas/giinNumber'
        legalEntityId:
          $ref: '#/components/schemas/legalEntityId'
        subsidiariesAndLegalAffiliates:
          $ref: '#/components/schemas/subsidiariesAndLegalAffiliates'
      required:
        - campaignName
        - isMigratedShortCode
        - isSelfOwned
        - leaseReceiptAttachmentUrl
        - messageSenderUrl
        - termsAndConditionsUrl
        - messageType
        - billingType
        - isAdultContent
        - programType
        - programDescription
        - optInType
        - optInExplanation
        - optInConfirmationMessage
        - callToActionType
        - callToActionSample
        - optOutExplanation
        - optOutMessage
        - helpMessage
        - keywords
        - exampleAlertMessage
        - exampleAdvertisementUrl
        - customerSupportUrl
        - customerSupportEmail
        - customerSupportPhoneNumber
        - privacyPolicyUrl
        - estimatedDailyVolumeSms
        - brandType
        - legalEntityType
        - organizationName
        - registrationCountryCodeA3
        - federalTaxId
      type: object
    countryCodeA3:
      description: >-
        ISO 3166-1 alpha-3 country code where this short code campaign sends
        messages.
      example: USA
      title: Country Code
      type: string
      xml:
        name: CountryCodeA3
    createdOn:
      description: The date and time the short code campaign was created.
      example: '2024-03-16 14:00:00'
      format: date-time
      type: string
    createCampaignRequestSchema:
      allOf:
        - properties:
            addressId:
              $ref: '#/components/schemas/addressId'
            countryCodeA3:
              $ref: '#/components/schemas/countryCodeA3'
            customerProfileId:
              $ref: '#/components/schemas/customerProfileId'
          required:
            - customerProfileId
            - countryCodeA3
          type: object
        - $ref: '#/components/schemas/commonCampaignFields'
    createShortCodeCampaignWebhookSubscriptionRequestSchema:
      $ref: '#/components/schemas/shortCodeCampaignWebhookSubscriptionSchema'
    createShortCodeCampaignWebhookSubscriptionResponseSchema:
      properties:
        data:
          $ref: '#/components/schemas/shortCodeCampaignWebhookSubscriptionSchema'
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/shortCodeLinkSchema'
    customerProfileId:
      description: >-
        The unique identifier of the customer profile associated with this short
        code campaign.
      example: abcde1234
      maxLength: 36
      type: string
    customerProfileName:
      description: >-
        The name of the customer profile associated with this short code
        campaign.
      example: Customer Profile Name
      maxLength: 500
      type: string
    customerProvidedShortCode:
      description: >-
        The customer provided short code to be used for this campaign (short
        code must be provisioned into the account first by a BW admin).
      example: '56798'
      maximum: 10
      type: string
    customerSupportEmail:
      description: The email address for customer support.
      example: example_email@test.com
      format: email
      type: string
    customerSupportPhoneNumber:
      description: The E164 format phone number for customer support.
      example: '+18881112222'
      type: string
    customerSupportUrl:
      description: The URL for the customer support page.
      example: https://www.example.com/support
      format: uri
      maximum: 2048
      type: string
    doubleOptInMessage:
      description: >-
        The message that is sent to the customer to confirm that they have opted
        in to receive messages from the short code.
      example: Reply Y to confirm that you would like to receive messages from us.
      maximum: 280
      type: string
    estimatedDailyVolumeMms:
      description: >-
        The estimated daily volume of MMS messages that the short code will
        send.
      enum:
        - 0-10,000
        - 10,001-50,000
        - 50,001-100,000
        - 100,001-200,000
        - 200,001+
      example: 0-10,000
      type: string
    estimatedDailyVolumeSms:
      description: >-
        The estimated daily volume of SMS messages that the short code will
        send.
      enum:
        - 0-10,000
        - 10,001-50,000
        - 50,001-100,000
        - 100,001-200,000
        - 200,001+
      example: 0-10,000
      type: string
    exampleAdvertisementAttachmentUrl:
      description: >-
        The URL for an example advertisement attachment that the short code
        uses.
      example: https://www.example.com/advertisementAttachment
      format: uri
      maximum: 2048
      type: string
    exampleAdvertisementUrl:
      description: The URL for an example advertisement that the short code uses.
      example: https://www.example.com/advertisement
      format: uri
      maximum: 2048
      type: string
    exampleAlertMessage:
      description: An example alert message that the short code uses.
      example: >-
        Hello John Doe! Dont miss out on the amazing discounts we have for you.
        Visit https://test.com/someId to get your discount. STOP to opt out
      maximum: 280
      type: string
    exampleSecondAlertMessage:
      description: Another example alert message that the short code uses.
      example: >-
        Hello John Doe! We noticed there were some items left in your shopping
        cart. Please visit https://test.com/someId to finish shopping. STOP to
        opt out
      maximum: 280
      type: string
    getSingleCampaignSchema:
      allOf:
        - properties:
            accountId:
              $ref: '#/components/schemas/accountId'
            addressId:
              $ref: '#/components/schemas/addressId'
            campaignId:
              $ref: '#/components/schemas/campaignId'
            campaignStatus:
              $ref: '#/components/schemas/campaignStatus'
            carrierStatus:
              description: >-
                List of objects each providing the short code registration
                status for an individual carrier.
              items:
                $ref: '#/components/schemas/shortCodeCarrierInfo'
              type: array
            countryCodeA3:
              $ref: '#/components/schemas/countryCodeA3'
            createdOn:
              $ref: '#/components/schemas/createdOn'
            customerProfileId:
              $ref: '#/components/schemas/customerProfileId'
            customerProfileName:
              $ref: '#/components/schemas/customerProfileName'
            deleted:
              $ref: '#/components/schemas/deleted'
            feedback:
              $ref: '#/components/schemas/feedback'
            lastUpdatedOn:
              $ref: '#/components/schemas/lastUpdatedOn'
            shortCodePhoneNumber:
              $ref: '#/components/schemas/shortCodePhoneNumber'
            version:
              $ref: '#/components/schemas/version'
          required:
            - campaignId
            - accountId
            - campaignStatus
            - createdOn
            - lastUpdatedOn
            - customerProfileId
            - feedback
            - carrierStatus
            - version
            - deleted
            - countryCodeA3
          type: object
        - $ref: '#/components/schemas/commonCampaignFields'
    getCampaignHistorySchema:
      allOf:
        - properties:
            accountId:
              $ref: '#/components/schemas/accountId'
            addressId:
              $ref: '#/components/schemas/addressId'
            campaignId:
              $ref: '#/components/schemas/campaignId'
            campaignStatus:
              $ref: '#/components/schemas/campaignStatus'
            carrierStatus:
              description: >-
                List of objects each providing the short code registration
                status for an individual carrier.
              items:
                $ref: '#/components/schemas/shortCodeCarrierInfo'
              type: array
            countryCodeA3:
              $ref: '#/components/schemas/countryCodeA3'
            createdOn:
              $ref: '#/components/schemas/createdOn'
            customerProfileId:
              $ref: '#/components/schemas/customerProfileId'
            customerProfileName:
              $ref: '#/components/schemas/customerProfileName'
            deleted:
              $ref: '#/components/schemas/deleted'
            lastUpdatedOn:
              $ref: '#/components/schemas/lastUpdatedOn'
            operationDescription:
              $ref: '#/components/schemas/operationDescription'
            shortCodePhoneNumber:
              $ref: '#/components/schemas/shortCodePhoneNumber'
            version:
              $ref: '#/components/schemas/version'
          required:
            - campaignId
            - accountId
            - campaignStatus
            - createdOn
            - lastUpdatedOn
            - customerProfileId
            - carrierStatus
            - version
            - deleted
            - countryCodeA3
            - operationDescription
          type: object
        - $ref: '#/components/schemas/commonCampaignFields'
    getCampaignHistoryResponseSchema:
      properties:
        data:
          items:
            $ref: '#/components/schemas/getCampaignHistorySchema'
          type: array
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/shortCodeLinkSchema'
        page:
          $ref: '#/components/schemas/shortCodePage'
    getShortCodeCampaignWebhookSubscriptionsResponseSchema:
      properties:
        data:
          $ref: '#/components/schemas/getShortCodeCampaignWebhookSubscriptionsSchema'
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/shortCodeLinkSchema'
    getShortCodeCampaignWebhookSubscriptionsSchema:
      items:
        $ref: '#/components/schemas/shortCodeCampaignWebhookSubscriptionSchema'
      type: array
    getSingleCampaignResponseSchema:
      properties:
        data:
          $ref: '#/components/schemas/getSingleCampaignSchema'
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/shortCodeLinkSchema'
    deleted:
      description: Whether the short code campaign has been deleted.
      example: false
      type: boolean
    failureWebhookSchema:
      properties:
        code:
          example: '500'
          type: string
        description:
          example: Internal Server Error
          type: string
      required:
        - description
        - code
      type: object
    feedback:
      description: >-
        The feedback provided for the short code campaign by a Bandwidth
        reviewer.
      items:
        properties:
          comment:
            $ref: '#/components/schemas/comment'
          createdOn:
            $ref: '#/components/schemas/createdOn'
          userName:
            $ref: '#/components/schemas/userName'
        type: object
      minItems: 0
      type: array
    helpMessage:
      description: The message that is sent to the customer to provide help information.
      example: Thanks for reaching out. Contact us at questions@test.com for support.
      maximum: 160
      type: string
    isAdultContent:
      description: >-
        A boolean value that indicates if the short code is used for adult or
        18+ content.
      example: false
      type: boolean
    isMigratedShortCode:
      description: Is the short code migrated from another provider?
      example: true
      type: boolean
    isSelfOwned:
      description: Is the short code self-owned?
      example: true
      type: boolean
    jsonPatch:
      items:
        $ref: '#/components/schemas/jsonPatchItem'
      type: array
    jsonPatchItem:
      properties:
        from:
          description: Used when the operation is copy or move.
          type: string
        op:
          enum:
            - ADD
            - REMOVE
            - REPLACE
            - COPY
            - MOVE
            - TEST
          example: REPLACE
          type: string
        path:
          example: /state
          type: string
        value:
          description: Used when the operation is add, replace, or test.
          example: REPLACE
          type: string
      required:
        - op
        - path
      type: object
    keywords:
      description: The keywords that the short code uses separated by spaces.
      example: HELP STOP
      maximum: 160
      type: string
    lastUpdatedOn:
      description: The date and time the short code campaign was last updated.
      example: '2024-03-16 20:00:00'
      format: date-time
      type: string
    leaseReceiptAttachmentUrl:
      description: >-
        The attachment URL for the lease receipt. Required unless isSelfOwned is
        false and isMigratedShortCode is false.
      format: uri
      type: string
    listCampaignsResponseSchema:
      properties:
        data:
          items:
            $ref: '#/components/schemas/getSingleCampaignSchema'
          type: array
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/shortCodeLinkSchema'
        page:
          $ref: '#/components/schemas/shortCodePage'
    messageSenderUrl:
      description: The URL for the message sender.
      example: https://some-company.com/
      format: uri
      maxLength: 2048
      minLength: 1
      type: string
    messageType:
      description: >-
        The type of message that the short code is used for. Either SMS only or
        SMS and MMS.
      enum:
        - SMS
        - SMS_MMS
      example: SMS
      type: string
    migrationLetterAttachmentUrl:
      description: The URL for the migration letter attachment.
      example: https://www.example.com/migrationLetter
      format: uri
      maximum: 2048
    operationDescription:
      description: User-friendly description of an operation that occured.
      example: user customerUserId created this campaign
      type: string
    optInConfirmationMessage:
      description: >-
        The message that is sent to the customer to confirm that they have opted
        in to receive messages from the short code.
      example: You have successfully opted in to receive messages from us.
      maximum: 500
      type: string
    optInExplanation:
      description: The explanation of the opt in conditions for the short code.
      example: By opting in, you agree to receive messages from us.
      maximum: 500
      type: string
    optInType:
      description: >-
        The type of opt-in methods that the short code uses. For "other", the
        optInTypeOther field is required.
      example:
        - WEB
        - POINT_OF_SALE
      items:
        $ref: '#/components/schemas/optInTypeEnum'
      type: array
    optInTypeEnum:
      description: The type of opt-in methods that the short code uses.
      enum:
        - WEB
        - POINT_OF_SALE
        - KEYWORD
        - IVR
        - VERBAL
        - OTHER
      type: string
    optInTypeOther:
      description: >-
        The type of opt-in method that the short code uses if the optInType is
        "OTHER".
      example: My opt-in type is not represented in the dropdown.
      maximum: 160
      type: string
    optOutExplanation:
      description: The explanation of the opt out conditions for the short code.
      example: To opt out, reply STOP to this message.
      maximum: 500
      type: string
    optOutMessage:
      description: >-
        The message that is sent to the customer to confirm that they have opted
        out of receiving messages from the short code.
      example: You have successfully opted out of receiving messages from us.
      maximum: 160
      type: string
    privacyPolicyUrl:
      description: The URL for the SMS privacy policy.
      example: https://www.example.com/privacy
      format: uri
      maximum: 2048
      type: string
    programDescription:
      description: A description of the program or purpose that the short code is used for.
      example: This program is designed to provide alerts to customers.
      maximum: 500
      type: string
    programType:
      description: The type of program or purpose that the short code is used for.
      enum:
        - ALERTS
        - CHAT
        - DELIVERY_NOTIFICATION
        - DONATION
        - EMERGENCY_ALERTS
        - FRAUD_ALERTS
        - SWEEPSTAKES_CONTESTS
        - POLITICAL
        - PROMOTIONAL_MARKETING
        - SECURITY_ALERTS
        - POLLING_VOTING
        - MFA
      example: ALERTS
      type: string
    shortCode:
      description: Short code registration.
      properties:
        accountId:
          description: Account ID.
          example: '123123'
          type: string
        carrierStatuses:
          description: >-
            List of objects each providing the registration status for an
            individual carrier.
          items:
            $ref: '#/components/schemas/shortCodeCarrierInfo'
          type: array
        country:
          description: The country the short code is registered in.
          example: USA
          type: string
          enum:
            - USA
            - CAN
        createdDateTime:
          $ref: '#/components/schemas/createdDateTime'
        customerManagedLease:
          description: >-
            Flag indicating whether the customer is managing the short code
            lease.
          type: boolean
          example: true
        lease:
          $ref: '#/components/schemas/shortCodeLeaseInfo'
        modifiedDateTime:
          $ref: '#/components/schemas/modifiedDateTime'
        shortCode:
          description: The short code.
          example: '12345'
          type: string
        sipPeerId:
          description: Location ID.
          example: '123321'
          type: string
        siteId:
          description: Sub-account ID.
          example: '321321'
          type: string
        status:
          description: >-
            If at least one carrier status is ACTIVE or PENDING, the status will
            be ACTIVE. If all carrier statues are INACTIVE, the status will be
            INACTIVE.
          example: ACTIVE
          type: string
          enum:
            - ACTIVE
            - EXPIRED
            - SUSPENDED
            - INACTIVE
        type:
          description: The lease type.
          example: RANDOM
          type: string
          enum:
            - RANDOM
            - VANITY
        version:
          description: >-
            An internal field that represents the current version of the short
            code data.
          example: 100
          type: integer
    shortCodeApiPage:
      description: >-
        Pagination object that represents the current page of short code
        numbers.
      properties:
        data:
          items:
            $ref: '#/components/schemas/shortCode'
          type: array
        errors:
          items:
            $ref: '#/components/schemas/shortCodeError'
          type: array
        page:
          $ref: '#/components/schemas/shortCodePage'
      type: object
    shortCodeCampaign401ResponseSchema:
      properties:
        data:
          example: null
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaignResponseError'
          type: array
        links:
          example: []
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaign403ResponseSchema:
      properties:
        data:
          example: null
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaignResponseError'
          type: array
        links:
          example: []
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaign404ResponseError:
      properties:
        code:
          type: string
        description:
          type: string
        source:
          properties:
            reference:
              type: string
          type: object
        type:
          type: string
      type: object
    shortCodeCampaign404ResponseSchema:
      properties:
        data:
          example: null
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaign404ResponseError'
          type: array
        links:
          example: []
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaign405ResponseSchema:
      properties:
        data:
          example: null
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaignResponseError'
          type: array
        links:
          example: []
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaign429ResponseSchema:
      properties:
        data:
          example: null
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaignResponseError'
          type: array
        links:
          example: []
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaign500ResponseSchema:
      properties:
        data:
          example: null
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaignResponseError'
          type: array
        links:
          example: []
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaignErrorResponseSchema:
      properties:
        data:
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaignResponseError'
          type: array
        links:
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaignResponseError:
      properties:
        code:
          type: string
        description:
          type: string
        type:
          type: string
      type: object
    shortCodeCampaignUploadUrl404ResponseSchema:
      properties:
        data:
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaignResponseError'
          type: array
        links:
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaignWebhookSubscription404ResponseSchema:
      properties:
        data:
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaign404ResponseError'
          type: array
        links:
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaignWebhookSubscriptionId404ResponseSchema:
      properties:
        data:
          example: null
          nullable: true
          type: object
        errors:
          items:
            $ref: '#/components/schemas/shortCodeCampaign404ResponseError'
          type: array
        links:
          example: []
          items:
            nullable: true
            type: object
          type: array
      type: object
    shortCodeCampaignWebhookSubscriptionSchema:
      description: >-
        The request body for creating a webhook subscription for a short code
        campaign.
      properties:
        basicAuthentication:
          $ref: '#/components/schemas/callbackBasicAuthentication'
        callbackUrl:
          $ref: '#/components/schemas/callbackUrl'
        sharedSecretKey:
          $ref: '#/components/schemas/sharedSecretKey'
        webhookSubscriptionId:
          $ref: '#/components/schemas/webhookSubscriptionId'
      required:
        - callbackUrl
      type: object
    shortCodeCarrierInfo:
      description: The registration status for each carrier.
      properties:
        activatedDate:
          description: >-
            The date the short code was activated for this carrier, this date
            only will be defined when the status of the carrier becomes ACTIVE.
          example: '2023-01-28'
          format: date
          type: string
        modifiedDate:
          description: The date the status was modified for this carrier
          example: '2023-01-28'
          format: date
          type: string
        carrierId:
          description: Carrier identifier  (possible values ATT, TMOBILE, VERIZON).
          enum:
            - ATT
            - TMOBILE
            - VERIZON
          example: TMOBILE
          type: string
        status:
          enum:
            - ACTIVE
            - INACTIVE
            - PENDING
          example: ACTIVE
          type: string
      type: object
    shortCodeCarrierData:
      description: The registration status for each carrier.
      properties:
        carrierId:
          description: Carrier identifier  (possible values ATT, TMOBILE, VERIZON).
          enum:
            - ATT
            - TMOBILE
            - VERIZON
          example: TMOBILE
          type: string
        status:
          enum:
            - ACTIVE
            - INACTIVE
            - PENDING
          example: ACTIVE
          type: string
      type: object
    shortCodeCarrierProvisioningInfo:
      description: Internal field, list of carrier to provider mappings (direct binds).
      properties:
        carrierId:
          description: Carrier identifier (possible values ATT).
          enum:
            - ATT
          example: ATT
          type: string
        provider:
          description: Provider identifier (possible values ATT_DIRECT).
          enum:
            - ATT_DIRECT
          example: ATT_DIRECT
          type: string
      type: object
    shortCodeContactEmail:
      description: >-
        The email address of the contact for the short code lease. Required when
        isSelfOwned is false.
      example: contact@example.com
      type: string
    shortCodeData:
      description: Short code details representation.
      properties:
        shortCode:
          description: The short code.
          example: '12345'
          type: string
        country:
          description: The country the short code is registered in.
          example: USA
          type: string
          enum:
            - USA
            - CAN
        siteId:
          description: Sub-account ID.
          example: '321321'
          type: string
        sipPeerId:
          description: Location ID from Iris.
          example: '123321'
          type: string
        type:
          description: The lease type.
          example: RANDOM
          type: string
          enum:
            - RANDOM
            - VANITY
        lease:
          $ref: '#/components/schemas/shortCodeLeaseData'
        createdDateTime:
          $ref: '#/components/schemas/createdDateTime'
        modifiedDateTime:
          $ref: '#/components/schemas/modifiedDateTime'
        status:
          description: >-
            If at least one carrier status is ACTIVE or PENDING, the status will
            be ACTIVE. If all carrier statues are INACTIVE, the status will be
            INACTIVE.
          example: ACTIVE
          type: string
          enum:
            - ACTIVE
            - EXPIRED
            - SUSPENDED
            - INACTIVE
        customerManagedLease:
          description: >-
            Flag indicating whether the customer is managing the short code
            lease.
          type: boolean
          example: true
        carrierStatuses:
          description: >-
            List of objects each providing the registration status for an
            individual carrier.
          items:
            $ref: '#/components/schemas/shortCodeCarrierData'
          type: array
        version:
          description: >-
            A field that represents the version of the short code data, when
            updating a short code is necessary to supply the last version value
            added by 1.
          example: 100
          type: integer
      type: object
    shortCodeUpdateData:
      description: Short code update details representation.
      properties:
        siteId:
          description: Sub-account ID.
          example: '321321'
          type: string
        sipPeerId:
          description: Location ID from Iris.
          example: '123321'
          type: string
        type:
          description: The lease type.
          example: RANDOM
          type: string
          enum:
            - RANDOM
            - VANITY
        lease:
          $ref: '#/components/schemas/shortCodeLeaseData'
        createdDateTime:
          $ref: '#/components/schemas/createdDateTime'
        modifiedDateTime:
          $ref: '#/components/schemas/modifiedDateTime'
        status:
          description: >-
            If at least one carrier status is ACTIVE or PENDING, the status will
            be ACTIVE. If all carrier statues are INACTIVE, the status will be
            INACTIVE.
          example: ACTIVE
          type: string
          enum:
            - ACTIVE
            - EXPIRED
            - SUSPENDED
            - INACTIVE
        customerManagedLease:
          description: >-
            Flag indicating whether the customer is managing the short code
            lease.
          type: boolean
          example: true
        carrierStatuses:
          description: >-
            List of objects each providing the registration status for an
            individual carrier.
          items:
            $ref: '#/components/schemas/shortCodeCarrierData'
          type: array
        version:
          description: >-
            A field that represents the version of the short code data, when
            updating a short code is necessary to supply the last version value
            added by 1.
          example: 100
          type: integer
      type: object
    shortCodeError:
      description: A generic error object.
      properties:
        description:
          example: cannot find requested resource
          type: string
        type:
          example: not found
          type: string
      type: object
    shortCodeError400:
      description: A specific error object for HTTP Status 400.
      example:
        description: Cannot process request.
        errors:
          accountId:
            - is required
            - can not be empty
          shortCode:
            - is required
            - can not be empty
        type: cannot process request
      properties:
        description:
          example: Cannot process request.
          type: string
        errors:
          $ref: '#/components/schemas/stringObjectMap'
        type:
          example: cannot process request
          type: string
      type: object
    shortCodeHistory:
      description: >-
        Short code history details representation, each history element
        represents an operation or an event that changed the state of the short
        code.
      properties:
        shortCode:
          description: The short code.
          example: '12345'
          type: string
        country:
          description: The country the short code was registered in.
          example: USA
          type: string
          enum:
            - USA
            - CAN
        operation:
          description: Operation executed over the short code.
          example: UPDATED
          type: string
          enum:
            - CREATED
            - UPDATED
            - DELETED
        user:
          description: The customer user ID that initiated the operation.
          example: systemUser
          type: string
        accountId:
          description: Account ID.
          example: '123123'
          type: string
        siteId:
          description: Sub-account ID.
          example: '321321'
          type: string
        sipPeerId:
          description: Location ID.
          example: '123321'
          type: string
        type:
          description: The lease type.
          example: RANDOM
          type: string
          enum:
            - RANDOM
            - VANITY
        lease:
          $ref: '#/components/schemas/shortCodeLeaseInfo'
        createdDateTime:
          $ref: '#/components/schemas/createdDateTime'
        modifiedDateTime:
          $ref: '#/components/schemas/modifiedDateTime'
        status:
          description: >-
            If at least one carrier status is ACTIVE or PENDING, the status will
            be ACTIVE. If all carrier statues are INACTIVE, the status will be
            INACTIVE.
          example: ACTIVE
          type: string
          enum:
            - ACTIVE
            - EXPIRED
            - SUSPENDED
            - INACTIVE
        customerManagedLease:
          description: >-
            Flag indicating whether the customer is managing the short code
            lease.
          type: boolean
          example: true
        carrierStatuses:
          description: >-
            List of objects each providing the registration status for each
            carrier at the time the event occurred.
          items:
            $ref: '#/components/schemas/shortCodeCarrierInfo'
          type: array
        version:
          description: >-
            An internal field that represents the version of the short code
            data.
          example: 100
          type: integer
    shortCodeHistoryApiPage:
      description: >-
        Pagination object that represents the current page of short code number
        history.
      properties:
        data:
          items:
            $ref: '#/components/schemas/shortCodeHistory'
          type: array
        errors:
          example:
            - description: Client is providing incorrect or invalid credentials.
              type: unauthorized
          items:
            $ref: '#/components/schemas/shortCodeError'
          type: array
        page:
          $ref: '#/components/schemas/shortCodePage'
      type: object
    shortCodeLeaseData:
      description: >-
        The lease information for the short code number. This information only
        applies to Bandwidth managed short code leases (customerManagedLease set
        to false).
      properties:
        autoRenew:
          description: Flag indicating whether the lease should auto-renew.
          example: true
          type: boolean
        autoRenewMonths:
          description: >-
            The number of months for which to renew the release when it auto
            renews. Valid values are 3, 6, and 12. The default value, if not
            supplied on creation, will be 3.
          enum:
            - 3
            - 6
            - 12
          example: 6
          type: integer
        contactEmail:
          description: Email address used for all lease renewal notifications.
          example: test@bandwidth.com
          type: string
        endDate:
          description: >-
            Lease end date. This date is inclusive, e.g. 2022-02-15 means that
            the short code is valid through 2/15.
          example: '2023-01-28'
          format: date
          type: string
        startDate:
          description: >-
            Lease start date. This date is inclusive, e.g. 2022-02-07 means that
            the short code is valid on 2/7.
          example: '2023-01-28'
          format: date
          type: string
      type: object
    shortCodeLeaseInfo:
      description: >-
        The lease information for the short code number. This information only
        applies to Bandwidth managed short code leases (customerManagedLease set
        to false).
      properties:
        startDate:
          description: >-
            Lease start date. This date is inclusive, e.g. 2022-02-07 means that
            the short code is valid on 2/7.
          example: '2023-01-28'
          format: date
          type: string
        endDate:
          description: >-
            Lease end date. This date is inclusive, e.g. 2022-02-15 means that
            the short code is valid through 2/15.
          example: '2023-01-28'
          format: date
          type: string
        contactEmail:
          description: Email address used for all lease renewal notifications.
          example: test@bandwidth.com
          type: string
        autoRenew:
          description: Flag indicating whether the lease should auto-renew.
          example: true
          type: boolean
        autoRenewMonths:
          description: >-
            The number of months for which to renew the release when it auto
            renews. Valid values are 3, 6, and 12. The default value, if not
            supplied on creation, will be 3.
          example: 6
          type: integer
          enum:
            - 3
            - 6
            - 12
      type: object
    shortCodeLeaseLength:
      description: The length of the short code lease. Required when isSelfOwned is false.
      example: 3 months
      type: string
    shortCodeLinkSchema:
      items:
        properties:
          href:
            type: string
          method:
            type: string
          rel:
            type: string
        type: object
      type: array
    shortCodePage:
      description: Pagination object that represents the current page.
      properties:
        pageNumber:
          description: The current page used in the request.
          example: 1
          type: integer
        pageSize:
          description: The current page size used in the request.
          example: 50
          type: integer
        totalElements:
          description: The total of objects that could be paginated.
          example: 100
          type: integer
        totalPages:
          description: The total of pages that could be paginated.
          example: 100
          type: integer
      type: object
    shortCodePhoneNumber:
      description: >-
        The short code phone number associated with this campaign. This field
        may be an empty string if the campaign is not yet associated with a
        short code.
      example: '12345'
      maxLength: 10
      minLength: 0
      type: string
    shortCodeType:
      description: >-
        Is the short code a vanity short code? Required when a
        customerProvidedShortCode is present.
      enum:
        - RANDOM
        - VANITY
      example: RANDOM
      type: string
    sort:
      enum:
        - ASC
        - DESC
      type: string
    stringObjectMap:
      additionalProperties:
        example:
          - is required
          - can not be empty
        items:
          example: is required
          type: string
        type: array
      example:
        accountId:
          - is required
          - can not be empty
        shortCode:
          - is required
          - can not be empty
      type: object
    updateShortCodeCampaignWebhookSubscriptionRequestSchema:
      $ref: '#/components/schemas/shortCodeCampaignWebhookSubscriptionSchema'
    createdDateTime:
      description: The date and time this object was created in ISO 8601 format
      example: '2024-03-11T04:09:25.399Z'
      type: string
    modifiedDateTime:
      description: The date and time this object was modified in ISO 8601 format
      example: '2022-11-15T18:39:04.505Z'
      format: date-time
      type: string
    callbackBasicAuthentication:
      description: >-
        Basic authentication credentials are not required, but if present, both
        username and password must be provided.
      properties:
        password:
          description: >-
            The password that is used by Bandwidth for basic authentication on
            callbacks.
          example: p@55w0rd
          maximum: 200
          type: string
          writeOnly: true
        username:
          description: >-
            The username that is used by Bandwidth for basic authentication on
            callbacks.
          example: username
          maximum: 100
          type: string
      required:
        - username
        - password
      type: object
    callbackUrl:
      description: The URL that the webhook subscription will send messages to.
      example: https://your_url.com/webhookService
      format: uri
      maximum: 2000
      type: string
    sharedSecretKey:
      description: >-
        An ASCII string submitted by the user as a shared secret key for
        generating an HMAC header for callbacks.
      example: This is my $3cret
      maxLength: 64
      minLength: 16
      nullable: true
      pattern: ^[ -~]{16,64}$
      type: string
      writeOnly: true
    webhookSubscriptionId:
      description: >-
        The ID of the webhook subscription that is associated with a callback
        URL.
      example: 2S6KcOBPfmQrifODi3OBTj
      readOnly: true
      type: string
    limit:
      type: integer
      description: The number of results to return.
      example: 100
    offset:
      type: integer
      description: The number of results to skip.
      example: 1
      minimum: 0
    postShortCodeCampaignDocumentResponseSchema:
      properties:
        data:
          $ref: '#/components/schemas/postShortCodeCampaignDocumentSchema'
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/documentLinkSchema'
    postShortCodeCampaignDocumentSchema:
      description: The response body for uploading a document for a short code campaign.
      properties:
        documentId:
          $ref: '#/components/schemas/campaignDocumentId'
      type: object
    documentLinkSchema:
      items:
        properties:
          href:
            type: string
          method:
            type: string
          rel:
            type: string
        type: object
      type: array
    termsAndConditionsAttachmentUrl:
      description: The attachment URL for the SMS terms and conditions.
      format: uri
      type: string
    termsAndConditionsUrl:
      description: The URL for the terms and conditions.
      example: https://some-company.com/terms-and-conditions
      format: uri
      maxLength: 2048
      minLength: 1
      type: string
    brandTypeEnum:
      type: string
      description: The type of brand that is applying for the short code campaign.
      enum:
        - STANDARD
        - POLITICAL
      example: STANDARD
    legalEntityTypeEnum:
      type: string
      description: The type of legal entity that is applying for the short code campaign.
      enum:
        - CORPORATION
        - LLC
        - PARTNERSHIP
        - S_CORPORATION
        - SOLE_PROPRIETORSHIP
      example: CORPORATION
    organizationName:
      type: string
      description: >-
        The name of the organization that is applying for the short code
        campaign.
      minLength: 1
      maxLength: 255
      example: Bandwidth Inc.
    registrationCountryCodeA3:
      type: string
      minLength: 3
      maxLength: 3
      description: >-
        ISO 3166-1 alpha-3 country code where the applying organization is
        legally registered.
      example: USA
    stockMarketSymbol:
      type: string
      minLength: 1
      maxLength: 10
      description: >-
        The stock market symbol for the organization that is applying for the
        short code campaign.
      example: BAND
      nullable: true
    federalTaxId:
      type: string
      minLength: 1
      maxLength: 40
      description: >-
        The federal tax ID for the organization that is applying for the short
        code campaign.
      example: '123456789'
    dunsNumber:
      type: string
      minLength: 9
      maxLength: 12
      description: >-
        The 9-digit Dun & Bradstreet number, with or without dashes, for the
        organization that is applying for the short code campaign.
      example: 12-345-6789
      nullable: true
    giinNumber:
      type: string
      minLength: 19
      maxLength: 19
      description: >-
        The Global Intermediary Identification Number for the organization that
        is applying for the short code campaign.
      pattern: ^[A-Za-z0-9]{6}\.[A-Za-z0-9]{5}\.[A-Za-z0-9]{2}\.[A-Za-z0-9]{3}$
      example: A1B2C3.00000.LE.124
      nullable: true
    legalEntityId:
      type: string
      minLength: 20
      maxLength: 20
      description: >-
        The Legal Entity Identifier (LEI) of the organization that is applying
        for the short code campaign.
      example: 506700GE1G29325QX363
      nullable: true
    subsidiariesAndLegalAffiliates:
      type: string
      minLength: 1
      maxLength: 1000
      description: >-
        Free-form text list of subsidiaries and legal affiliates for the
        organization that is applying for the short code campaign - no enforced
        constraints beyond string length.
      example: Subsidiary 1, Subsidiary 2, Legal Affiliate 1
      nullable: true
    updateCampaignRequestSchema:
      allOf:
        - properties:
            addressId:
              $ref: '#/components/schemas/addressId'
            customerProfileId:
              $ref: '#/components/schemas/customerProfileId'
          required:
            - customerProfileId
          type: object
        - $ref: '#/components/schemas/commonCampaignFields'
    updateShortCodeCampaignWebhookSubscriptionResponseSchema:
      properties:
        data:
          $ref: '#/components/schemas/shortCodeCampaignWebhookSubscriptionSchema'
        errors:
          description: The errors array will always be empty for successful responses.
          example: []
          items:
            nullable: true
            type: object
          type: array
        links:
          $ref: '#/components/schemas/shortCodeLinkSchema'
    userName:
      description: The signum username of the user.
      example: bw-reviewer
      maxLength: 255
      type: string
    version:
      description: >-
        The version of the short code campaign. This gets incremented every time
        the campaign is edited.
      example: 0
      minimum: 0
      type: integer
  examples:
    adminFeedbackResponseExample:
      value:
        data:
          campaignId: '123123123'
          comment: We dont think you are a legit company, prove it!
          createdOn: '2024-03-16 14:00:00'
          userName: bw-reviewer
        errors: []
        links:
          - href: /campaigns/1234fghij/feedback
            method: POST
            rel: self
          - href: /campaigns/1234fghij
            method: GET
            rel: get
          - href: /campaigns/1234fghij/history
            method: GET
            rel: get history
          - href: /campaigns
            method: POST
            rel: create
          - href: /campaigns/1234fghij
            method: PUT
            rel: update
          - href: /campaigns/1234fghij/admin
            method: PATCH
            rel: admin update
          - href: /campaigns/1234fghij
            method: DELETE
            rel: delete
    adminUpdateCampaignResponseExample:
      value:
        data:
          accountId: '123123123'
          addressId: 1234abcd56ef
          billingType: STANDARD_SMS
          callToActionSample: Visit our website at www.example.com
          callToActionType:
            - WEB
            - RADIO
          campaignId: '123123123'
          campaignName: My Campaign
          campaignStatus: ACTION_REQUIRED
          countryCodeA3: USA
          createdOn: '2024-03-16 14:00:00'
          customerProfileId: abcde1234
          customerProfileName: Customer Profile Name
          customerProvidedShortCode: '56798'
          customerSupportEmail: user@example.com
          customerSupportPhoneNumber: '+18881112222'
          customerSupportUrl: https://www.example.com/support
          deleted: false
          doubleOptInMessage: Reply Y to confirm that you would like to receive messages from us.
          estimatedDailyVolumeMms: 0-10,000
          estimatedDailyVolumeSms: 10,001-50,000
          exampleAdvertisementAttachmentUrl: https://www.example.com/advertisementAttachment
          exampleAdvertisementUrl: https://www.example.com/advertisement
          exampleAlertMessage: >-
            Hello John Doe! Dont miss out on the amazing discounts we have for
            you. Visit https://test.com/someId to get your discount. STOP to opt
            out
          exampleSecondAlertMessage: >-
            Hello John Doe! We noticed there were some items left in your
            shopping cart. Please visit https://test.com/someId to finish
            shopping. STOP to opt out
          helpMessage: Thanks for reaching out. Contact us at www.example.com
          isAdultContent: false
          isMigratedShortCode: true
          isSelfOwned: true
          keywords: HELP STOP
          lastUpdatedOn: '2024-03-16 20:00:00'
          leaseReceiptAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
          messageSenderUrl: https://some-company.com/
          messageType: SMS
          migrationLetterAttachmentUrl: https://www.example.com/migrationLetter
          optInConfirmationMessage: You have successfully opted in to receive messages from us.
          optInExplanation: By opting in, you agree to receive messages from us.
          optInType:
            - WEB
          optInTypeOther: ''
          optOutExplanation: To opt out, reply STOP to this message.
          optOutMessage: You have successfully opted out of receiving messages from us.
          privacyPolicyUrl: https://www.example.com/privacy
          programDescription: This program is designed to provide alerts to customers.
          programType: ALERTS
          shortCodeLeaseContactEmail: contact@example.com
          shortCodeLeaseLength: 3 months
          shortCodePhoneNumber: '12345'
          shortCodeType: RANDOM
          termsAndConditionsAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
          termsAndConditionsUrl: https://some-company.com/terms-and-conditions
          version: 0
          brandType: STANDARD
          legalEntityType: CORPORATION
          organizationName: Bandwidth Inc.
          registrationCountryCodeA3: USA
          stockMarketSymbol: BAND
          federalTaxId: '123456789'
          dunsNumber: 12-345-6789
          giinNumber: A1B2C3.00000.LE.124
          legalEntityId: 506700GE1G29325QX363
          subsidiariesAndLegalAffiliates: Subsidiary 1, Subsidiary 2, Legal Affiliate 1
        errors: []
        links:
          - href: /campaigns/1234fghij/admin
            method: PATCH
            rel: self
          - href: /campaigns/1234fghij
            method: GET
            rel: get
          - href: /campaigns/1234fghij/history
            method: GET
            rel: get history
          - href: /campaigns
            method: POST
            rel: create
          - href: /campaigns/1234fghij/feedback
            method: POST
            rel: admin post feedback
          - href: /campaigns/1234fghij
            method: PUT
            rel: update
          - href: /campaigns/1234fghij
            method: DELETE
            rel: delete
    createCampaignResponseExample:
      value:
        data:
          accountId: '123123123'
          addressId: 1234abcd56ef
          billingType: STANDARD_SMS
          callToActionSample: Visit our website at www.example.com
          callToActionType:
            - WEB
            - RADIO
          campaignId: '123123123'
          campaignName: My Campaign
          campaignStatus: PENDING_USE_CASE_REVIEW
          countryCodeA3: USA
          createdOn: '2024-03-16 14:00:00'
          customerProfileId: abcde1234
          customerProfileName: Customer Profile Name
          customerProvidedShortCode: '56798'
          customerSupportEmail: user@example.com
          customerSupportPhoneNumber: '+18881112222'
          customerSupportUrl: https://www.example.com/support
          deleted: false
          doubleOptInMessage: Reply Y to confirm that you would like to receive messages from us.
          estimatedDailyVolumeMms: 0-10,000
          estimatedDailyVolumeSms: 10,001-50,000
          exampleAdvertisementAttachmentUrl: https://www.example.com/advertisementAttachment
          exampleAdvertisementUrl: https://www.example.com/advertisement
          exampleAlertMessage: >-
            Hello John Doe! Dont miss out on the amazing discounts we have for
            you. Visit https://test.com/someId to get your discount. STOP to opt
            out
          exampleSecondAlertMessage: >-
            Hello John Doe! We noticed there were some items left in your
            shopping cart. Please visit https://test.com/someId to finish
            shopping. STOP to opt out
          helpMessage: Thanks for reaching out. Contact us at www.example.com
          isAdultContent: false
          isMigratedShortCode: true
          isSelfOwned: true
          keywords: HELP STOP
          lastUpdatedOn: '2024-03-16 20:00:00'
          leaseReceiptAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
          messageSenderUrl: https://some-company.com/
          messageType: SMS
          migrationLetterAttachmentUrl: https://www.example.com/migrationLetter
          optInConfirmationMessage: You have successfully opted in to receive messages from us.
          optInExplanation: By opting in, you agree to receive messages from us.
          optInType:
            - WEB
          optInTypeOther: ''
          optOutExplanation: To opt out, reply STOP to this message.
          optOutMessage: You have successfully opted out of receiving messages from us.
          privacyPolicyUrl: https://www.example.com/privacy
          programDescription: This program is designed to provide alerts to customers.
          programType: ALERTS
          shortCodeLeaseContactEmail: contact@example.com
          shortCodeLeaseLength: 3 months
          shortCodePhoneNumber: ''
          shortCodeType: RANDOM
          termsAndConditionsAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
          termsAndConditionsUrl: https://some-company.com/terms-and-conditions
          version: 0
          brandType: STANDARD
          legalEntityType: CORPORATION
          organizationName: Bandwidth Inc.
          registrationCountryCodeA3: USA
          stockMarketSymbol: BAND
          federalTaxId: '123456789'
          dunsNumber: 12-345-6789
          giinNumber: A1B2C3.00000.LE.124
          legalEntityId: 506700GE1G29325QX363
          subsidiariesAndLegalAffiliates: Subsidiary 1, Subsidiary 2, Legal Affiliate 1
        errors: []
        links:
          - href: /campaigns/1234fghij
            method: GET
            rel: get
          - href: /campaigns/1234fghij/history
            method: GET
            rel: get history
          - href: /campaigns
            method: POST
            rel: create
          - href: /campaigns/1234fghij
            method: PUT
            rel: update
    createShortCodeCampaignWebhookSubscriptionResponseExample:
      value:
        data:
          basicAuthentication:
            username: username
          callbackUrl: https://your_url.com/webhookService
          webhookSubscriptionId: 2S6KcOBPfmQrifODi3OBTj
        errors: []
        links:
          - href: /campaigns/webhooks/subscriptions/2S6KcOBPfmQrifODi3OBTj
            method: GET
            rel: self
          - href: /campaigns/webhooks/subscriptions
            method: POST
            rel: create
          - href: /campaigns/webhooks/subscriptions/2S6KcOBPfmQrifODi3OBTj
            method: PUT
            rel: replace
          - href: /campaigns/webhooks/subscriptions/2S6KcOBPfmQrifODi3OBTj
            rel: delete
    shortCodeCampaignWebhookSubscriptionId404ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '404'
            description: >-
              Cannot find resource
              /api/v2/accounts/9900010/shortcodes/campaigns/webhooks/subscriptions/2S6KcOBPfmQrifODi3OBTj
            source:
              reference: >-
                /api/v2/accounts/9900010/shortcodes/campaigns/webhooks/subscriptions/2S6KcOBPfmQrifODi3OBTj
            type: Not Found
        links: []
    shortCodeCampaignWebhookSubscriptionQueryParam400ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '400'
            description: Query parameter 'callbackUrl' cannot be null
            source:
              parameter: callbackUrl
            type: Bad Request
        links: []
    postShortCodeCampaignDocumentResponseExample:
      value:
        data:
          documentId: daa9dd0f-de97-4103-8530-b31bf4be8fc0
        errors: []
        links:
          - href: /documents/daa9dd0f-de97-4103-8530-b31bf4be8fc0
            method: GET
            rel: self
          - href: /documents
            method: POST
            rel: create
    getCampaignHistoryResponseExample:
      value:
        data:
          - accountId: '123123123'
            addressId: 1234abcd56ef
            billingType: STANDARD_SMS
            callToActionSample: Visit our website at www.example.com
            callToActionType:
              - WEB
              - RADIO
            campaignId: '123123123'
            campaignName: My Campaign
            campaignStatus: PENDING_USE_CASE_REVIEW
            carrierStatus: []
            countryCodeA3: USA
            createdOn: '2024-03-16 14:00:00'
            customerProfileId: abcde1234
            customerProfileName: Customer Profile Name
            customerProvidedShortCode: '12345'
            customerSupportEmail: user@example.com
            customerSupportPhoneNumber: '+18881112222'
            customerSupportUrl: https://www.example.com/support
            deleted: false
            doubleOptInMessage: >-
              Reply Y to confirm that you would like to receive messages from
              us.
            estimatedDailyVolumeMms: 0-10,000
            estimatedDailyVolumeSms: 10,001-50,000
            exampleAdvertisementAttachmentUrl: https://www.example.com/advertisementAttachment
            exampleAdvertisementUrl: https://www.example.com/advertisement
            exampleAlertMessage: >-
              Hello John Doe! Dont miss out on the amazing discounts we have for
              you. Visit https://test.com/someId to get your discount. STOP to
              opt out
            exampleSecondAlertMessage: >-
              Hello John Doe! We noticed there were some items left in your
              shopping cart. Please visit https://test.com/someId to finish
              shopping. STOP to opt out
            helpMessage: Thanks for reaching out. Contact us at www.example.com
            isAdultContent: false
            isMigratedShortCode: true
            isSelfOwned: true
            keywords: HELP STOP
            lastUpdatedOn: '2024-03-17 14:00:00'
            leaseReceiptAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
            messageSenderUrl: https://some-company.com/
            messageType: SMS
            migrationLetterAttachmentUrl: https://www.example.com/migrationLetter
            operationDescription: customerUserId created this campaign
            optInConfirmationMessage: You have successfully opted in to receive messages from us.
            optInExplanation: By opting in, you agree to receive messages from us.
            optInType:
              - WEB
            optInTypeOther: ''
            optOutExplanation: To opt out, reply STOP to this message.
            optOutMessage: You have successfully opted out of receiving messages from us.
            privacyPolicyUrl: https://www.example.com/privacy
            programDescription: This program is designed to provide alerts to customers.
            programType: ALERTS
            shortCodeLeaseContactEmail: contact@example.com
            shortCodeLeaseLength: 3 months
            shortCodePhoneNumber: ''
            shortCodeType: RANDOM
            termsAndConditionsAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
            termsAndConditionsUrl: https://some-company.com/terms-and-conditions
            version: 0
          - accountId: '123123123'
            addressId: 1234abcd56ef
            billingType: STANDARD_SMS
            callToActionSample: Visit our website at www.example.com
            callToActionType:
              - WEB
              - RADIO
            campaignId: '123123123'
            campaignName: My Campaign
            campaignStatus: PENDING_USE_CASE_REVIEW
            carrierStatus: []
            countryCodeA3: USA
            createdOn: '2024-03-16 14:00:00'
            customerProfileId: abcde1234
            customerProfileName: Customer Profile Name
            customerProvidedShortCode: '12345'
            customerSupportEmail: user@example.com
            customerSupportPhoneNumber: '+18881112222'
            customerSupportUrl: https://www.example.com/support
            deleted: false
            doubleOptInMessage: >-
              Reply Y to confirm that you would like to receive messages from
              us.
            estimatedDailyVolumeMms: 0-10,000
            estimatedDailyVolumeSms: 10,001-50,000
            exampleAdvertisementAttachmentUrl: https://www.example.com/advertisementAttachment
            exampleAdvertisementUrl: https://www.example.com/advertisement
            exampleAlertMessage: >-
              Hello John Doe! Dont miss out on the amazing discounts we have for
              you. Visit https://test.com/someId to get your discount. STOP to
              opt out
            exampleSecondAlertMessage: >-
              Hello John Doe! We noticed there were some items left in your
              shopping cart. Please visit https://test.com/someId to finish
              shopping. STOP to opt out
            helpMessage: Thanks for reaching out. Contact us at www.example.com
            isAdultContent: false
            isMigratedShortCode: true
            isSelfOwned: true
            keywords: HELP STOP
            lastUpdatedOn: '2024-03-17 14:00:00'
            leaseReceiptAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
            messageSenderUrl: https://some-company.com/
            messageType: SMS
            migrationLetterAttachmentUrl: https://www.example.com/migrationLetter
            operationDescription: reviewerUserId provided feedback for this campaign
            optInConfirmationMessage: You have successfully opted in to receive messages from us.
            optInExplanation: By opting in, you agree to receive messages from us.
            optInType:
              - WEB
            optInTypeOther: ''
            optOutExplanation: To opt out, reply STOP to this message.
            optOutMessage: You have successfully opted out of receiving messages from us.
            privacyPolicyUrl: https://www.example.com/privacy
            programDescription: This program is designed to provide alerts to customers.
            programType: ALERTS
            shortCodeLeaseContactEmail: contact@example.com
            shortCodeLeaseLength: 3 months
            shortCodePhoneNumber: ''
            shortCodeType: RANDOM
            termsAndConditionsAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
            termsAndConditionsUrl: https://some-company.com/terms-and-conditions
            version: 0
            brandType: STANDARD
            legalEntityType: CORPORATION
            organizationName: Bandwidth Inc.
            registrationCountryCodeA3: USA
            stockMarketSymbol: BAND
            federalTaxId: '123456789'
            dunsNumber: 12-345-6789
            giinNumber: A1B2C3.00000.LE.124
            legalEntityId: 506700GE1G29325QX363
            subsidiariesAndLegalAffiliates: Subsidiary 1, Subsidiary 2, Legal Affiliate 1
        errors: []
        links:
          - href: /campaigns/1234fghij
            method: GET
            rel: get
          - href: /campaigns/1234fghij/history
            method: GET
            rel: get history
          - href: /campaigns
            method: POST
            rel: create
          - href: /campaigns/1234fghij
            method: PUT
            rel: update
          - href: /campaigns/1234fghij/history
            method: GET
            rel: first
          - href: /campaigns/1234fghij/history?offset=99000&limit=1000
            method: GET
            rel: last
          - href: /campaigns/1234fghij/history
            method: GET
            rel: previous
          - href: /campaigns/1234fghij/history?offset=1000&limit=1000
            method: GET
            rel: next
        page:
          pageNumber: 1
          pageSize: 50
          totalElements: 2
          totalPages: 1
    getShortCodeCampaignDocumentResponseExample:
      value: jksdhfsanufhsofh=
    getShortCodeCampaignWebhookSubscriptionsResponseExample:
      value:
        data:
          - basicAuthentication:
              username: username
            callbackUrl: https://your_url.com/webhookService
            webhookSubscriptionId: 2S6KcOBPfmQrifODi3OBTj
          - basicAuthentication:
              username: username
            callbackUrl: https://your_url.com/otherWebhookService
            webhookSubscriptionId: itKbAfgGbhXYaQTzgkfQTa
        errors: []
        links:
          - href: /campaigns/webhooks/subscriptions/2S6KcOBPfmQrifODi3OBTj
            method: GET
            rel: self
          - href: /campaigns/webhooks/subscriptions
            method: POST
            rel: create
    getSingleCampaignResponseExample:
      value:
        data:
          accountId: '123123123'
          addressId: 1234abcd56ef
          billingType: STANDARD_SMS
          callToActionSample: Visit our website at www.example.com
          callToActionType:
            - WEB
            - RADIO
          campaignId: '123123123'
          campaignName: My Campaign
          campaignStatus: PENDING_CARRIER_REVIEW
          carrierStatus:
            - activatedDate: '2024-03-16'
              modifiedDate: '2024-03-16'
              carrierId: ATT
              status: ACTIVE
            - carrierId: TMOBILE
              modifiedDate: '2024-03-16'
              status: PENDING
            - carrierId: VERIZON
              modifiedDate: '2024-03-16'
              status: INACTIVE
          countryCodeA3: USA
          createdOn: '2024-03-16 14:00:00'
          customerProfileId: abcde1234
          customerProfileName: Customer Profile Name
          customerProvidedShortCode: '56798'
          customerSupportEmail: user@example.com
          customerSupportPhoneNumber: '+18881112222'
          customerSupportUrl: https://www.example.com/support
          deleted: false
          doubleOptInMessage: Reply Y to confirm that you would like to receive messages from us.
          estimatedDailyVolumeMms: 0-10,000
          estimatedDailyVolumeSms: 10,001-50,000
          exampleAdvertisementAttachmentUrl: https://www.example.com/advertisementAttachment
          exampleAdvertisementUrl: https://www.example.com/advertisement
          exampleAlertMessage: >-
            Hello John Doe! Dont miss out on the amazing discounts we have for
            you. Visit https://test.com/someId to get your discount. STOP to opt
            out
          exampleSecondAlertMessage: >-
            Hello John Doe! We noticed there were some items left in your
            shopping cart. Please visit https://test.com/someId to finish
            shopping. STOP to opt out
          feedback:
            - comment: We dont think you are a legit company, prove it!
              createdOn: '2024-03-16 14:00:00'
              userName: bw-reviewer
          helpMessage: Thanks for reaching out. Contact us at www.example.com
          isAdultContent: false
          isMigratedShortCode: true
          isSelfOwned: true
          keywords: HELP STOP
          lastUpdatedOn: '2024-03-16 20:00:00'
          leaseReceiptAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
          messageSenderUrl: https://some-company.com/
          messageType: SMS
          migrationLetterAttachmentUrl: https://www.example.com/migrationLetter
          optInConfirmationMessage: You have successfully opted in to receive messages from us.
          optInExplanation: By opting in, you agree to receive messages from us.
          optInType:
            - WEB
          optInTypeOther: ''
          optOutExplanation: To opt out, reply STOP to this message.
          optOutMessage: You have successfully opted out of receiving messages from us.
          privacyPolicyUrl: https://www.example.com/privacy
          programDescription: This program is designed to provide alerts to customers.
          programType: ALERTS
          shortCodeLeaseContactEmail: contact@example.com
          shortCodeLeaseLength: 3 months
          shortCodePhoneNumber: '12345'
          shortCodeType: RANDOM
          termsAndConditionsAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
          termsAndConditionsUrl: https://some-company.com/terms-and-conditions
          version: 0
          brandType: STANDARD
          legalEntityType: CORPORATION
          organizationName: Bandwidth Inc.
          registrationCountryCodeA3: USA
          stockMarketSymbol: BAND
          federalTaxId: '123456789'
          dunsNumber: 12-345-6789
          giinNumber: A1B2C3.00000.LE.124
          legalEntityId: 506700GE1G29325QX363
          subsidiariesAndLegalAffiliates: Subsidiary 1, Subsidiary 2, Legal Affiliate 1
        errors: []
        links:
          - href: /campaigns/1234fghij
            method: GET
            rel: get
          - href: /campaigns/1234fghij/history
            method: GET
            rel: get history
          - href: /campaigns
            method: POST
            rel: create
          - href: /campaigns/1234fghij
            method: PUT
            rel: update
    listCampaignsResponseExample:
      value:
        data:
          - accountId: '123123123'
            addressId: 1234abcd56ef
            billingType: STANDARD_SMS
            callToActionSample: Visit our website at www.example.com
            callToActionType:
              - WEB
              - RADIO
            campaignId: '123123123'
            campaignName: My Campaign
            campaignStatus: PENDING_USE_CASE_REVIEW
            carrierStatus: []
            countryCodeA3: USA
            createdOn: '2024-03-16 14:00:00'
            customerProfileId: abcde1234
            customerProfileName: Customer Profile Name
            customerProvidedShortCode: '56798'
            customerSupportEmail: user@example.com
            customerSupportPhoneNumber: '+18881112222'
            customerSupportUrl: https://www.example.com/support
            deleted: false
            doubleOptInMessage: >-
              Reply Y to confirm that you would like to receive messages from
              us.
            estimatedDailyVolumeMms: 0-10,000
            estimatedDailyVolumeSms: 10,001-50,000
            exampleAdvertisementAttachmentUrl: https://www.example.com/advertisementAttachment
            exampleAdvertisementUrl: https://www.example.com/advertisement
            exampleAlertMessage: >-
              Hello John Doe! Dont miss out on the amazing discounts we have for
              you. Visit https://test.com/someId to get your discount. STOP to
              opt out
            exampleSecondAlertMessage: >-
              Hello John Doe! We noticed there were some items left in your
              shopping cart. Please visit https://test.com/someId to finish
              shopping. STOP to opt out
            feedback:
              - comment: We dont think you are a legit company, prove it!
                createdOn: '2024-03-16 14:00:00'
                userName: bw-reviewer
            helpMessage: Thanks for reaching out. Contact us at www.example.com
            isAdultContent: false
            isMigratedShortCode: true
            isSelfOwned: true
            keywords: HELP STOP
            lastUpdatedOn: '2024-03-16 20:00:00'
            leaseReceiptAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
            messageSenderUrl: https://some-company.com/
            messageType: SMS
            migrationLetterAttachmentUrl: https://www.example.com/migrationLetter
            optInConfirmationMessage: You have successfully opted in to receive messages from us.
            optInExplanation: By opting in, you agree to receive messages from us.
            optInType:
              - WEB
            optInTypeOther: ''
            optOutExplanation: To opt out, reply STOP to this message.
            optOutMessage: You have successfully opted out of receiving messages from us.
            privacyPolicyUrl: https://www.example.com/privacy
            programDescription: This program is designed to provide alerts to customers.
            programType: ALERTS
            shortCodeLeaseContactEmail: contact@example.com
            shortCodeLeaseLength: 3 months
            shortCodePhoneNumber: ''
            shortCodeType: RANDOM
            termsAndConditionsAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
            termsAndConditionsUrl: https://some-company.com/terms-and-conditions
            version: 0
            brandType: STANDARD
            legalEntityType: CORPORATION
            organizationName: Bandwidth Inc.
            registrationCountryCodeA3: USA
            stockMarketSymbol: BAND
            federalTaxId: '123456789'
            dunsNumber: 12-345-6789
            giinNumber: A1B2C3.00000.LE.124
            legalEntityId: 506700GE1G29325QX363
            subsidiariesAndLegalAffiliates: Subsidiary 1, Subsidiary 2, Legal Affiliate 1
          - accountId: '123123123'
            addressId: 1234abcd56ef
            billingType: STANDARD_SMS
            callToActionSample: Visit our website at www.example.com
            callToActionType:
              - WEB
              - RADIO
            campaignId: '456456456'
            campaignName: My Campaign
            campaignStatus: APPROVED
            carrierStatus:
              - activatedDate: '2024-03-16'
                modifiedDate: '2024-03-16'
                carrierId: ATT
                status: ACTIVE
              - activatedDate: '2024-03-16'
                modifiedDate: '2024-03-16'
                carrierId: TMOBILE
                status: ACTIVE
              - activatedDate: '2024-03-16'
                modifiedDate: '2024-03-16'
                carrierId: VERIZON
                status: ACTIVE
            countryCodeA3: USA
            createdOn: '2024-03-16 14:00:00'
            customerProfileId: abcde1235
            customerProfileName: Customer Profile Name
            customerProvidedShortCode: '67890'
            customerSupportEmail: user@example.com
            customerSupportPhoneNumber: '+18881112222'
            customerSupportUrl: https://www.example.com/support
            deleted: false
            doubleOptInMessage: >-
              Reply Y to confirm that you would like to receive messages from
              us.
            estimatedDailyVolumeMms: 0-10,000
            estimatedDailyVolumeSms: 10,001-50,000
            exampleAdvertisementAttachmentUrl: https://www.example.com/advertisementAttachment
            exampleAdvertisementUrl: https://www.example.com/advertisement
            exampleAlertMessage: >-
              Hello John Doe! Dont miss out on the amazing discounts we have for
              you. Visit https://test.com/someId to get your discount. STOP to
              opt out
            exampleSecondAlertMessage: >-
              Hello John Doe! We noticed there were some items left in your
              shopping cart. Please visit https://test.com/someId to finish
              shopping. STOP to opt out
            feedback: []
            helpMessage: Thanks for reaching out. Contact us at www.example.com
            isAdultContent: false
            isMigratedShortCode: true
            isSelfOwned: true
            keywords: HELP STOP
            lastUpdatedOn: '2024-03-16 20:00:00'
            leaseReceiptAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
            messageSenderUrl: https://some-company.com/
            messageType: SMS
            migrationLetterAttachmentUrl: https://www.example.com/migrationLetter
            optInConfirmationMessage: You have successfully opted in to receive messages from us.
            optInExplanation: By opting in, you agree to receive messages from us.
            optInType:
              - WEB
            optInTypeOther: ''
            optOutExplanation: To opt out, reply STOP to this message.
            optOutMessage: You have successfully opted out of receiving messages from us.
            privacyPolicyUrl: https://www.example.com/privacy
            programDescription: This program is designed to provide alerts to customers.
            programType: ALERTS
            shortCodeLeaseContactEmail: contact@example.com
            shortCodeLeaseLength: 3 months
            shortCodePhoneNumber: '67890'
            shortCodeType: RANDOM
            termsAndConditionsAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
            termsAndConditionsUrl: https://some-company.com/terms-and-conditions
            version: 2
            brandType: STANDARD
            legalEntityType: CORPORATION
            organizationName: Bandwidth Inc.
            registrationCountryCodeA3: USA
            stockMarketSymbol: BAND
            federalTaxId: '123456789'
            dunsNumber: 12-345-6789
            giinNumber: A1B2C3.00000.LE.124
            legalEntityId: 506700GE1G29325QX363
            subsidiariesAndLegalAffiliates: Subsidiary 1, Subsidiary 2, Legal Affiliate 1
        errors: []
        links:
          - href: /campaigns
            method: GET
            rel: get
          - href: /campaigns
            method: POST
            rel: create
          - href: /campaigns
            method: GET
            rel: first
          - href: /campaigns?offset=99000&limit=1000
            method: GET
            rel: last
          - href: ''
            method: GET
            rel: previous
          - href: /campaigns?offset=1000&limit=1000
            method: GET
            rel: next
        page:
          pageNumber: 1
          pageSize: 50
          totalElements: 2
          totalPages: 1
    shortCodeCampaign401ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '401'
            description: Client is providing incorrect or invalid credentials
            type: Unauthorized
        links: []
    shortCodeCampaign403ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '403'
            description: Client does not have access rights to the content
            type: Forbidden
        links: []
    shortCodeCampaign404ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '404'
            description: >-
              Cannot find resource
              /api/v2/accounts/9900010/shortcodes/campaigns/abcde1234
            source:
              reference: /api/v2/accounts/9900010/shortcodes/campaigns/abcde1234
            type: Not Found
        links: []
    shortCodeCampaign405ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '405'
            description: The HTTP method used is not supported by this resource
            type: Method Not Allowed
        links: []
    shortCodeCampaign429ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '429'
            description: >-
              Rate limit exceeded. Wait for the time specified in the
              'Retry-After' header before sending another request
            type: Too Many Requests
        links: []
    shortCodeCampaign500ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '500'
            description: Unexpected internal server error
            type: Internal Server Error
        links: []
    shortCodeCampaignCampaignId400ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '400'
            description: '''campaignId'' cannot be null'
            source:
              parameter: campaignId
            type: Bad Request
        links: []
    shortCodeCampaignCustomerProfileId400ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '400'
            description: '''customerProfileId'' cannot be null'
            source:
              field: customerProfileId
            type: Bad Request
        links: []
    shortCodeCampaignDocument400ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '400'
            description: >-
              Invalid file extension, must be one of the following types: [.pdf,
              .jpeg, .jpg, .doc, .docx, .csv, .png]
            type: Bad Request
          - code: '400'
            description: '''file'' cannot be null'
            type: Bad Request
          - code: '400'
            description: '''file'' exceeds the maximum file size of 10MB'
            type: Bad Request
        links: []
    shortCodeCampaignFeedbackComment400ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '400'
            description: '''comment'' cannot be null'
            source:
              field: comment
            type: Bad Request
        links: []
    shortCodeCampaignUploadUrl404ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '404'
            description: >-
              Cannot find resource
              /api/v2/accounts/9900010/shortcodes/documents/fdw3-231w-jeu2-11pt
            source:
              reference: >-
                /api/v2/accounts/9900010/shortcodes/documents/fdw3-231w-jeu2-11pt
            type: Not Found
        links: []
    shortCodeCampaignWebhookSubscription400ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '400'
            description: '''callbackUrl'' cannot be null'
            source:
              field: callbackUrl
            type: Bad Request
        links: []
    shortCodeCampaignWebhookSubscription404ResponseErrorExample:
      value:
        data: null
        errors:
          - code: '404'
            description: >-
              Cannot find resource
              /api/v2/accounts/9900010/shortcodes/campaigns/webhooks/subscriptions
            source:
              reference: >-
                /api/v2/accounts/9900010/shortcodes/campaigns/webhooks/subscriptions
            type: Not Found
        links: []
    updateCampaignResponseExample:
      value:
        data:
          accountId: '123123123'
          addressId: 1234abcd56ef
          billingType: STANDARD_SMS
          callToActionSample: Visit our website at www.example.com
          callToActionType:
            - WEB
            - RADIO
          campaignId: '123123123'
          campaignName: My Campaign
          campaignStatus: PENDING_USE_CASE_REVIEW
          countryCodeA3: USA
          createdOn: '2024-03-16 14:00:00'
          customerProfileId: abcde1234
          customerProfileName: Customer Profile Name
          customerProvidedShortCode: '56798'
          customerSupportEmail: user@example.com
          customerSupportPhoneNumber: '+18881112222'
          customerSupportUrl: https://www.example.com/support
          deleted: false
          doubleOptInMessage: Reply Y to confirm that you would like to receive messages from us.
          estimatedDailyVolumeMms: 0-10,000
          estimatedDailyVolumeSms: 10,001-50,000
          exampleAdvertisementAttachmentUrl: https://www.example.com/advertisementAttachment
          exampleAdvertisementUrl: https://www.example.com/advertisement
          exampleAlertMessage: >-
            Hello John Doe! Dont miss out on the amazing discounts we have for
            you. Visit https://test.com/someId to get your discount. STOP to opt
            out
          exampleSecondAlertMessage: >-
            Hello John Doe! We noticed there were some items left in your
            shopping cart. Please visit https://test.com/someId to finish
            shopping. STOP to opt out
          helpMessage: Thanks for reaching out. Contact us at www.example.com
          isAdultContent: false
          isMigratedShortCode: true
          isSelfOwned: true
          keywords: HELP STOP
          lastUpdatedOn: '2024-03-16 20:00:00'
          leaseReceiptAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
          messageSenderUrl: https://some-company.com/
          messageType: SMS
          migrationLetterAttachmentUrl: https://www.example.com/migrationLetter
          optInConfirmationMessage: You have successfully opted in to receive messages from us.
          optInExplanation: By opting in, you agree to receive messages from us.
          optInType:
            - WEB
          optInTypeOther: ''
          optOutExplanation: To opt out, reply STOP to this message.
          optOutMessage: You have successfully opted out of receiving messages from us.
          privacyPolicyUrl: https://www.example.com/privacy
          programDescription: This program is designed to provide alerts to customers.
          programType: ALERTS
          shortCodeLeaseContactEmail: contact@example.com
          shortCodeLeaseLength: 3 months
          shortCodePhoneNumber: ''
          shortCodeType: RANDOM
          termsAndConditionsAttachmentUrl: https://s3.amazonaws.com/bw-athena-attachments/1234
          termsAndConditionsUrl: https://some-company.com/terms-and-conditions
          version: 2
          brandType: STANDARD
          legalEntityType: CORPORATION
          organizationName: Bandwidth Inc.
          registrationCountryCodeA3: USA
          stockMarketSymbol: BAND
          federalTaxId: '123456789'
          dunsNumber: 12-345-6789
          giinNumber: A1B2C3.00000.LE.124
          legalEntityId: 506700GE1G29325QX363
          subsidiariesAndLegalAffiliates: Subsidiary 1, Subsidiary 2, Legal Affiliate 1
        errors: []
        links:
          - href: /campaigns/1234fghij
            method: GET
            rel: get
          - href: /campaigns/1234fghij/history
            method: GET
            rel: get history
          - href: /campaigns
            method: POST
            rel: create
          - href: /campaigns/1234fghij
            method: PUT
            rel: update
    updateShortCodeCampaignWebhookSubscriptionResponseExample:
      value:
        data:
          basicAuthentication:
            username: username
          callbackUrl: https://your_url.com/webhookService
          webhookSubscriptionId: 2S6KcOBPfmQrifODi3OBTj
        errors: []
        links:
          - href: /campaigns/webhooks/subscriptions/2S6KcOBPfmQrifODi3OBTj
            method: GET
            rel: self
          - href: /campaigns/webhooks/subscriptions
            method: POST
            rel: create
          - href: /campaigns/webhooks/subscriptions/2S6KcOBPfmQrifODi3OBTj
            method: PUT
            rel: replace
          - href: /campaigns/webhooks/subscriptions/2S6KcOBPfmQrifODi3OBTj
            rel: delete
