openapi: 3.0.2
info:
  title: Inxmail Professional REST API
  description: |
    #### OpenAPI specification for Inxmail Professional REST API
    
    All requests are scoped to a single Inxmail Professional customer and performed via the secure HTTPS protocol.
    
    Inxmail Professional REST API is available through two base URLs.
    As a customer of the Inxmail Platform, you can use the Inxmail Platform base URL, which provides the latest authentication mechanism. 
    If you are not an Inxmail Platform customer, you have to continue using the Inxmail Professional base URL.
    
    #### Base URLs
    
    - **Inxmail Platform base URL**: `https://{space-alias}.api.inxmail.com/rest/v1`
    - **Inxmail Professional base URL** (deprecated): `https://api.inxmail.com/{alias}/rest/v1`
    
    #### Parameters
    
    - `space-alias`: The alias of your space in the Inxmail Platform identifying the Inxmail Professional customer
    - `alias`: The alias identifying the Inxmail Professional customer
    
    #### Find your space alias
    
    For the Inxmail Platform base URL you need the space alias. Determine your space alias from the URL of your space in the Inxmail Platform. 
    It's the part between `https://` and `.my.inxmail.de`:
    
    Example: `https://my_space_alias.my.inxmail.de/`
    
    #### Credentials
    
    To create credentials for accessing the API via the Platform base URL, please refer to:
    [Online Help - Create API credentials](https://help.inxmail.com/en/content/xnew/inxmail_id/api-zugaenge_anlegen.htm)
    
    For the Inxmail Professional base URL, please contact Inxmail support to create credentials for you.
    
    > **Warning:** Credentials for the Inxmail Professional base URL will not work with the Inxmail Platform base URL.
  version: "4.8.85"
servers:
  - url: https://{space-alias}.api.inxmail.com/rest/v1
    description: "Inxmail Platform"
    variables:
      space-alias:
        default: "space-alias"
  - url: https://api.inxmail.com/{alias}/rest/v1
    description: "Inxmail Professional - (deprecated)"
    variables:
      alias:
        default: "alias"



security:
  - basicAuth: [ ]
tags:
  - name: recipients
    description: Everything about recipients
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#recipients
  - name: imports
    description: Everything about recipient imports
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#recipient-import
  - name: advanced-imports
    description: Everything about advanced-imports
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#advanced-recipient-import
  - name: lists
    description: Everything about mailing lists
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#mailing-lists
  - name: listsettings
    description: Everything about mailing list settings
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#list-settings
  - name: subscriptionEvents
    description: Everything about subscriptions
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#subscription-events
  - name: unsubscriptionEvents
    description: Everything about unsubscriptions
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#unsubscription-events
  - name: attributes
    description: Everything about attributes
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#_retrieve_recipient_attributes_collection
  - name: blacklistEntries
    description: Everything about blacklists
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#blacklist-entries
  - name: mailings
    description: Everything about mailings
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#mailings
  - name: regularMailings
    description: Everything about regular mailings
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#regularmailings
  - name: mailingLinks
    description: Everything about mailing links
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#mailing-links
  - name: mailingOperations
    description: Everything about mailing operations
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#mailing-opertaions
  - name: webBeaconHits
    description: Everything about web beacon hits
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#web-beacon-hits
  - name: clicks
    description: Everything about clicks
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#clicks
  - name: bounces
    description: Everything about bounces
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#bounces
  - name: mailingApprovals
    description: Everything about mailing approvals
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#approvals
  - name: splitTestMailings
    description: Everything about mailing split test mailings
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#splittestmailings
  - name: actionMailings
    description: Everything about action mailings
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#actionmailings
  - name: triggerMailings
    description: Everything about mailing split test mailings
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#triggermailings
  - name: subscriptionMailings
    description: Everything about subscription mailings
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#subscriptionmailings
  - name: memberships
    description: Everything about memberships
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#memberships
  - name: testProfiles
    description: Everything about test profiles
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#test-profiles
  - name: targetGroups
    description: Everything about test profiles
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#target-groups
  - name: responseStatistics
    description: Everything about response statistics
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#response-statistics
  - name: sendingStatistics
    description: Everything about response statistics
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#sending-statistics
  - name: textModules
    description: Everything about text modules
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#text-modules
  - name: testMailGroups
    description: Everything about test mail group groups
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#test-mail-groups
  - name: testSendings
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#test-sendings
  - name: temporaryPreview
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#temporary-preview
  - name: designCollection
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#design-collections
  - name: datasources
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#datasources
  - name: actiontriggers
    description: Everything about action triggers
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#action-triggers
  - name: serverInfo
    description: Information about the server
    externalDocs:
      description: Find out more
      url: https://apidocs.inxmail.com/xpro/rest/v1/#serverinfo

paths:
  /actions:
    get:
      tags:
        - actiontriggers
      description: A **GET** will return the requested list of action triggers.
      parameters:
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/afterId'
      responses:
        "200":
          description: Action triggers received
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:action-triggers:
                        $ref: '#/components/schemas/actions'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - actiontriggers
      description: A **POST** will create and return action trigger.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/actioncreateRequest'
      responses:
        "201":
          description: Action trigger is created
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/action'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForActionTriggers'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
        "400":
          description: Provided action trigger is not valid
  /actions/{id}:
    get:
      tags:
        - actiontriggers
      description: A **GET** request with an ID parameter will return the requested action trigger.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Action trigger retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/action'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForActionTriggers'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
    delete:
      tags:
        - actiontriggers
      description: A **DELETE** request with an ID parameter will remove requested action trigger.
      parameters:
        - name: id
          in: path
          required: true
          description: The Id of the actiontrigger to be deleted
          schema:
            type: integer
      responses:
        "204":
          description: No
        "404":
          description: actiontrigger with the given id could not be found
    put:
      tags:
        - actiontriggers
      description: A PUT request with the following payload structure will replace an existing action trigger. Violations of the constraints will lead to validation errors.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/actioncreateRequest'
      parameters:
        - name: id
          in: path
          required: true
          description: The Id of the actiontrigger to be updated
          schema:
            type: integer
      responses:
        "200":
          description: Action trigger is update
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/action'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForActionTriggers'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
        "400":
          description: Provided action trigger is not valid
        "404":
          description: Action trigger with the given id could not be found
  /design-collections:
    get:
      tags:
        - designCollection
      description:
        A **GET** request will return the requested list of design collection.
      responses:
        "200":
          description: List of design collections retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:designcollections:
                        $ref: '#/components/schemas/designCollections'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'

  /design-collections/{id}:
    get:
      tags:
        - designCollection
      description: A **GET** request with an ID parameter will return the requested design collection.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Design collection retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/designCollection'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForDesignCollections'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'

  /statistics/responses:
    get:
      tags:
        - responseStatistics
      description:
        A **GET** request with a mailing ID parameter will return the requested response statistics.
      parameters:
        - name: mailingId
          in: query
          required: true
          schema:
            type: integer
        - name: includeTypeData
          description: provides per type statistics
          in: query
          required: false
          schema:
            type: boolean
        - name: includeLinkData
          description: Include the clicks by type data, includeLinkData must be true
          in: query
          required: false
          schema:
            type: boolean
      responses:
        "200":
          description: Response statistics retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/responseStatistics'



  /statistics/sendings:
    get:
      tags:
        - sendingStatistics
      description: A **GET** request with an mailing ID parameter will return the requested sending statistics.
      parameters:
        - name: mailingId
          in: query
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Sending statistics retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/sendingStatistics'
  /statistics/lists/{listId}/bounces/hourly:
    get:
      tags:
        - listBouncesHourlyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested hourly bounces statistics. With max timeframe of 100 hours.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-05-15T00:22Z
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current time +1 hour is used
          example: 2024-05-16T14:33Z
          schema:
            type: string
      responses:
        "200":
          description: Hourly bounce statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/hourlyListBouncesStatisticsResponse'
        "400":
          description: Timeframe is more than 100 hours. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found
  /statistics/lists/{listId}/bounces/daily:
    get:
      tags:
        - listBouncesDailyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested daily bounces statistics. With max timeframe of 100 days.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-04-18
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 day is used
          example: 2024-05-22
          schema:
            type: string
      responses:
        "200":
          description: Daily bounce statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/dailyListBouncesStatisticsResponse'
        "400":
          description: Timeframe is more than 100 days. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found
  /statistics/lists/{listId}/bounces/weekly:
    get:
      tags:
        - listBouncesWeeklyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested weekly bounces statistics. With max timeframe of 100 weeks.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-W10
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 week is used
          example: 2024-W22
          schema:
            type: string
      responses:
        "200":
          description: Weekly bounce statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/weeklyListBouncesStatisticsResponse'
        "400":
          description: Timeframe is more than 100 weeks. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found
  /statistics/lists/{listId}/bounces/monthly:
    get:
      tags:
        - listBouncesMonthlyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested monthly bounces statistics. With max timeframe of 15 months.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-01
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 month is used
          example: 2024-06
          schema:
            type: string
      responses:
        "200":
          description: Monthly bounce statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/monthlyListBouncesStatisticsResponse'
        "400":
          description: Timeframe is more than 15 months. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found

  /statistics/lists/{listId}/subscription/hourly:
    get:
      tags:
        - listSubscriptionsHourlyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested hourly subscription statistics. With max timeframe of 100 hours.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-05-15T00:22Z
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current time +1 hour is used
          example: 2024-05-16T14:33Z
          schema:
            type: string
      responses:
        "200":
          description: Hourly subscription statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/hourlyListSubscriptionsStatisticsResponse'
        "400":
          description: Timeframe is more than 100 hours. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found
  /statistics/lists/{listId}/subscriptions/daily:
    get:
      tags:
        - listBouncesDailyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested daily subscriptions statistics. With max timeframe of 100 days.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-04-18
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 day is used
          example: 2024-05-22
          schema:
            type: string
      responses:
        "200":
          description: Daily subscription statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/dailyListSubscriptionsStatisticsResponse'
        "400":
          description: Timeframe is more than 100 days. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found
  /statistics/lists/{listId}/subscriptions/weekly:
    get:
      tags:
        - listBouncesWeeklyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested weekly subscriptions statistics. With max timeframe of 100 weeks.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-W10
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 week is used
          example: 2024-W22
          schema:
            type: string
      responses:
        "200":
          description: Weekly subscriptions statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/weeklyListSubscriptionsStatistics'
        "400":
          description: Timeframe is more than 100 weeks. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found
  /statistics/lists/{listId}/subscriptions/monthly:
    get:
      tags:
        - listBouncesMonthlyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested monthly subscriptions statistics. With max timeframe of 15 months.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-01
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 month is used
          example: 2024-06
          schema:
            type: string
      responses:
        "200":
          description: Monthly subscription statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/monthlyListSubscriptionsStatisticsResponse'
        "400":
          description: Timeframe is more than 15 months. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found

  /statistics/regular-mailings/{mailingId}/clicks/hourly:
    get:
      tags:
        - regularMailingClicksHourlyStatistics
      description: A **GET** request with mailing ID and duration parameter will return the requested hourly clicks statistics. With max timeframe of 100 hours starting from the first click.
      parameters:
        - name: mailingId
          in: path
          required: true
          schema:
            type: integer
        - name: duration
          in: query
          required: false
          description: Amount of hours since the first click. If not provided default value = 100 is used. Should not be negative or 0.
          example: 20
          schema:
            type: integer
      responses:
        "200":
          description: Hourly clicks statistics for provided mailing is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/hourlyRegularMailingClicksStatisticsResponse'
        "400":
          description: Duration is out of range [1;100].
        "404":
          description: Mailing with provided id could not be found
  /statistics/regular-mailings/{mailingId}/clicks/daily:
    get:
      tags:
        - regularMailingClicksDailyStatistics
      description: A **GET** request with mailing ID and duration parameter will return the requested daily clicks statistics. With max timeframe of 100 days starting from the first click.
      parameters:
        - name: mailingId
          in: path
          required: true
          schema:
            type: integer
        - name: duration
          in: query
          required: false
          description: Amount of days since the first click. If not provided default value = 100 is used. Should not be negative or 0.
          example: 20
          schema:
            type: integer
      responses:
        "200":
          description: Daily clicks statistics for provided mailing is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/dailyRegularMailingClicksStatisticsResponse'
        "400":
          description: Duration is out of range [1;100].
        "404":
          description: Mailing with provided id could not be found
  /statistics/lists/{listId}/tlds:
    parameters:
      - name: resultSize
        in: query
        required: false
        description: How many top level domains should be included, the excluded ones are summarized in otherDomainsRecipientCount.
        schema:
          maximum: 50
          minimum: 0
          default: 50
          type: integer
      - name: listId
        in: path
        required: true
        description: the list id
        schema:
          type: integer

    get:
      tags:
        - listToplevelDomainStatisics
      responses:
        "200":
          description: Top level domain statistics by list
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/topLevelDomainStatistics'
        "404":
          description: List with the given id can't be found
        "400":
          description: Provided listId is not system or standard list
  /statistics/lists/{listId}/domains:
    parameters:
      - name: resultSize
        in: query
        required: false
        description: How many top  domains should be included, the excluded ones are summarized in otherDomainsRecipientCount.
        schema:
          maximum: 50
          minimum: 0
          default: 50
          type: integer
      - name: listId
        in: path
        required: true
        description: the list id
        schema:
          type: integer

    get:
      tags:
        - listdomainStatisics
      responses:
        "200":
          description: Domain statistics by list
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/domainStatistics'
        "404":
          description: List with the given id can't be found
        "400":
          description: Provided listId is not system or standard list

  /statistics/lists/{listId}/sent-mailings/hourly:
    get:
      tags:
        - sentMailingHourlyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested hourly sent mailing statistics. With max timeframe of 100 hours.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-05-15T00:22Z
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current time +1 hour is used
          example: 2024-05-16T14:33Z
          schema:
            type: string
      responses:
        "200":
          description: Hourly sent mailings statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/hourlyListSentMailingStatistics'
        "400":
          description: Timeframe is more than 100 hours. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found
  /statistics/lists/{listId}/sent-mailings/daily:
    get:
      tags:
        - sentMailingDailyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested daily sent mailing statistics. With max timeframe of 100 days.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-04-18
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 day is used
          example: 2024-05-22
          schema:
            type: string
      responses:
        "200":
          description: Daily sent mailing statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/dailyListSentMailingStatistics'
        "400":
          description: Timeframe is more than 100 days. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found
  /statistics/lists/{listId}/sent-mailings/weekly:
    get:
      tags:
        - sentMailingWeeklyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested weekly sent mailing statistics. With max timeframe of 100 weeks.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-W10
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 week is used
          example: 2024-W22
          schema:
            type: string
      responses:
        "200":
          description: Weekly sent mailing statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/weeklyListSentMailingStatistics'
        "400":
          description: Timeframe is more than 100 weeks. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found
  /statistics/lists/{listId}/sent-mailings/monthly:
    get:
      tags:
        - sentMailingMonthlyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested monthly sent mailing statistics. With max timeframe of 15 months.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-01
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 month is used
          example: 2024-06
          schema:
            type: string
      responses:
        "200":
          description: Monthly sent mailing statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/monthlyListSentMailingStatistics'
        "400":
          description: Timeframe is more than 15 months. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found

  /statistics/lists/{listId}/email-client-types/monthly:
    get:
      tags:
        - usedEmailClientsMonthlyStatistics
      description: A **GET** request with list ID, start, end parameters will return the requested monthly used email clients statistics. With max timeframe of 15 months.
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: integer
        - name: start
          in: query
          required: true
          description: value is inclusive
          example: 2024-01
          schema:
            type: string
        - name: end
          in: query
          required: false
          description: value is exclusive. If not provided then current date +1 month is used
          example: 2024-06
          schema:
            type: string
      responses:
        "200":
          description: Monthly used email clients statistics for provided list is retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/monthlyListUsedEmailClientsStatisticsResponse'
        "400":
          description: Timeframe is more than 15 months. Or start and end are same. Or start is after end.
        "404":
          description: List with provided id could not be found

  /text-modules/{id}:
    get:
      tags:
        - textModules
      description: A **GET** request with an ID parameter will return the requested text module.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: embedded
          in: query
          required: false
          schema:
            enum:
              - inx:recipient-attributes
              - inx:dynamic-parameters
              - inx:editor-content
      responses:
        "200":
          description: Text module retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/textModule'
                  - properties:
                      embedded:
                        properties:
                          inx:recipient-attributes:
                            $ref: '#/components/schemas/textModuleRecipientAttribute'
                          inx:dynamic-parameters:
                            $ref: '#/components/schemas/dynamicParameters'
                          inx:editor-content:
                            $ref: '#/components/schemas/editorContent'
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForTextModules'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
    put:
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the text module.
      tags:
        - textModules
      description: A **PUT** request with the following request body will update the text module with the given id.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: The new name of the text module.
                text:
                  type: string
                  description: The new text content of the text module. (Required if type is set to *TEXT* or *TEXT_HTML*, will only then be saved in the database).
                html:
                  type: string
                  description: The new html content of the text module. (Required if type is set to *HTML* or *TEXT_HTML*, will only then be saved in the database).
      responses:
        "200":
          description: Updated text module
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: The id of the updated text module.
                  name:
                    type: string
                    description: The name of the updated text module.
                  listId:
                    type: integer
                    description: The id of the list that the text module belongs to.
                  type:
                    type: string
                    enum:
                      - TEXT
                      - HTML
                      - TEXT_HTML
                    description: The content format type of the updated module.
                  text:
                    type: string
                    description: The text content of the updated text module. Will only be included in the response if type is set to TEXT or TEXT_HTML.
                  html:
                    type: string
                    description: The html content of the updated text module. Will only be included in the response if type is set to HTML or TEXT_HTML.
                  creationDate:
                    type: string
                    format: date-time
                    description: Date of text module's creation
                  modificationDate:
                    type: string
                    format: date-time
                    description: Date of text module's modification
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
    delete:
      tags:
        - textModules
      description: A **DELETE** request with an ID parameter will delete the text module with that id.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          required: true
          description: The ID of the text module
      responses:
        "204":
          description: Text module has been successfully deleted
        "404":
          description: Text module does not exist
  /text-modules/{id}/recipient-attributes:
    get:
      tags:
        - textModules
      description: A **GET** request with an ID parameter will return the  recipient attributes that are used within the requested text module.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the text module.
      responses:
        "200":
          description: The recipient attributes that are being used in the text module content based on content type.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  textRecipientAttributes:
                    type: array
                    description: Array containing all used recipient attributes in the Text content.
                    items:
                      allOf:
                        - $ref: '#/components/schemas/textModuleRecipientAttribute'
                  htmlRecipientAttributes:
                    type: array
                    description: Array containing all used recipient attributes in the HTML content.
                    items:
                      allOf:
                        - $ref: '#/components/schemas/textModuleRecipientAttribute'
                  _links:
                    properties:
                      self:
                        allOf:
                          - $ref: '#/components/schemas/halSelfCurie'
  /text-modules:
    get:
      tags:
        - textModules
      description: A **GET** request on the text module resource will return the first page of text modules.
      parameters:
        - name: listId
          in: query
          required: false
          schema:
            type: integer
          description: The ID of the list to retrieve text modules for. To receive global text modules use listId=1.
        - name: lastUpdateSince
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: the filter from which lastUpdate date the text modules should be included
        - name: If-modified-since
          in: header
          required: false
          schema:
            type: string
            format: date-time
      responses:
        "200":
          description: Text modules retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:text-modules:
                        $ref: '#/components/schemas/textModules'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - textModules
      description: A **POST** request with the following request body creates a text module for a specific list.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              required:
                - name
                - listId
                - type
              properties:
                name:
                  type: string
                  description: The name of the text module.
                listId:
                  type: integer
                  description: The id of the list that the text module should be created on.
                type:
                  type: string
                  enum:
                    - TEXT
                    - HTML
                    - TEXT_HTML
                  description: The content format type of the module.
                text:
                  type: string
                  description: The text content of the text module. (Required if type is set to *TEXT* or *TEXT_HTML*, will only then be saved in the database).
                html:
                  type: string
                  description: The html content of the text module. (Required if type is set to *HTML* or *TEXT_HTML*, will only then be saved in the database).
      responses:
        "201":
          description: Newly created text module
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: The id of the created text module.
                  name:
                    type: string
                    description: The name of the created text module.
                  listId:
                    type: integer
                    description: The id of the list that the text module belongs to.
                  type:
                    type: string
                    enum:
                      - TEXT
                      - HTML
                      - TEXT_HTML
                    description: The content format type of the created module.
                  text:
                    type: string
                    description: The text content of the newly created text module. Will only be included in the response if type is set to TEXT or TEXT_HTML.
                  html:
                    type: string
                    description: The html content of the newly created text module. Will only be included in the response if type is set to HTML or TEXT_HTML.
                  creationDate:
                    type: string
                    format: date-time
                    description: Date of text module's creation
                  modificationDate:
                    type: string
                    format: date-time
                    description: Date of text module's modification
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
  /test-mail-groups/{id}:
    get:
      tags:
        - testMailGroups
      description: A **GET** request with an ID parameter will return the requested test mail group.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the test profile
      responses:
        "200":
          description: Test mail groups
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/testMailGroup'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForTestMailGroups'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
  /test-mail-groups:
    get:
      tags:
        - testMailGroups
      description: A **GET** request on the test mail group resource will return the first page of the test mail group.
      responses:
        "200":
          description: Test mail groups retrieved
          content:
            applcation/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:test-mail-groups:
                        $ref: '#/components/schemas/testMailGroups'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
  /test-sendings:
    post:
      tags:
        - testSendings
      description: A **POST** request with the following request body creates a test sending.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                mailingId:
                  type: integer
                  description: The ID of the mailing to be sent in the test sending
                testMailGroupId:
                  type: integer
                  description: The ID of the test mail group to which the test Sending will be sent
                recipientIds:
                  type: array
                  items:
                    type: integer
                  description: The IDs of the recipients used to create the rendering of the mailing. Not used for sending.
                testProfileIds:
                  type: array
                  items:
                    type: integer
                  description: The IDs of the test profiles used to create the rendering of the mailing. Not used for sending.
      responses:
        "202":
          description: Accepted
  /temporary-preview:
    post:
      tags:
        - temporaryPreview
      description: A **POST** request with the following request body creates a preview.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                listId:
                  type: integer
                  required:
                    - not null
                  description: The ID of the list
                recipientId:
                  type: integer
                  description: The ID of the recipient is used for personalisation. The field cannot be set if the parameter testProfileId is used.
                    If neither recipientId nor testProfileId is set, a dummy recipient with the email address unknown@unknown.invalid is used.
                testProfileId:
                  type: integer
                  description: The test profile id is used for personalization. The field cannot be set, if the parameter recipientId is used.
                    If neither recipientId nor testProfileId is set, a dummy recipient with the email address unknown@unknown.invalid is used.
                html:
                  type: string
                  description: The HTML part of the preview
                text:
                  type: string
                  description: The text part of the preview
                subject:
                  type: string
                  required:
                    - not null
                  description: The subject of the mailing
      responses:
        "200":
          description: Preview created
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  recipientId:
                    type: integer
                  testProfileId:
                    type: integer
                  subject:
                    type: string
                  listId:
                    type: integer
                  html:
                    type: string
                  text:
                    type: string
  /target-groups:
    get:
      tags:
        - targetGroups
      description: A **GET** request on the target group resource will return the first page of target groups.
      parameters:
        - name: listId
          in: query
          schema:
            type: integer
          required: false
          description: The ID of the list to retrieve target groups for. If not specified, the target groups of all lists are returned
        - name: lastUpdateSince
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: the filter from which lastUpdate date the target groups should be included
        - name: nameContainsIgnoreCase
          in: query
          required: false
          schema:
            type: string
          description: Filters the collection of target groups by name, ignoring case.
        - name: isHidden
          in: query
          description: When specified, it filters target groups based on their hidden status.
          required: false
          schema:
            type: boolean
        - name: If-modified-since
          in: header
          required: false
          schema:
            type: string
            format: date-time
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/afterId'
        - $ref: '#/components/parameters/beforeId'
        - $ref: '#/components/parameters/order'
      responses:
        "200":
          description: Target groups retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:target-groups:
                        allOf:
                          - $ref: '#/components/schemas/targetGroups'
                          - properties:
                              _links:
                                $ref: '#/components/schemas/linksForTargetGroups'
                  _links:
                    $ref: '#/components/schemas/links'
    post:
      tags:
        - targetGroups
      description: A **POST** request with the following payload structure will create a new target group.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              required:
                - name
                - listId
                - filterString
              properties:
                name:
                  type: string
                  description: The name of the target group
                  minLength: 1
                description:
                  type: string
                  description: The description of the target group
                listId:
                  type: integer
                  description: The listId of the new target group. You can use the listId 1 for the system list
                filterString:
                  type: string
                  description: The filter string of the target group
                hidden:
                  type: boolean
                  description: Whether the target group is hidden or not
      responses:
        "201":
          description: Target group created
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/targetGroup'
                  - properties:
                      _links:
                        properties:
                          self:
                            $ref: '#/components/schemas/halSelfCurie'
  /target-groups/{id}:
    get:
      tags:
        - targetGroups
      description: A **GET** request with an ID parameter will return the requested target group.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          required: true
          description: The ID of the target group
        - name: filterJson
          in: query
          schema:
            type: boolean
          required: false
          description: Enables json representation of filter condition

      responses:
        "200":
          description: Target group retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/targetGroup'
                  - properties:
                      _links:
                        properties:
                          inx:list:
                            $ref: '#/components/schemas/linkList'
                          curies:
                            $ref: '#/components/schemas/halCuriesLink'
    put:
      tags:
        - targetGroups
      description: A **PUT** request  will return the requested target group.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          required: true
          description: The ID of the target group
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the target group
                description:
                  type: string
                  description: The description of the target group
                filterString:
                  type: string
                  description: The filter string of the target group
      responses:
        "200":
          description: Target group updated
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/targetGroup'
                  - properties:
                      _links:
                        properties:
                          self:
                            $ref: '#/components/schemas/halSelfCurie'
    delete:
      tags:
        - targetGroups
      description: A **DELETE** request with an ID parameter will delete the requested target group.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          required: true
          description: The ID of the target group
      responses:
        "204":
          description: Target group deleted

  /test-profiles/{id}:
    get:
      tags:
        - testProfiles
      description: A **GET** request with an ID parameter will return the requested test profile. It's also possible to retrieve all recipient attributes with the **allAttributes** flag.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          required: true
          description: The ID of the test profile.
        - name: allAttributes
          in: query
          schema:
            type: boolean
      responses:
        "200":
          description: test profile retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/testProfile'
                  - properties:
                      _links:
                        properties:
                          inx:list:
                            $ref: '#/components/schemas/linkList'
                          curies:
                            $ref: '#/components/schemas/halCuriesLink'
    patch:
      tags:
        - testProfiles
      description: A **PATCH** request on the test profile will update a test profile. The parameter **attributes** is a map of strings containing the recipient attributes.
      parameters:
        - name: id
          in: path
          description: The id of the test profile to be updated
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              type: object
              properties:
                email:
                  type: string
                trackingPermissions:
                  type: boolean
                attributes:
                  type: object
                description:
                  type: string
      responses:
        "200":
          description: Test profile updated
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/testProfile'
    delete:
      tags:
        - testProfiles
      description: A **DELETE** request with an **id** url parameter will delete the test profile with that id.
      parameters:
        - name: id
          in: path
          description: The id of the test profile to be deleted
          required: true
          schema:
            type: integer
      responses:
        "204":
          description: Test profile was deleted
  /test-profiles:
    get:
      tags:
        - testProfiles
      description: A **GET** request with an ID parameter will return the requested test profile. It's also possible to retrieve all user attributes with the **allAttributes** flag.
      parameters:
        - name: listIds
          in: query
          schema:
            type: integer
          required: false
          description: The ID of the test profile.
        - name: allAttributes
          in: query
          schema:
            type: boolean
          required: false
          description: If true, indicates that all attributes of the test-recipient should be included in the result. Otherwise, no attributes are  included.
        - name: types
          in: query
          schema:
            type: string
          required: false
          description: The test profile type for the desired test profiles. More than one value can be specified with multiple query parameters or comma separated list. Default is all test profile types. Possible values are  [GLOBAL, LIST] #needs confirming
      responses:
        "200":
          description: test profile retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:test-profiles:
                        allOf:
                          - $ref: '#/components/schemas/testProfiles'
                          - properties:
                              _links:
                                properties:
                                  inx:list:
                                    $ref: '#/components/schemas/linkList'
                      _links:
                        type: object
                        properties:
                          self:
                            $ref: '#/components/schemas/halSelfCurie'
                          next:
                            $ref: '#/components/schemas/linkNext'
                          curies:
                            $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - testProfiles
      description: A **POST** request on the test profile resource will create a new test profile. The parameter **attributes** is a map of string containing the user attributes.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                listId:
                  type: integer
                  description: The listId the new test profile should be associated with
                email:
                  type: string
                  description: The email address of the new test profile
                trackingPermission:
                  type: boolean
                  description: The tracking permission state of the new test profile
                attributes:
                  type: object
                description:
                  type: string
      responses:
        "201":
          description: test Profile Created
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  description:
                    type: string
                  email:
                    type: string
                  trackingPermission:
                    type: boolean
                  attribute:
                    type: array
                    items:
                      type: string
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
  /bounces:
    get:
      tags:
        - bounces
      description: A **GET** request on the bounces resource will return the first page of bounces.
      parameters:
        - name: startDate
          in: query
          schema:
            type: string
            format: date-time
          required: false
          description: The start date (inclusive) for the desired bounces.
        - name: endDate
          in: query
          schema:
            type: string
            format: date-time
          required: false
          description: The end date (exclusive) for the desired bounces.
        - name: bounceCategory
          in: query
          schema:
            type: string
            enum:
              - SOFT
              - HARD
              - UNKNOWN
          required: false
          description: The bounceCategory for the desired bounces. Default is all bounceCategories.
        - name: listId
          in: query
          schema:
            type: integer
          required: false
          description: The ID of the list to retrieve bounces for.
        - name: embedded
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - inx:recipient
          description:
            " Indicates the relations of the resources that should be embedded in the result.\n
            - inx:recipient: The recipient that is associated to this bounce, if known."
        - name: recipientAttributes
          in: query
          schema:
            type: object
          required: false
          description: Indicates the names of the recipient attributes that should be included in the embedded recipient result. More than one value can be specified with multiple query parameters or comma separated list.
        - name: mailingId
          in: query
          schema:
            type: integer
          required: false
          description: The ID of the maligning to retrieve the bounces for. This parameter must not be specified at the same time as mailingIds.
        - name: sendingIds
          in: query
          schema:
            type: integer
          required: false
          description: The Ids of the sendings to retrieve bounces for.
        - name: mailingIds
          in: query
          schema:
            type: array
            items:
              type: integer
          required: false
          description: The IDs of the mailings to retrieve bounces for. This parameter must not be specified at the same time as mailingId.
        - name: listIds
          in: query
          schema:
            type: array
            items:
              type: integer
          required: false
          description: The IDs of the lists to retrieve bounces for. This parameter must not be specified at the same time as listId.
      responses:
        "200":
          description: Bounce collection retrieved.
          content:
            application/hal+json:
              schema:
                type: object
                required:
                  - self
                  - curie
                properties:
                  _embedded:
                    properties:
                      inx:bounces:
                        $ref: '#/components/schemas/bounces'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
  /bounces/{id}:
    get:
      tags:
        - bounces
      description: A **GET** request with an ID parameter will return the requested bounce.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the bounce
      responses:
        "200":
          description: Bounce retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/bounce'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForBounces'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
  /links/{id}:
    get:
      tags:
        - mailingLinks
      description: A **GET** request with an ID parameter will return the requested link.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            description: The ID of the link.
      responses:
        "200":
          description: Link retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/mailingLink'
                  - properties:
                      _links:
                        properties:
                          self:
                            $ref: '#/components/schemas/halSelfCurie'
                          inx:mailing:
                            $ref: '#/components/schemas/linkMailings'
                          curies:
                            $ref: '#/components/schemas/halCuriesLink'
  /links:
    get:
      tags:
        - mailingLinks
      description: A **GET** request without any parameters will return all Links.
      parameters:
        - name: mailingIds
          in: query
          required: false
          schema:
            type: integer
          description: The corresponding mailing IDs for the desired links. More than one value can be specified with multiple query parameters or comma separated lists.
        - name: types
          in: query
          required: false
          schema:
            type: string
            enum:
              - REDIRECT
              - COUNT
              - UNIQUE_COUNT
              - CONTENT_TRACKED
              - UNSUBSCRIBE
              - UNSUBSCRIBE_LINK
              - UNSUBSCRIBE_FORM
              - UNSUBSCRIBE_PAGE
              - UNSUBSCRIBE_HEADER_LINK
              - VERIFY_SUBSCRIPTION
              - VERIFY_UNSUBSCRIPTION
              - CONTENT_OPENING
              - OPENING_COUNT
              - GRANT_TRACKING_PERMISSION
              - WITHDRAW_TRACKING_PERMISSION
          description: "The link types for the desired links. More than one value can be specified with multiple query parameters or comma separated list. Default is all link types. Possible values are: [REDIRECT, COUNT, UNIQUE_COUNT, CONTENT_TRACKED, UNSUBSCRIBE, UNSUBSCRIBE_LINK, UNSUBSCRIBE_FORM, UNSUBSCRIBE_PAGE, UNSUBSCRIBE_HEADER_LINK, VERIFY_SUBSCRIPTION, VERIFY_UNSUBSCRIPTION, CONTENT_OPENING, OPENING_COUNT, GRANT_TRACKING_PERMISSION, WITHDRAW_TRACKING_PERMISSION]."
      responses:
        "200":
          description: Links retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:links:
                        $ref: '#/components/schemas/mailingLinks'
                      _links:
                        properties:
                          self:
                            $ref: '#/components/schemas/halSelfCurie'
                          curies:
                            $ref: '#/components/schemas/halCuriesLink'
  /clicks:
    get:
      tags:
        - clicks
      description: A **GET** request on the click resource will return the first page of clicks.
      parameters:
        - name: mailingId
          in: query
          schema:
            type: integer
          description: The ID of the mailing to retrieve clicks for. This parameter must not be specified at the same time as mailingId.
        - name: sendingID
          in: query
          schema:
            type: integer
          description: The Id of the sending to retrieve clicks for.
        - name: trackedOnly
          in: query
          schema:
            type: boolean
          description: Indicates that only clicks where the recipient who clicked is identifiable will be returned.
        - name: embedded
          in: query
          schema:
            type: string
          description: Indicates the relations of the resources that should be embedded in the result.
        - name: startDate
          in: query
          schema:
            type: string
          description: The start date (inclusive) for the desired clicks.
        - name: endDate
          in: query
          schema:
            type: string
          description: The end date (exclusive) for the desired clicks.
        - name: recipientAttributes
          in: query
          schema:
            type: array
            items:
              type: string
          description: Indicates the names of the recipient attributes that should be included in the embedded recipient result. More than one value can be specified with multiple query parameters or comma separated list.
        - name: mailingIds
          in: query
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the mailings to retrieve clicks for. This parameter must not be specified at the same time as mailingId.
        - name: listIds
          in: query
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the lists to retrieve clicks for. This parameter must not be specified at the same time as listId.
      responses:
        "200":
          description: clicks retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:clicks:
                        $ref: '#/components/schemas/clicks'
                  _links:
                    required:
                      - self
                      - curie
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
  /clicks/{id}:
    get:
      tags:
        - clicks
      description: A **GET** request with an ID parameter will return the requested click.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the click
      responses:
        "200":
          description: Click retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/click'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForClicks'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
  /datasources/http/{id}:
    get:
      tags:
        - datasources
      description: A **GET** request with an ID parameter will return the requested datasource.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the datasource
      responses:
        "200":
          description: Datasource retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/datasource'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/dataSourceLinks'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
    delete:
      tags:
        - datasources
      description: A **DELETE** request with an ID parameter will delete the requested http datasource.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the datasource to be deleted.
      responses:
        "204":
          description: Datasource deleted
    put:
      tags:
        - datasources
      description: A **PTU** request with an ID parameter will delete the requested http datasource.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the datasource to be updated.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name of the http datasource.
                  required:
                    - Must not be null
                url:
                  type: string
                  description: The url of the http datasource.
                  required:
                    - Must be valid url
                attachmentFileName:
                  type: string
                  description: The name of the file attached to this datasource.
                contentWithInxmailTags:
                  type: boolean
                  description: The value is true when inxmail tags were selected.
                encodeUrlPlaceholders:
                  type: boolean
                  description: The value is true when the encode url placeholders were selected.
                useType:
                  type: string
                  enum:
                    - TEXT
                    - TRANSFORMED_TEXT
                    - ATTACHMENT_FILE
                  description: The use type specifies how the http datasource is used in emails.
                fetchStrategy:
                  type: string
                  description: The value is "ONCE" if the content is static. "RECIPIENT_CACHED" if the content is cached.
                    "RECIPIENT_BASED" if the datasource is to be requested per recipient.
      responses:
        "200":
          description: datasource updated
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:datasource:
                        $ref: '#/components/schemas/datasource'
                  _links:
                    required:
                      - self
                      - curies
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'

  /datasources/http:
    get:
      tags:
        - datasources
      description: A **GET** request on the datasource resource will return the first page of datasources.
      responses:
        "200":
          description: data sources retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:datasources:
                        $ref: '#/components/schemas/datasources'
                  _links:
                    required:
                      - self
                      - curies
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - datasources
      description: A **POST** request with the following payload structure will create a new http datasource.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The ID of the mailing to copy.
                  required:
                    - Must not be null.
                url:
                  type: string
                  description: The url of the http datasource.
                useType:
                  type: string
                  enum:
                    - TEXT
                    - TRANSFORMED_TEXT
                    - ATTACHMENT_FILE
                  description: The use type specifies how the http datasource is used in emails.
                fetchStrategy:
                  type: string
                  enum:
                    - ONCE
                    - RECIPIENT_BASED
                    - RECIPIENT_CACHED
                  description: The value is "ONCE", if the content is static. If the content is cached, the value is "RECIPIENT_BASED".
                    If the data source is requested again for each recipient, the value is "RECIPIENT_BASED".
                contentWithInxmailTags:
                  type: boolean
                  description: The value is true when inxmail tags were selected.
                encodeUrlPlaceholder:
                  type: boolean
                  description: words
                attachmentFileName:
                  type: string
                  description: The name of the file attached to this datasource
      responses:
        "201":
          description: Datasource successfully created
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  url:
                    type: integer
                  useType:
                    type: string
                  fetchStrategy:
                    type: string
                  contentWithInxmailTags:
                    type: string
                  encodeUrlPlaceholder:
                    type: integer
                  attachmentFileName:
                    type: string
                  _links:
                    $ref: '#/components/schemas/links'
  /web-beacon-hits:
    get:
      tags:
        - webBeaconHits
      description: A **GET** request on the web beacon hit resource will return the first page of web beacon hits.
      parameters:
        - name: mailingId
          in: query
          schema:
            type: integer
            description: The ID of the mailing to retrieve clicks for
        - name: sendingID
          in: query
          schema:
            type: integer
          description: The Id of the sending to retrieve clicks for
        - name: trackedOnly
          in: query
          schema:
            type: boolean
          description: Indicates that only web beacon hits where the recipient who triggered the hit is identifiable will be returned.
        - name: embedded
          in: query
          schema:
            type: string
          description: Indicates the relations of the resources that should be embedded in the result
        - name: startDate
          in: query
          schema:
            type: string
            format: date-time
          description: The start date (inclusive) for the desired clicks
        - name: endDate
          in: query
          schema:
            type: string
            format: date-time
          description: The end date (exclusive) for the desired clicks
        - name: recipientAttributes
          in: query
          schema:
            type: array
            items:
              type: string
          description: Indicates the names of the recipient attributes that should be included in the embedded recipient result. More than one value can be specified with multiple query parameters or comma separated list.
        - name: mailingIds
          in: query
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the mailings to retrieve clicks for. This parameter must not be specified at the same time as mailingId.
        - name: listIds
          in: query
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the lists to retrieve clicks for. This parameter must not be specified at the same time as listId.
      responses:
        "200":
          description: Web beacon hits retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:web-beacon-hits:
                        $ref: '#/components/schemas/webBeaconHits'
                  _links:
                    required:
                      - self
                      - curies
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
  /web-beacon-hits/{id}:
    get:
      tags:
        - webBeaconHits
      description: a **GET** request with an ID parameter will return the requested web beacon hit.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the web beacon hit
      responses:
        "200":
          description: Web beacon hit retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/webBeaconHit'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/webBeaconHitLinks'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
  /operations/mailings:
    post:
      tags:
        - mailingOperations
      description: The following mailing operations are available and can be used by invoking the mailing operations endpoint with the specific command
      parameters:
        - name: command
          in: query
          schema:
            type: string
            enum:
              - copy
          description: Create a copy of a mailing
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                mailingId:
                  type: integer
                  description: The ID of the mailing to copy.
                  required:
                    - Must not be null.
                copyApprovalState:
                  type: boolean
                  description: Optional - Copies the approval state of the source mailing.
                listId:
                  type: integer
                  description: Optional - The Id of the list into which the mailing should be copied to. The target list must be a list of type STANDARD or DYNAMIC.
                name:
                  type: string
                  description: Optional - The new name of the mailing's copy
      responses:
        "201":
          description: Mailing successfully copied
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  modificationDate:
                    type: string
                  listId:
                    type: integer
                  creationDate:
                    type: string
                  subject:
                    type: string
                  name:
                    type: string
                  id:
                    type: integer
                  type:
                    type: string
                    enum:
                      - REGULAR_MAILING
                  _links:
                    $ref: '#/components/schemas/linksForOperations'
  /sendings/{id}:
    get:
      tags:
        - sendings
      description: A **GET** request with an ID parameter will return the requested sending.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The id of the sending.
      responses:
        "200":
          description: requested sending retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/sending'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForSending'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
  /sendings/{id}/details:
    get:
      tags:
        - sendings
      description: "It is possible to query sending details of a single sending. Sending details are e.g. the recipient count, the number of delivered mails and the number of not sent mails.\n

        A **GET** request with an ID parameter will return the details of the sending."
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The id of the sending to retrieve the details of.
      responses:
        "200":
          description: sending details retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/sendingDetails'
                  - properties:
                      _links:
                        $ref: '#/components/schemas/linksForSendingDetails'
  /sendings/{sendingId}/protocol:
    get:
      tags:
        - sendingProtocol
      description: A **GET** request with a sending id on the sending protocol resource will return the first page of sending protocol entries.
      parameters:
        - name: sendingId
          in: path
          required: true
          schema:
            type: integer
            description: The ID of the sending
        - name: embedded
          in: query
          required: false
          schema:
            type: string
            enum:
              - inx:recipient
        - name: recipientAttributes
          in: query
          required: false
          schema:
            type: string
          description: Indicates the names of the recipient attributes that should be included in the embedded recipient results. More than one   value can eb specified with multiple query parameters or comma separated list.
        - name: reactionData
          in: query
          required: false
          schema:
            type: boolean
          description: Specifies whether the reaction data should be included in the response.
            The parameter should only be set if the data is actually needed,
            as it causes extra work and affects performance
      responses:
        "200":
          description: sending protocols retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:protocol-entries:
                        allOf:
                          - $ref: '#/components/schemas/sendingProtocols'
                          - properties:
                              _links:
                                $ref: '#/components/schemas/linksForSendingProtocols'
                  _links:
                    required:
                      - self
                      - curie
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
  /sendings:
    get:
      tags:
        - sendings
      description: A mailing can have one or many sendings. It is possible to query sendings by a list of mailing IDs. Parameters mailingId and mailingIds cannot be used at the same time.
      parameters:
        - name: mailingId
          in: query
          schema:
            type: integer
          description: The ID of the mailing to retrieve sendings for.
        - name: mailingIds
          in: query
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the mailings to retrieve sendings for.
        - name: listIds
          in: query
          schema:
            type: integer
            description: The IDs of the lists to retrieve sendings for.
        - name: sendingsFinishedBeforeDate
          in: query
          schema:
            type: string
            format: date-time
          description: All sendings that were sent before this date (ISO 8601) will be returned. When this value is set, only sendings that have been sent before that given date (inclusive) will be included in the result.
        - name: sendingsFinishedAfterDate
          in: query
          schema:
            type: string
            format: date-time
          description: All sendings that were sent after this date (ISO 8601) will be returned. When this value is set, only sendings that have been sent after that given date (exclusive) will be included in the result.
      responses:
        "200":
          description: sendings retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:sendings:
                        $ref: '#/components/schemas/sendings'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - sendings
      description: "This functionality is only available for regular mailings.\n
        A **POST** request with the following payload structure will send an already approved mailing as either:\n
        - a single specified recipient (Note: this also works if the mailing has already finished.) \n
        - a mass mailing to all recipients (if no _recipientId_ was provided) in the list that is associated with the mailing. (Note: if the mass mailing had been interrupted, it will resume sending. ) \n
         \n
         Violations of the constraints will lead to validation errors."
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                mailingId:
                  type: integer
                  required:
                    - Must not be null
                  description: The ID of the mailing
                recipientId:
                  type: integer
                  description: The ID of the recipient to send the mail to, in the case of sending a single mail. If null, the mailing will be sent as a mass mailing.
      responses:
        "201":
          description: created
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/sending'
                  - properties:
                      _links:
                        properties:
                          self:
                            $ref: '#/components/schemas/halSelfCurie'

  /mailings/{id}:
    get:
      tags:
        - mailings
      description: A **GET** with an ID parameter will return the requested mailing.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The id of the mailing.
        - name: embedded
          in: query
          required: false
          schema:
            type: array
            items:
              type: object
              allOf:
                - $ref: '#/components/schemas/sendingStatistics'
                - $ref: '#/components/schemas/responseStatistics'
          description: "Indicates the relations of the resources that should be embedded in the result.\n
            - Statistics regarding the sending of this mailing. Only available for mailings of type REGULAR_MAILING.\n
            - Statistics regarding the recipient responses (e.g. clicks) to this mailing. Only available for mailings of type REGULAR_MAILING."
      responses:
        "200":
          description: requested mailing retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/mailing'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForMailing'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
  /mailings/{id}/links:
    get:
      tags:
        - mailingLinks
      description: A **GET** request with an ID parameter will return the first page of the containing links.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The corresponding mailing IDs for the desired links. More than one value can be specified with multiple query parameters or comma separated list.
        - name: types
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - REDIRECT
                - COUNT
                - UNIQUE_COUNT
                - CONTENT_TRACKED
                - UNSUBSCRIBE
                - UNSUBSCRIBE_LINK
                - UNSUBSCRIBE_FORM
                - UNSUBSCRIBE_PAGE
                - UNSUBSCRIBE_HEADER_LINK
                - VERIFY_SUBSCRIPTION
                - VERIFY_UNSUBSCRIPTION
                - CONTENT_OPENING
                - OPENING_COUNT
                - GRANT_TRACKING_PERMISSION
                - WITHDRAW_TRACKING_PERMISSION
      responses:
        "200":
          description: retrieved link collection
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:links:
                        $ref: '#/components/schemas/mailingLinks'
                  _links:
                    $ref: '#/components/schemas/linksForMailingLink'
  /mailings/{id}/renderedContent:
    get:
      tags:
        - mailings
      description: A **GET** request with a ID parameter will return the rendered content for the requested mailing.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
        - name: testProfileId
          in: query
          required: false
          description: The ID of a specific test profile that will be used to render the mailing.
          schema:
            type: integer
        - name: includeAttachments
          in: query
          required: false
          description: If true, indicates that the attachments of the mailing are included in the result. Otherwise, no attachments are included.
          schema:
            type: integer
      responses:
        "200":
          description: retrieved content
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/mailingRenderedContent'
                  - properties:
                      _links:
                        $ref: '#/components/schemas/linksForMailingRenderedContent'
  /mailings/{id}/rendered-content-size:
    get:
      tags:
        - mailings
      description: A **GET** request with a ID parameter will return the size of the rendered content for the requested mailing.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Size of the rendered mailing. (May be slightly inaccurate as a dummy recipient is being used for the calculation.)
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  renderedContentSize:
                    type: integer
                    description: Size of the rendered mailing in bytes. (May be slightly inaccurate as a dummy recipient is being used for the calculation.)
                  _links:
                    type: object
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
  /mailings:
    get:
      tags:
        - mailings
      description: A **GET** on the mailings resource will return the first page of mailings.
      parameters:
        - name: sentAfter
          in: query
          required: false
          schema:
            type: string
            description: "All mailings that were sent after this date (ISO 8601) will be returned. When this value is set, only mailings that have at least one successful sending after that given date (inclusive) will be included in the result. Only one value at a time can be specified."
        - name: types
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - REGULAR_MAILING
                - ACTION_MAILING
                - TIME_TRIGGER_MAILING
                - SUBSCRIPTION_TRIGGER_MAILING
                - SPLIT_TEST_MAILING
          description: "The mailing type for the desired mailings. More than one value can be specified with multiple query parameters or comma separated list. Default is all mailing types. Possible values are: [REGULAR_MAILING, ACTION_MAILING, TIME_TRIGGER_MAILING, SUBSCRIPTION_TRIGGER_MAILING, SPLIT_TEST_MAILING]."
        - name: listIds
          in: query
          required: false
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the lists to retrieve mailings for. More than one value can be specified with multiple query parameters or comma separated list. Default is all listIds.
        - name: readyToSend
          in: query
          required: false
          schema:
            type: boolean
          description: If true, only mailings of type REGULAR_MAILING which are ready to be sent, will be returned. Mailings which have already been sent or have been interrupted will not be included. Value false has not been implemented yet. Using false will result in 400 Bad Request.
        - name: isApproved
          in: query
          required: false
          schema:
            type: boolean
          description: If false, only mailings which are in mailing state "draft" or "approval requested" will be returned. Value true will return the mailings which are in other mailing states. If there are no mailings matching the filter, an empty list will be returned.
        - name: hasSending
          in: query
          required: false
          schema:
            type: boolean
          description: If false, only mailings that have not been sent will be returned. Value `true` will return the mailings that have already been sent. If there are no mailings matching the filter, an empty list will be returned. The filter can not be combined with the sentAfter filter.
        - name: embedded
          in: query
          required: false
          schema:
            type: array
            items:
              type: object
              enum:
                - $ref: '#/components/schemas/sendingStatistics'
                - $ref: '#/components/schemas/responseStatistics'
          description: "Indicates the relations of the resources that should be embedded in the result.\n
            - inx:sending-statistics: Statistics regarding the sending of this mailing. Only available for mailings of type REGULAR_MAILING.\n
            - inx:response-statistics: Statistics regarding the recipient responses (e.g. clicks) to this mailing. Only available for mailings of type REGULAR_MAILING."
        - name: createdAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were created after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: createdBefore
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were created before this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: modifiedAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: modifiedBefore
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified before this date (ISO 8601) will be returned. Only one value at a time can be specified.
      responses:
        "200":
          description: retrieved mailings collection
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:mailings:
                        $ref: '#/components/schemas/mailings'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'

  /mailings/{mailingId}/approvals:
    get:
      tags:
        - mailingApprovals
        #description: |
        # A **GET** request with an ID parameter will return the first page of approvals for a mailing.

        #List of values for the approvalStateTransition field:
        #| Value | Description |
        #| ------- | --------|
        #| REQUEST_APPROVAL   | Approval process started according to configuration                   |
        #| DENY               |      A request for approval according to process is denied            |
        #| APPROVED           | Without approval process configured, Immediate approval               |
        #| REVOKE_REQUEST     | Approval process stopped before deadline or approval                  |
        #| ESCALATED          | When the escalating approval is configured, the first deadline is hit |
        #| DEADLINE           | Final deadline hit, approval process aborted                          |
        #| DISABLED           | Ongoing request for approval according to configuration aborted due to change in configuration |
        #| OVERRIDE           | With approval process configured, immediate approval                  |
        #| INVALIDATE         | Current approval revoked                                              |

      parameters:
        - name: mailingId
          in: path
          required: true
          schema:
            type: integer
            description: The ID of the related mailing.
      responses:
        "200":
          description: approvals retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:approvals:
                        $ref: '#/components/schemas/mailingApprovals'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - mailingApprovals
      description: The following parameters are required to approve a mailing.
      parameters:
        - name: mailingId
          in: path
          required: true
          schema:
            type: integer
          description: ID of the mailing to be approved
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                approvalComment:
                  type: string
                  description: A comment for the approval
                approvalCommand:
                  type: string
                  enum:
                    - APPROVE
                    - INVALIDATE
                  description: The command for the approval process. Must be "APPROVE" or "INVALIDATE"
      responses:
        "201":
          description: Mailing approval created
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  approvalId:
                    type: integer
                  approvalComment:
                    type: string
                  username:
                    type: string
                  approvalStateTransition:
                    type: string
                  entryDate:
                    type: string
                    format: date-time
                  mailingId:
                    type: integer
                  approvalCommand:
                    type: string
                    enum:
                      - APPROVE
                      - INVALIDATE
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
  /regular-mailings:
    post:
      tags:
        - regularMailings
      description: A **POST** request with the following payload structure will create a new regular mailing. Violations of the constraints will lead to validation errors.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the new mailing
                  required:
                    - Must not be null
                    - Size must be between 1 and 255 inclusive
                subject:
                  type: string
                  description: The subject of the new mailing
                  required:
                    - Must not be null
                    - Size must be between 1 and 1024 inclusive
                listId:
                  type: integer
                  description: The listId of the new mailing. List must be of type STANDARD or DYNAMIC
                  required:
                    - Must not be null
                designCollectionId:
                  type: integer
                  description: The designCollectionId to use for a mailing with editorContentType XML. Required for XML mailings.
                xmlContentBase64:
                  type: string
                  description: The xml content as Base64 coded string. Required for XML mailings.
                editorContentType:
                  type: string
                  enum:
                    - TEXT
                    - HTML
                    - TEXT_HTML
                    - XML_HTML
                    - XML_TEXT_HTML
                    - XML_TEXT
                  required:
                    - Must not be null
                text:
                  type: string
                  description: The text part of the editor content of the mailing
                html:
                  type: string
                  description: the html part of the editor content of the mailing
                styleName:
                  type: string
                  description: Optional parameter for the style name of the design collection.  If not entered, the first xsl style is used, which does not start or end with the string "TEXT"
                templateName:
                  type: string
                  description: Optional parameter for the template name of the design collection. Must be specified, if more than one template is in the design collection.
      responses:
        "201":
          description: new regular mailing created
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  name:
                    type: string
                  subject:
                    type: string
                  listId:
                    type: integer
                  designCollectionId:
                    type: integer
                  editorContentType:
                    type: string
                    enum:
                      - TEXT
                      - HTML
                      - TEXT_HTML
                      - XML_TEXT
                      - XML_HTML
                      - XML_TEXT_HTML
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
    get:
      tags:
        - regularMailings
      description: "A **GET** request on the regular mailings resource will return the first page of mailings. N.b. The sentBefore and sentAfter filters match the end of a sendings send-duration. A sending of a mailing is not an instantaneous event. If a mailing is sent to millions of recipients, the duration of sending these mails could potentially span more than an hour. With small sendings the duration is most often more than one second. Effectively, sentBefore means the send-duration ended before that point in time. sentAfter means the send-duration ended after that point in time."
      parameters:
        - name: sentAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailing that were sent after this date (ISO 8601) will be returned. When this value is set, only mailings that have at least one successful sending after the given date (inclusive) will be included in the result. Only one value at a time can be specified. Matches the end of the send duration.
        - name: sentBefore
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailing that were sent before this date (ISO 8601) will be returned. When this value is set, only mailings that have at least one successful sending before the given date (exclusive) will be included in the result. Only one value at a time can be specified. Matches the end of the send duration.
        - name: types
          in: query
          required: false
          schema:
            type: string
            enum:
              - REGULAR_MAILING
              - ACTION_MAILING
              - TIME_TRIGGER_MAILING
              - SUBSCRIPTION_TRIGGER_MAILING
              - SPLIT_TEST_MAILING
          description: The mailing type for the desired mailings. More than one value can be specified with multiple query parameters or comma separated list. Default is all mailing types. Possible values are [REGULAR_MAILING, ACTION_MAILING, TIME_TRIGGER_MAILING, SUBSCRIPTION_TRIGGER_MAILING, SPLIT_TEST_MAILING].
        - name: listIds
          in: query
          required: false
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the lists to retrieve mailings for. More than one value can be specified with multiple query parameters or comma separated list. Default is all listIds.
        - name: readyToSend
          in: query
          required: false
          schema:
            type: boolean
          description: If true, only mailings of type REGULAR_MAILING, which are ready to be sent, will be returned. Mailings which have already been sent or have been interrupted will not be included. Value false has not yet been implemented. Using false will result in **400 Bad Request**
        - name: mailingStates
          in: query
          required: false
          schema:
            type: string
            enum:
              - FINISHED
              - ACTIVE
              - DRAFT
              - INTERRUPTED
              - SCHEDULED
              - APPROVAL_REQUESTED
              - APPROVED
          description: All mailings of specified RegularMailingState will be returned. More than one value can be specified with multiple query parameters or comma separated list. Valid states are [FINISHED, ACTIVE, DRAFT, INTERRUPTED, SCHEDULED, APPROVAL_REQUESTED, APPROVED]
        - name: embedded
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - inx:sending-statistics
                - inx:recipient-statistics
          description: |
            Indicates the relations of the resources that should be embedded in the result.
            - inx:sending-statistics: Statistics regarding the sending of this mailing. Only available for mailings of type REGULAR_MAILING.
            - inx:response-statistics: Statistics regarding the recipient responses (e.g. clicks) to this mailing. Only available for mailings of type REGULAR_MAILING.
      responses:
        "200":
          description: regular mailings retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:regular-mailings:
                        $ref: '#/components/schemas/regularMailings'
                  _links:
                    $ref: '#/components/schemas/links'
  /regular-mailings/{id}:
    get:
      tags:
        - regularMailings
      description: A **GET** request with an ID parameter will return the requested regular mailing.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing
          required: true
          schema:
            type: integer
        - name: embedded
          in: query
          description: |
            Indicates the relations of the resources that should be embedded in the result.
            - inx:editor-content: The text and html content of this mailing. Only available for mailings if type REGULAR_MAILING.
            - inx:sending-statistics: Statistics regarding the sending of this mailing. Only available for mailings of type REGULAR_MAILING.
            - inx:response-statistics: Statistics regarding the recipient responses (e.g. clicks) to this mailing. Only available for mailings of type REGULAR_MAILING.
          required: false
          schema:
            allOf:
              - $ref: '#/components/schemas/editorContent'
              - $ref: '#/components/schemas/sendingStatistics'
              - $ref: '#/components/schemas/responseStatistics'
      responses:
        "200":
          description: regular mailing retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/regularMailing'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForRegularMailing'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
    patch:
      tags:
        - regularMailings
      description: A **PATCH** request with the following payload structure will modify a regular mailing. Violations of the constraints will lead to validation errors.
        The fields 'text' and 'html' are dependent of the editor content type. e.g. for a text-only mailing, the field 'html' can not be used in an update call.
        The state of the mailing must be **DRAFT**, otherwise the mailing cannot be updated.
      parameters:
        - name: id
          in: path
          description: The ID of recipient to be patched. Cannot be specifies at the same time as email.
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name of the mailing
                subject:
                  type: string
                  description: The new subject of the mailing
                text:
                  type: string
                  description: The new text editor content of the mailing
                html:
                  type: string
                  description: The new html editor content of the mailing
                targetGroupConfiguration:
                  type: object
                  description: The target group configuration of the mailing
      responses:
        "200":
          description: Mailing updated
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/regularMailing'
                  - properties:
                      _links:
                        properties:
                          self:
                            $ref: '#/components/schemas/halSelfCurie'
    delete:
      tags:
        - regularMailings
      description: A **DELETE** request on a single regular mailing will delete that mailing. If a mailing is currently locked, it cannot be deleted.
      parameters:
        - name: id
          in: path
          description: The id of the mailing
          required: true
          schema:
            type: integer
      responses:
        "204":
          description: No Content

  /regular-mailings/{id}/editor-content:
    get:
      tags:
        - regularMailings
      description: A **GET** request with an ID parameter will return the editor content of the requested regular mailing.
      parameters:
        - name: id
          in: path
          description: the ID of the mailing
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: editor content retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/editorContent'
  /regular-mailings/{id}/schedule:
    post:
      tags:
        - regularMailings
      description: A **POST** request on the schedule subresource of the regular mailings resource will set the schedule date (ISO 8601). Only mailings that are in APPROVED state when performing this operation can be scheduled.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                scheduleDate:
                  type: string
                  description: The schedule date (ISO 8601) of the mailing
      responses:
        "201":
          description: Mailing schedule date added
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  scheduleDate:
                    type: string
                    format: date-time
                  _links:
                    type: object
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
    get:
      tags:
        - regularMailings
      description: A **GET** request on the schedule subresource of the regular mailings resource will get the schedule date of a mailing.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Schedule date retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  scheduleDate:
                    type: string
                    format: date-time
                  _links:
                    type: object
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
    put:
      tags:
        - regularMailings
      description: A **PUT** request on the schedule subresource of the regular mailings resource will set the schedule date (ISO 8601). Only mailings that are in SCHEDULED state when performing this operation can be rescheduled.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                scheduleDate:
                  type: string
                  description: The schedule date (ISO 8601) of the mailing
      responses:
        "200":
          description: Mailing schedule date rescheduled
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  scheduleDate:
                    type: string
                    format: date-time
                  _links:
                    type: object
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
    delete:
      tags:
        - regularMailings
      description: A **DELETE** request on the schedule subresource of the regular mailings resource will unset the schedule date (ISO 8601). Only mailings in the SCHEDULED state can be unscheduled. Once the date of sending is reached and the sending starts, the mailing will transition its state into ACTIVE. At that point the mailing can no longer be unscheduled.
      parameters:
        - name: id
          in: path
          description: The id of the mailing
          required: true
          schema:
            type: integer
      responses:
        "204":
          description: Mailing schedule date deleted
  /split-test-mailings:
    get:
      tags:
        - splitTestMailings
      description: A **GET** request on the split test mailings resource will return the first page of mailings.
      parameters:
        - name: sentAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailing that were sent after this date (ISO 8601) will be returned. When this value is set, only mailings that have at least one successful sending after the given date (inclusive) will be included in the result. Only one value at a time can be specified. Matches the end of the send duration.
        - name: listIds
          in: query
          required: false
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the lists to retrieve mailings for. More than one value can be specified with multiple query parameters or comma separated list. Default is all listIds.
        - name: createdAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were created after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: createdBefore
          in: query
          required: false
          schema:
            type: string
            format: time-date
          description: All mailings that were created before this date (ISO 8601) will be returned. Only one value at a time can be specified
        - name: modifiedAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: modifiedBefore
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified before this date (ISO 8601) will be returned. Only one value at a time can be specified.
      responses:
        "200":
          description: split test mailings retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:split-test-mailings:
                        $ref: '#/components/schemas/splitTestMailings'
                  _links:
                    $ref: '#/components/schemas/links'
    post:
      tags:
        - splitTestMailings
      description: A **POST** request on the split test mailings resource will create split test mailing.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/splitTestMailingCreate'
      responses:
        "201":
          description: split test mailing is created
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/splitTestMailing'
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
        "400":
          description: Provided split test mailing is not valid
  /split-test-mailings/{id}:
    get:
      tags:
        - splitTestMailings
      description: A **GET** request with an ID parameter will return the requested split-test mailing.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing.
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Split test mailing retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/splitTestMailing'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForSplitTestMailing'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
    delete:
      tags:
        - splitTestMailings
      description: A **DELETE** request with an ID parameter will remove requested split test mailing.
      parameters:
        - name: id
          in: path
          required: true
          description: The Id of the split test mailing to be deleted
          schema:
            type: integer
      responses:
        "204":
          description: No
        "404":
          description: split test mailing with the given id could not be found
        "409":
          description: can not delete split test mailing as it is in use
    patch:
      tags:
        - splitTestMailings
      description: A **PATCH** request on the split test mailings resource will update split test mailing by id.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing.
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mailingPatch'
      responses:
        "200":
          description: split test mailing is updated
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/splitTestMailing'
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
        "404":
          description: Provided split test mailing is not found
        "400":
          description: Provided request body is not valid

  /action-mailings:
    get:
      tags:
        - actionMailings
      description: A **GET** request on the action mailings resource will return the first page of mailings.
      parameters:
        - name: sentAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were sent after this date (ISO 8601) will be returned. When this value is set, only mailings that have at least one successful sending after that given date (inclusive) will be included in the result. Only one value at a time can be specified.
        - name: listIds
          in: query
          required: false
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the lists to retrieve mailings for. More than one value can be specified with multiple query parameters or comma separated list. Default is all listIds.
        - name: createdAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were created after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: createdBefore
          in: query
          required: false
          schema:
            type: string
            format: time-date
          description: All mailings that were created before this date (ISO 8601) will be returned. Only one value at a time can be specified
        - name: modifiedAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: modifiedBefore
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified before this date (ISO 8601) will be returned. Only one value at a time can be specified.
      responses:
        "200":
          description: action mailings retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:action-mailings:
                        $ref: '#/components/schemas/actionMailings'
                      _links:
                        $ref: '#/components/schemas/links'
    post:
      tags:
        - actionMailings
      description: A **POST** request on the action mailings resource will create action mailing.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/actionMailingCreate'
      responses:
        "201":
          description: action mailing is created
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:action-mailings:
                        $ref: '#/components/schemas/actionMailings'
                      _links:
                        $ref: '#/components/schemas/links'
        "400":
          description: Provided action mailing is not valid
  /action-mailings/{id}:
    get:
      tags:
        - actionMailings
      description: A **GET** request with an ID parameter will return the requested action mailing.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing.
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: action mailing retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/actionMailing'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForActionMailing'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
    delete:
      tags:
        - actionMailings
      description: A **DELETE** request with an ID parameter will remove requested action mailing.
      parameters:
        - name: id
          in: path
          required: true
          description: The Id of the action mailing to be deleted
          schema:
            type: integer
      responses:
        "204":
          description: No
        "404":
          description: action mailing with the given id could not be found
    patch:
      tags:
        - actionMailings
      description: A **PATCH** request on the action mailings resource will update action mailing by id.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing.
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mailingPatch'
      responses:
        "200":
          description: action mailing is updated
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/actionMailing'
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
        "404":
          description: Provided action mailing is not found
        "400":
          description: Provided request body is not valid
  /trigger-mailings:
    get:
      tags:
        - triggerMailings
      description: A **GET** request on the trigger mailings resource will return the first page of mailings.
      parameters:
        - name: sentAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailing that were sent after this date (ISO 8601) will be returned. When this value is set, only mailings that have at least one successful sending after the given date (inclusive) will be included in the result. Only one value at a time can be specified. Matches the end of the send duration.
        - name: listIds
          in: query
          required: false
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the lists to retrieve mailings for. More than one value can be specified with multiple query parameters or comma separated list. Default is all listIds.
        - name: createdAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were created after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: createdBefore
          in: query
          required: false
          schema:
            type: string
            format: time-date
          description: All mailings that were created before this date (ISO 8601) will be returned. Only one value at a time can be specified
        - name: modifiedAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: modifiedBefore
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified before this date (ISO 8601) will be returned. Only one value at a time can be specified.
      responses:
        "200":
          description: trigger mailings retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:trigger-mailings:
                        $ref: '#/components/schemas/triggerMailings'
                  _links:
                    $ref: '#/components/schemas/links'
  /trigger-mailings/{id}:
    get:
      tags:
        - triggerMailings
      description: A **GET** request with an ID parameter will return the requested trigger mailing.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing.
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: trigger mailing retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/triggerMailing'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForTriggerMailing'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
  /subscription-mailings:
    get:
      tags:
        - subscriptionMailings
      description: A **GET** request on the subscription mailings resource will return the first page of mailings.
      parameters:
        - name: sentAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailing that were sent after this date (ISO 8601) will be returned. When this value is set, only mailings that have at least one successful sending after the given date (inclusive) will be included in the result. Only one value at a time can be specified. Matches the end of the send duration.
        - name: listIds
          in: query
          required: false
          schema:
            type: array
            items:
              type: integer
          description: The IDs of the lists to retrieve mailings for. More than one value can be specified with multiple query parameters or comma separated list. Default is all listIds.
        - name: readyToSend
          in: query
          required: false
          schema:
            type: boolean
          description: If true, only mailings of type SUBSCRIPTION_TRIGGER_MAILING will be returned, which are ready to be sent. Mailings which have already been sent or have been interrupted will not be included. Value false has not been implemented yet. Using false will result in 400 Bad Request.
        - name: createdAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were created after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: createdBefore
          in: query
          required: false
          schema:
            type: string
            format: time-date
          description: All mailings that were created before this date (ISO 8601) will be returned. Only one value at a time can be specified
        - name: modifiedAfter
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified after this date (ISO 8601) will be returned. Only one value at a time can be specified.
        - name: modifiedBefore
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: All mailings that were modified before this date (ISO 8601) will be returned. Only one value at a time can be specified.
      responses:
        "200":
          description: subscription mailings retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:subscription-mailings:
                        $ref: '#/components/schemas/subscriptionMailings'
                  _links:
                    $ref: '#/components/schemas/links'

    post:
      tags:
        - subscriptionMailings
      description: A **POST** request with the following payload structure will create a new subscription mailing. Violations of the constraints will lead to validation errors.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the new mailing
                  required:
                    - Must not be null
                    - Size must be between 1 and 255 inclusive
                subject:
                  type: string
                  description: The subject of the new mailing
                  required:
                    - Must not be null
                    - Size must be between 1 and 1024 inclusive
                listId:
                  type: integer
                  description: The listId of the new mailing. List must be of type STANDARD
                  required:
                    - Must not be null
                editorContentType:
                  type: string
                  enum:
                    - TEXT
                    - HTML
                    - TEXT_HTML
                  required:
                    - Must not be null
                text:
                  type: string
                  description: The text part of the editor content of the mailing
                html:
                  type: string
                  description: the html part of the editor content of the mailing
                subscriptionMailingType:
                  type: string
                  enum:
                    - SUBSCRIPTION_VERIFICATION_TIMEOUT
                    - SUBSCRIPTION_WELCOME
                    - SUBSCRIPTION_VERIFICATION
                    - UNSUBSCRIPTION_VERIFICATION_TIMEOUT
                    - UNSUBSCRIPTION_VERIFICATION
                    - UNSUBSCRIPTION_GOODBYE
      responses:
        "201":
          description: new regular mailing created
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  name:
                    type: string
                  subject:
                    type: string
                  listId:
                    type: integer
                  editorContentType:
                    type: string
                    enum:
                      - TEXT
                      - HTML
                      - TEXT_HTML
                  subscriptionMailingType:
                    type: string
                    enum:
                      - SUBSCRIPTION_VERIFICATION_TIMEOUT
                      - SUBSCRIPTION_WELCOME
                      - SUBSCRIPTION_VERIFICATION
                      - UNSUBSCRIPTION_VERIFICATION_TIMEOUT
                      - UNSUBSCRIPTION_VERIFICATION
                      - UNSUBSCRIPTION_GOODBYE
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
  /subscription-mailings/{id}:
    get:
      tags:
        - subscriptionMailings
      description: A **GET** request with an ID parameter will return the requested subscription mailing.
      parameters:
        - name: id
          in: path
          description: The ID of the mailing.
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: subscription mailing retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/subscriptionMailing'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForSubscriptionMailing'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'

  /blacklist-entries:
    get:
      tags:
        - blacklistEntries
      description: A **GET** request on the blacklist entry resource will return the first page of blacklist entries.
      parameters:
        - name: lastModifiedSince
          in: query
          description: retrieve blacklisted recipients modified after lastModificationDate.
          required: false
          schema:
            type: string
            format: date-time
        - name: patternContainsIgnoreCase
          in: query
          description: pattern mst contain ignore case this string
          required: false
          schema:
            type: string
      responses:
        "200":
          description: entries retrieved
          content:
            application/hal+json:
              schema:
                type: object
                required:
                  - self
                  - curie
                properties:
                  _embedded:
                    properties:
                      inx:blacklistEntries:
                        $ref: '#/components/schemas/blacklistEntries'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    delete:
      tags:
        - blacklistEntries
      description: A DELETE request will remove an entry from the blacklist.
      parameters:
        - name: pattern
          in: query
          description: The pattern for email addresses blocked by this blacklist entry which should be deleted.
          required: true
          schema:
            type: string
      responses:
        "204":
          description: No Content
    post:
      tags:
        - blacklistEntries
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                pattern:
                  type: string
                  description: The pattern of the new blacklist entry.
                  required:
                    - Must not be null
                    - Must not contain asterisk
                    - Must not contain padding whitespace characters
                    - Size must be between 2 and 254 inclusive
                description:
                  type: string
                  description: A description to describe this blacklist entry.
                  required:
                    - Size must be between 2 and 254 inclusive
      responses:
        "201":
          description: new blacklist entry created
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/blacklistEntry'
  /blacklist-entries/{id}:
    get:
      tags:
        - blacklistEntries
      description: A **GET** request with an ID parameter will return the requested blacklist entry.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the blacklist entry
      responses:
        "200":
          description: Blacklist entry retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/blacklistEntry'
    delete:
      tags:
        - blacklistEntries
      description: A **DELETE** request with an ID parameter will delete the requested blacklist entry.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the blacklist entry
      responses:
        "204":
          description: Blacklist entry deleted
    put:
      tags:
        - blacklistEntries
      description: A **PUT** request with an ID parameter will update the blacklist entry.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the blacklist entry
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                pattern:
                  type: string
                  description: The pattern of the new blacklist entry.
                  minLength: 2
                  maxLength: 254
                  pattern: "^(?!.*[*])(?!.*\\s).*[^\\s]$" # Must not contain asterisk, padding whitespace characters
                description:
                  type: string
                  minLength: 2
                  maxLength: 254
                  description: A description to the describe this blacklist entry.
              required:
                - pattern
      responses:
        "200":
          description: Blacklist entry updated
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/blacklistEntry'
  /blacklist-entries/preview:
    get:
      tags:
        - blacklistEntries
      description: A **GET** request with a pattern parameter will return a preview of the blacklist entry showing how many import attempts would be blocked.
      parameters:
        - name: pattern
          in: query
          description: The pattern for email addresses to preview.
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Blacklist entry preview retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  affectedRecipients:
                    type: integer
                    description: The number of import attempts that were blocked by this blacklist entry
                  pattern:
                    type: string
                    description: The pattern for email addresses blocked by this blacklist entry
                  _links:
                    type: object
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
  /attributes:
    get:
      tags:
        - attributes
      description: A GET request on the attributes resource will return the first page of attributes.
      parameters:
        - name: lastUpdateSince
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: the filter from which lastUpdate date the attributes should be included
        - name: If-modified-since
          in: header
          required: false
          schema:
            type: string
            format: date-time
      responses:
        "200":
          description: Recipient attributes retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:attributes:
                        $ref: '#/components/schemas/attributes'
                  _links:
                    $ref: '#/components/schemas/linksForAttributes'
    post:
      tags:
        - attributes
      parameters:
        - name: hidden
          in: query
          description: Defines the initial visibility of the new attribute in the Inxmail Professional GUI Client. Only applies to lists other than the system mailing list. true by default.
          required: false
          schema:
            type: boolean
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  required:
                    - Must not be null
                    - Must not contain padding whitespace characters
                    - Size must be between 1 and 255 inclusive
                  description: The name of the new attribute
                type:
                  type: string
                  required:
                    - Must be one of TEXT, DATE_AND_TIME, DATE_ONLY, TIME_ONLY, INTEGER, FLOATING_POINT_NUMBER, BOOLEAN
                    - Must not be null
                  description: The data type of the new attribute
                maxLength:
                  type: integer
                  required:
                    - Must be at least 1
                    - Must be at most 255
                  description: The mandatory maximum length of an attribute with type TEXT. Do not provide for attributes with other data types.
      responses:
        "201":
          description: New recipient attribute created
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  maxLength:
                    type: integer
                  name:
                    type: string
                  id:
                    type: integer
                  type:
                    type: string
                    enum:
                      - TEXT
                      - DATE_AND_TIME
                      - DATE_ONLY
                      - TIME_ONLY
                      - INTEGER
                      - FLOATING_POINT_NUMBER
                      - BOOLEAN
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
  /attributes/{id}:
    get:
      tags:
        - attributes
      description: A **GET** request with an ID parameter will return the requested attribute.
      parameters:
        - name: id
          in: path
          required: true
          description: The ID of the resource
          schema:
            type: integer
      responses:
        "200":
          description: attribute retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/attribute'
    delete:
      tags:
        - attributes
      description: A **DELETE** request with an ID parameter will delete the requested recipient attribute. **Please note:** internal non-recipient attributes cannot be deleted. Such requests will receive status code 400.
      parameters:
        - name: id
          in: path
          required: true
          description: The ID of the recipient-attribute.
          schema:
            type: integer
      responses:
        "204":
          description: Recipient-attribute was successfully deleted.
        "404":
          description: Recipient-attribute did not exist.
        "400":
          description: The request likely contained the ID of an internal attribute. Those cannot be deleted.
  /import-automations/{id}:
    get:
      tags:
        - imports
      description: A **GET** request with an ID parameter will return the selected import automation.
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the import automation
          schema:
            type: integer
      responses:
        "200":
          description: Object retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  id:
                    type: integer
                  name:
                    type: string
                  state:
                    type: string
                    enum:
                      - DRAFT
                      - ACTIVE
                      - INACTIVE
                  importInterval:
                    $ref: '#/components/schemas/importInterval'
                  sftpConfiguration:
                    $ref: '#/components/schemas/sftpConfiguration'
                  importConfiguration:
                    $ref: '#/components/schemas/importConfiguration'

    delete:
      tags:
        - imports
      description: A **DELETE** request with an ID parameter will delete the selected import automation. **Please note:** Import automations which are already active can not be deleted.
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the import automation to be deleted
          schema:
            type: integer
      responses:
        "204":
          description: Import automation deleted successfully
        "404":
          description: Import automation not found
    patch:
      tags:
        - imports
      description: A **PATCH** request with an ID parameter will update the selected import automation.
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the import automation
          schema:
            type: integer
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the new import automation. Must be unique.
                  required:
                    - Must not be null
                state:
                  type: string
                  enum:
                    - DRAFT
                    - ACTIVE
                    - INACTIVE
                importInterval:
                  $ref: '#/components/schemas/importInterval'
                sftpConfiguration:
                  $ref: '#/components/schemas/sftpUpdateConfiguration'
                importConfiguration:
                  $ref: '#/components/schemas/importConfiguration'
      responses:
        "200":
          description: Object patched
          content:
            application/hal+json:
              schema:
                properties:
                  id:
                    type: integer
                  name:
                    type: string
                  state:
                    type: string
                    enum:
                      - DRAFT
                      - ACTIVE
                      - INACTIVE
                  importInterval:
                    $ref: '#/components/schemas/importInterval'
                  sftpConfiguration:
                    $ref: '#/components/schemas/sftpConfiguration'
                  importConfiguration:
                    $ref: '#/components/schemas/importConfiguration'


  /import-automations:
    get:
      tags:
        - imports
      description: A **GET** request will return the collection of import automations.
      parameters:
        - name: listIds
          in: query
          description: Filters by Import Automations that are assigned to one of the specified list IDs.
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: integer
        - name: state
          in: query
          description: Filters by Import Automations with the specified status (DRAFT, ACTIVE, INACTIVE).
          required: false
          style: form
          explode: true
          schema:
            type: string
        - name: nameContainsIgnoreCase
          in: query
          description: Filters by Import Automations whose name contains the specified value. Case is ignored.
          required: false
          style: form
          explode: true
          schema:
            type: string
      responses:
        "200":
          description: Collection of import automations retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:import-automations:
                        type: array
                        items:
                          properties:
                            id:
                              type: integer
                            name:
                              type: string
                            state:
                              type: string
                              enum:
                                - DRAFT
                                - ACTIVE
                                - INACTIVE
                            importInterval:
                              $ref: '#/components/schemas/importInterval'
                            sftpConfiguration:
                              $ref: '#/components/schemas/sftpConfiguration'
                            importConfiguration:
                              $ref: '#/components/schemas/importConfiguration'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - imports
      description: A **POST** request will return the created import automation.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: THe name of the new import automation. Must be unique.
                  required:
                    - Must not be null
      responses:
        "200":
          description: Object created
          content:
            application/hal+json:
              schema:
                properties:
                  id:
                    type: integer
                  name:
                    type: string
                  state:
                    type: string
                    enum:
                      - DRAFT
                      - ACTIVE
                      - INACTIVE
                  importInterval:
                    $ref: '#/components/schemas/importInterval'
                  sftpConfiguration:
                    $ref: '#/components/schemas/sftpConfiguration'
                  importConfiguration:
                    $ref: '#/components/schemas/importConfiguration'
        "400":
          description: Object not created
  /import-automations/{importAutomationId}/sftp-credentials:
    put:
      tags:
        - imports
      description: A **PUT** request will return the result of the sftp connection check of the sftp credentials.
      parameters:
        - name: importAutomationId
          in: path
          required: true
          description: The id of the import automation
          schema:
            type: integer
        - name: uri
          in: query
          required: true
          description: The uri of the sftp server
          schema:
            type: string
        - name: username
          in: query
          required: true
          description: The username to login to the sftp server
          schema:
            type: string
        - name: password
          in: query
          required: true
          description: The password of the sftp server
          schema:
            type: string
        - name: passphrase
          in: query
          required: true
          description: The passphrase of the sftp server
          schema:
            type: string
        - name: privateKey
          in: query
          required: true
          description: The private key of the sftp server
          schema:
            type: string
      responses:
        "200":
          description: The result of the sftp connection check
          content:
            application/hal+json:
              schema:
                properties:
                  connectionEstablishError:
                    type: string
                  readAccessError:
                    type: string
                  writeAccessError:
                    type: string
                  failReason:
                    type: string
                  success:
                    type: boolean
        "404":
          description: Provided importAutomationId of the import automation was not found
  /import-automations/{id}/activations:
    get:
      tags:
        - imports
      description: A **GET** request will return the collection of activations for import automations.
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the import automation
          schema:
            type: integer
      responses:
        "200":
          description: Collection of activations for provided import automations
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:activations:
                        type: array
                        items:
                          properties:
                            id:
                              type: integer
                            comment:
                              type: string
                            stateTransition:
                              type: string
                              enum:
                                - ACTIVATED
                                - DEACTIVATED
                                - LIST_DELETED
                            timestamp:
                              type: string
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
        "404":
          description: Provided id of the import automation was not found
    post:
      tags:
        - imports
      description: A **POST** request will return the created activation for import automation.
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the import automation
          schema:
            type: integer
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                command:
                  type: string
                  enum:
                    - ACTIVATE
                    - DEACTIVATE
                  description: Command of the activation
                  required:
                    - Must not be null
                comment:
                  type: string
                  description: Description of the activation
      responses:
        "201":
          description: Object created
          content:
            application/hal+json:
              schema:
                properties:
                  id:
                    type: integer
                  comment:
                    type: string
                  stateTransition:
                    type: string
                    enum:
                      - ACTIVATED
                      - DEACTIVATED
                      - LIST_DELETED
                  timestamp:
                    type: string
        "400":
          description: Object not created
        "404":
          description: Provided id of the import automation was not found
  /import-automations/{importAutomationId}/activations/{id}:
    get:
      tags:
        - imports
      description: A **GET** request will return the collection of activations for import automations.
      parameters:
        - name: importAutomationId
          in: path
          required: true
          description: The id of the import automation
          schema:
            type: integer
        - name: id
          in: path
          required: true
          description: The id of the activation
          schema:
            type: integer
      responses:
        "200":
          description: Collection of activations for provided import automations
          content:
            application/hal+json:
              schema:
                properties:
                  id:
                    type: integer
                  comment:
                    type: string
                  stateTransition:
                    type: string
                    enum:
                      - ACTIVATED
                      - DEACTIVATED
                      - LIST_DELETED
                  timestamp:
                    type: string
        "404":
          description: Provided importAutomationId of the import automation or id of activation was not found

  /imports/recipients:
    get:
      tags:
        - imports
      description: A **GET** request  will return the first page of the import history.
      parameters:
        - name: triggerType
          in: query
          required: false
          description: Filters by the trigger type of the import.
          schema:
            type: string
            enum:
              - MANUAL
              - API
              - AUTOMATED
        - name: state
          in: query
          description: Filters by the state of the import.
          required: false
          schema:
            type: string
            enum:
              - NEW
              - PROCESSING
              - SUCCESS
              - FAILED
              - CANCELED
        - name: listIds
          in: query
          schema:
            type: array
            items:
              type: integer
          required: false
          description: The IDs of the lists to filter
      responses:
        "200":
          description: Import history retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:execution:
                        type: array
                        items:
                          properties:
                            id:
                              type: integer
                            state:
                              type: string
                              enum:
                                - NEW
                                - PROCESSING
                                - SUCCESS
                                - FAILED
                                - CANCELED
                            successCount:
                              type: integer
                              description: The number of successfully imported records so far
                            failCount:
                              type: integer
                              description: The current number of records which could not be
                                imported
                            triggerType:
                              type: string
                              enum:
                                - MANUAL
                                - API
                                - AUTOMATED
                            beginDate:
                              type: string
                              format: date-time
                              description: The date and time when the import was started
                            endDate:
                              type: string
                              format: date-time
                              description: The date and time when the import was finished
                            targetListId:
                              type: integer
                              description: The ID of the target list of the import
                            importAutomationName:
                              type: string
                              description: The name of the import automation which triggered this import
                            importAutomationId:
                              type: integer
                              description: The ID of the import automation which triggered this import
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - imports
      description: A POST request with a, potentially compressed, CSV file multipart
        will trigger a recipient import which uses the CSV file as source. To upload
        the CSV file the request has to be a multipart request (e.g. multipart/form-data)
        with a request part called file. This request part must contain either a proper
        CSV file or a gzip compressed version of a proper CSV file.
      operationId: uploadFile
      parameters:
        - name: listId
          in: query
          description: The ID of the target list to import the recipients into, by subscribing
            them to the list. The target list must be a list of type STANDARD. If this
            parameter is omitted, the recipients will only be imported into the system
            and not subscribed to any list.
          required: false
          style: form
          explode: true
          schema:
            type: integer
        - name: resubscribe
          in: query
          description: If true any recipient in the CSV file who was previously unsubscribed
            from the target list will be re-subscribed. This parameter only takes effect
            if the listId parameter is in use.The default is false.
          required: false
          style: form
          explode: true
          schema:
            type: boolean
        - name: truncate
          in: query
          description: The default value is OVERWRITE_FULL.
          required: false
          style: form
          explode: true
          schema:
            type: string
            enum:
              - KEEP_EXISTING
              - OVERWRITE_EXCEPT_EMPTY
              - OVERWRITE_FULL
              - UPDATE
        - name: trackingPermissionConflictMode
          in: query
          description: The default value is OVERWRITE_FULL.
          required: false
          style: form
          explode: true
          schema:
            type: string
            enum:
              - KEEP_EXISTING
              - OVERWRITE_EXCEPT_EMPTY
              - OVERWRITE_FULL
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  description: file to upload
                  format: binary
      responses:
        "201":
          description: The response to an import request is the content of a newly
            generated status monitor for that import. As the import is performed asynchronously,
            you can use this status monitor to check the current status of the import.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  state:
                    type: string
                    enum:
                      - NEW
                      - PROCESSING
                      - SUCCESS
                      - FAILED
                      - CANCELED
                  successCount:
                    type: integer
                    description: The number of successfully imported records so far
                  failCount:
                    type: integer
                    description: The current number of records which could not be
                      imported
                  _links:
                    $ref: '#/components/schemas/linksForImports'

  /imports/recipients/{importId}:
    get:
      tags:
        - imports
      description: A **GET** request with an ID parameter will return the requested
        recipient import.
      parameters:
        - name: importId
          in: path
          description: The ID of of the recipient import
          required: true
          style: simple
          schema:
            type: integer
      responses:
        "200":
          description: The response to an import request is the content of a newly
            generated status monitor for that import. As the import is performed asynchronously,
            you can use this status monitor to check the current status of the import.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  state:
                    type: string
                    enum:
                      - NEW
                      - PROCESSING
                      - SUCCESS
                      - FAILED
                      - CANCELED
                  successCount:
                    type: integer
                    description: The number of successfully imported records so far
                  failCount:
                    type: integer
                    description: The current number of records which could not be
                      imported
                  triggerType:
                    type: string
                    enum:
                      - MANUAL
                      - API
                      - AUTOMATED
                  beginDate:
                    type: string
                    format: date-time
                    description: The date and time when the import was started
                  endDate:
                    type: string
                    format: date-time
                    description: The date and time when the import was finished
                  targetListId:
                    type: integer
                    description: The ID of the target list of the import
                  files:
                    type: array
                    description: Array containing the files of the import
                    items:
                      allOf:
                        - $ref: '#/components/schemas/importFiles'
                  _links:
                    $ref: '#/components/schemas/linksForImports'
  /imports/recipients/{importId}/files:
    get:
      tags:
        - imports
      description: A **GET** request with an import ID on the files resource will return the first page of import files.
      parameters:
        - name: importId
          in: path
          required: true
          schema:
            type: integer
          description: The Id of the recipient import
      responses:
        "200":
          description: Import collection retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:files:
                        $ref: '#/components/schemas/importFiles'
                  _links:
                    $ref: '#/components/schemas/links'
  /imports/recipients/{importId}/files/{fileId}:
    get:
      tags:
        - imports
      description: A **GET** request with an import ID parameter and a file ID parameter
        will return the requested file import.
      parameters:
        - name: importId
          in: path
          required: true
          schema:
            type: integer
        - name: fileId
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: The response to an import request is the content of a newly
            generated status monitor for that import. As the import is performed asynchronously,
            you can use this status monitor to check the current status of the import.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    description: The name of the file
                  state:
                    type: string
                    description: The state of the import. Possible values are - NEW, PREFETCHING, READY_TO_PROCESS,
                      PREFETCH FAILED, PROCESSING, SUCCESSFUL, FAILED, DEQUEUED, CANCELED
                    enum:
                      - NEW
                      - PREFETCHING
                      - READY_TO_PROCESS
                      - PREFETCH FAILED
                      - PROCESSING
                      - SUCCESSFUL
                      - FAILED
                      - DEQUEUED
                      - CANCELED
                  currentCount:
                    type: integer
                    description: The number of imported records so far
                  successCount:
                    type: integer
                    description: The number of successfully imported records so far
                  failedCount:
                    type: integer
                    description: The current number of records which could not be imported
                  id:
                    type: integer
                    description: The ID of the file import
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:errors:
                        $ref: '#/components/schemas/linkError'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
  /imports/recipients/{importId}/files/{fileId}/errors:
    get:
      tags:
        - imports
      description: A **GET** request with an import ID and an import file ID on the errors resource will return the first page of import errors.
      parameters:
        - name: importId
          in: path
          required: true
          schema:
            type: integer
        - name: fileId
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Errors retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:errors:
                        type: array
                        items:
                          properties:
                            email:
                              type: string
                              description: 'Optional: e-mail address of line'
                            line:
                              type: number
                              description: 'Optional: number of affected line'
                            column:
                              type: number
                              description: 'Optional: number of affected column'
                            error:
                              type: string
                              enum:
                                - ATTRIBUTE_PARSE_ERROR
                                - BLACKLIST_ERROR
                                - DELETE_RECIPIENTS_ERROR
                                - EMAIL_PARSE_ERROR
                                - HEADER_ERROR
                                - IGNORED_IMPORT_ERROR
                                - IMPORT_CRASHED_ERROR
                                - LINE_PARSE_ERROR
                                - SAVE_ERROR
                                - UNSUBSCRIPTION_ERROR
                                - COLUMN_NOT_FOUND_WARN
                                - IGNORED_TRACKING_PERMISSION_WARN
                                - TRACKING_PERMISSION_COLUMN_NOT_FOUND_WARN
                                - EMPTY_LINE_INFO
                              description: The code of the error.
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'

  /tracking-permissions/{id}:
    get:
      tags:
        - trackingPermissions
      description: A **GET** request with an ID parameter will return the requested tracking permission
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the tracking permission
      responses:
        "200":
          description: tracking permission retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/trackingPermission'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForTrackingPermissions'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
  /tracking-permissions:
    get:
      tags:
        - trackingPermissions
      description: A **GET** requested on the tracking permissions resource will return the first page of tracking permissions.
        Please note, that for retrieving a tracking permission it is possible to address the recipient by either the recipient id or the unique email address.
        Since the two request parameters 'listIds' and 'recipientIds'/'emailIds' are currently mandatory and can only take one id each, the result will contain zero or one objects.
        The parameters 'recipientIds' and 'emails' must not be used in combination. Exactly one of these parameters must be specified.
      parameters:
        - name: listIds
          in: query
          required: true
          schema:
            type: integer
        - name: recipientIds
          in: query
          schema:
            type: integer
        - name: emails
          in: query
          schema:
            type: string
      responses:
        "200":
          description: retrieved tracking permissions collection.
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:tracking-permission-events:
                        $ref: '#/components/schemas/trackingPermissions'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - trackingPermissions
      description: |
        A **POST** request with the following payload structure will create a new tracking permission.
        Violations of the constraints will lead to validation errors.
        The following requirements must be met:
        - The recipient must exist
        - The list must exist
        - The list must be of type **STANDARD**
        - The recipient must be subscribed to the list, or the list property 'Include Tracking Permission of deleted recipients' must be active
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                listId:
                  type: integer
                  description: The ID of the list the associated to the tracking permission.
                  required:
                    - Must not be null
                recipientId:
                  type: integer
                  description: The ID of the recipient associated to this tracking permission
                  required:
                    - Can not be declared at the same time as email
                email:
                  type: integer
                  description: The email of the recipient associated to this tracking permission
                  required:
                    - Can not be declared at the same time as recipientId
                trackingPermissionState:
                  type: string
                  description: The state of the tracking permission. Currently only GRANTED state can be posted
                  required:
                    - Must be GRANTED
                    - Must not be null
                suppliedRemoteAddress:
                  type: string
                  description: The actual given IP of the request.
                  required:
                    - Must be valid IPv4 address
      responses:
        "201":
          description: Tracking permission state set
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/trackingPermission'
    delete:
      tags:
        - trackingPermissions
      description: A **DELETE** request will remove a tracking permission. Technically the request will delete a collection of tracking permissions,
        however because of the required query parameters, effectively only one tracking permission is deleted.

        Please note, that for deleting a tracking permission it is possible to address the recipient by either the recipient id or the unique email address.

        Deleting an empty collection will also result in 204 No Content. If a list and recipient combinations exists then a tracking permission event will
        be produced regardless whether a permission existed or not.
      parameters:
        - name: listIds
          in: query
          schema:
            type: integer
          description: The ID of the list associated with the tracking permission
        - name: recipientIds
          in: query
          schema:
            type: integer
          description: The ID of the recipient to delete the tracking permission for
        - name: email
          in: query
          schema:
            type: string
          description: The email address of the recipient to delete the tracking permission for
      responses:
        "204":
          description: Tracking permissions deleted
  /events/tracking-permissions/{id}:
    get:
      tags:
        - trackingPermissionEvents
      description: A **GET** request with an ID parameter will return the requested event.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The ID of the event
      responses:
        "200":
          description: Event retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/trackingPermissionEvent'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForTrackingPermissions'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
  /events/tracking-permissions:
    get:
      tags:
        - trackingPermissionEvents
      description: |
        A **GET** request on the tracking permission events resource will return the first page of tracking events.
        Please note - The request parameters to filter recipients is in plural. However, only one recipient can be filtered per request at the moment.
        This naming scheme is a measure to future-proof the API. If there is demand to filter multiple recipients per request we will add that feature without changing the name of the parameter,
        hence keeping compatibility.

        Please also keep in mind, that for retrieving a tracking permission event it is possible to address the recipient by either the recipient id or the recipient email address.
        The parameters 'recipientIds' and 'emails' must not be used is combination. Using both in one request will lead to a validation error.
      parameters:
        - name: listIds
          in: query
          schema:
            type: integer
          required: false
          description: The IDs of the lists to retrieve events for
        - name: recipientIds
          in: query
          schema:
            type: integer
          required: false
          description: The IDs of the recipients to retrieve events for
        - name: emails
          in: query
          schema:
            type: string
          required: false
          description: The email address of the recipient to retrieve events for
        - name: startDate
          in: query
          schema:
            type: string
            format: date-time
          required: false
          description: The start date (inclusive) for the desired tracking permission events
        - name: endDate
          in: query
          schema:
            type: string
            format: time-date
          required: false
          description: The end date (exclusive) for the desired tracking permission events
        - name: embedded
          in: query
          schema:
            type: object
            enum:
              - inx:recipient
          required: false
          description: Indicates the relations of the resources that should be embedded in the result
        - name: recipientAttributes
          in: query
          schema:
            type: string
          required: false
          description: Indicates the names of the recipient attributes that should be included in the embedded recipient result.
            More than one value can be specified with multiple query parameters or comma separated list.
        - name: eventOriginatorTypes
          in: query
          schema:
            type: string
          required: false
          description: Details of the originator that triggered this event
      responses:
        "200":
          description: events received
          content:
            application/hal+json:
              schema:
                properties:
                  _embedded:
                    properties:
                      inx:tracking-permission-events:
                        $ref: '#/components/schemas/trackingPermissionEvents'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
  /events/subscriptions:
    post:
      tags:
        - subscriptionEvents
      description: A **POST** request with the following payload structure will initiate
        the subscription process for the specified recipient and list. Violations
        of the constraints will lead to validation errors. Furthermore, the provided
        listId must correspond to an existing standard mailing list and the specified
        email must not match a blacklist entry. If there is a field named trackingPermission
        in the payload the content will be interpreted to set the recipients tracking
        permission. The value GRANTED (case insensitive matching) sets the permission
        to track this recipient. If the field is missing or an empty value is given
        the tracking permission of the recipient will not be changed. All other values
        will be interpreted as no permission to track this recipient. The provided
        attributes must fulfill the following conditions:The given attribute must
        already exist,The format of the attribute value must be correct. If one of
        these conditions is not fulfilled, the recipient will neither be subscribed
        nor created.
      requestBody:
        content:
          application/hal+json:
            schema:
              required:
                - email
                - listId
              type: object
              properties:
                listId:
                  type: integer
                  description: The ID of the list the recipient should be subscribed
                    to.
                  required:
                    - Must not be null
                email:
                  type: string
                  description: The email address of the recipient to subscribe. Must
                    be a valid email address.
                  required:
                    - Must not be null
                trackingPermission:
                  type: string
                  description: The tracking permission of the recipient.
                  enum:
                    - GRANTED
                    - DENIED
                attributes:
                  type: object
                  description: The attributes of the recipient. It can be of json data type
                    String, Integer, Float or Boolean. Note that, for Boolean attributes,
                    empty values like null or " " will be handled as false. Overwriting
                    of attributes can be configured in the Subscriptions agent. If
                    overwriting is allowed, provided attributes will overwrite existing
                    ones while omitted attributes will remain the same.
                source:
                  type: string
                  description: An identifier for the source which caused the event.
                suppliedRemoteAddress:
                  type: string
                  description: The actual IP address of the subscription request.
      responses:
        "200":
          description: Successfully subscribe a collection of lists. The subscription
            is successful if the result is one of the values PENDING_SUBSCRIPTION,
            PENDING_SUBSCRIPTION_DONE, DUPLICATE_SUBSCRIPTION,MANUAL_SUBSCRIPTION.
            Otherwise the subscription is not successful.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  result:
                    type: string
                    enum:
                      - PENDING_SUBSCRIPTION
                      - PENDING_SUBSCRIPTION_DONE
                      - VERIFIED_SUBSCRIPTION
                      - MANUAL_SUBSCRIPTION
                      - DUPLICATE_UNSUBSCRIPTION
                      - SUBSCRIPTION_TIMED_OUT
                      - SUBSCRIPTION_ID_NOT_VALID
                      - SUBSCRIPTION_EMAIL_MISSMATCH
                      - BLACKLISTED
                      - INVALID_ADDRESS_ERROR
                      - SUBSCRIPTION_VERIFICATION_BOUNCED
                      - SUBSCRIPTION_INTERNAL_ERROR
                      - LIST_BOMBING_ATTEMPT
    get:
      tags:
        - subscriptionEvents
      description: A GET request on the subscription events resource will return the first page of subscription events.
      parameters:
        - name: listId
          in: query
          description: The ID of the list to retrieve events for.
          required: false
          schema:
            type: integer
        - name: listIds
          in: query
          description: The IDs of the lists to retrieve events for.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: startDate
          in: query
          description: The start date (inclusive) for the desired subscriptions.
          required: false
          schema:
            type: object
        - name: endDate
          in: query
          description: The end date (exclusive) for the desired subscription.
          required: false
          schema:
            type: object
        - name: types
          in: query
          description: The types for the desired subscriptions. Default is all types.
          required: false
          schema:
            type: array
            items:
              type: object
        - name: embedded
          in: query
          description: Indicates the relations of the resources that should be embedded in the result.
          required: false
          schema:
            type: object
        - name: recipientAttributes
          in: query
          description: Indicates the names of the recipient attributes that should be included in the embedded recipient result.
            More than one value can be specified with multiple query parameters or comma separated list.
          required: false
          schema:
            type: array
            items:
              type: string
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/afterId'
        - $ref: '#/components/parameters/beforeId'
        - $ref: '#/components/parameters/order'
      responses:
        "200":
          description: retrieved subscription event collection.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:subscription-events:
                        $ref: '#/components/schemas/subscriptionEvents'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'

  /events/subscriptions/{id}:
    get:
      tags:
        - subscriptionEvents
      description: A **GET** request with an ID parameter will return the requested event.
      parameters:
        - name: id
          in: path
          required: true
          description: The ID of the event
          schema:
            type: integer
      responses:
        "200":
          description: retrieved subscription event.
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/subscriptionEvent'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForSubscriptionEvent'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'


  /events/unsubscriptions/{id}:
    get:
      tags:
        - unsubscriptionEvents
      description: A **GET** request with an ID parameter will return the requested event.
      parameters:
        - name: id
          in: path
          required: true
          description: The ID of the event.
          schema:
            type: integer
      responses:
        "200":
          description: retrieved unsubscription event.
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/unsubscriptionEvent'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForUnsubscriptionEvent'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'

  /events/unsubscriptions:
    get:
      tags:
        - unsubscriptionEvents
      description: A GET request on the unsubscription events resource will return the first page of unsubscription events.
      parameters:
        - name: listId
          in: query
          description: The ID of the list to retrieve events for.
          required: false
          schema:
            type: integer
        - name: listIds
          in: query
          description: The IDs of the lists to retrieve events for.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: startDate
          in: query
          description: The start date (inclusive) for the desired subscriptions.
          required: false
          schema:
            type: object
        - name: endDate
          in: query
          description: The end date (exclusive) for the desired subscription.
          required: false
          schema:
            type: object
        - name: types
          in: query
          description: The types for the desired subscriptions. Default is all types.
          required: false
          schema:
            type: array
            items:
              type: object
        - name: embedded
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - inx:recipient
          description: |
            Indicates the relations of the resources that should be embedded in the result.
            - The recipient who was subscribed. Since an email address written in different capitalization is essentially the same, it is possible that the capitalization of an email of a subscription event might differ from the capitalization of the related recipient.
        - name: recipientAttributes
          in: query
          description: Indicates the names of the recipient attributes that should be included in the embedded recipient result. More than one value can be specified with multiple query parameters or comma separated list.
          required: false
          schema:
            type: array
            items:
              type: string
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/afterId'
        - $ref: '#/components/parameters/beforeId'
        - $ref: '#/components/parameters/order'
      responses:
        "200":
          description: retrieved unsubscription event collection.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:unsubscription-events:
                        $ref: '#/components/schemas/unsubscriptionEvents'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - unsubscriptionEvents
      description: A **POST** request with the following payload structure will initiate the unsubscription process for the specified recipient and list. Violations of the constraints will lead to validation errors. Furthermore, the provided listId must correspond to an existing standard mailing list.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                listId:
                  type: integer
                  description: The ID of the list the recipient shall be subscribed
                    to.
                  required:
                    - must not be null
                email:
                  type: string
                  description: The email address of the recipient to subscribe. Must
                    be a valid email address. Must not be null
                  required:
                    - must not be null
                    - must be valid email address
                source:
                  type: string
                  description: An identifier for the source which caused this event.
                suppliedRemoteAddress:
                  type: string
                  description: The actual supplied IP address of the unsubscription request.
      responses:
        "200":
          description: Recipient unsubscribed.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  result:
                    type: string
                    enum:
                      - PENDING_UNSUBSCRIPTION
                      - PENDING_UNSUBSCRIPTION_DONE
                      - PENDING_UNSUBSCRIPTION_NOT_IN_LIST
                      - PENDING_UNSUBSCRIPTION_DONE_NOT_IN_LIST
                      - VERIFIED_UNSUBSCRIPTION
                      - VERIFIED_UNSUBSCRIPTION_NOT_IN_LIST
                      - MANUAL_UNSUBSCRIPTION
                      - DUPLICATE_UNSUBSCRIPTION
                      - UNSUBSCRIPTION_TIMED_OUT
                      - UNSUBSCRIPTION_ID_NOT_VALID
                      - UNSUBSCRIPTION_EMAIL_MISSMATCH
                      - UNSUBSCRIPTION_VERIFICATION_BOUNCED
                      - UNSUBSCRIPTION_INTERNAL_ERROR
                      - LIST_UNSUBSCRIBE_HEADER_UNSUBSCRIPTION
                      - LIST_UNSUBSCRIBE_HEADER_UNSUBSCRIPTION_NOT_IN_LIST
                      - NOT_IN_SYSTEM_UNSUBSCRIPTION
                      - NOT_IN_LIST_UNSUBSCRIPTION

  /recipients:
    get:
      tags:
        - recipients
      description: returns a collection of lists of type **STANDARD** and **DYNAMIC**
      parameters:
        - in: query
          name: attributes
          description: Indicates the names of the attributes that should be included
            in the result. More than one value can be specified with multiple query
            parameters or comma separated list.
          schema:
            type: array
            items:
              type: string
        - in: query
          name: subscribedTo
          description: 'When set to the ID of an existing list, retrieves only recipients
          subscribed to that list. Warning: Retrieving recipients of dynamic lists
          can cause longer running times because the target group has to be evaluated.
          This parameter cannot be specified simultaneously to the parameter unsubscribedFrom.'
          schema:
            type: integer
        - in: query
          name: subscribedToAny
          description: 'When set to the IDs of existing standard lists, retrieves only
          recipients subscribed to that lists. Warning: Retrieving recipients of dynamic
          lists can cause longer running times because the target group has to be
          evaluated. This parameter cannot be specified simultaneously to the parameter
          unsubscribedFrom and subscribedTo.'
          schema:
            type: array
            items:
              type: integer
        - in: query
          name: unsubscribedFrom
          description: 'When set to the ID of an existing list, retrieves only recipients
          unsubscribed from that list. Warning: Retrieving recipients of dynamic lists
          can cause longer running times because the target group has to be evaluated.
          This parameter cannot be specified simultaneously to the parameter subscribedTo.'
          schema:
            type: integer
        - in: query
          name: unsubscribedFromAny
          description: 'When set to the IDs of existing standard lists, retrieves only
          recipients unsubscribed from that lists. Warning: Retrieving recipients
          of dynamic lists can cause longer running times because the target group
          has to be evaluated. This parameter cannot be specified simultaneously to
          the parameter subscribedTo and unsubscribedFrom.'
          schema:
            type: array
            items:
              type: integer
        - in: query
          name: lastModifiedSince
          description: Indicates the date (ISO 8601) on which a recipient was updated
            for the last time. When this value is set, only recipients which where updated
            since (inclusive) that given date will be included in the result. Only one
            value can be specified at the same time.
          schema:
            type: string
            format: date-time
        - in: query
          name: email
          description: The email address of a recipient. When this value is set, only
            recipients with the given email address will be included in the result.
            More than one value can be specified with multiple query parameters or comma
            separated list.
          schema:
            type: array
            items:
              type: string
        - in: query
          name: attributes.attributeName
          description: A wildcard query parameter where attributeName is the name
            of a recipient attribute. This parameter can be used to filter recipients
            by their respective attributes. For example, the query attributes.familyName=Doe
            will return all recipients whose family name is Doe. The specified attribute
            has to exist and must be a custom user attribute. FLOATING_POINT_NUMBER
            attributes are currently not supported due to the imprecise nature of floating
            point numbers which inhibits a meaningful comparison for equality. TIME_ONLY
            attributes are also not supported at this point. Please also note, that
            the data type of the matching value (e.g. Doe) has to match the data type
            of the attribute. This parameter can be used for an arbitrary number of
            attributes (e.g. attributes.givenName=John&attributes.familyName=Doe).
          schema:
            type: array
            items:
              type: string
        - in: query
          name: trackingPermissionsForLists
          description: Indicates the ids of the lists for which the tracking permissions
            should be included in the result. The specified lists must be of type STANDARD.
          schema:
            type: array
            items:
              type: integer
        - in: query
          name: subscriptionDatesForLists
          description: Indicates the ids of the lists for which the subscription dates
            should be included in the result. The specified lists must be of type STANDARD.
          schema:
            type: array
            items:
              type: integer
        - in: query
          name: filterId
          description: 'When set to the ID of an target group, retrieves only recipients included in the specified groups conditions.'
          schema:
            type: integer
        - in: query
          name: unavailable
          description: 'When set to true, retrieves only recipients that are unavailable.'
          schema:
            type: boolean
        - in: query
          name: emailContainsIgnoreCase
          description: 'Filter recipient collection by email that contains a specific string.'
          schema:
            type: string
        - in: query
          name: attributesContainsIgnoreCase.attributeName
          description: A wildcard query parameter where attributeName is the name of a recipient attribute.
            This parameter can be used to filter recipients by their respective attributes.
            For example, the query attributesContainsIgnoreCase.familyName=Doe
            will return all recipients whose family name contains any case insensitive match of Doe.
            Can be combined with attributes filter.
            For example attributes.lastName=ExampleLstName&attributesContainsIgnoreCase.familyName=Doe.
          schema:
            type: array
            items:
              type: string
        - in: query
          name: attributeIds.id
          description: A wildcard query parameter where id is the id of a recipient attribute.
            This parameter can be used to filter recipients by their respective attributes.
            For example, the query attributeIds.1234=Doe
            will return all recipients whose attribute with id equal to 1234 has value Doe.
            Can be combined with other attributes filter.
            For example attributeIds.id=1234&attributesContainsIgnoreCase.familyName=Doe.
          schema:
            type: array
            items:
              type: string
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/afterId'
      responses:
        "200":
          description: Successfully returned a collection of recipients
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:recipients:
                        $ref: '#/components/schemas/recipients'
                  _links:
                    $ref: '#/components/schemas/linksForRecipients'
        "400":
          description: Same key for attributes, attributeIds and attributesContainsIgnoreCase. Or Same key for attributeIds
    post:
      tags:
        - recipients
      description: A `POST` request with the given payload structure will create a new recipient on the global recipient list with the specified fields and the respective values. With subscribedLists and unsubscribedLists the recipient can be subscribed or unsubscribed to or from the specified lists. Violations of the constraints will lead to validation errors.
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: The email address of the new recipient.
                  required:
                    - Must be valid email address
                    - Must not be null
                    - Must not already exist
                attributes:
                  $ref: '#/components/schemas/recipient/properties/attributes'
                subscribedLists:
                  type: array
                  items:
                    $ref: '#/components/schemas/subscribedList'
                unsubscribedLists:
                  type: array
                  items:
                    $ref: '#/components/schemas/unsubscribedList'
      responses:
        "201":
          description: Recipient was created
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/recipient'
        "400":
          description: Attributes couldn't be validated. Recipient was not created.
        "409":
          description: Recipient with the given email address already exists.
  /recipients/{id}:
    delete:
      tags:
        - recipients
      description: A DELETE request with an ID parameter will delete the requested recipient from the system.
      parameters:
        - name: id
          in: path
          description: The ID of the resource deleted.
          required: true
          schema:
            type: string
      responses:
        "204":
          description: Entry deleted
    patch:
      tags:
        - recipients
      description: A PATCH request with the following payload structure will replace the specified fields with the respective values.
        Violations of the constraints will lead to validation errors....
      parameters:
        - name: id
          in: path
          description: The ID of recipient to be patched. Cannot be specifies at the same time as email.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: The new email address
                  required:
                    - Must be valid email address
                    - Must not be null
                attributes:
                  type: object
                  description: Object containing the attributes to change
                  required:
                    - Must not be null
      responses:
        "200":
          description: Recipient details updated
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/recipient'
    get:
      tags:
        - recipients
      description: A **GET** request with an ID parameter will return the requested recipient.

        Without additional parameters, we only return the id, the email and the unavailable flag of the requested recipient, not the attributes or the tracking permissions of the recipient. This is due to possible performance issues which could occur when there are a lot of attributes or tracking permissions available. However, there is the possibility to request specific attributes and even all attributes of a recipient. Is is also possible to request the tracking permissions of a recipient
      parameters:
        - name: id
          in: path
          description: The ID of the resource.
          required: true
          schema:
            type: integer
        - name: attributes
          in: query
          description: Indicates the names of the attributes that should be included in the result.
            More than one value can be specified with multiple query parameters or comma separated list. Ignored when allAttributes is true.
          required: false
          schema:
            type: string
        - name: allAttributes
          in: query
          description: If true, indicates that all attributes of the recipient should be included in the result.
            Otherwise, no attributes are included. This parameter takes precedence over the attributes parameter.
          schema:
            type: boolean
        - name: trackingPermissionsForLists
          in: query
          description: Indicates the ids of the lists for which the tracking permissions should be included in the result.             The specified lists must be of type STANDARD.
          schema:
            type: array
            items:
              type: integer
        - name: subscriptionDatesForLists
          in: query
          description: Indicates the ids of the lists for which the subscription dates should be included in the result. The specified lists must be of type STANDARD. This parameter cannot be specified simultaneously to the parameter unsubscriptionDatesForLists.
          schema:
            type: array
            items:
              type: integer
        - name: unsubscriptionDatesForLists
          in: query
          description: Indicates the ids of the lists for which the unsubscription dates should be included in the result. The specified lists must be of type STANDARD. If present, only the latest unsubscription date of the recipient on each requested list will be returned. N.b. A full history of unsubscription dates for a specific recipient and list cannot be requested
          schema:
            type: array
            items:
              type: integer
        - name: completeRecipientInformation
          in: query
          description: Is a combination of allAttributes=true and trackingPermissionsForLists=(set for all lists where a tracking permission is given) and subscriptionDatesForLists=(set for all lists the recipient is subscribed to) and unsubscriptionDatesForLists=(set for all lists the recipient is unsubscribed from). completeRecipientInformation=true can not be used together with any other request parameter (response code=400).
          schema:
            type: boolean
      responses:
        "200":
          description: recipient retrieved
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/recipient'
        "400":
          description: invalid request.
  /recipients/{email}:
    patch:
      tags:
        - recipients
      description: A PATCH request with the following payload structure will replace the specified fields with the respective values.
        Violations of the constraints will lead to validation errors....
      parameters:
        - name: email
          in: path
          description: The email of recipient to be patched. Cannot be specifies at the same time as id.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: The new email address
                  required:
                    - Must be valid email address
                    - Must not be null
                attributes:
                  type: object
                  description: Object containing the attributes to change
                  required:
                    - Must not be null
      responses:
        "200":
          description: Recipient details updated
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/recipient'
  /lists:
    get:
      tags:
        - lists
      description: returns a collection of lists of type STANDARD and DYNAMIC
      parameters:
        - name: createdAfter
          in: query
          schema:
            type: string
            format: date-time
          description: retrieve mailing lists created after the specified date.
        - name: createdBefore
          in: query
          schema:
            type: string
            format: date-time
          description: retrieve mailing lists created before the specified date.
        - name: listNameContainsIgnoreCase
          in: query
          schema:
            type: string
            format: string
          description: retrieve mailing lists that have name that contains specified value, filtering is case-insensitive.
        - name: ids
          in: query
          schema:
            type: string
            format: string
          description: retrieve mailing lists based on ids.
        - name: senderDomain
          in: query
          schema:
            type: string
            format: string
            description: The sender domain of the lists' sender address
        - name: recipientCount
          in: query
          schema:
            type: boolean
          description: Optional parameter. Response provides amount of recipients per each mailing list (except Admin List). Usage of this parameter might make response slower
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/afterId'
      responses:
        "200":
          description: Successfully returned a collection of lists.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:lists:
                        $ref: '#/components/schemas/mlists'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      inx:upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
    post:
      tags:
        - lists
      description: A POST request with the following payload structure will create a new list. Violations of the constraints will lead to validation errors.
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the new list
                  required:
                    - Must not be null
                    - Must not contain whitespace characters
                    - Size must be between 1 and 255 inclusive
                type:
                  type: string
                  description: The type of the new list
                  required:
                    - Must be STANDARD
                    - Must not be null
                senderAddress:
                  type: string
                  description: The email address of the sender of the new list
                  required:
                    - Must be a valid email address
                    - Must not be null
                senderName:
                  type: string
                  description: The name of the sender of the new list
                  required:
                    - Must not contain padding whitespace characters
                replyToAddress:
                  type: string
                  description: The email address which will be present in the reply-to header if every mailing sent from this list
                  required:
                    - Must be a calid email address
                replyToName:
                  type: string
                  description: The display name associated with the replayToAddress
                  required:
                    - Must not contain padding whitespace characters
                description:
                  type: string
                  description: The description of the new list
                  required:
                    - Size must be between 0 and 255 inclusive
      responses:
        "201":
          description: List successfully created
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  creationDate:
                    type: string
                    format: date-time
                  name:
                    type: string
                  description:
                    type: string
                  type:
                    type: string
                    enum:
                      - STANDARD
                  senderAddress:
                    type: string
                  senderName:
                    type: string
                  replyToAddress:
                    type: string
                  replyToName:
                    type: string
                  _links:
                    $ref: '#/components/schemas/linksForLists'
  /lists/{id}:
    get:
      tags:
        - lists
      description: A GET request with a ID parameter will return the requested list.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          description: The ID of the list to be retrieved.
          required: true
      responses:
        "200":
          description: mailing list retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/mlist'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForLists'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
    put:
      tags:
        - lists
      description: A PUT request with the following payload structure will replace an existing list. Violations of the constraints will lead to validation errors.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          description: The ID of the list to be replaced
          required: true
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name of the list
                  required:
                    - Must not be null
                    - Must not contain padding whitespace characters
                    - Size must be between 1 and 255 inclusive
                senderAddress:
                  type: string
                  description: The new email address if the sender of the list
                  required:
                    - Must be a valid email address
                    - Must not be null
                senderName:
                  type: string
                  description: the New name if the sender of the list
                  required:
                    - Must not contain padding whitespace characters
                replyToAddress:
                  type: string
                  description: The new email address which will be present in the reply-to header of every mailing sent from this list
                  required:
                    - Must be a valid email address
                replyToName:
                  type: string
                  description: The new display name associated with the replyToAddress
                  required:
                    - Must not contain padding whitespace characters
                description:
                  type: string
                  description: The new description of the list
                  required:
                    - Size must be between 0 and 255 inclusive
      responses:
        "200":
          description: list entry modified
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/mlist'
                  - properties:
                      _links:
                        properties:
                          self:
                            $ref: '#/components/schemas/halSelfCurie'
    delete:
      tags:
        - lists
      description: A **DELETE** request will remove a mailing list and all the objects depending on it (e.g. all mailings in that list).
        Be aware that a list can not be deleted if it is locked by another user (e.g. an Inxmail Professional user editing a mailing in that list via the desktop client application). A DELETE request on a locked mailing list will trigger a locked-resource error.
        Also, it is impossible to delete the system and administration lists. A DELETE request on one of these lists will result in an invalid-parameter-value error.

      parameters:
        - name: id
          in: path
          required: true
          description: The Id of the list to be deleted
          schema:
            type: integer
      responses:
        "204":
          description: No Content
  /lists/{id}/settings:
    get:
      tags:
        - listsettings
      description: A GET request with a ID parameter will return the settings of requested list.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          description: The ID of the list to be retrieved.
          required: true
      responses:
        "200":
          description: setting of the list retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/listsettings'
                  - properties:
                      _links:
                        properties:
                          self:
                            $ref: '#/components/schemas/halSelfCurie'
    patch:
      tags:
        - listsettings
      description: A PATCH request with the following payload structure will replace the specified fields with the respective values.
        Violations of the constraints will lead to validation errors.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          description: The ID of the list to be patched.
          required: true
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              type: object
              properties:
                trackingPermissionDetachedFromMembership:
                  type: object
                  properties:
                    setValue:
                      type: string
                charset:
                  type: object
                  properties:
                    setValue:
                      type: string
                senderAddress:
                  type: object
                  properties:
                    setValue:
                      type: string
                replyToAddress:
                  type: object
                  properties:
                    setValue:
                      type: string
                thousandsSeparator:
                  type: object
                  properties:
                    setValue:
                      type: string
                sendrate:
                  type: object
                  properties:
                    setValue:
                      type: string
                formatLocale:
                  type: object
                  properties:
                    setValue:
                      type: string
                floatDecimalPlaces:
                  type: object
                  properties:
                    setValue:
                      type: string
                recaptchaConfig:
                  type: object
                  properties:
                    setValue:
                      type: string
      responses:
        "200":
          description: List settings updated
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  trackingPermissionDetachedFromMembership:
                    type: object
                    properties:
                      setValue:
                        type: string
                  charset:
                    type: object
                    properties:
                      setValue:
                        type: string
                  senderAddress:
                    type: object
                    properties:
                      setValue:
                        type: string
                  replyToAddress:
                    type: object
                    properties:
                      setValue:
                        type: string
                  thousandsSeparator:
                    type: object
                    properties:
                      setValue:
                        type: string
                  sendrate:
                    type: object
                    properties:
                      setValue:
                        type: string
                  formatLocale:
                    type: object
                    properties:
                      setValue:
                        type: string
                  floatDecimalPlaces:
                    type: object
                    properties:
                      setValue:
                        type: string
                  recaptchaConfig:
                    type: object
                    properties:
                      setValue:
                        type: string

  /lists/{id}/count:
    get:
      tags:
        - lists
      description: A **GET** request with an ID parameter will return the number of recipients subscribed to the requested list. Due to performance considerations, this number is recalculated infrequently. The returned resource will also tell when the count was last updated. At the moment there is no way for the user to force an update of the count, the server will decide on the update frequency.
      parameters:
        - name: id
          in: path
          required: true
          description: The ID of the list to retrieve a count for.
          schema:
            type: integer
        - name: targetGroupIds
          in: query
          required: false
          description: If this parameter is given, an additional filter, corresponding to the targetGroupCombinationStrategy parameter,  will be applied to count the recipients.
          schema:
            type: array
            items:
              type: integer
        - name: targetGroupCombinationStrategy
          in: query
          required: false
          description: >
            The combination strategy which should be used for filtering the recipients. Default is MATCH_ALL
            - `MATCH_ALL` - only recipients that are in all target groups will be counted
            - `MATCH_ONE` - recipients that are in at least one target group will be counted
            - `MATCH_NONE` - only recipients that are in none of the target groups will be counted
          schema:
            type: string
            enum:
              - MATCH_ALL
              - MATCH_ONE
              - MATCH_NONE
        - name: availableOnly
          in: query
          required: false
          description: Adds available only filter to mailing list recipient count
          schema:
            type: boolean

      responses:
        "200":
          description: count retrieved
          content:
            application/hal+json:
              schema:
                properties:
                  id:
                    type: integer
                  count:
                    type: integer
                  lastCalculatedAt:
                    type: string
                    format: date-time
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
  /lists/{id}/settings/{settingName}:
    put:
      tags:
        - lists
      description: A **PUT** request with the following payload structure will change the value of a list setting. Violations of the constraints will lead to validation errors.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          description: The ID of the list to change the setting for. Must be a list of type STANDARD.
          required: true
        - name: settingName
          in: path
          schema:
            type: string
            enum:
              - TrackingPermissionDetachedFromMembership
          description: The name of the setting to change.
          required: true
      requestBody:
        content:
          application/hal+json:
            schema:
              type: object
              properties:
                value:
                  type: string
                  description: The new value of the setting.
                  required:
                    - Must not be null
                    - Must bo one of "true" or "false"
      responses:
        "200":
          description: Setting changed successfully
    get:
      tags:
        - lists
      description: A **GET** request with an ID parameter and a SettingName parameter payload structure will fetch the value of a
        list setting.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          description: The ID of the list to retrieve the setting for.
          required: true
        - name: settingName
          in: path
          schema:
            type: string
            enum:
              - TrackingPermissionDetachedFromMembership
          description: The name of the setting to be retrieved.
          required: true
      responses:
        "200":
          description: list setting retrieved
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/listSettingValue'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForListSettings'
  /lists/{id}/unsubscription-settings:
    get:
      tags:
        - lists
      description: returns the unsubscription-settings for a list
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: the ID of the list for the requested unsubscription-settings
      responses:
        "200":
          description: Successful returned the unsubscription-settings
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/unsubscriptionSettings'
        "404":
          description: lists with the given id could not be found
    put:
      tags:
        - lists
      description: A put request will update the unsubscription setting for a given list
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: the ID of the list for the unsubscription-settings
      requestBody:
        content:
          application/hal+json:
            schema:
              $ref: "#/components/schemas/unsubscriptionSettings"
      responses:
        "200":
          description: Successful updated the unsubscription-settings and return the new value
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/unsubscriptionSettings'
        "404":
          description: lists with the given id could not be found
        "400":
          description: invalid list type
  /lists/{id}/subscription-settings:
    get:
      tags:
        - lists
      description: returns the subscription-settings for a list
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: the ID of the list for the requested subscription-settings
      responses:
        "200":
          description: Successful returned the subscription-settings
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/subscriptionSetting'
        "404":
          description: lists with the given id could not be found
    put:
      tags:
        - lists
      description: A put request will update the subscription setting for a given list
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: the ID of the list for the requested subscription-settings
      requestBody:
        content:
          application/hal+json:
            schema:
              $ref: '#/components/schemas/subscriptionSetting'

      responses:
        "200":
          description: Successful updated the subscription-settings and return the new value
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/subscriptionSetting'
        "404":
          description: lists with the given id could not be found
        "400":
          description: invalid list type

  /lists/{id}/recipient/{recipientId}:
    delete:
      tags:
        - lists
      description: A **DELETE** request with the following structure will delete a recipient from a given list.
      parameters:
        - name: id
          in: path
          schema:
            type: integer
          description: The ID of the list for which the recipient should be deleted. The target list must not be a list of type SYSTEM.
          required: true
        - name: recipientId
          in: path
          schema:
            type: integer
          description: The ID of the recipient which should be deleted from a list.
          required: true
        - name: deleteUnsubscribed
          in: query
          schema:
            type: boolean
          description: Allows the deletion from both tabs, subscribed and unsubscribed
          required: false
      responses:
        "204":
          description: No Content
  /memberships:
    delete:
      tags:
        - memberships
      description: A **DELETE** with a given list IS and the state parameter of SUBSCRIBED
        will delete all members from the list. Both parameters must be set and the value of the state
        parameter must be SUBSCRIBED or the request will fail.
      parameters:
        - name: listId
          in: query
          required: true
          description: The ID of the list for which all memberships should be deleted.
            The target list must be a list of type STANDARD
          schema:
            type: integer
        - name: state
          in: query
          required: true
          description: The state of the memberships to be deleted. At the moment SUBSCRIBED is the only supported state
          schema:
            type: string
            enum:
              - SUBSCRIBED
        - name: recipientAttributes.attributeName
          in: query
          required: false
          description: A wildcard query parameter where 'attributeName' is the name of a recipient attribute. This parameter can be used to filter recipients by their respective attributes. For example, the query recipientAttributes.familyName=Doe will delete all recipients where the value of the attribute familyName equals Doe. The specified attribute has to exist and must be a custom user attribute. FLOATING_POINT_NUMBER attributes are currently not supported due to the imprecise nature of floating point numbers which inhibits a meaningful comparison for equality. TIME_ONLY attributes are also not supported at this point. Please also note, that the data type of the matching value (e.g. Doe) has to match the data type of the attribute. This parameter can be used for an arbitrary number of attributes (e.g. recipientAttributes.givenName=John&recipientAttributes.familyName=Doe).
          schema:
            type: string
      responses:
        "204":
          description: No Content

  /memberships/operations:
    post:
      tags:
        - memberships
      summary: Change memberships
      description: This endpoint handles membership operations like subscribing or unsubscribing a recipient from a mailing list.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                recipientId:
                  type: integer
                  description: The ID of the recipient to perform the operation on.
                  minimum: 1
                listId:
                  type: integer
                  description: The ID of the list to perform the operation on.
                  minimum: 1
                action:
                  type: string
                  description: The action to perform on the given list and recipient.
                  enum: [ ADD_TO_SUBSCRIBED, ADD_TO_UNSUBSCRIBED, REMOVE_FROM_LIST, RESUBSCRIBE, UNSUBSCRIBE ]
                useOriginalSubscriptionDateIfPresent:
                  type: boolean
                  description: |
                    Whether the original application date should be reused if present. Mandatory for actions ADD_TO_SUBSCRIBED and RESUBSCRIBE, ignored otherwise.
              required:
                - recipientId
                - listId
                - action
      responses:
        '200':
          description: Membership change successful.
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  recipientId:
                    type: integer
                  listId:
                    type: integer
                  action:
                    type: string
                  useOriginalSubscriptionDateIfPresent:
                    type: boolean
                  newState:
                    type: string
                    enum: [ SUBSCRIBED, UNSUBSCRIBED, NOT_PRESENT ]
                  _links:
                    type: object
                    description: Links to other resources
        '400':
          description: Invalid request parameters or missing required fields.

  /imports/recipients/configuration-template:
    post:
      tags:
        - advanced-imports
      description: A **Post** will create and return the configuration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/createImportTemplateConfigurationRequest'
                - $ref: '#/components/schemas/createXlsTemplateConfiguration'
      responses:
        "201":
          description: Configuration successful created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importTemplateConfigurationResponse'
        "400":
          description: The configuration template is invalid

  /imports/recipients/configuration-template/{id}:
    get:
      tags:
        - advanced-imports
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the configuration template
          schema:
            type: integer
      description: A **GET** will return the requested configuration template with the given id
      responses:
        "200":
          description: The configuration template with the given id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importTemplateConfigurationResponse'
        "404":
          description: The configuration template with the given id can't be found
        "400":
          description: The configuration template is invalid
    delete:
      tags:
        - advanced-imports
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the configuration template
          schema:
            type: integer
      description: A **DELETE** will delete the requested configuration template with the given id
      responses:
        "204":
          description: The configuration was successfully deleted
        "404":
          description: The configuration template with the given id can't be found
    put:
      tags:
        - advanced-imports
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the configuration template
          schema:
            type: integer
      description: A **PUT** will update and return a existing configuration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createImportTemplateConfigurationRequest'
      responses:
        "200":
          description: Configuration successful updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importTemplateConfigurationResponse'
        "400":
          description: The configuration template is invalid
        "404":
          description: The configuration template with the given id can't be found
    patch:
      tags:
        - advanced-imports
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the configuration template
          schema:
            type: integer
      description: A **PATCH** will update and return a existing configuration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createImportTemplateConfigurationRequest'
      responses:
        "200":
          description: Configuration successful created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importTemplateConfigurationResponse'
        "400":
          description: The configuration template is invalid
        "404":
          description: The configuration template with the given id can't be found
  /imports/recipients/store:
    post:
      description: A **POST** request will store the attached file to Inxmail Professional and makes it available to use it for later imports.
      tags:
        - advanced-imports
      responses:
        "201":
          description: File successful created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createFileStoreResponse'
        "400":
          description: File is too large
  /imports/recipients/store/{id}:
    get:
      description: A **GET** Request will return the file with the given id
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the import file
          schema:
            type: integer
      responses:
        "200":
          description: File successful retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getFileStoreResponse'
        "404":
          description: File with the given id cant be found
      tags:
        - advanced-imports
    delete:
      description: A **DELETE** Request will delete the file with the given id, if it exists
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the import file
          schema:
            type: integer
      responses:
        "204":
          description: File successful deleted
        "404":
          description: File with the given id cant be found
      tags:
        - advanced-imports
  /imports/recipients/store/{id}/sourcepreview:
    get:
      description: A `GET` request with id of imported file as a parameter. Provides output of the first 20 lines.
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the import file
          schema:
            type: integer
      responses:
        "200":
          description: Preview of the first 20 lines are provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fileStoreSourcePreviewResponse'
        "404":
          description: File with the given id cant be found
      tags:
        - advanced-imports



  /imports/recipients/preview:
    parameters:
      - name: importFileId
        required: true
        in: query
        description: the id of the import file
        schema:
          type: integer
      - name: configurationTemplateId
        required: true
        in: query
        description: the id of the configuration
        schema:
          type: integer
    get:
      description: A `GET` will return a preview of the given import file and configuration. *Note* that the targetFileType of both the configuration and the importFile must match.
      responses:
        "200":
          description: Contains a maximum of 20 Previews how the recipients will look after the import
        "400":
          description: Preview can not be rendered. See message for details
        "404":
          description: File or configuration with the given Id cant be found
      tags:
        - advanced-imports
  /imports/recipients/preconfigured:
    parameters:
      - name: importFileId
        required: true
        in: query
        description: the id of the import file
        schema:
          type: integer
      - name: configurationTemplateId
        required: true
        in: query
        description: the id of the configuration
        schema:
          type: integer
    post:
      description: A `POST` will start a preconfigured import with the given configuration and file. *Note* that the targetFileType of both the configuration and the importedFile must match.
      responses:
        "201":
          description: Import Execution was created. Response body contains information about the execution
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/statusMonitorResponse'
        "404":
          description: File or configuration with the given Id cant be found
        "400":
          description: targetFileType of both the configuration and the imported file don't match
      tags:
        - advanced-imports


  /inbox-mails/{id}:
    get:
      description: A **GET** will return the requested inbox mail by the given id.
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the inbox mail
          schema:
            type: integer
        - name: embedded
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - inx:mailmessage
          description:
            " Indicates the relations of the resources that should be embedded in the result.\n
            - inx:mailmessage: content of the inbox mail."
      responses:
        "200":
          description: Inbox mail response
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/inboxMail'
                  - properties:
                      _links:
                        allOf:
                          - $ref: '#/components/schemas/linksForInboxMail'
                          - properties:
                              curies:
                                $ref: '#/components/schemas/halCuriesLink'
        "404":
          description: Inbox mail with the given id can not be found
      tags:
        - inbox-mails
    delete:
      description: A **DELETE** will return the requested inbox mail by the given id.
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the inbox mail
          schema:
            type: integer
      responses:
        "204":
          description: Inbox mail was deleted
        "404":
          description: Inbox mail with the given id can not be found
      tags:
        - inbox-mails
  /inbox-mails/{id}/mailmessage:
    get:
      description: A **GET** will return content of the requested inbox mail by the given id.
      parameters:
        - name: id
          in: path
          required: true
          description: the id of the inbox mail
          schema:
            type: integer
      responses:
        "200":
          description: Content of inbox mail response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inboxMailContent'
        "404":
          description: Inbox mail with the given id can not be found
      tags:
        - inbox-mails
  /inbox-mails:
    get:
      description: A **GET** will return the requested collection of inbox mails.
      parameters:
        - name: categories
          in: query
          description: Category of inbox mail
          required: false
          schema:
            type: string
            enum:
              - HARDBOUNCE
              - SOFTBOUNCE
              - AUTORESPONDER
              - FLAME
              - UNKNOWN
              - UNKNOWNBOUNCE
              - AUTORESPONDERBOUNCE
              - SPAM
              - BOUNCESPAM
        - name: embedded
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - inx:mailmessage
          description:
            "Indicates the relations of the resources that should be embedded in the result.\n
            - inx:mailmessage: content of the inbox mail."
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/afterId'
        - $ref: '#/components/parameters/beforeId'
        - $ref: '#/components/parameters/order'
      responses:
        "200":
          description: Inbox mail collection response
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  _embedded:
                    properties:
                      inx:inbox-mails:
                        $ref: '#/components/schemas/inboxMails'
                  _links:
                    properties:
                      self:
                        $ref: '#/components/schemas/halSelfCurie'
                      upcoming:
                        $ref: '#/components/schemas/upcoming'
                      next:
                        $ref: '#/components/schemas/linkNext'
                      curies:
                        $ref: '#/components/schemas/halCuriesLink'
      tags:
        - inbox-mails
  /serverinfo:
    get:
      tags:
        - serverInfo
      description: A **GET** request to the serverinfo endpoint returns the server version.
      responses:
        "200":
          description: Server info retrieved
          content:
            application/hal+json:
              schema:
                type: object
                properties:
                  serverVersion:
                    type: string
                    description: The version of the Inxmail Professional server


components:
  schemas:
    listsettings:
      type: array
      items:
        $ref: '#/components/schemas/listsetting'
    listsetting:
      type: object
      properties:
        trackingPermissionDetachedFromMembership:
          type: object
          properties:
            setValue:
              type: string
            effectiveValue:
              type: string
        charset:
          type: object
          properties:
            setValue:
              type: string
            effectiveValue:
              type: string
        senderAddress:
          type: object
          properties:
            setValue:
              type: string
            effectiveValue:
              type: string

        replyToAddress:
          type: object
          properties:
            setValue:
              type: string
            effectiveValue:
              type: string
        thousandsSeparator:
          type: object
          properties:
            setValue:
              type: string
            effectiveValue:
              type: string

        sendrate:
          type: object
          properties:
            setValue:
              type: string
            effectiveValue:
              type: string
        formatLocale:
          type: object
          properties:
            setValue:
              type: string
            effectiveValue:
              type: string
        floatDecimalPlaces:
          type: object
          properties:
            setValue:
              type: string
            effectiveValue:
              type: string
        recaptchaConfig:
          type: object
          properties:
            setValue:
              type: string
            effectiveValue:
              type: string


    mlists:
      type: array
      items:
        $ref: '#/components/schemas/mlist'
    mlist:
      type: object
      properties:
        id:
          type: integer
          format: int64
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        name:
          type: string
          description: The name of the list
        senderAddress:
          type: string
          description: The email address of the sender associated to this list
        senderName:
          type: string
          description: The name of the sender associated to this list
        replyToAddress:
          type: string
          description: The email address which will be present in the reply-to header
            of every mailing sent from this list
        replyToName:
          type: string
          description: The display name associated with the replyToAddress
        type:
          type: string
          description: The type
          enum:
            - STANDARD
            - DYNAMIC
            - ADMIN
            - SYSTEM
        recipientCount:
          type: integer
          description: Amount of recipients of list
        _links:
          required:
            - mailings
            - self
          type: object
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    listSettings:
      type: array
      items:
        $ref: '#/components/schemas/listSettingValue'
    listSettingValue:
      type: object
      properties:
        inherited:
          type: boolean
        settingName:
          type: string
        _links:
          required:
            - self
          type: object
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    subscriptionSetting:
      type: object
      properties:
        subscriptionType:
          description: the Subscription Type, 10 if confirmed opt-in, 11 if double opt-in
          type: string
        sendWelcomeMessage:
          description: if a welcome message should be send
          type: boolean
        welcomeMailingId:
          description: The id of the welcomeMailing
          type: number
        sendDoiVerificationTimeoutMessage:
          description: If double opt-in timeout mailings should be send
          type: boolean
        verificationTimeoutMailingId:
          description: The id of the time out mailing
          type: number
        doiConfirmationDuration:
          description: Number of days in which double opt-in must be confirmed
          type: number
        doiLandingPage:
          description: The URL of the double opt-in landing page
          type: string
        doiTimeoutLandingPage:
          description: The URL of the double opt-in timeout page
          type: string
        sendRecentMail:
          description: If recent mails should be send to new recipients
          type: boolean
        overwriteExistingMember:
          description: If existing recipients should be overridden
          type: boolean
        subscriptionCommand:
          description: The Subscription Command
          type: string
        notifySubscriptionRequest:
          description: If notifications should be send at unconfirmed subscription
          type: boolean
        notifySubscriptionVerification:
          description: If notifications should be send at confirmed subscription
          type: boolean
        notifyAddress:
          description: The email address to send notifications to
          type: string
    unsubscriptionSettings:
      type: object
      properties:
        unsubscriptionType:
          description: The subscription type, 1 if confirmed opt-out, 2 if double opt-out
          type: string
        verificationMailingId:
          description: The id of the mail, which should be send to confirm the unsubscription
          type: integer
        sendDooVerificationTimeoutMessage:
          description: If a mail should be send if double opt-out is expired
          type: boolean
        verificationTimeoutMailingId:
          description: The id of the mail, which should be send if the double opt-out is expired
          type: integer
        goodByeMailingId:
          description: The id of the goodbye message
          type: integer
        dooConfirmationDuration:
          description: The duration in days, in which the double opt-out must be confirmed
        dooLandingPage:
          description: The landing page if the double opt-out is already confirmed
          type: string
        dooTimeoutLandingPage:
          description: The landing page if the double opt-out is expired
          type: string
        deleteMember:
          description: If unused members should be deleted
          type: boolean
        preUnsubscriptionType:
          description: The preUnsubscriptionType - 0 = without, 1 = direct, 2 = jsp, 3 = external
          type: integer
        unsubscriptionLandingPage:
          description: The landing page for the unsubscription
          type: string
        externalUnsubscriptionLandingPage:
          description: The external landing page for the unsubscription
          type: string
        unsubscribeJSP:
          description: The id of the jsp
          type: integer
        verificationNotifyMailSendUnsubscription:
          description: If notification should be for unconfirmed unsubscriptions
          type: boolean
        sendNotifyMail:
          description: If notification mails should be send when a unsubscription happens
          type: boolean
        sendGoodByeMessage:
          description: If a goodbye message should be send to the unsubscriber
          type: boolean
        unsubscriptionCommand:
          description: The command for the unsubscription
          type: boolean
        notifyAddress:
          description: notifyAddress
          type: string
    bounces:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/bounce'
          - properties:
              _embedded:
                properties:
                  inx:recipient:
                    $ref: '#/components/schemas/recipient'
    bounce:
      required:
        - self
      type: object
      properties:
        listId:
          type: integer
        mailingId:
          type: integer
        bounceCategory:
          type: string
          enum:
            - SOFT
            - HARD
            - UNKNOWN
        matchedEmailAddress:
          type: string
        recipientId:
          type: integer
        sendingId:
          type: integer
        timestamp:
          type: string
          format: date-time
        id:
          type: integer
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
            inx:list:
              $ref: '#/components/schemas/linkList'
            inx:recipient:
              $ref: '#/components/schemas/linkRecipient'
    clicks:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/click'
          - properties:
              _embedded:
                properties:
                  inx:recipient:
                    $ref: '#/components/schemas/recipient'
    click:
      required:
        - self
      type: object
      properties:
        trackingHash:
          type: string
        linkId:
          type: integer
        listId:
          type: integer
        mailingId:
          type: integer
        recipientId:
          type: integer
        sendingId:
          type: integer
        timestamp:
          type: string
        id:
          type: integer
    linksForClicks:
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:mailing:
          $ref: '#/components/schemas/mailingsForListCurie'
        inx:sending:
          $ref: '#/components/schemas/sendingsForListCurie'
        inx:recipient:
          $ref: '#/components/schemas/linkRecipient'
    webBeaconHits:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/webBeaconHit'
          - properties:
              _embedded:
                properties:
                  inx:recipient:
                    $ref: '#/components/schemas/recipient'
              _links:
                $ref: '#/components/schemas/webBeaconHitLinks'
    webBeaconHit:
      type: object
      properties:
        TrackingHash:
          type: string
        linkId:
          type: integer
        listId:
          type: integer
        mailingId:
          type: integer
        recipientId:
          type: integer
        sendingId:
          type: integer
        timestamp:
          type: string
          format: date-time
        id:
          type: integer
    webBeaconHitLinks:
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:mailing:
          $ref: '#/components/schemas/mailingsForListCurie'
        inx:sending:
          $ref: '#/components/schemas/sendingsForListCurie'
        inx:recipient:
          $ref: '#/components/schemas/linkRecipient'
    dataSourceLinks:
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
    mailingLinks:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/mailingLink'
          - properties:
              _links:
                properties:
                  self:
                    $ref: '#/components/schemas/halSelfCurie'
                  inx:mailing:
                    $ref: '#/components/schemas/linkMailings'
    mailingLink:
      properties:
        mailingId:
          type: integer
        url:
          type: string
          format: uri
        name:
          type: string
        id:
          type: integer
        type:
          type: string
          enum: [ REDIRECT, COUNT, UNIQUE_COUNT, CONTENT_TRACKED, UNSUBSCRIBE, UNSUBSCRIBE_LINK, UNSUBSCRIBE_FORM, UNSUBSCRIBE_PAGE, UNSUBSCRIBE_HEADER_LINK, VERIFY_SUBSCRIPTION, VERIFY_UNSUBSCRIPTION, CONTENT_OPENING, OPENING_COUNT, GRANT_TRACKING_PERMISSION, WITHDRAW_TRACKING_PERMISSION ]
          #description: >
          #  type:
          #    * `REDIRECT` -  Can be used to perform actions before redirecting to the target URL
          #    * `COUNT` - Tracking link that counts each click
          #    * `UNIQUE_COUNT` - Tracking link that counts only the first click of every recipient, subsequent clicks are still available
          #    * `UNSUBSCRIBE` - **deprecated** Use UNSUBSCRIBE_LINK, UNSUBSCRIBE_FORM, UNSUBSCRIBE_PAGE, UNSUBSCRIBE_HEADER_LINK instead.
          #
          #      Unsubscribes the current recipient without an additional verification step
          #    * `UNSUBSCRIBE_LINK` - Unsubscribes the current recipient without an additional verification step
          #    * `UNSUBSCRIBE_FORM` - Unsubscribes the current recipient using a landing page managed by Inxmail Professional
          #    * `UNSUBSCRIBE_PAGE` - Unsubscribes the current recipient using an HTML landing page
          #    * `UNSUBSCRIBE_HEADER_LINK` - Unsubscribes the current recipient using the List-Unsubscribe header. Clients which support this #feature (like Google Mail) will show an unsubscription button at the top of the mailing
          #    * `VERIFY_SUBSCRIPTION` - Verifies the subscription of the current recipient
          #    * `VERIFY_UNSUBSCRIPTION` - Verifies the unsubscription of the current recipient
          #    * `CONTENT_OPENING` - Trackable image embedded in external content e.g. content from a content-include (unique count)
          #    * `OPENING_COUNT` - Trackable image that counts only the first loading for each recipient, subsequent openings are still available
          #    * `GRANT_TRACKING_PERMISSION` - Allows tracking of the current recipient
          #    * `WITHDRAW_TRACKING_PERMISSION` - Removes the tracking permission of the current recipient
    mailingRenderedContent:
      properties:
        subject:
          type: string
        html:
          type: string
        text:
          type: string
        attachments:
          type: array
          items:
            type: object
            properties:
              fileName:
                type: string
              contentType:
                type: string
              data:
                type: string
        _links:
          $ref: '#/components/schemas/linksForMailingRenderedContent'
    linksForMailingRenderedContent:
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:mailing:
          $ref: '#/components/schemas/linkMailings'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    mailingApprovals:
      type: array
      items:
        $ref: '#/components/schemas/mailingApproval'
    mailingApproval:
      type: object
      properties:
        id:
          type: integer
          description: The ID of this object.
        mailingId:
          type: integer
          description: The ID of the related mailing.
        username:
          type: string
          description: Name of the user who caused the transition. May be null.
        approvalComment:
          type: string
          description: Comment for this transition. May be null.
        entryDate:
          type: string
          format: date-time
          description: The point in time when this event occurred.
        approvalStateTransition:
          type: string
          enum: [ REQUEST_APPROVAL, DENY, APPROVE, REVOKE_REQUEST, ESCALATED, DEADLINE, DISABLED, OVERRIDE, INVALIDATE ]
        #   description: >
        #      approvalTransitionState state:
        #        * `REQUEST_APPROVAL` - Approval process started according to configuration
        #
        #        * `DENY` - A request for approval according to process is denied
        #
        #        * `APPROVED` - Without approval process configured, immediate approval
        #
        #        * `REVOKE_REQUEST` - Approval process stopped before deadline or approval
        #
        #        * `ESCALATED` - When the escalating approval process is configured, the first deadline is hit
        #
        #        * `DEADLINE` - Final deadline hit, approval process aborted
        #
        #        * `DISABLED` - Ongoing request for approval according to configuration, aborted due to change in configuration
        #
        #        * `OVERRIDE` - With approval process configured, immediate approval
        #
        #        * `INVALIDATE` - Current approval revoked
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    linksForMailingApprovals:
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        next:
          $ref: '#/components/schemas/linkNext'
        inx:upcoming:
          $ref: '#/components/schemas/upcoming'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    mailings:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/mailing'
          - properties:
              _links:
                $ref: '#/components/schemas/linksForMailing'
    mailing:
      type: object
      properties:
        id:
          type: integer
        listId:
          type: string
        name:
          type: string
        subject:
          type: string
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        type:
          type: string
          enum:
            - REGULAR_MAILING
            - ACTION_MAILING
            - TIME_TRIGGER_MAILING
            - SUBSCRIPTION_TRIGGER_MAILING
            - SPLIT_TEST_MAILING
    linksForMailing:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
          # inx:renderedContent:
          # $ref: '#/components/schemas/mailing'#define
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:sendings:
          $ref: '#/components/schemas/sendingsForListCurie'
        inx:clicks:
          $ref: '#/components/schemas/linkClicks'
        inx:web-beacon-hits:
          $ref: '#/components/schemas/linkWebBeaconHits'
        inx:links:
          $ref: '#/components/schemas/linkLinks'
    sendings:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/sending'
          - properties:
              _links:
                $ref: '#/components/schemas/linksForSending'
    sending:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the sending
        mailingId:
          type: integer
          description: The ID of the mailing
        mailingName:
          type: string
          description: The name of the mailing. Could be null
        listId:
          type: integer
          description: The ID of the associated list
        state:
          type: string
          description: The state of the sending. Possible values are [NOT_STARTED, PREPARED, SENDING, USER_INTERRUPTED, CRASHED, FINISHED]
        startDate:
          type: string
          description: The start date of the sending
        endDate:
          type: string
          description: The end date of the sending
        type:
          type: string
          description: The type of the sending. Possible values are [MASS_MAILING, SINGLE_MAILING, TIME_TRIGGER_MAILING, SEQUENCE_MAILING, SPLIT_TEST_MAILING]
        totalSize:
          type: integer
          description: The total size of the sending
        lastModificationDate:
          type: string
          format: date-time
          description: The last saved date of the sending
        _links:
          type: object
          description: Links to other resources
    linksForSending:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkLinks'
        inx:mailing:
          $ref: '#/components/schemas/linkMailings'
    sendingDetails:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the sending
        recipientCount:
          type: integer
          description: The number of recipients of mailings
        rejectedCount:
          type: integer
          description: The number of rejected mails (direct bounces)
        bounceCount:
          type: integer
          description: The number of hard- and softbounces
        notSentMailCount:
          type: integer
          description: The number of not sent mails
        deliveredMailsCount:
          type: integer
          description: The number of delivered mails
        sentErrorCount:
          type: integer
          description: The number of sent errors
        _links:
          type: object
          description: Links to other resources
    linksForSendingDetails:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:sending:
          $ref: '#/components/schemas/linkSendings'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    sendingProtocols:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/sendingProtocol'
          - properties:
              _embedded:
                properties:
                  inx:recipient:
                    $ref: '#/components/schemas/recipient'
    sendingProtocol:
      type: object
      properties:
        state:
          type: string
          enum:
            - NOT_SENT
            - SENT
            - RECIPIENT_NOT_FOUND
            - ERROR
            - ADDRESS_REJECTED
            - HARDBOUNCE
            - SOFTBOUNCE
            - UNKNOWNBOUNCE
            - SPAMBOUNCE
            - MUST_ATTRIBUTE
            - NO_MAIL
          description: "The state of this recipient in this sending. Possible values are: NOT_SENT, SENT, RECIPIENT_NOT_FOUND, ERROR, ADDRESS_REJECTED, HARDBOUNCE, SOFTBOUNCE, UNKNOWNBOUNCE, SPAMBOUNCE, MUST_ATTRIBUTE, NO_MAIL"
        recipientId:
          type: integer
          description: "The ID of the recipient associated to this sending"
        clicked:
          type: boolean
          description: If the link was opened by the recipient, null if no data is recorded, due to missing tracking permissions. Only included if the reactionData parameter is set to true.
        opened:
          type: boolean
          description: If the link was clicked by the recipient, null if no data is recorded, due to missing tracking permissions. Only included if the reactionData parameter is set to true.
    linksForSendingProtocols:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    regularMailings:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/regularMailing'
          - properties:
              _embedded:
                allOf:
                  - $ref: '#/components/schemas/sendingStatistics'
                  - $ref: '#/components/schemas/responseStatistics'
          - properties:
              _links:
                $ref: '#/components/schemas/linksForRegularMailing'
    regularMailing:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the mailing
        listId:
          type: string
          description: The ID of the associated list
        name:
          type: string
          description: The name of the mailing
        subject:
          type: string
          description: The subject of the mailing
        type:
          type: string
          enum:
            - REGULAR_MAILING
        mailingState:
          type: string
          enum:
            - FINISHED
            - ACTIVE
            - DRAFT
            - INTERRUPTED
            - SCHEDULED
            - APPROVAL_REQUESTED
            - APPROVED
          description: The state of the mailing. The state can be one of the values FINISHED, ACTIVE, DRAFT, INTERRUPTED, SCHEDULED, APPROVAL_REQUESTED or APPROVED
        creationDate:
          type: string
          format: date-time
          description: The creation date of this mailing
        modificationDate:
          type: string
          format: date-time
          description: The modification date of this mailing
        editorContentType:
          type: string
          enum:
            - TEXT
            - HTML
            - TEXT_HTML
            - XML_TEXT
            - XML_HTML
            - XML_TEXT_HTML
          description: The editor content type of the mailing. Values are TEXT; HTML; TEXT_HTML, XML_TEXT, XML_HTML and XML_TEXT_HTML
        scheduleDate:
          type: string
          format: date-time
          description: The date the mailing is due to be sent
        targetGroupConfiguration:
          properties:
            combination:
              type: string
              enum:
                - MATCH_ALL
                - MATCH_ONE
                - MATCH_NONE
                - FILTER_GROUP_NOT_ASSIGNED
              description: The filter configuration applied to the retrieved mailing
            targetGroups:
              type: array
              items:
                type: object
                properties:
                  targetGroupId:
                    type: integer
    splitTestMailings:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/splitTestMailing'
          - properties:
              _links:
                $ref: '#/components/schemas/linksForSplitTestMailing'
    splitTestMailing:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the mailing
        listId:
          type: integer
          description: The ID of the associated list
        name:
          type: string
          description: The name of the mailing
        type:
          type: string
          description: The type of the mailing. Always "SPLIT_TEST_MAILING"
        subject:
          type: string
          description: The subject of the mailing
        mailingState:
          type: string
          enum:
            - DRAFT
            - ACTIVE
            - FINISHED
            - INTERRUPTED
            - SCHEDULED
            - APPROVAL_REQUESTED
            - APPROVED
            - ASSIGNED
          description: The state of the mailing. The state can be one of the values FINISHED, ACTIVE, DRAFT, INTERRUPTED, SCHEDULED, APPROVAL_REQUESTED, APPROVED, or ASSIGNED
        creationDate:
          type: string
          description: The creation date of this mailing
        modificationDate:
          type: string
          description: The modification date of this mailing
        _links:
          type: object
          description: Links to other resources
    actionMailings:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/actionMailing'
          - properties:
              _links:
                $ref: '#/components/schemas/linksForActionMailing'
    actionMailing:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the mailing
        listId:
          type: integer
          description: The ID of the associated list
        name:
          type: string
          description: The name of the mailing
        type:
          type: string
          description: The type of the mailing. Always "ACTION_MAILING"
        subject:
          type: string
          description: The subject of the mailing
        mailingState:
          type: string
          enum:
            - FINISHED
            - ACTIVE
            - DRAFT
            - INTERRUPTED
            - SCHEDULED
            - APPROVAL_REQUESTED
            - APPROVED
            - ASSIGNED
          description: The state of the mailing. The state can be one of the values FINISHED, ACTIVE, DRAFT, INTERRUPTED, SCHEDULED, APPROVAL_REQUESTED, APPROVED, or ASSIGNED
        creationDate:
          type: string
          description: The creation date of this mailing
        modificationDate:
          type: string
          description: The modification date of this mailing
        _links:
          type: object
          description: Links to other resources
    actionMailingCreate:
      type: object
      required:
        - name
        - subject
        - listId
        - editorContentType
      properties:
        name:
          type: string
          description: The name of the action mailing
        subject:
          type: string
          description: The subject of the action mailing
        listId:
          type: integer
          description: The ID of the associated list. Only STANDARD lists are acceptable
        editorContentType:
          type: string
          enum:
            - TEXT
            - HTML
            - TEXT_HTML
          description: The type of content. The state can be one of the values TEXT, HTML, TEXT_HTML
        text:
          type: string
          description: Plain text content. Encoding for double quotes is required. Should not be null in case editorContentType=TEXT or TEXT_HTML
        html:
          type: string
          description: Html content. Encoding for double quotes is required. Should not be null in case editorContentType=HTML or TEXT_HTML.

    splitTestMailingCreate:
      type: object
      required:
        - name
        - subject
        - listId
        - editorContentType
      properties:
        name:
          type: string
          description: The name of the split test mailing
        subject:
          type: string
          description: The subject of the split test mailing
        listId:
          type: integer
          description: The ID of the associated list. Only STANDARD lists are acceptable
        editorContentType:
          type: string
          enum:
            - TEXT_HTML
            - HTML
            - TEXT
          description: The type of content. The state can be one of the values TEXT, HTML, TEXT_HTML
        text:
          type: string
          description: Plain text content. Encoding for double quotes is required. Should not be null in case editorContentType=TEXT or TEXT_HTML
        html:
          type: string
          description: Html content. Encoding for double quotes is required. Should not be null in case editorContentType=HTML or TEXT_HTML.
    mailingPatch:
      type: object
      properties:
        name:
          type: string
          description: The name of the mailing
        subject:
          type: string
          description: The subject of the mailing
        text:
          type: string
          description: Plain text content. Encoding for double quotes is required. Should not be null in case editorContentType=TEXT or TEXT_HTML
        html:
          type: string
          description: Html content. Encoding for double quotes is required. Should not be null in case editorContentType=HTML or TEXT_HTML.
    trackingPermissions:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/trackingPermission'
          - properties:
              _links:
                $ref: '#/components/schemas/linksForTrackingPermissions'
    trackingPermission:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the tracking permission
        listId:
          type: integer
          description: The ID of the list associated to this tracking permission
        recipientId:
          type: integer
          description: The ID of the recipient associated to this tracking permission
        trackingPermissionState:
          type: string
          description: The state of this tracking permission
        _links:
          type: object
          description: Links to other resources
    trackingPermissionEvents:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/trackingPermissionEvent'
          - properties:
              _embedded:
                properties:
                  inx:recipient:
                    $ref: '#/components/schemas/recipient'
              _links:
                $ref: '#/components/schemas/linksForTrackingPermissions'
    trackingPermissionEvent:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the event
        listId:
          type: integer
          description: The ID of the list associated to this event
        recipientId:
          type: integer
          description: The ID of the recipient associated to this event
        newTrackingPermissionState:
          type: string
          description: The new tracking permission state resulting from this event
        timestamp:
          type: string
          format: date-time
        originator:
          type: object
          description: The point in time when this event occurred
          properties:
            type:
              type: string
              description: The originator type that caused this event
            entity:
              type: string
              description: The type of entity that caused this event
            action:
              type: string
              description: The type of action that caused this event
            identity:
              type: string
              description: The identity of the entity that caused this event
            determinedRemoteAddress:
              type: string
              description: The remote address of the entity that caused this event, as determined by the Inxmail Professional application
            suppliedRemoteAddress:
              type: string
              description: The remote address of the entity that caused this event, as supplied by a third party
            message:
              type: string
              description: A message provided by the entity that caused this event
    triggerMailings:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/triggerMailing'
          - properties:
              _links:
                $ref: '#/components/schemas/linksForTriggerMailing'
    triggerMailing:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the mailing
        listId:
          type: integer
          description: The ID of the associated list
        name:
          type: string
          description: The name of the mailing
        type:
          type: string
          description: The type of the mailing. Always "TIME_TRIGGER_MAILING"
        subject:
          type: string
          description: The subject of the mailing
        mailingState:
          type: string
          enum:
            - FINISHED
            - ACTIVE
            - DRAFT
            - INTERRUPTED
            - SCHEDULED
            - APPROVAL_REQUESTED
            - APPROVED
            - ASSIGNED
          description: The state of the mailing. The state can be one of the values FINISHED, ACTIVE, DRAFT, INTERRUPTED, SCHEDULED, APPROVAL_REQUESTED, APPROVED, or ASSIGNED
        creationDate:
          type: string
          description: The creation date of this mailing
        modificationDate:
          type: string
          description: The modification date of this mailing
        _links:
          type: object
          description: Links to other resources
    targetGroups:
      type: array
      items:
        $ref: '#/components/schemas/targetGroup'
    targetGroup:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the target group
        name:
          type: string
          description: The name of the target group
        description:
          type: string
          description: The description of the target group
        listId:
          type: integer
          description: The ID of the list holding the target group
        filterString:
          type: string
          description: The string representation of the filter condition of the target group
        filter:
          description: "The filter condition of the target group."
          type: array
          items:
            $ref: '#/components/schemas/filterNode'
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        hidden:
          type: boolean
          description: Whether the target group is hidden or not
        _links:
          $ref: '#/components/schemas/linksForTargetGroups'
    filterNode:
      type: object
      required: [ id ]
      properties:
        id:
          type: integer
          format: int32
          description: represents the the ordinal number in an array of filters
        attribute:
          $ref: "#/components/schemas/attributeNode"
        operator:
          $ref: "#/components/schemas/operator"
        value:
          type: string
          description: The Value to be compared to the given attribute.
        type:
          $ref: "#/components/schemas/nodeType"
        children:
          type: array
          items:
            $ref: "#/components/schemas/filterNode"
        metadata:
          type: object
          properties:
            targetgroupType:
              type: string
            condition:
              type: string
            listId:
              type: integer
            listName:
              type: string
            mailingId:
              type: integer
            mailingName:
              type: string
            linkId:
              type: integer
            linkAlias:
              type: string
            startDate:
              type: string
            endDate:
              type: string
            days:
              type: integer
            countOfMailings:
              type: integer
    attributeNode:
      description: The attribute to be compared to the given value.
      type: object
      required: [ description ]
      properties:
        type:
          $ref: "#/components/schemas/attributeType"
        name:
          description: The name of the Attribute.
          type: string
    operator:
      type: string
      enum:
        - EQUALS
        - UNEQUAL
        - GREATER_THEN
        - GREATER_EQUALS
        - LESS_THEN
        - LESS_EQUAL
    nodeType:
      description: The Type of the node.
      type: string
      enum:
        - CONDITION
        - CONNECTION
        - GROUP
    attributeType:
      description: The attribute type.
      type: string
      enum:
        - BOOLEAN
        - DATE
        - DATE_TIME
        - DOUBLE
        - INTEGER
        - TEXT
        - TIME


    testMailGroups:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/testMailGroup'
          - properties:
              _links:
                $ref: '#/components/schemas/linksForTestMailGroups'
    testMailGroup:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the test mail group
        name:
          type: string
          description: The name of the test mail group
        listId:
          type: integer
          description: The ID of the list holding the test mail group
        emails:
          type: array
          items:
            type: string
          description: The email addresses of the test mail group
        _links:
          type: object
          description: Links to other resources
    subscriptionMailings:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/subscriptionMailing'
          - properties:
              _links:
                $ref: '#/components/schemas/linksForSubscriptionMailing'
    subscriptionMailing:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the mailing
        listId:
          type: integer
          description: The ID of the associated list
        name:
          type: string
          description: The name of the mailing
        type:
          type: string
          description: The type of the mailing. Always "SUBSCRIPTION_TRIGGER_MAILING"
        subject:
          type: string
          description: The subject of the mailing
        mailingState:
          type: string
          enum:
            - USED
            - DRAFT
            - APPROVAL_REQUESTED
            - APPROVED
          description: The state of the mailing. The state can be on of the values USED, DRAFT, APPROVAL_REQUESTED or APPROVED
        creationDate:
          type: string
          description: The creation date of this mailing
        modificationDate:
          type: string
          description: The modification date of this mailing
        subscriptionMailingType:
          type: string
          enum:
            - SUBSCRIPTION_VERIFICATION_TIMEOUT,
            - SUBSCRIPTION_WELCOME,
            - SUBSCRIPTION_VERIFICATION,
            - UNSUBSCRIPTION_VERIFICATION_TIMEOUT,
            - UNSUBSCRIPTION_VERIFICATION,
            - UNSUBSCRIPTION_GOODBYE
        _links:
          type: object
          description: Links to other resources
    blacklistEntries:
      type: array
      items:
        $ref: '#/components/schemas/blacklistEntry'
    blacklistEntry:
      type: object
      properties:
        id:
          type: integer
        pattern:
          type: string
        description:
          type: string
        modificationDate:
          type: string
          format: date-time
        blockedAddressCount:
          type: integer
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    attributes:
      type: array
      items:
        $ref: '#/components/schemas/attribute'
    attribute:
      required:
        - name
        - id
        - type
      properties:
        name:
          type: string
        id:
          type: integer
        type:
          type: string
          enum:
            - TEXT
            - DATE_AND_TIME
            - DATE_ONLY
            - TIME_ONLY
            - INTEGER
            - FLOATING_POINT_NUMBER
            - BOOLEAN
        maxLength:
          type: number
        creationDate:
          type: string
          format: dateTime
          description: The timestamp the attribute was created
          default: null
          example:
        modificationDate:
          type: string
          format: dateTime
          description: The timestamp the attribute was last updated
          default: null
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    subscriptionEvents:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/subscriptionEvent'
          - properties:
              _embedded:
                properties:
                  inx:recipient:
                    $ref: '#/components/schemas/recipient'
              _links:
                $ref: '#/components/schemas/linksForSubscriptionEvent'
    subscriptionEvent:
      properties:
        id:
          type: integer
        type:
          type: string
        listId:
          type: integer
        recipientId:
          type: integer
        timestamp:
          type: string
          format: date-time
        source:
          type: string
        emailAddress:
          type: string
    unsubscriptionEvents:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/unsubscriptionEvent'
          - properties:
              _embedded:
                properties:
                  inx:recipient:
                    $ref: '#/components/schemas/recipient'
              _links:
                $ref: '#/components/schemas/linksForUnsubscriptionEvent'
    unsubscriptionEvent:
      properties:
        id:
          type: integer
        type:
          type: string
        listId:
          type: integer
        recipientId:
          type: integer
        sendingId:
          type: integer
        mailingId:
          type: integer
        timestamp:
          type: string
          format: date-time
        source:
          type: string
        emailAddress:
          type: string
    recipients:
      type: array
      items:
        $ref: '#/components/schemas/recipient'
    recipient:
      type: object
      properties:
        email:
          type: string
        lowerEmail:
          type: string
          description: Recipient email in normalized form
        unavailable:
          type: boolean
        id:
          type: integer
        attributes:
          type: object
          additionalProperties:
            type: string
        last_modified:
          type: string
          format: date-time
        subscriptionDates:
          type: array
          items:
            $ref: '#/components/schemas/subscriptionDate'
        filterId:
          type: integer
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    testProfiles:
      type: array
      items:
        $ref: '#/components/schemas/testProfile'
    testProfile:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the test profile
        description:
          type: string
          description: The description of the test profile
        trackingPermission:
          type: boolean
          description: The tracking permission of the test profile
        email:
          type: string
          description: The email address of the test profile
        type:
          type: string
          description: The type of the test profile. Possible types are [GLOBAL, LIST]
        listId:
          type: integer
          description: The ID of the list holding the test profile. Omitted for test profiles with type GLOBAL
        modificationDate:
          type: string
          description: The modification date of this test profile
        attributes:
          type: object
          description: The attributes of the test recipient. Omitted if no attributes were requested.
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    actions:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/action'
          - properties:
              _links:
                properties:
                  inx:list:
                    $ref: '#/components/schemas/linkList'
    action:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the action trigger
        name:
          type: string
          description: The name of the action trigger
        listId:
          type: integer
          description: The ID of the actions associated list
        description:
          type: string
          description: The description of the action trigger
        creationDate:
          type: string
          format: date-time
          description: The creation date of this action trigger
        modificationDate:
          type: string
          format: date-time
          description: The modification date of this action trigger
        actionTriggerType:
          type: string
          description: The type of the action trigger
        executeAlways:
          type: boolean
          description: Boolean flag (required only for actionTriggerType=ON_CLICK )
        triggerDetails:
          $ref: '#/components/schemas/actionTriggerDetails'
        actionSequence:
          type: array
          description: Array of ActionSequence items
          items:
            anyOf:
              - $ref: '#/components/schemas/setValueActionType'
              - $ref: '#/components/schemas/setExprActionType'
              - $ref: '#/components/schemas/addValueActionType'
              - $ref: '#/components/schemas/sendMailingActionType'
              - $ref: '#/components/schemas/sendLastMailingActionType'
              - $ref: '#/components/schemas/deleteRecipientActionType'
              - $ref: '#/components/schemas/deleteRecipientFromAllListsActionType'
              - $ref: '#/components/schemas/deleteRecipientFromSystemActionType'
              - $ref: '#/components/schemas/directUnsubscribeActionType'
              - $ref: '#/components/schemas/agentUnsubscribeActionType'
              - $ref: '#/components/schemas/unsubscribeAllListsActionType'
              - $ref: '#/components/schemas/directSubscribeActionType'
              - $ref: '#/components/schemas/agentSubscribeActionType'
              - $ref: '#/components/schemas/grantTrackingPermissionActionType'
              - $ref: '#/components/schemas/revokeTrackingPermissionActionType'
              - $ref: '#/components/schemas/transferTrackingPermissionFromSelectedList'
        _links:
          type: object
          description: Links to other resources
    actionTriggerDetails:
      type: object
      properties:
        originators:
          description: Collection of originators which will trigger the action
          type: array
          items:
            $ref: '#/components/schemas/actionTriggerDetailsOriginator'
        observedAttributes:
          type: array
          items:
            description: Collection of attribute ids, which will trigger the action if the value is changes
            type: integer
    actionTriggerDetailsOriginator:
      type: string
      enum: [ ACTION,
              CLICK_SUBSCRIPTION,
              CLIENT,
              EMAIL_SUBSCRIPTION,
              IMPORT,
              JSP_PROFILE,
              JSP_SUBSCRIPTION,
              SUBSCRIPTION_SERVLET,
              RPC_API,
              REST_API,
              WEB_PAGE,
              UNKNOWN ]


    setValueActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SET_VALUE_ACTION_TYPE
        attributeId:
          type: integer
          description: The ID of the attribute
        value:
          type: string
          description: Value
        orderId:
          type: integer
          description: OrderId value
    setExprActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SET_EXPR_ACTION_TYPE
        attributeId:
          type: integer
          description: The ID of the attribute
        expression:
          type: string
          description: Expression
        orderId:
          type: integer
          description: OrderId value
    addValueActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - ADD_VALUE_ACTION_TYPE
        attributeId:
          type: integer
          description: The ID of the attribute
        value:
          type: string
          description: Value
        orderId:
          type: integer
          description: OrderId value
    sendMailingActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SEND_MAILING_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        mailingId:
          type: integer
          description: Id of the mailing
        orderId:
          type: integer
          description: OrderId value
    sendLastMailingActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SEND_LAST_MAILING_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        orderId:
          type: integer
          description: OrderId value
    sendActionMailingActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SEND_ACTION_MAILING_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        actionMailingId:
          type: integer
          description: The ID of the action mailing
        orderId:
          type: integer
          description: OrderId value
    deleteRecipientActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DELETE_RECIPIENT_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        orderId:
          type: integer
          description: OrderId value
    deleteRecipientFromAllListsActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DELETE_RECIPIENT_FROM_ALL_LISTS_ACTION_TYPE
        orderId:
          type: integer
          description: OrderId value
    deleteRecipientFromSystemActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DELETE_RECIPIENT_FROM_SYSTEM_ACTION_TYPE
        orderId:
          type: integer
          description: OrderId value
    directUnsubscribeActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DIRECT_UNSUBSCRIBE_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        orderId:
          type: integer
          description: OrderId value
    agentUnsubscribeActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - AGENT_UNSUBSCRIBE_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        orderId:
          type: integer
          description: OrderId value
    unsubscribeAllListsActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - UNSUBSCRIBE_ALL_LISTS_ACTION_TYPE
        orderId:
          type: integer
          description: OrderId value
    directSubscribeActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DIRECT_SUBSCRIBE_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        orderId:
          type: integer
          description: OrderId value
    agentSubscribeActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - AGENT_SUBSCRIBE_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        orderId:
          type: integer
          description: OrderId value
    grantTrackingPermissionActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - GRANT_TRACKING_PERMISSION_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        orderId:
          type: integer
          description: OrderId value
    revokeTrackingPermissionActionType:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - REVOKE_TRACKING_PERMISSION_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        orderId:
          type: integer
          description: OrderId value
    transferTrackingPermissionFromSelectedList:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - TRANSFER_TRACKING_PERMISSION_FROM_SELECTED_LIST
        listId:
          type: integer
          description: The ID of the list
        sourceListId:
          type: integer
          description: The ID of the source list
        orderId:
          type: integer
          description: OrderId value
    actioncreateRequest:
      type: object
      properties:
        name:
          type: string
          description: The name of the action trigger
        listId:
          type: integer
          description: The ID of the actions associated list
        description:
          type: string
          description: The description of the action trigger
        actionTriggerType:
          type: string
          description: The type of the action trigger
        executeAlways:
          type: boolean
          description: Boolean flag (required only for actionTriggerType=ON_CLICK )
        triggerDetails:
          $ref: '#/components/schemas/actionTriggerDetails'
        actionSequence:
          type: array
          description: Array of ActionSequence items
          items:
            anyOf:
              - $ref: '#/components/schemas/setValueActionTypeRequest'
              - $ref: '#/components/schemas/setExprActionTypeRequest'
              - $ref: '#/components/schemas/addValueActionTypeRequest'
              - $ref: '#/components/schemas/sendMailingActionTypeRequest'
              - $ref: '#/components/schemas/sendLastMailingActionTypeRequest'
              - $ref: '#/components/schemas/deleteRecipientActionTypeRequest'
              - $ref: '#/components/schemas/deleteRecipientFromAllListsActionTypeRequest'
              - $ref: '#/components/schemas/deleteRecipientFromSystemActionTypeRequest'
              - $ref: '#/components/schemas/directUnsubscribeActionTypeRequest'
              - $ref: '#/components/schemas/agentUnsubscribeActionTypeRequest'
              - $ref: '#/components/schemas/unsubscribeAllListsActionTypeRequest'
              - $ref: '#/components/schemas/directSubscribeActionTypeRequest'
              - $ref: '#/components/schemas/agentSubscribeActionTypeRequest'
              - $ref: '#/components/schemas/grantTrackingPermissionActionTypeRequest'
              - $ref: '#/components/schemas/revokeTrackingPermissionActionTypeRequest'
              - $ref: '#/components/schemas/transferTrackingPermissionFromSelectedListRequest'
    setValueActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SET_VALUE_ACTION_TYPE
        attributeId:
          type: integer
          description: The ID of the attribute
        value:
          type: string
          description: Value
    setExprActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SET_EXPR_ACTION_TYPE
        attributeId:
          type: integer
          description: The ID of the attribute
        expression:
          type: string
          description: Expression
    addValueActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - ADD_VALUE_ACTION_TYPE
        attributeId:
          type: integer
          description: The ID of the attribute
        value:
          type: string
          description: Value
    sendMailingActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SEND_MAILING_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        mailingId:
          type: integer
          description: Id of the mailing
    sendLastMailingActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SEND_LAST_MAILING_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
    sendActionMailingActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - SEND_ACTION_MAILING_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        actionMailingId:
          type: integer
          description: The ID of the action mailing
    deleteRecipientActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DELETE_RECIPIENT_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
    deleteRecipientFromAllListsActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DELETE_RECIPIENT_FROM_ALL_LISTS_ACTION_TYPE
    deleteRecipientFromSystemActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DELETE_RECIPIENT_FROM_SYSTEM_ACTION_TYPE
    directUnsubscribeActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DIRECT_UNSUBSCRIBE_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
    agentUnsubscribeActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - AGENT_UNSUBSCRIBE_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
    unsubscribeAllListsActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - UNSUBSCRIBE_ALL_LISTS_ACTION_TYPE
    directSubscribeActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - DIRECT_SUBSCRIBE_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
        orderId:
          type: integer
          description: OrderId value
    agentSubscribeActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - AGENT_SUBSCRIBE_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
    grantTrackingPermissionActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - GRANT_TRACKING_PERMISSION_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
    revokeTrackingPermissionActionTypeRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - REVOKE_TRACKING_PERMISSION_ACTION_TYPE
        listId:
          type: integer
          description: The ID of the list
    transferTrackingPermissionFromSelectedListRequest:
      type: object
      properties:
        actionSequenceType:
          type: string
          enum:
            - TRANSFER_TRACKING_PERMISSION_FROM_SELECTED_LIST
        listId:
          type: integer
          description: The ID of the list
        sourceListId:
          type: integer
          description: The ID of the source list
    textModules:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/textModule'
          - properties:
              _embedded:
                allOf:
                  - $ref: '#/components/schemas/textModuleRecipientAttribute'
                  - $ref: '#/components/schemas/dynamicParameters'
                  - $ref: '#/components/schemas/editorContent'

              _links:
                $ref: '#/components/schemas/linksForTextModules'
    textModule:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the text module
        name:
          type: string
          description: The name if the text module
        modificationDate:
          type: string
          format: date-time
          description: the timestamp when the text module was last updated
        creationDate:
          type: string
          format: date-time
          description: the timestamp when the text module was created
        listId:
          type: integer
          description: The listId of the text module
        type:
          type: string
          enum:
            - HTML
            - TEXT
            - TEXT_HTML
          description: |
            The content format type of the module. Possible Types: [HTML, TEXT, TEXT_HTML]
        _links:
          type: object
          description: Links to other resources
    importFiles:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/importFile'
          - properties:
              _links:
                properties:
                  self:
                    $ref: '#/components/schemas/halSelfCurie'
    textModuleRecipientAttribute:
      type: object
      properties:
        name:
          type: string
          description: The name of recipient attribute.
        id:
          type: integer
          description: The id of the recipient attribute. (Not included in the *email* recipient attribute.)
        type:
          type: string
          description: The data type of the recipient attribute. (Not included in the *email* recipient attribute.)
          enum:
            - INTEGER
            - DOUBLE
            - BOOLEAN
            - DATE
            - TIME
            - DATETIME
            - TEXT
        maxTextLength:
          type: number
          description: The maximum text length of the attribute if ``type`` is ``TEXT``. (Not included in the *email* recipient attribute.)
    importFile:
      type: object
      properties:
        name:
          type: string
          description: The name of the file
        state:
          type: string
          enum:
            - SUCCESSFUL
            - PROCESSING
            - FAILED
            - DEQUEUED
            - CANCELED
            - PREFETCH_FAILED
            - READY_TO_PROCESS
            - PREFETCHING
            - NEW
          description: The state of the import. Possible values are [ NEW, PREFETCHING, READY_TO_PROCESS, PREFETCH_FAILED, PROCESSING, SUCCESSFUL, FAILED, DEQUEUED, CANCELED ]
        currentCount:
          type: integer
          description: The number of imported records so far
        successCount:
          type: integer
          description: The number of successfully imported records so far
        failedCount:
          type: integer
          description: The current number of records which could not be imported
        id:
          type: integer
          description: The ID of the file import
    sendingStatistics:
      type: object
      properties:
        recipientsCount:
          type: integer
          description: Number of recipients
        deliveredMailsCount:
          type: integer
          description: Number of successfully delivered sendings.
        bounceCount:
          type: integer
          description: Number of bounces (hard bounces, soft bounces, spam bounces, unknown bounces and rejections).
        sentErrorCount:
          type: integer
          description: Number of sending errors.
        notSentMailsCount:
          type: integer
          description: Number of sendings not sent.
        mailsPerHour:
          type: integer
          description: Sending rate as mails per hour.
        averageMailSize:
          type: integer
          description: Average mail size in bytes.
        startDate:
          type: string
          description: Point in time when the sending started.
        endDate:
          type: string
          description: Point in time when the sending ended.
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    hourlyListBouncesStatistics:
      type: object
      properties:
        hour:
          type: string
          description: Hour of provided statistics
        hardbounce:
          type: integer
          description: Number of hard bounces per hour
        softbounce:
          type: integer
          description: Number of soft bounces per hour
        unknown_bounce:
          type: integer
          description: Number of unknown bounces per hour
    dailyListBouncesStatistics:
      type: object
      properties:
        day:
          type: string
          description: Day of provided statistics
        hardbounce:
          type: integer
          description: Number of hard bounces per day
        softbounce:
          type: integer
          description: Number of soft bounces per day
        unknown_bounce:
          type: integer
          description: Number of unknown bounces per day
    weeklyListBouncesStatistics:
      type: object
      properties:
        week:
          type: string
          description: Week of Year of provided statistics
        hardbounce:
          type: integer
          description: Number of hard bounces per week
        softbounce:
          type: integer
          description: Number of soft bounces per week
        unknown_bounce:
          type: integer
          description: Number of unknown bounces per week
    monthlyListBouncesStatistics:
      type: object
      properties:
        month:
          type: string
          description: Month of Year of provided statistics
        hardbounce:
          type: integer
          description: Number of hard bounces per month
        softbounce:
          type: integer
          description: Number of soft bounces per month
        unknown_bounce:
          type: integer
          description: Number of unknown bounces per month
    monthlyListUsedEmailClientsStatistics:
      type: object
      properties:
        month:
          type: string
          description: Month of provided statistics
        clientTypeList:
          type: array
          description: list of statistics per client type
          items:
            $ref: '#/components/schemas/monthlyListUsedEmailClientsStatisticsItem'
          properties:
            version:
              type: string
              description: client type version, possible values DESKTOP, WEB, MOBILE, AMBIGUOUS, UNKNOWN
            count:
              type: integer
              description: number of email clients.
    monthlyListUsedEmailClientsStatisticsItem:
      type: object
      description: list of statistics per client type
      properties:
        version:
          type: string
          description: client type version, possible values DESKTOP, WEB, MOBILE, AMBIGUOUS, UNKNOWN
        count:
          type: integer
          description: number of email clients.

    hourlyListSubscriptionsStatistics:
      type: object
      properties:
        hour:
          type: string
          description: Hour of provided statistics
        subscriptions:
          type: integer
          description: Number of subscription per hour
        unsubscriptions:
          type: integer
          description: Number of soft unsubscription per hour
    dailyListSubscriptionsStatistics:
      type: object
      properties:
        day:
          type: string
          description: Day of provided statistics
        subscriptions:
          type: integer
          description: Number of subscription per day
        unsubscriptions:
          type: integer
          description: Number of soft unsubscription per day
    weeklyListSubscriptionsStatistics:
      type: object
      properties:
        week:
          type: string
          description: Week of Year of provided statistics
        subscriptions:
          type: integer
          description: Number of subscription per week
        unsubscriptions:
          type: integer
          description: Number of soft unsubscription per week
    monthlyListSubscriptionsStatistics:
      type: object
      properties:
        month:
          type: string
          description: Month of Year of provided statistics
        subscriptions:
          type: integer
          description: Number of subscription per month
        unsubscriptions:
          type: integer
          description: Number of soft unsubscription per month
    hourlyListBouncesStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/hourlyListBouncesStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    dailyListBouncesStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/dailyListBouncesStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    weeklyListBouncesStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/weeklyListBouncesStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    monthlyListBouncesStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/monthlyListBouncesStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    hourlyListSentMailingStatistics:
      type: object
      properties:
        hour:
          type: string
          description: Hour of provided statistics
        regular-mailings:
          type: object
          description: statistics data
          properties:
            massSendings:
              type: integer
              description: number of Massmail-Sendings, which come from regular-mailings
            successCount:
              type: integer
              description: number of mailings successfully processed. This does not include failCount
            sendCount:
              type: integer
              description: total mails sent as regular mailings, this means total sent to recipients, excluding fail count, nonSendCount
            nonSendCount:
              type: integer
              description: total mails properly processed, but not sent on purpose, for example %no-mail
            failCount:
              type: integer
              description: total fail count fail count, for example caused by DKIM, SPF Failure, Build Failure
            totalOpenings:
              type: integer
              description: total openings from regular-mailings (excluding AMPP)
            totalClicks:
              type: integer
              description: total clicks on regular mailings (excluding AMPP)
    dailyListSentMailingStatistics:
      type: object
      properties:
        day:
          type: string
          description: Day of provided statistics
        regular-mailings:
          type: object
          description: statistics data
          properties:
            massSendings:
              type: integer
              description: number of Massmail-Sendings, which come from regular-mailings
            successCount:
              type: integer
              description: number of mailings successfully processed. This does not include failCount
            sendCount:
              type: integer
              description: total mails sent as regular mailings, this means total sent to recipients, excluding fail count, nonSendCount
            nonSendCount:
              type: integer
              description: total mails properly processed, but not sent on purpose, for example %no-mail
            failCount:
              type: integer
              description: total fail count fail count, for example caused by DKIM, SPF Failure, Build Failure
            totalOpenings:
              type: integer
              description: total openings from regular-mailings (excluding AMPP)
            totalClicks:
              type: integer
              description: total clicks on regular mailings (excluding AMPP)
    weeklyListSentMailingStatistics:
      type: object
      properties:
        week:
          type: string
          description: Week of provided statistics
        regular-mailings:
          type: object
          description: statistics data
          properties:
            massSendings:
              type: integer
              description: number of Massmail-Sendings, which come from regular-mailings
            successCount:
              type: integer
              description: number of mailings successfully processed. This does not include failCount
            sendCount:
              type: integer
              description: total mails sent as regular mailings, this means total sent to recipients, excluding fail count, nonSendCount
            nonSendCount:
              type: integer
              description: total mails properly processed, but not sent on purpose, for example %no-mail
            failCount:
              type: integer
              description: total fail count fail count, for example caused by DKIM, SPF Failure, Build Failure
            totalOpenings:
              type: integer
              description: total openings from regular-mailings (excluding AMPP)
            totalClicks:
              type: integer
              description: total clicks on regular mailings (excluding AMPP)
    monthlyListSentMailingStatistics:
      type: object
      properties:
        month:
          type: string
          description: Month of provided statistics
        regular-mailings:
          type: object
          description: statistics data
          properties:
            massSendings:
              type: integer
              description: number of Massmail-Sendings, which come from regular-mailings
            successCount:
              type: integer
              description: number of mailings successfully processed. This does not include failCount
            sendCount:
              type: integer
              description: total mails sent as regular mailings, this means total sent to recipients, excluding fail count, nonSendCount
            nonSendCount:
              type: integer
              description: total mails properly processed, but not sent on purpose, for example %no-mail
            failCount:
              type: integer
              description: total fail count fail count, for example caused by DKIM, SPF Failure, Build Failure
            totalOpenings:
              type: integer
              description: total openings from regular-mailings (excluding AMPP)
            totalClicks:
              type: integer
              description: total clicks on regular mailings (excluding AMPP)

    monthlyListUsedEmailClientsStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/monthlyListUsedEmailClientsStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'


    hourlyListSubscriptionsStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/hourlyListSubscriptionsStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    dailyListSubscriptionsStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/dailyListSubscriptionsStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    weeklyListSubscriptionsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/weeklyListSubscriptionsStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    monthlyListSubscriptionsStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/monthlyListSubscriptionsStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'

    hourlyRegularMailingClicksStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/hourlyRegularMailingClicksStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    dailyRegularMailingClicksStatisticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/dailyRegularMailingClicksStatistics'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'

    hourlyRegularMailingClicksStatistics:
      type: object
      properties:
        hour:
          type: string
          description: Hour of provided statistics
        totalClicks:
          type: integer
          description: Number of clicks for 'click' types of links per hour
        totalUnsubscriptionClicks:
          type: integer
          description: Number of clicks for 'unsubscription' type of links per hour
        totalOpenings:
          type: integer
          description: Number of clicks for 'opening' types of links per hour
        clickingRecipients:
          type: integer
          description: The sum of each mailing's unique recipients clicking at least one link.
        openingRecipients:
          type: integer
          description: The sum of each mailing's unique recipients opening the mailing. Openings are registered through loading of tracked images or clicks on links. Technologies like Apple Mail Privacy Protection may hide openings and lower the number.
    dailyRegularMailingClicksStatistics:
      type: object
      properties:
        day:
          type: string
          description: Day of provided statistics
        totalClicks:
          type: integer
          description: Number of clicks for 'click' types of links per day
        totalUnsubscriptionClicks:
          type: integer
          description: Number of clicks for 'unsubscription' type of links per day
        totalOpenings:
          type: integer
          description: Number of clicks for 'opening' types of links per day

    responseStatistics:
      type: object
      properties:
        openingRecipients:
          type: integer
          description: Number of opening recipients. Opening - First unique click or graphic loaded in the email.
        botInteractions:
          type: integer
          description: Number of interactions by bots. Interaction - First graphic loaded by a bot.
        openingRate:
          type: integer
          description: Number of clicking recipients / number of net recipients
        totalClicks:
          type: integer
          description: Total clicks.
        clickingRecipients:
          type: integer
          description: Number of clicking recipients.
        uniqueClickRate:
          type: integer
          description: Number of clicking recipients / number of net recipients.
        ctor:
          type: integer
          description: Number of clicking recipients / number of opening recipients.
        unsubscribeClicks:
          type: integer
          description: Number of unsubscribe clicks.
        listUnsubscribeClicks:
          type: integer
          description: Number of unsubscribe clicks via list unsubscribe.
        unsubscribeRate:
          type: integer
          description: Unsubscribe rate.
        statisticsByLink:
          type: array
          description: statistics per link.
          items:
            anyOf:
              - $ref: '#/components/schemas/statisticsByLinkType'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'

    responseStatisticsWithIncludeTypeData:
      type: object
      properties:
        openingRecipients:
          type: integer
          description: Number of opening recipients. Opening - First unique click or graphic loaded in the email.
        botInteractions:
          type: integer
          description: Number of interactions by bots. Interaction - First graphic loaded by a bot.
        openingRate:
          type: integer
          description: Number of clicking recipients / number of net recipients
        totalClicks:
          type: integer
          description: Total clicks.
        clickingRecipients:
          type: integer
          description: Number of clicking recipients.
        uniqueClickRate:
          type: integer
          description: Number of clicking recipients / number of net recipients.
        ctor:
          type: integer
          description: Number of clicking recipients / number of opening recipients.
        unsubscribeClicks:
          type: integer
          description: Number of unsubscribe clicks.
        listUnsubscribeClicks:
          type: integer
          description: Number of unsubscribe clicks via list unsubscribe.
        unsubscribeRate:
          type: integer
          description: Unsubscribe rate.
        statisticsByLink:
          type: array
          description: statistics per link.
          items:
            anyOf:
              - $ref: '#/components/schemas/statisticsByLinkType'
        _links:
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'

    topLevelDomainStatistics:
      properties:
        otherDomainsRecipientCount:
          type: integer
          description: The count of top level domains which are not included in the mostUsedDomains
        mostUsedDomains:
          type: array
          description: Contains information about the most used domains
          items:
            allOf:
              - $ref: '#/components/schemas/tldMostUsedDomains'
    tldMostUsedDomains:
      properties:
        topLevelDomain:
          type: string
          description: The name of the top level domain
          example: de
        recipientCount:
          type: integer
          description: The count how many time the top level domain is used by subscribers of the list


    domainStatistics:
      properties:
        otherDomainsRecipientCount:
          type: integer
          description: The count domains which are not included in the mostUsedDomains
        mostUsedDomains:
          type: array
          description: Contains information about the most used domains
          items:
            allOf:
              - $ref: '#/components/schemas/mostUsedDomains'
    mostUsedDomains:
      properties:
        domain:
          type: string
          description: The name of domain
          example: de
        recipientCount:
          type: integer
          description: The count how many time the domain is used by subscribers of the list

    statisticsByLinkType:
      type: object
      properties:
        linkId:
          type: integer
        reportName:
          type: string
        linkUrl:
          type: string
        totalClicks:
          type: integer
        linkType:
          type: string
          enum:
            - REDIRECT
            - COUNT
            - UNIQUE_COUNT
            - CONTENT_TRACKED
            - UNSUBSCRIBE
            - UNSUBSCRIBE_LINK
            - UNSUBSCRIBE_FORM
            - UNSUBSCRIBE_PAGE
            - UNSUBSCRIBE_HEADER_LINK
            - VERIFY_SUBSCRIPTION
            - VERIFY_UNSUBSCRIPTION
            - CONTENT_OPENING
            - OPENING_COUNT
            - GRANT_TRACKING_PERMISSION
            - WITHDRAW_TRACKING_PERMISSION
        uniqueClicks:
          type: integer
          default: null
    editorContent:
      type: object
      properties:
        html:
          type: string
        text:
          type: string
        xmlContentBase64:
          type: string
        _links:
          type: object
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    dynamicParameters:
      type: object
      properties:
        html:
          type: string
        text:
          type: string
        _links:
          type: object
          properties:
            self:
              $ref: '#/components/schemas/halSelfCurie'
    designCollections:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/designCollection'
    designCollection:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the design collection
        listId:
          type: integer
          description: The ID of the list associated to this design collection
        name:
          type: string
          description: The name of the design collection
        displayName:
          type: string
          description: The display name of the design collection
        version:
          type: string
          description: The version of the design collection
        lastSaveDate:
          type: string
          format: date-time
          description: The last saved date  of the design collection
        _links:
          type: object
          description: Links to other resources
    datasources:
      type: array
      items:
        allOf:
          - $ref: '#/components/schemas/datasource'
    datasource:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the datasource
        name:
          type: string
          description: The name of the datasource
        url:
          type: string
          description: The URL of the datasource
        useType:
          type: string
          enum:
            - TEXT
            - TRANSFORMED_TEXT
            - FILE
        fetchStrategy:
          type: string
          enum:
            - ONCE
            - RECIPIENT_BASED
            - RECIPIENT_CACHED
        encodeUrlPlaceholders:
          type: boolean
          description: if set, placeholders are url encoded
        contentWithInxmailTags:
          type: boolean
          description: if set, content can include inxmail tags
        lastSaveDate:
          type: string
          format: date-time
          description: The last saved date  of the design collection
        attachmentFileName:
          type: string
          description: The attachment file name of the datasource
    createImportTemplateConfigurationRequest:
      required:
        - emailAddressColumn
        - trackingPermissionColumnName
        - notifyRecipients
        - dateTimeFormat
        - dateFormat
        - timeFormat
        - encoding
        - booleanParserPattern
        - trackingPermissionGrantedValue
        - timezone
        - importConflictMode
        - trackingPermissionConflictMode
        - targetListTab
      type: object
      properties:
        emailAddressColumn:
          type: string
          description: The name of the column in the csv file that contains the recipient's email address.
          pattern: '^[a-zA-Z0-9_-]+$'
        trackingPermissionColumnName:
          type: string
          description: The name of the column in the csv file that contains the information about the tracking permissions.
        notifyOnSuccess:
          type: boolean
          description: If an email should be sent upon a successful import, to the addresses defined in notifyRecipients.
        notifyOnFailure:
          type: boolean
          description: If an email should be sent upon a failed import, to the addresses defined in notifyRecipients.
        notifyOnCancel:
          type: boolean
          description: If an email should be sent upon a canceled import, to the addresses defined in notifyRecipients.
        notifyRecipients:
          type: array
          description: The list of email addresses that should be notified on success, failure, or cancellation of an import, if enabled.
          items:
            type: string
        columnSeparator:
          type: string
          description: The character which is used to separate the columns.
          enum: [ ',', ';', '\t' ]
        textDelimiter:
          type: string
          description: The character used to separate text fields.
          enum: [ "'", '"' ]
        textDelimiterEscaping:
          type: string
          description: The character used to escape the text delimiter.
          enum: [ 'BACKSLASH', 'DOUBLE' ]
        dateTimeFormat:
          type: string
          description: The date-time format used to parse the date-time columns.
        dateFormat:
          type: string
          description: The date format used to parse the date columns.
        timeFormat:
          type: string
          description: The time format used to parse the time columns.
        thousandsSeparator:
          type: string
          description: The character which is used to group digits in large numbers for better readability.
          enum: [ '.', ',', '_', '\s' ]
        decimalSeparator:
          type: string
          description: The character which is used to separate the integer part from the fractional part of a number.
          enum: [ '.', ',' ]
        encoding:
          type: string
          description: The encoding of the import file.
          enum: [ 'UTF-8' ]
        booleanParserPattern:
          type: string
          description: The pattern which is used to parse text to boolean values.
        booleanMatchValue:
          type: boolean
          description: In which boolean value texts should be parsed that match the booleanParsePattern.
        trackingPermissionGrantedValue:
          type: string
          description: The pattern which indicates that a recipient has tracking permissions.
        timezone:
          type: string
          description: The Time Zone for the Date Time values.
        importConflictMode:
          type: string
          description: >
            The strategy to handle import conflicts.
            - `SKIP` - Do nothing
            - `UPDATE` - Only add missing attribute values
            - `OVERWRITE_AND_UPDATE` - Overwrite all attribute with new values
            - `OVERWRITE_AND_UPDATE_NOT_EMPTY` - Overwrite all attribute with new values, but only if the attribute is not empty
          enum: [ 'SKIP', 'UPDATE', 'OVERWRITE_AND_UPDATE', 'OVERWRITE_AND_UPDATE_NOT_EMPTY' ]
        trackingPermissionConflictMode:
          type: string
          description: The strategy to handle tracking permissions conflicts.
          enum: [ 'KEEP_EXISTING', 'OVERWRITE_EXCEPT_EMPTY', 'OVERWRITE_FULL' ]
        clearListBeforeImport:
          type: boolean
          description: Whether the list should be emptied before imports.
        resubscribeUnsubscribedRecipients:
          type: boolean
          description: If already unsubscribed recipients should be resubscribed.
        unsubscribeSubscribedRecipients:
          type: boolean
          description: If already subscribed recipients should be unsubscribed.
        ignoreUnknownRecipients:
          type: boolean
          description: If recipients that are not known should not be imported.
        targetList:
          type: number
          description: The list in which the recipients should be imported.
        targetListTab:
          type: string
          description: The target list tab.
          enum: [ 'SUBSCRIBED', 'UNSUBSCRIBED', 'NONE' ]
        targetFileType:
          type: string
          description: The target file type.
          enum: [ 'CSV, XLS' ]
    createXlsTemplateConfiguration:
      type: object
      properties:
        emailAddressColumn:
          type: string
          description: The name of the column in the csv file that contains the recipient's email address.
          pattern: '^[a-zA-Z0-9_-]+$'
        trackingPermissionColumnName:
          type: string
          description: The name of the column in the csv file that contains the information about the tracking permissions.
        notifyOnSuccess:
          type: boolean
          description: If an email should be sent upon a successful import, to the addresses defined in notifyRecipients.
        notifyOnFailure:
          type: boolean
          description: If an email should be sent upon a failed import, to the addresses defined in notifyRecipients.
        notifyOnCancel:
          type: boolean
          description: If an email should be sent upon a canceled import, to the addresses defined in notifyRecipients.
        notifyRecipients:
          type: array
          description: The list of email addresses that should be notified on success, failure, or cancellation of an import, if enabled.
          items:
            type: string
        thousandsSeparator:
          type: string
          description: The character which is used to group digits in large numbers for better readability.
          enum: [ '.', ',', '_', '\s' ]
        decimalSeparator:
          type: string
          description: The character which is used to separate the integer part from the fractional part of a number.
          enum: [ '.', ',' ]
        trackingPermissionGrantedValue:
          type: string
          description: The pattern which indicates that a recipient has tracking permissions.
        importConflictMode:
          type: string
          description: >
            The strategy to handle import conflicts.
            - `SKIP` - Do nothing
            - `UPDATE` - Only add missing attribute values
            - `OVERWRITE_AND_UPDATE` - Overwrite all attribute with new values
            - `OVERWRITE_AND_UPDATE_NOT_EMPTY` - Overwrite all attribute with new values, but only if the attribute is not empty
          enum: [ 'SKIP', 'UPDATE', 'OVERWRITE_AND_UPDATE', 'OVERWRITE_AND_UPDATE_NOT_EMPTY' ]
        trackingPermissionConflictMode:
          type: string
          description: The strategy to handle tracking permissions conflicts.
          enum: [ 'KEEP_EXISTING', 'OVERWRITE_EXCEPT_EMPTY', 'OVERWRITE_FULL' ]
        clearListBeforeImport:
          type: boolean
          description: Whether the list should be emptied before imports.
        resubscribeUnsubscribedRecipients:
          type: boolean
          description: If already unsubscribed recipients should be resubscribed.
        unsubscribeSubscribedRecipients:
          type: boolean
          description: If already subscribed recipients should be unsubscribed.
        ignoreUnknownRecipients:
          type: boolean
          description: If recipients that are not known should not be imported.
        targetList:
          type: number
          description: The list in which the recipients should be imported.
        targetListTab:
          type: string
          description: The target list tab.
          enum: [ 'SUBSCRIBED', 'UNSUBSCRIBED', 'NONE' ]
        targetFileType:
          type: string
          description: The target file type.
          enum: [ 'XLS' ]
      required:
        - emailAddressColumn
        - trackingPermissionColumnName
        - notifyRecipients
        - trackingPermissionGrantedValue
        - importConflictMode
        - trackingPermissionConflictMode
        - targetListTab
        - targetFileType
    importTemplateConfigurationResponse:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the import configuration.
        emailAddressColumn:
          type: string
          description: The name of the column in the csv file that contains the recipient's email address.
          pattern: '^[a-zA-Z0-9_-]+$'
        trackingPermissionColumnName:
          type: string
          description: The name of the column in the csv file that contains the information about the tracking permissions.
        notifyOnSuccess:
          type: boolean
          description: If an email should be sent upon a successful import, to the addresses defined in notifyRecipients.
        notifyOnFailure:
          type: boolean
          description: If an email should be sent upon a failed import, to the addresses defined in notifyRecipients.
        notifyOnCancel:
          type: boolean
          description: If an email should be sent upon a canceled import, to the addresses defined in notifyRecipients.
        notifyRecipients:
          type: array
          description: The list of email addresses that should be notified on success, failure, or cancellation of an import, if enabled.
          items:
            type: string
        columnSeparator:
          type: string
          description: The character which is used to separate the columns.
          enum: [ ',', ';', '\t' ]
        textDelimiter:
          type: string
          description: The character used to separate text fields.
          enum: [ "'", '"' ]
        textDelimiterEscaping:
          type: string
          description: The character used to escape the text delimiter.
          enum: [ 'BACKSLASH', 'DOUBLE' ]
        dateTimeFormat:
          type: string
          description: The date-time format used to parse the date-time columns.
        dateFormat:
          type: string
          description: The date format used to parse the date columns.
        timeFormat:
          type: string
          description: The time format used to parse the time columns.
        thousandsSeparator:
          type: string
          description: The character which is used to group digits in large numbers for better readability.
          enum: [ '.', ',', '_', '\s' ]
        decimalSeparator:
          type: string
          description: The character which is used to separate the integer part from the fractional part of a number.
          enum: [ '.', ',' ]
        encoding:
          type: string
          description: The encoding of the import file.
          enum: [ 'UTF-8' ]
        booleanParserPattern:
          type: string
          description: The pattern which is used to parse text to boolean values.
        booleanMatchValue:
          type: boolean
          description: In which boolean value texts should be parsed that match the booleanParsePattern.
        trackingPermissionGrantedValue:
          type: string
          description: The pattern which indicates that a recipient has tracking permissions.
        timezone:
          type: string
          description: The Time Zone for the Date Time values.
        importConflictMode:
          type: string
          description: The strategy to handle import conflicts.
          enum: [ 'SKIP', 'UPDATE', 'OVERWRITE_AND_UPDATE', 'OVERWRITE_AND_UPDATE_NOT_EMPTY' ]
        trackingPermissionConflictMode:
          type: string
          description: The strategy to handle tracking permissions conflicts.
          enum: [ 'KEEP_EXISTING', 'OVERWRITE_EXCEPT_EMPTY', 'OVERWRITE_FULL' ]
        clearListBeforeImport:
          type: boolean
          description: Whether the list should be emptied before imports.
        resubscribeUnsubscribedRecipients:
          type: boolean
          description: If already unsubscribed recipients should be resubscribed.
        unsubscribeSubscribedRecipients:
          type: boolean
          description: If already subscribed recipients should be unsubscribed.
        ignoreUnknownRecipients:
          type: boolean
          description: If recipients that are not known should not be imported.
        targetList:
          type: number
          description: The list in which the recipients should be imported.
        targetListTab:
          type: string
          description: The target list tab.
          enum: [ 'SUBSCRIBED', 'UNSUBSCRIBED', 'NONE' ]
    createFileStoreResponse:
      type: object
      properties:
        id:
          type: integer
          description: the id of the file
        originalFileName:
          type: string
          description: the original file name of the imported file
        lineCount:
          type: integer
          description: the number of lines in the file
        deleted:
          type: boolean
          description: If the file was deleted either manually or automatically
        createdDate:
          type: string
          format: date-time
          description: the date when the file was created
          example: "2024-12-06T08:33:17Z"
    getFileStoreResponse:
      type: object
      properties:
        id:
          type: integer
          description: the id of the file
        originalFileName:
          type: string
          description: the original file name of the imported file
        lineCount:
          type: integer
          description: the number of lines in the file
        deleted:
          type: boolean
          description: If the file was deleted either manually or automatically
        createdDate:
          type: string
          format: date-time
          description: the date when the file was created
          example: "2024-12-06T08:33:17Z"
        deletedDate:
          type: string
          format: date-time
          description: The date when the file was deleted. Only is included if the file is deleted
          example: "2024-13-06T08:33:17Z"
          nullable: true
    fileStoreSourcePreviewResponse:
      type: object
      properties:
        lines:
          type: array
          items:
            type: string
            example:
              - "line1"
              - "line2"
              - "line3"
          description: each line of file that was imported, max available lines = 20
    sftpConfiguration:
      type: object
      properties:
        uri:
          type: string
        username:
          type: string
    sftpUpdateConfiguration:
      type: object
      properties:
        uri:
          type: string
        username:
          type: string
        password:
          type: string
        passphrase:
          type: string
        privateKey:
          type: string
    importConfiguration:
      type: object
      properties:
        emailAddressColumn:
          type: string
        trackingPermissionColumnName:
          type: string
        notifyOnSuccess:
          type: boolean
        notifyOnFailure:
          type: boolean
        notifyOnCancel:
          type: boolean
        notifyRecipients:
          type: string
        columnSeparator:
          type: string
        textDelimiter:
          type: string
        textDelimiterEscaping:
          type: string
        dateTimeFormat:
          type: string
        dateFormat:
          type: string
        timeFormat:
          type: string
        thousandsSeparator:
          type: string
        decimalSeparator:
          type: string
        encoding:
          type: string
        booleanParserPattern:
          type: string
        booleanMatchValue:
          type: boolean
        trackingPermissionGrantedValue:
          type: string
        timezone:
          type: string
        importConflictMode:
          type: string
          enum:
            - SKIP
            - UPDATE
            - OVERWRITE_AND_UPDATE
            - OVERWRITE_AND_UPDATE_NOT_EMPTY
            - SET_SUBSCRIPTION
            - SET_SUBSCRIPTION_AND_UPDATE
            - SET_SUBSCRIPTION_OVERWRITE_AND_UPDATE
            - SET_SUBSCRIPTION_OVERWRITE_AND_UPDATE_NOT_EMPTY
        trackingPermissionConflictMode:
          type: string
          enum:
            - KEEP_EXISTING
            - OVERWRITE_EXCEPT_EMPTY
            - OVERWRITE_FULL
        clearListBeforeImport:
          type: boolean
        resubscribeUnsubscribedRecipients:
          type: boolean
        unsubscribeSubscribedRecipients:
          type: boolean
        ignoreUnknownRecipients:
          type: boolean
        targetList:
          type: integer
        targetListTab:
          type: string
          enum:
            - NONE
            - SUBSCRIBED
            - UNSUBSCRIBED

        deleteRemoteFileAfterImport:
          type: boolean
        uploadLogAfterProcessing:
          type: boolean



    importInterval:
      type: object
      properties:
        type:
          type: string
          enum:
            - FIRST_OF_MONTH
            - WEEKLY
            - DAILY
            - HOURLY
        weekday:
          description: day for weekly imports
          type: string
          enum:
            - SUNDAY
            - MONDAY
            - TUESDAY
            - WEDNESDAY
            - THURSDAY
            - FRIDAY
            - SATURDAY
        hour:
          description: starting hour
          type: integer
        minute:
          description: starting minute
          type: integer
    statusMonitorResponse:
      type: object
      properties:
        id:
          type: integer
        state:
          type: string
          enum:
            - NEW
            - PROCESSING
            - SUCCESS
            - FAILED
            - CANCELED
        successCount:
          type: integer
          description: The number of successfully imported records so far
        failCount:
          type: integer
          description: The current number of records which could not be
            imported
        beginDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        files:
          type: array
          items:
            $ref: '#/components/schemas/statusMonitorFileResponse'
        _links:
          $ref: '#/components/schemas/linksForImports'
    statusMonitorFileResponse:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        state:
          type: string
          enum:
            - NEW
            - PREFETCHING
            - READY_TO_PROCESS
            - PREFETCHED_FAILED
            - PROCESSING
            - SUCCESSFUL
            - FAILED
            - DEQUEUED
            - CANCELED
            - UNKNOWN
        currentCount:
          type: integer
        successCount:
          type: integer
        failedCount:
          type: integer

    inboxMails:
      type: array
      items:
        $ref: '#/components/schemas/inboxMail'
    inboxMail:
      type: object
      properties:
        id:
          type: integer
          description: Id of the inbox mail
        receivedDate:
          type: string
          format: date-time
        category:
          type: string
          enum:
            - HARDBOUNCE
            - SOFTBOUNCE
            - AUTORESPONDER
            - FLAME
            - UNKNOWN
            - UNKNOWNBOUNCE
            - AUTORESPONDERBOUNCE
            - SPAM
            - BOUNCESPAM
          description: Category of inbox mail
        originalMailingSendingId:
          type: integer
          description: Id of the original mailing sending
        affectedRecipientId:
          type: integer
          description: Id of the affected recipient
        originalMailingListId:
          type: integer
          description: Id of the mailing list
        matchedRecipientEmail:
          type: string
          description: Email of matched recipient
        originalMailingMailingId:
          type: integer
          description: Id of the original mailing
        senderAddress:
          type: string
          description: Address of sender
        mailSizeBytes:
          type: integer
          description: Size of mail in bytes
        mailSubject:
          type: string
          description: Subject of mail
        originalMailingListName:
          type: string
          description: Name of the mailing list
        originalMailingMailingName:
          type: string
          description: Name of the original mailing
        _embedded:
          properties:
            inx:inbox-mails:
              $ref: '#/components/schemas/inboxMailContent'
        self:
          $ref: '#/components/schemas/halSelfCurie'
    inboxMailContent:
      type: object
      properties:
        content:
          type: string
          description: Content of the inbox mail
        self:
          $ref: '#/components/schemas/halSelfCurie'

    linksForInboxMail:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:mailing:
          $ref: '#/components/schemas/linkMailings'
        inx:sending:
          $ref: '#/components/schemas/linkSendings'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:recipient:
          $ref: '#/components/schemas/linkRecipient'
    linksForTrackingPermissions:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:recipient:
          $ref: '#/components/schemas/linkRecipient'
    linksForTestProfiles:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
    linksForTestMailGroups:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'

    linksForDesignCollections:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
    linksForTextModules:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
    linksForTargetGroups:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
    linksForRecipients:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        next:
          $ref: '#/components/schemas/linkNext'
        inx:upcoming:
          $ref: '#/components/schemas/upcoming'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    linksForImports:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:files:
          $ref: '#/components/schemas/files'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    linksForAttributes:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        next:
          $ref: '#/components/schemas/linkNext'
        inx:upcoming:
          $ref: '#/components/schemas/upcoming'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    linksForSubscriptionEvent:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:recipient:
          $ref: '#/components/schemas/linkRecipient'
    linksForUnsubscriptionEvent:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:recipient:
          $ref: '#/components/schemas/linkRecipient'
    linksForLists:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:mailings:
          $ref: '#/components/schemas/linkMailings'
    linksForListSettings:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
    linksForSplitTestMailing:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:renderedContent:
          $ref: '#/components/schemas/linkRenderedContent'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:sendings:
          $ref: '#/components/schemas/sendingsForListCurie'
        inx:clicks:
          $ref: '#/components/schemas/linkClicks'
        inx:web-beacon-hits:
          $ref: '#/components/schemas/linkWebBeaconHits'
        inx:links:
          $ref: '#/components/schemas/linkLinks'
    linksForActionMailing:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:renderedContent:
          $ref: '#/components/schemas/linkRenderedContent'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:sendings:
          $ref: '#/components/schemas/sendingsForListCurie'
        inx:clicks:
          $ref: '#/components/schemas/linkClicks'
        inx:web-beacon-hits:
          $ref: '#/components/schemas/linkWebBeaconHits'
        inx:links:
          $ref: '#/components/schemas/linkLinks'
    linksForTriggerMailing:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:renderedContent:
          $ref: '#/components/schemas/linkRenderedContent'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:sendings:
          $ref: '#/components/schemas/sendingsForListCurie'
        inx:clicks:
          $ref: '#/components/schemas/linkClicks'
        inx:web-beacon-hits:
          $ref: '#/components/schemas/linkWebBeaconHits'
        inx:links:
          $ref: '#/components/schemas/linkLinks'
    linksForSubscriptionMailing:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:renderedContent:
          $ref: '#/components/schemas/linkRenderedContent'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:sendings:
          $ref: '#/components/schemas/sendingsForListCurie'
        inx:clicks:
          $ref: '#/components/schemas/linkClicks'
        inx:web-beacon-hits:
          $ref: '#/components/schemas/linkWebBeaconHits'
        inx:links:
          $ref: '#/components/schemas/linkLinks'
    linksForActionTriggers:
      required:
        - self
        - curies
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    linksForBlacklist:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        next:
          $ref: '#/components/schemas/linkNext'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    linksForBounces:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:recipient:
          $ref: '#/components/schemas/linkRecipient'
    linksForRegularMailing:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:renderedContent:
          $ref: '#/components/schemas/linkRenderedContent'
        inx:editorContent:
          $ref: '#/components/schemas/linkEditorContent'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:sendings:
          $ref: '#/components/schemas/sendingsForListCurie'
        inx:clicks:
          $ref: '#/components/schemas/linkClicks'
        inx:web-beacon-hits:
          $ref: '#/components/schemas/linkWebBeaconHits'
        inx:links:
          $ref: '#/components/schemas/linkLinks'
    linksForMailingLink:
      required:
        - self
        - curies
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:upcoming:
          $ref: '#/components/schemas/upcoming'
        next:
          $ref: '#/components/schemas/linkNext'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    linksForOperations:
      required:
        - self
        - curies
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:renderedContent:
          $ref: '#/components/schemas/mailingOperations'
        inx:list:
          $ref: '#/components/schemas/linkList'
        inx:sendings:
          $ref: '#/components/schemas/sendingsForListCurie'
        inx:clicks:
          $ref: '#/components/schemas/linkClicks'
        inx:web-beacon-hits:
          $ref: '#/components/schemas/linkWebBeaconHits'
        inx:links:
          $ref: '#/components/schemas/linkLinks'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    webBeaconHitsLinks:
      required:
        - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:web-beacon-hits:
          $ref: '#/components/schemas/webBeaconHits'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    subscriptionDate:
      type: object
      properties:
        listId:
          type: string
        date:
          type: string
          format: date-time
    links:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/halSelfCurie'
        inx:upcoming:
          $ref: '#/components/schemas/upcoming'
        curies:
          $ref: '#/components/schemas/halCuriesLink'
    linkNext:
      required:
        - href
      properties:
        href:
          type: string
    upcoming:
      required:
        - href
      properties:
        href:
          type: string
    linkPrev:
      required:
        - href
      properties:
        href:
          type: string
    linkError:
      required:
        - href
      properties:
        href:
          type: string
    linkClicks:
      required:
        - href
      type: object
      properties:
        href:
          type: string
    linkList:
      required:
        - href
      type: object
      properties:
        href:
          type: string
    linkRecipient:
      required:
        - href
      type: object
      properties:
        href:
          type: string
      xml:
        name: recipients
    halSelfCurie:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to this resource
    halCuriesLink:
      type: array
      items:
        required:
          - href
          - name
          - templated
        type: object
        properties:
          href:
            type: string
          name:
            type: string
          templated:
            type: boolean
    mailingsForListCurie:
      required:
        - href
      type: object
      properties:
        href:
          type: string
    sendingsForListCurie:
      required:
        - href
      type: object
      properties:
        href:
          type: string
    files:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to files of this recipient import
    linkBlacklistEntries:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to blacklist
    linkSendings:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to sendings
    linkMailings:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to mailings
    linkRegularMailings:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to regular mailings
    mailingOperations:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to mailing operations
    linkSubscriptionEvents:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to subscription events
    linkunsubscriptionEvents:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to unsubscription events
    linkAttributes:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to attributes
    linkLinks:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to mailing links
    linkWebBeaconHits:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to web beacon hits
    linkBounces:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to bounces
    linkRenderedContent:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to rendered content
    linkEditorContent:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          description: Link to editor content
    subscribedList:
      type: object
      description: A list to subscribe the recipient to. Each listId must be unique across both subscribedLists and unsubscribedLists, must reference an existing list, and must be a standard list.
      properties:
        listId:
          type: integer
          description: Id of the list the recipient is subscribed to
        trackingPermission:
          type: string
          enum:
            - GRANTED
            - DENIED
          description: The tracking permission status of the recipient for this list
    unsubscribedList:
      type: object
      description: A list to unsubscribe the recipient from. Each listId must be unique across both subscribedLists and unsubscribedLists, must reference an existing list, and must be a standard list.
      properties:
        listId:
          type: integer
          description: Id of the list the recipient is unsubscribed from
  parameters:
    pageSize:
      name: pageSize
      in: query
      description: max items per page.
      required: false
      style: form
      explode: true
      schema:
        type: integer
    afterId:
      name: afterId
      in: query
      description: The largest existing item ID before the page, not to be included in the page.
      required: false
      style: form
      explode: true
      schema:
        type: integer
    beforeId:
      name: beforeId
      in: query
      description: |
        An optional parameter used for pagination.
        When specified, it limits results to those with IDs less than the provided.
        This is useful for retrieving the previous set of records in a paginated list.
        Useful in combination with order=DESC.
      required: false
      style: form
      explode: true
      schema:
        type: integer
    order:
      name: order
      in: query
      description: Specifies order of provided data
      required: false
      style: form
      explode: true
      schema:
        type: string
        enum:
          - ASC
          - DESC
  requestBodies: { }
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic