openapi: 3.1.0
info:
  title: Spotler Connect REST API
  description: |
    # NOTE

    Some parts of this API have multiple endpoints on the same path, which is not valid OpenAPI.
    These endpoints will also not work with the "Test request" button.

    To view documentation without invalid endpoints, please navigate to [./docs?strict=true](./docs?strict=true) (not recommended).
  termsOfService: https://spotlerconnect.com/terms-of-use
  contact:
    name: Spotler Connect
    url: https://spotlerconnect.com/contact
    email: support+connect@spotler.com
  version: version
servers:
- url: https://app.spotlerconnect.com/rest/v1
  description: REST API base url
- url: http://localhost:8080/rest/v1
  description: REST API test url
paths:
  /contact?reference={reference}&config={config}:
    get:
      tags:
      - Contact (read)
      summary: Read contact by external reference
      description: |-
        Read the contact with the given reference in the given config.

        See [Read contact by query](#tag/contact-read/get/contact) for sending test requests
      operationId: read_contact_by_external_reference
      parameters:
      - name: config
        in: query
        description: The configuration to find the reference for.
        required: true
        schema:
          type: string
      - name: reference
        in: query
        description: The (external) reference of the contact.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Contact (delete)
      summary: Delete contact by external reference
      description: |-
        Delete the contact with the given reference in the given config.

        See [Delete contact by query](#tag/contact-delete/delete/contact) for sending test requests.

        # NOTE!

        This deletes the contact and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact](#tag/contact-delete/delete/contact/{id}) for more information.
      operationId: delete_contact_by_external_reference
      parameters:
      - name: config
        in: query
        description: The configuration to find the reference for.
        required: true
        schema:
          type: string
      - name: reference
        in: query
        description: The (external) reference of the contact.
        required: true
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Contact (update)
      summary: Update contact by external reference
      description: Update the contact with the given reference in the given config.
      operationId: update_contact_by_external_reference
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPatches'
        required: true
      responses:
        '200':
          description: The updated contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact/{id}/references:
    get:
      tags:
      - Contact (read)
      summary: Read contact references
      description: Read a contact's external references.
      operationId: read_contact_references
      responses:
        '200':
          description: The contact references.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactReferenceCollection'
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact/batch:
    put:
      tags:
      - Contact (create)
      summary: Batch upsert contacts
      description: |-
        Submit a batch of contacts to be created or updated

        Will use `ContactReference` and `ContactEmail`/`ContactPhone` to create or update a contact.
        Will not wait for the contacts to be created or updated.

        Accepts a `text/csv` or `text/tsv` body with a header row containing:

         * `ContactReference`
         * `ContactEmail`/`ContactPhone`
         * Zero or more `Fields.*`
      operationId: batch_contacts
      requestBody:
        content:
          text/csv:
            schema:
              type: string
            example: |
              ContactReference,ContactEmail,Fields.firstname,Fields.lastname
              744d4c1b,john.smith@spotler.com,John,Smith
              a5915b7c,james.smith@spotler.com,James,Smith
              09414874,robert.smith@spotler.com,Robert,Smith
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /contact:
    get:
      tags:
      - Contact (read)
      summary: Read contact by query
      description: Read the contact by the given query.
      operationId: read_contact_by
      parameters:
      - name: id
        in: query
        required: false
        schema:
          type: string
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: reference
        in: query
        required: false
        schema:
          type: string
      - name: email
        in: query
        required: false
        schema:
          type: string
      - name: phone
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    put:
      tags:
      - Contact (create)
      summary: Create or update contact
      description: Create a contact. If a similar contact already exists, updates that contact instead.
      operationId: create_contact
      parameters:
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPatches'
        required: true
      responses:
        '200':
          description: The contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Contact (delete)
      summary: Delete contact by query
      description: |-
        Delete the contact by the given query.

        # NOTE!

        This deletes the contact and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact](#tag/contact-delete/delete/contact/{id}) for more information.
      operationId: delete_contact_by
      parameters:
      - name: id
        in: query
        required: false
        schema:
          type: string
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: reference
        in: query
        required: false
        schema:
          type: string
      - name: email
        in: query
        required: false
        schema:
          type: string
      - name: phone
        in: query
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact?id={id}:
    get:
      tags:
      - Contact (read)
      summary: Read contact by id
      description: |-
        Read the contact with the given id.

        See [Read contact by query](#tag/contact-read/get/contact) for sending test requests
      operationId: read_contact_by_id
      parameters:
      - name: id
        in: query
        description: The `Id` of the contact.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Contact (delete)
      summary: Delete contact by id
      description: |-
        Delete the contact with the given id.

        See [Delete contact by query](#tag/contact-delete/delete/contact) for sending test requests.

        # NOTE!

        This deletes the contact and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact](#tag/contact-delete/delete/contact/{id}) for more information.
      operationId: delete_contact_by_id
      parameters:
      - name: id
        in: query
        description: The `Id` of the contact.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Contact (update)
      summary: Update contact by id
      description: Update the contact with the given id.
      operationId: update_contact_by_id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPatches'
        required: true
      responses:
        '200':
          description: The updated contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact?email={email}:
    get:
      tags:
      - Contact (read)
      summary: Read contact by email address
      description: |-
        Read the contact with the given email address.

        See [Read contact by query](#tag/contact-read/get/contact) for sending test requests
      operationId: read_contact_by_email
      parameters:
      - name: email
        in: query
        description: The `Email` of the contact.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Contact (delete)
      summary: Delete contact by email address
      description: |-
        Delete the contact with the given email address.

        See [Delete contact by query](#tag/contact-delete/delete/contact) for sending test requests.

        # NOTE!

        This deletes the contact and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact](#tag/contact-delete/delete/contact/{id}) for more information.
      operationId: delete_contact_by_email
      parameters:
      - name: email
        in: query
        description: The `Email` of the contact.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Contact (update)
      summary: Update contact by email address
      description: Update the contact with the given email address.
      operationId: update_contact_by_email
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPatches'
        required: true
      responses:
        '200':
          description: The updated contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact/{id}:
    get:
      tags:
      - Contact (read)
      summary: Read contact
      description: Read the contact with the given `id`.
      operationId: read_contact
      responses:
        '200':
          description: The contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Contact (delete)
      summary: Delete contact
      description: |-
        Delete the contact with the given `id`.

        The contact is not actually fully deleted, unless `force` is given.
        Instead, it deletes the `Reference` of the current configuration.

        This means you can still access the contact with [Read](#tag/contact-read) or [Update](#tag/contact-update) requests, but the `Reference` will be `null`.

        Note that `DELETE`-ing a contact from Spotler Connect does not (currently) remove it from other platforms.
        To do this, perform a [Patch](#tag/contact-update) with `{"Status":"Removed"}`.
      operationId: delete_contact
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Contact (update)
      summary: Update contact
      description: Update the contact with the given `id`.
      operationId: update_contact
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPatches'
        required: true
      responses:
        '200':
          description: The updated contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact?phone={phone}:
    get:
      tags:
      - Contact (read)
      summary: Read contact by phone number
      description: |-
        Read the contact with the given phone number.

        See [Read contact by query](#tag/contact-read/get/contact) for sending test requests
      operationId: read_contact_by_phone
      parameters:
      - name: phone
        in: query
        description: The `Address.Phone` of the contact.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Contact (delete)
      summary: Delete contact by phone number
      description: |-
        Delete the contact with the given phone number.

        See [Delete contact by query](#tag/contact-delete/delete/contact) for sending test requests.

        # NOTE!

        This deletes the contact and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact](#tag/contact-delete/delete/contact/{id}) for more information.
      operationId: delete_contact_by_phone
      parameters:
      - name: phone
        in: query
        description: The `Address.Phone` of the contact.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Contact (update)
      summary: Update contact by phone number
      description: Update the contact with the given phone number.
      operationId: update_contact_by_phone
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPatches'
        required: true
      responses:
        '200':
          description: The updated contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact/{id}?async=true:
    patch:
      tags:
      - Contact (update)
      summary: Update contact
      description: |-
        Update the contact with the given `id`.
        Does not wait for the contact to be updated.
      operationId: update_contact_async
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPatches'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact?async=true:
    put:
      tags:
      - Contact (create)
      summary: Create or update contact asynchronously
      description: |-
        Create a contact. If a similar contact already exists, updates that contact instead.
        Does not wait for the contact to be created or updated.
      operationId: create_contact_async
      parameters:
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPatches'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
  /contact?reference={reference}:
    get:
      tags:
      - Contact (read)
      summary: Read contact by reference
      description: |-
        Read the contact with the given reference.

        See [Read contact by query](#tag/contact-read/get/contact) for sending test requests
      operationId: read_contact_by_reference
      parameters:
      - name: reference
        in: query
        description: The `Reference` of the contact.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Contact (delete)
      summary: Delete contact by reference
      description: |-
        Delete the contact with the given reference.

        See [Delete contact by query](#tag/contact-delete/delete/contact) for sending test requests.

        # NOTE!

        This deletes the contact and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact](#tag/contact-delete/delete/contact/{id}) for more information.
      operationId: delete_contact_by_reference
      parameters:
      - name: reference
        in: query
        description: The `Reference` of the contact.
        required: true
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Contact (update)
      summary: Update contact by reference
      description: Update the contact with the given reference.
      operationId: update_contact_by_reference
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactPatches'
        required: true
      responses:
        '200':
          description: The updated contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity:
    get:
      tags:
      - Activity (read)
      summary: Read activity by query
      description: Read the activity by the given query.
      operationId: read_activity_by
      parameters:
      - name: id
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The activity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity?id={id}:
    get:
      tags:
      - Activity (read)
      summary: Read activity by id
      description: |-
        Read the activity with the given id.

        See [Read activity by query](#tag/activity-read/get/activity) for sending test requests
      operationId: read_activity_by_id
      parameters:
      - name: id
        in: query
        description: The `Id` of the activity.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The activity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/email_link_was_clicked:
    post:
      tags:
      - Activity (create)
      summary: Create EmailLinkWasClicked
      description: Create an EmailLinkWasClicked activity for the given contact.
      operationId: create_email_link_was_clicked
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailLinkWasClicked'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/email_was_sent:
    post:
      tags:
      - Activity (create)
      summary: Create EmailWasSent
      description: Create an EmailWasSent activity for the given contact.
      operationId: create_email_was_sent
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailWasSent'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/page_view:
    post:
      tags:
      - Activity (create)
      summary: Create PageView
      description: Creates a page view for the given organisation and contact.
      operationId: create_page_view
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      - name: create_organisation
        in: query
        description: |-
          Create the organisation if it does not yet exist.
          Requires `OrganisationReference` and `OrganisationDomain` to be present.
        required: false
        schema:
          type: boolean
      - name: parse_utm_from_url
        in: query
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageView'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/was_invited_to_event:
    post:
      tags:
      - Activity (create)
      summary: Create WasInvitedToEvent
      description: Create a WasInvitedToEvent activity for the given contact.
      operationId: create_was_invited_to_event
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WasInvitedToEvent'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/form_submission:
    post:
      tags:
      - Activity (create)
      summary: Create FormWasSubmitted
      description: Creates a form submission for the given contact.
      operationId: create_form_submission
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormSubmission'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/unsubscribe:
    post:
      tags:
      - Activity (create)
      summary: Create Unsubscribe
      description: Creates a unsubscription for the given contact.
      operationId: create_unsubscribe
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Unsubscribe'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/purchase:
    post:
      tags:
      - Activity (create)
      summary: Create Purchase
      description: Create a Purchase activity for the given contact.
      operationId: create_purchase
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Purchase'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/conversation_was_concluded:
    post:
      tags:
      - Activity (create)
      summary: Create ConversationWasConcluded
      description: Create an ConversationWasConcluded activity for the given contact.
      operationId: create_conversation_was_concluded
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConversationWasConcluded'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/has_not_attended_event:
    post:
      tags:
      - Activity (create)
      summary: Create HasNotAttendedEvent
      description: Create a HasNotAttendedEvent activity for the given contact.
      operationId: create_has_not_attended_event
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HasNotAttendedEvent'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/will_not_attend_event:
    post:
      tags:
      - Activity (create)
      summary: Create WillNotAttendEvent
      description: Create a WillNotAttendEvent activity for the given contact.
      operationId: create_will_not_attend_event
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WillNotAttendEvent'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/subscribe:
    post:
      tags:
      - Activity (create)
      summary: Create Subscribe
      description: Create a Subscribe activity for the given contact.
      operationId: create_subscribe
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Subscribe'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/sms_was_bounced:
    post:
      tags:
      - Activity (create)
      summary: Create SmsWasBounced
      description: Create an SmsWasBounced activity for the given contact.
      operationId: create_sms_was_bounced
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmsWasBounced'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/{id}/references:
    get:
      tags:
      - Activity (read)
      summary: Read activity references
      description: Read a contact's external references.
      operationId: read_activity_references
      responses:
        '200':
          description: The activity references.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityReferenceCollection'
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/will_attend_event:
    post:
      tags:
      - Activity (create)
      summary: Create WillAttendEvent
      description: Create a WillAttendEvent activity for the given contact.
      operationId: create_will_attend_event
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WillAttendEvent'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/has_attended_event:
    post:
      tags:
      - Activity (create)
      summary: Create HasAttendedEvent
      description: Create a HasAttendedEvent activity for the given contact.
      operationId: create_has_attended_event
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HasAttendedEvent'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activities:
    get:
      tags:
      - Activity (list)
      summary: List Activities
      operationId: list_activities
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '1'
      - name: size
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '10'
      - name: type
        in: query
        description: |-
          Filter for activities with this type.
          If not set or empty, activities of all types will be returned.
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/FilterActivityType'
      - name: since
        in: query
        description: Filter for activities since this timestamp.
        required: false
        schema:
          type: string
      - name: until
        in: query
        description: Filter for activities until this timestamp.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The activities.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityCollection'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/sms_was_sent:
    post:
      tags:
      - Activity (create)
      summary: Create SmsWasSent
      description: Create an SmsWasSent activity for the given contact.
      operationId: create_sms_was_sent
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmsWasSent'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/email_complaint:
    post:
      tags:
      - Activity (create)
      summary: Create EmailComplaint
      description: Create an EmailComplaint activity for the given contact.
      operationId: create_email_complaint
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailComplaint'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/page_view/batch:
    put:
      tags:
      - Activity (create)
      summary: Batch create PageView
      description: |-
        Submit a batch of page views to be created.
        Contacts and organisations will be created if they do not yet exist.
        OrganisationReference and OrganisationDomain are required to create an organisation.
        ContactReference / ContactPhone / ContactEmail are optional, if one of them is provided, a contact will be created.
        The request body should be in JSON Lines format, where each line is a JSON object representing
        a PageView.

        Example:
        ```json
        {"Reference": "ref1", "Url": "https://example.com", "OrganisationReference": "org1", "OrganisationDomain": "example.com"}
        {"Reference": "ref2", "Url": "https://example.com/page2", "OrganisationReference": "org2", "OrganisationDomain": "example.org"}
        ```
      operationId: batch_page_view
      requestBody:
        content:
          application/x-ndjson:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /activity/{id}:
    get:
      tags:
      - Activity (read)
      summary: Read activity
      description: Read the activity with the given `id`.
      operationId: read_activity
      responses:
        '200':
          description: The activity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/email_was_opened:
    post:
      tags:
      - Activity (create)
      summary: Create EmailWasOpened
      description: Create an EmailWasOpened activity for the given contact.
      operationId: create_email_was_opened
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailWasOpened'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /activity/email_was_bounced:
    post:
      tags:
      - Activity (create)
      summary: Create EmailWasBounced
      description: Create an EmailWasBounced activity for the given contact.
      operationId: create_email_was_bounced
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailWasBounced'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /organisation/{id}:
    get:
      tags:
      - Organisation (read)
      summary: Read organisation
      description: Read the organisation with the given `id`.
      operationId: read_organisation
      responses:
        '200':
          description: The organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Organisation (delete)
      summary: Delete organisation
      description: |-
        Delete the organisation with the given `id`.

        The organisation is not actually fully deleted, unless `force` is given.
        Instead, it deletes the `Reference` of the current configuration.

        This means you can still access the organisation with [Read](#tag/organisation-read) or [Update](#tag/organisation-update) requests, but the `Reference` will be `null`.

        Note that `DELETE`-ing an organisation from Spotler Connect does not (currently) remove it from other platforms.
        To do this, perform a [Patch](#tag/organisation-update) with `{"Status":"Removed"}`.
      operationId: delete_organisation
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the organisation entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The organisation was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Organisation (update)
      summary: Update organisation
      description: Update the organisation with the given `id`.
      operationId: update_organisation
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganisationPatches'
        required: true
      responses:
        '200':
          description: The updated organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /organisation:
    get:
      tags:
      - Organisation (read)
      summary: Read organisation by query
      description: Read the organisation by the given query.
      operationId: read_organisation_by
      parameters:
      - name: id
        in: query
        required: false
        schema:
          type: string
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: reference
        in: query
        required: false
        schema:
          type: string
      - name: domain
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    put:
      tags:
      - Organisation (create)
      summary: Create or update organisation
      description: Create an organisation. If a similar organisation already exists, updates that organisation instead.
      operationId: create_organisation
      parameters:
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganisationPatches'
        required: true
      responses:
        '200':
          description: The organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
    delete:
      tags:
      - Organisation (delete)
      summary: Delete organisation by query
      description: |-
        Delete the organisation by the given query.

        # NOTE!

        This deletes the organisation and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete organisation](#tag/organisation-delete/delete/organisation/{id}) for more information.
      operationId: delete_organisation_by
      parameters:
      - name: id
        in: query
        required: false
        schema:
          type: string
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: reference
        in: query
        required: false
        schema:
          type: string
      - name: domain
        in: query
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the organisation entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The organisation was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /organisation?id={id}:
    get:
      tags:
      - Organisation (read)
      summary: Read organisation by id
      description: |-
        Read the organisation with the given id.

        See [Read organisation by query](#tag/organisation-read/get/organisation) for sending test requests
      operationId: read_organisation_by_id
      parameters:
      - name: id
        in: query
        description: The `Id` of the organisation.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Organisation (delete)
      summary: Delete organisation by id
      description: |-
        Delete the organisation with the given id.

        See [Delete organisation by query](#tag/organisation-delete/delete/organisation) for sending test requests.

        # NOTE!

        This deletes the organisation and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete organisation](#tag/organisation-delete/delete/organisation/{id}) for more information.
      operationId: delete_organisation_by_id
      parameters:
      - name: id
        in: query
        description: The `Id` of the organisation.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the organisation entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The organisation was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Organisation (update)
      summary: Update organisation by id
      description: Update the organisation with the given id.
      operationId: update_organisation_by_id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganisationPatches'
        required: true
      responses:
        '200':
          description: The updated organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /organisation?reference={reference}:
    get:
      tags:
      - Organisation (read)
      summary: Read organisation by reference
      description: |-
        Read the organisation with the given reference.

        See [Read organisation by query](#tag/organisation-read/get/organisation) for sending test requests
      operationId: read_organisation_by_reference
      parameters:
      - name: reference
        in: query
        description: The `Reference` of the organisation.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Organisation (delete)
      summary: Delete organisation by reference
      description: |-
        Delete the organisation with the given reference.

        See [Delete organisation by query](#tag/organisation-delete/delete/organisation) for sending test requests.

        # NOTE!

        This deletes the organisation and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete organisation](#tag/organisation-delete/delete/organisation/{id}) for more information.
      operationId: delete_organisation_by_reference
      parameters:
      - name: reference
        in: query
        description: The `Reference` of the organisation.
        required: true
        schema:
          type: string
      - name: force
        in: query
        description: Delete the organisation entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The organisation was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Organisation (update)
      summary: Update organisation by reference
      description: Update the organisation with the given reference.
      operationId: update_organisation_by_reference
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganisationPatches'
        required: true
      responses:
        '200':
          description: The updated organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /organisation/{id}?async=true:
    patch:
      tags:
      - Organisation (update)
      summary: Update organisation
      description: |-
        Update the organisation with the given `id`.
        Does not wait for the organisation to be updated.
      operationId: update_organisation_async
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganisationPatches'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /organisation?domain={domain}:
    get:
      tags:
      - Organisation (read)
      summary: Read organisation by domain
      description: |-
        Read the organisation with the given domain.

        See [Read organisation by query](#tag/organisation-read/get/organisation) for sending test requests
      operationId: read_organisation_by_domain
      parameters:
      - name: domain
        in: query
        description: The `Domain` of the organisation.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Organisation (delete)
      summary: Delete organisation by domain
      description: |-
        Delete the organisation with the given domain.

        See [Delete organisation by query](#tag/organisation-delete/delete/organisation) for sending test requests.

        # NOTE!

        This deletes the organisation and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete organisation](#tag/organisation-delete/delete/organisation/{id}) for more information.
      operationId: delete_organisation_by_domain
      parameters:
      - name: domain
        in: query
        description: The `Domain` of the organisation.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the organisation entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The organisation was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Organisation (update)
      summary: Update organisation by domain
      description: Update the organisation with the given domain.
      operationId: update_organisation_by_domain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganisationPatches'
        required: true
      responses:
        '200':
          description: The updated organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /organisation?reference={reference}&config={config}:
    get:
      tags:
      - Organisation (read)
      summary: Read organisation by external reference
      description: |-
        Read the organisation with the given reference in the given config.

        See [Read organisation by query](#tag/organisation-read/get/organisation) for sending test requests
      operationId: read_organisation_by_external_reference
      parameters:
      - name: config
        in: query
        description: The configuration to find the reference for.
        required: true
        schema:
          type: string
      - name: reference
        in: query
        description: The (external) reference of the organisation.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - Organisation (delete)
      summary: Delete organisation by external reference
      description: |-
        Delete the organisation with the given reference in the given config.

        See [Delete organisation by query](#tag/organisation-delete/delete/organisation) for sending test requests.

        # NOTE!

        This deletes the organisation and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete organisation](#tag/organisation-delete/delete/organisation/{id}) for more information.
      operationId: delete_organisation_by_external_reference
      parameters:
      - name: config
        in: query
        description: The configuration to find the reference for.
        required: true
        schema:
          type: string
      - name: reference
        in: query
        description: The (external) reference of the organisation.
        required: true
        schema:
          type: string
      - name: force
        in: query
        description: Delete the organisation entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The organisation was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Organisation (update)
      summary: Update organisation by external reference
      description: Update the organisation with the given reference in the given config.
      operationId: update_organisation_by_external_reference
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganisationPatches'
        required: true
      responses:
        '200':
          description: The updated organisation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /organisation?async=true:
    put:
      tags:
      - Organisation (create)
      summary: Create or update organisation asynchronously
      description: |-
        Create an organisation. If a similar organisation already exists, updates that organisation instead.
        Does not wait for the organisation to be created or updated.
      operationId: create_organisation_async
      parameters:
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganisationPatches'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /organisation/{id}/references:
    get:
      tags:
      - Organisation (read)
      summary: Read organisation references
      description: Read an organisation's external references.
      operationId: read_organisation_references
      responses:
        '200':
          description: The organisation references.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationReferenceCollection'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /list/add_contact:
    post:
      tags:
      - List (create)
      summary: Add contact to list
      description: |-
        Adds a contact to a list.
        Does not wait for the contact to be added to the list.
      operationId: add_contact
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddRemoveListContact'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /list/batch:
    put:
      tags:
      - List (create)
      summary: Batch add contacts to lists
      description: |-
        Submit a batch of contacts to be added to a list

        Will use `ContactReference` and `ContactEmail`/`ContactPhone` to create or update a contact and add it to a list.
        Does not wait for the contacts to be created, updated, or added to the list.

        Accepts a `text/csv` or `text/tsv` body with a header row containing:

         * `Name`
         * `Reference`
         * `ContactReference`
         * `ContactEmail`/`ContactPhone`
         * Zero or more `Fields.*`
      operationId: batch_contacts
      requestBody:
        content:
          text/csv:
            schema:
              type: string
            example: |
              ListIdentifier,ContactReference,ContactEmail,Fields.event_url,Fields.products
              0fc3af62-042a-40c6-911a-94a88f74ff88|Contact List,744d4c1b,contact1@spotler.com,"https://spotler.com/mailplus","[""MailPro"",""MailPlus""]"
              0fc3af62-042a-40c6-911a-94a88f74ff88|Contact List,a5915b7c,contact2@spotler.com,"https://spotler.com/mailplus","[""MailPro""]"
              0fc3af62-042a-40c6-911a-94a88f74ff88|Contact List,09414874,contact3@spotler.com,"https://spotler.com/mailplus","[""MailPlus""]"
              0fc3af62-042a-40c6-911a-94a88f74ff88|Contact List,a3350965,contact4@spotler.com,"https://spotler.com/mailplus","[]"
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /list/remove_contact:
    post:
      tags:
      - List (delete)
      summary: Remove contact from list
      description: |-
        Removes a contact from a list.
        Does not wait for the contact to be removed from the list.
      operationId: remove_contact
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddRemoveListContact'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /automation/trigger:
    post:
      tags:
      - Automation (create)
      summary: Trigger automation
      description: Triggers an automation for a given trigger id and contact.
      operationId: trigger_automation
      parameters:
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: create_contact
        in: query
        description: |-
          Create the contact if it does not yet exist.
          Requires `ContactReference` and one of `ContactEmail`/`ContactPhone` to be present.
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerAutomation'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /automation/channels:
    get:
      tags:
      - Automation (list)
      summary: List automation channels
      description: List all automation channels, and their triggers.
      operationId: list_channels
      parameters:
      - name: refresh
        in: query
        description: The list of automation channels is cached for 5 minutes by default, to reduce load on the system. Use this parameter to force a refresh of the cache.
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: The automation channels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutomationChannelCollection'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /automation/trigger/batch:
    put:
      tags:
      - Automation (create)
      summary: Batch trigger automation
      description: |-
        Submit a batch of automations to be triggered

        Will use `ContactReference` and `ContactEmail`/`ContactPhone` to create or update a contact and trigger an automation for it.
        Does not wait for the contacts to be created, updated. or the automation to be triggered.

        Accepts a `text/csv` or `text/tsv` body with a header row containing:

         * `TriggerId`
         * (optional) `Reference` (will be generated if not present)
         * (optional) `TriggerReference` (non-unique reference for the trigger, for end-to-end tracking, `Reference` wil be used when not present)
         * `ContactReference`
         * `ContactEmail`/`ContactPhone`
         * Zero or more `Fields.*`
      operationId: batch_trigger_automation
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /openapi.json:
    get:
      tags:
      - Application (read)
      summary: OpenAPI (JSON)
      description: Returns the OpenAPI specification of this REST API as a JSON file.
      operationId: openapi_json
      parameters:
      - name: strict
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: the OpenAPI specification.
      security: []
  /application/health-check:
    get:
      tags:
      - Application (read)
      summary: Health check
      description: |-
        Check that the REST service is up. If everything is okay, you'll get a `200 OK` response.

        Otherwise, the request will fail with a `503 Service Unavailable` error.
      operationId: health
      responses:
        '200':
          description: Service is healthy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Healthy'
        '503':
          description: Service is unhealthy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security: []
  /openapi.yaml:
    get:
      tags:
      - Application (read)
      summary: OpenAPI (YAML)
      description: Returns the OpenAPI specification of this REST API as a YAML file.
      operationId: openapi_yaml
      parameters:
      - name: strict
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: the OpenAPI specification.
      security: []
  /application/error:
    get:
      tags:
      - Application (read)
      summary: Error example
      description: Return an example `500 Internal Server Error` error.
      operationId: error
      responses:
        '500':
          description: Service returned an error.
      security: []
  /transaction/{id}:
    get:
      tags:
      - Transaction (read)
      summary: Read transaction
      description: Read the transaction with the given `id`.
      operationId: read_transaction
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResource'
  /transaction/{id}/subtransactions:
    get:
      tags:
      - Transaction (list)
      summary: List Subtransactions
      operationId: list_subtransactions
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '1'
      - name: size
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '10'
      - name: status
        in: query
        description: Filter for subtransactions with this status.
        required: false
        schema:
          $ref: '#/components/schemas/TransactionStatus'
      responses:
        '200':
          description: The subtransactions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubtransactionCollection'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_list/{id}/references:
    get:
      tags:
      - ContactList (read)
      summary: Read contact list references
      description: Read a contact list's external references.
      operationId: read_contact_list_references
      responses:
        '200':
          description: The contact list references.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListReferenceCollection'
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_list/{id}/members:
    get:
      tags:
      - ContactListMember (list)
      summary: List Contact List Members
      operationId: list_contact_list_members
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '1'
      - name: size
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '10'
      - name: status
        in: query
        description: Filter for contact list members with this status.
        required: false
        schema:
          $ref: '#/components/schemas/ContactListMemberStatus'
      - name: since
        in: query
        description: Filter for contact list members since this timestamp.
        required: false
        schema:
          type: string
      - name: until
        in: query
        description: Filter for contact list members until this timestamp.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The contact list members.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListMemberCollection'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_list?reference={reference}:
    get:
      tags:
      - ContactList (read)
      summary: Read contact list by reference
      description: |-
        Read the contact list with the given reference.

        See [Read contact list by query](#tag/contact-list-read/get/contact_list) for sending test requests
      operationId: read_contact_list_by_reference
      parameters:
      - name: reference
        in: query
        description: The `Reference` of the contact list.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - ContactList (delete)
      summary: Delete contact list by reference
      description: |-
        Delete the contact list with the given reference.

        See [Delete contact list by query](#tag/contact-list-delete/delete/contact_list) for sending test requests.

        # NOTE!

        This deletes the contact list and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact list](#tag/contact-list-delete/delete/contact_list/{id}) for more information.
      operationId: delete_contact_list_by_reference
      parameters:
      - name: reference
        in: query
        description: The `Reference` of the contact list.
        required: true
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact list entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact list was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - ContactList (update)
      summary: Update contact list by reference
      description: Update the contact list with the given reference.
      operationId: update_contact_list_by_reference
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactListPatches'
        required: true
      responses:
        '200':
          description: The updated contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_list:
    get:
      tags:
      - ContactList (read)
      summary: Read contact list by query
      description: Read the contact list by the given query.
      operationId: read_contact_list_by
      parameters:
      - name: id
        in: query
        required: false
        schema:
          type: string
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: reference
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    put:
      tags:
      - ContactList (create)
      summary: Create or update contact list
      description: Create a contact list. If a similar contact list already exists, updates that contact list instead.
      operationId: create_contact_list
      parameters:
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactListPatches'
        required: true
      responses:
        '200':
          description: The contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - ContactList (delete)
      summary: Delete contact list by query
      description: |-
        Delete the contact list by the given query.

        # NOTE!

        This deletes the contact list and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact list](#tag/contact-list-delete/delete/contact_list/{id}) for more information.
      operationId: delete_contact_list_by
      parameters:
      - name: id
        in: query
        required: false
        schema:
          type: string
      - name: config
        in: query
        required: false
        schema:
          type: string
      - name: reference
        in: query
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact list entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact list was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_list/{id}?async=true:
    patch:
      tags:
      - ContactList (update)
      summary: Update contact list
      description: |-
        Update the contact list with the given `id`.
        Does not wait for the contact list to be updated.
      operationId: update_contact_list_async
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactListPatches'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_list/{id}:
    get:
      tags:
      - ContactList (read)
      summary: Read contact list
      description: Read the contact list with the given `id`.
      operationId: read_contact_list
      responses:
        '200':
          description: The contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - ContactList (delete)
      summary: Delete contact list
      description: |-
        Delete the contact list with the given `id`.

        The contact list is not actually fully deleted, unless `force` is given.
        Instead, it deletes the `Reference` of the current configuration.

        This means you can still access the contact list with [Read](#tag/contact-list-read) or [Update](#tag/contact-list-update) requests, but the `Reference` will be `null`.

        Note that `DELETE`-ing a contact list from Spotler Connect does not (currently) remove it from other platforms.
        To do this, perform a [Patch](#tag/contact-list-update) with `{"Status":"Removed"}`.
      operationId: delete_contact_list
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact list entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact list was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - ContactList (update)
      summary: Update contact list
      description: Update the contact list with the given `id`.
      operationId: update_contact_list
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactListPatches'
        required: true
      responses:
        '200':
          description: The updated contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_list?reference={reference}&config={config}:
    get:
      tags:
      - ContactList (read)
      summary: Read contact list by external reference
      description: |-
        Read the contact list with the given reference in the given config.

        See [Read contact list by query](#tag/contact-list-read/get/contact_list) for sending test requests
      operationId: read_contact_list_by_external_reference
      parameters:
      - name: config
        in: query
        description: The configuration to find the reference for.
        required: true
        schema:
          type: string
      - name: reference
        in: query
        description: The (external) reference of the contact list.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - ContactList (delete)
      summary: Delete contact list by external reference
      description: |-
        Delete the contact list with the given reference in the given config.

        See [Delete contact list by query](#tag/contact-list-delete/delete/contact_list) for sending test requests.

        # NOTE!

        This deletes the contact list and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact list](#tag/contact-list-delete/delete/contact_list/{id}) for more information.
      operationId: delete_contact_list_by_external_reference
      parameters:
      - name: config
        in: query
        description: The configuration to find the reference for.
        required: true
        schema:
          type: string
      - name: reference
        in: query
        description: The (external) reference of the contact list.
        required: true
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact list entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact list was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - ContactList (update)
      summary: Update contact list by external reference
      description: Update the contact list with the given reference in the given config.
      operationId: update_contact_list_by_external_reference
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactListPatches'
        required: true
      responses:
        '200':
          description: The updated contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_list?id={id}:
    get:
      tags:
      - ContactList (read)
      summary: Read contact list by id
      description: |-
        Read the contact list with the given id.

        See [Read contact list by query](#tag/contact-list-read/get/contact_list) for sending test requests
      operationId: read_contact_list_by_id
      parameters:
      - name: id
        in: query
        description: The `Id` of the contact list.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    delete:
      tags:
      - ContactList (delete)
      summary: Delete contact list by id
      description: |-
        Delete the contact list with the given id.

        See [Delete contact list by query](#tag/contact-list-delete/delete/contact_list) for sending test requests.

        # NOTE!

        This deletes the contact list and/or associated reference(s) from Spotler Connect, but not from other platforms.
        You probably want to perform a `PATCH` instead.

        See [Delete contact list](#tag/contact-list-delete/delete/contact_list/{id}) for more information.
      operationId: delete_contact_list_by_id
      parameters:
      - name: id
        in: query
        description: The `Id` of the contact list.
        required: true
        schema:
          type: string
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: force
        in: query
        description: Delete the contact list entirely, not just our `Reference`.
        required: false
        schema:
          type: boolean
      responses:
        '204':
          description: The contact list was deleted successfully.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - ContactList (update)
      summary: Update contact list by id
      description: Update the contact list with the given id.
      operationId: update_contact_list_by_id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactListPatches'
        required: true
      responses:
        '200':
          description: The updated contact list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_lists:
    get:
      tags:
      - ContactList (list)
      summary: List contact lists by query
      description: List the contact lists by the given query.
      operationId: list_contact_lists
      parameters:
      - name: config
        in: query
        description: |-
          Require this associated configuration to exist.
          If not set, defaults to the configuration of the project key.
          If empty or truthy (e.g. `?config`, `?config=`, `?config=1`, `?config=true`), does not require any particular config to exist.
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '1'
      - name: size
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '10'
      - name: with_count
        in: query
        description: Return the member count of each contact list. The maximum page size (`size`) is reduced to 10.
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: The contact lists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListCollection'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /contact_list?async=true:
    put:
      tags:
      - ContactList (create)
      summary: Create or update contact list asynchronously
      description: |-
        Create a contact list. If a similar contact list already exists, updates that contact list instead.
        Does not wait for the contact list to be created or updated.
      operationId: create_contact_list_async
      parameters:
      - name: async
        in: query
        description: |-
          Perform the operation asynchronously.

          If this is set, the response will be an [AsyncResource](#model/AsyncResource).
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactListPatches'
        required: true
      responses:
        '200':
          description: A background task has been successfully started.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Async'
                examples:
                - data:
                    tx: gWSg1XPuh
  /configuration/{id}:
    get:
      tags:
      - Configuration (read)
      summary: Read configuration
      description: Read the configuration with the given `id`.
      operationId: read_configuration
      responses:
        '200':
          description: The configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigurationResource'
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
    patch:
      tags:
      - Configuration (update)
      summary: Update configuration
      description: Update the configuration with the given `id`.
      operationId: update_configuration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigurationPatches'
        required: true
      responses:
        '200':
          description: The updated configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigurationResource'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
  /configuration:
    get:
      tags:
      - Configuration (list)
      summary: Read configurations
      description: Read all configuration in the current project.
      operationId: read_configurations
      responses:
        '200':
          description: The configurations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigurationCollection'
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /configuration/self:
    get:
      tags: []
      operationId: info
      responses:
        '200':
          description: The identifiers associated with this API key.
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
  /coupon/list/{config}:
    get:
      tags:
      - Coupon (list)
      summary: List coupons
      operationId: list_coupons
      parameters:
      - name: config
        in: path
        required: true
        schema:
          type: string
      - name: refresh
        in: query
        required: false
        schema:
          type: boolean
      - name: id
        in: query
        required: false
        schema:
          type: string
      - name: description
        in: query
        required: false
        schema:
          type: string
      - name: valid_from
        in: query
        required: false
        schema:
          type: string
        example: 2025-12-22T23:00:00Z
      - name: valid_to
        in: query
        required: false
        schema:
          type: string
        example: 2049-12-31T23:00:00Z
      - name: page
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '1'
      - name: size
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
        example: '10'
      - name: config
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Paginated list of coupons.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CouponCollection'
        '202':
          description: Coupon refresh started asynchronously.
        '304':
          description: Coupons have not changed since the supplied date.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '504':
          description: Timed out waiting for coupons to refresh.
    head:
      tags:
      - Coupon (list)
      summary: Coupons availability check
      operationId: head_coupons
      parameters:
      - name: config
        in: path
        required: true
        schema:
          type: string
      - name: config
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Coupons are available.
        '204':
          description: No coupons are currently available.
        '304':
          description: Coupons have not changed since the supplied date.
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /coupon/channel:
    get:
      tags:
      - Coupon (list)
      summary: List coupon channels
      description: List all coupon channels.
      operationId: list_channels
      parameters: []
      responses:
        '200':
          description: The available coupon channels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CouponChannelCollection'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
  /coupon/personal_coupon:
    post:
      tags:
      - Coupon (create)
      summary: Create a personal coupon
      description: Create a personal coupon for the given contact.
      operationId: create_personal_coupon
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePersonalCoupon'
        required: true
      responses:
        '200':
          description: The generated personal coupon code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalCoupon'
        '400':
          description: A problem was found with the request.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                example:
                  detail: Invalid request
                  errors:
                  - Field 'name' is required
                  title: 400 Bad Request
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-400-bad-request
        '401':
          description: The request was not authorized.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 401 Unauthorized
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized
        '403':
          description: The request was forbidden.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                properties:
                  type:
                    type: string
                  title:
                    type: string
                example:
                  title: 403 Forbidden
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-403-forbidden
        '404':
          description: The resources was not found.
          content:
            application/json:
              schema:
                type: object
                required:
                - type
                - title
                - detail
                - data
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  detail:
                    type: string
                  data:
                    type: array
                    items:
                      type: array
                      items: false
                      prefixItems:
                      - type: string
                      - type: string
                example:
                  data:
                  - - id
                    - 04efc9c7-2fe6-498b-8b06-edd1375ff648
                  detail: Resource not found
                  title: 404 Not Found
                  type: https://datatracker.ietf.org/doc/html/rfc9110#name-404-not-found
components:
  schemas:
    Activity:
      allOf:
      - oneOf:
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_PageViewMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - PageView
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_EmailWasSentMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - EmailWasSent
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_EmailWasOpenedMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - EmailWasOpened
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_EmailWasBouncedMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - EmailWasBounced
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_EmailLinkWasClickedMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - EmailLinkWasClicked
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_SmsWasSentMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - SmsWasSent
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_SmsWasBouncedMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - SmsWasBounced
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_WasInvitedToEventMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - WasInvitedToEvent
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_WillAttendEventMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - WillAttendEvent
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_WillNotAttendEventMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - WillNotAttendEvent
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_HasAttendedEventMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - HasAttendedEvent
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_HasNotAttendedEventMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - HasNotAttendedEvent
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_FormWasSubmittedMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - FormWasSubmitted
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_ConversationWasConcludedMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - ConversationWasConcluded
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_SubscribeMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - Subscribe
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_UnsubscribeMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - Unsubscribe
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_AutomationWasTriggeredMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - AutomationWasTriggered
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_WasAddedToListMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - WasAddedToList
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_WasRemovedFromListMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - WasRemovedFromList
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_PurchaseMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - Purchase
        - allOf:
          - $ref: '#/components/schemas/ContactActivityMeta_EmailComplaintMeta'
          - type: object
            required:
            - Type
            properties:
              Type:
                type: string
                enum:
                - EmailComplaint
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
          Reference:
            type:
            - string
            - 'null'
    ActivityCollection:
      type: object
      required:
      - data
      - pagination
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Activity'
        pagination:
          type: object
          properties:
            current_page:
              type: integer
            next_page:
              oneOf:
              - type: 'null'
              - type: integer
            page_count:
              type: integer
            page_size:
              type: integer
            prev_page:
              oneOf:
              - type: 'null'
              - type: integer
            total_count:
              type: integer
            total_pages:
              type: integer
      examples:
      - data:
        - Campaign: Feature Launch
          ContactEmail: testy.tester@mail.com
          ContactId: 9446fd24-4441-4df0-89f1-eaaf85246473
          ContactPhone: '+441483411911'
          ContactReference: '#CON1234'
          Id: 8b3f088f-3701-461c-b12e-7b1c93735906
          Kind: Mailing
          Meta: {}
          OnlineVersionUrl: null
          OrganisationDomain: buckles.io
          OrganisationId: 5c9d78d7-f7c1-414a-a7b6-4633e8865a0a
          OrganisationReference: '#ORG1234'
          Reference: 2024-07-02 13:51:42|Send|contact@spotler.com
          SourceName: '#ACT001'
          Subject: New feature has launched!
          Timestamp: 2026-05-22T21:09:59.327053689Z
          TriggerReference: 5a5fdc23-c4df-4038-aee2-e84979d48f4d
          Type: EmailWasSent
        pagination:
          current_page: 1
          next_page: 2
          page_count: 10
          page_size: 10
          prev_page: null
          total_count: 100
          total_pages: 10
    ActivityReference:
      type: object
      required:
      - ConfigId
      - Reference
      properties:
        ConfigId:
          type: string
        ConfigName:
          type:
          - string
          - 'null'
        Implementation:
          type:
          - string
          - 'null'
        Reference:
          type: string
    ActivityReferenceCollection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ActivityReference'
      examples:
      - data:
        - ConfigId: 702d1406-424e-4ef9-976b-83c296f5a8c1
          ConfigName: Spotler
          Implementation: spotler-connect
          Reference: 1a5b2adb-6c47-40b0-9919-1a5916630188
    ActivityType:
      type: string
      enum:
      - EmailWasSent
      - EmailWasOpened
      - EmailWasBounced
      - EmailLinkWasClicked
      - EmailComplaint
      - SmsWasSent
      - SmsWasBounced
      - FormSubmission
      - ConversationWasConcluded
      - Subscribe
      - Unsubscribe
      - Purchase
      - AutomationWasTriggered
      - WasInvitedToEvent
      - WillAttendEvent
      - WillNotAttendEvent
      - HasAttendedEvent
      - HasNotAttendedEvent
    AddRemoveListContact:
      type: object
      required:
      - Name
      - Reference
      properties:
        Type:
          $ref: '#/components/schemas/ContactListType'
          description: The type of the contact list
        Name:
          type: string
          description: The name of the contact list
        Reference:
          type: string
          description: The reference of the contact list
        ContactListMemberReference:
          type:
          - string
          - 'null'
          description: |-
            The reference of the contact list member.
            Repeated calls with the same reference will be ignored.
            The default is a randomly generated reference.
        ContactReference:
          type:
          - string
          - 'null'
          description: The reference of the contact to add or remove the contact list from
        ContactEmail:
          type:
          - string
          - 'null'
        ContactPhone:
          type:
          - string
          - 'null'
          description: The phone number of the contact to add or remove the contact list from
      example:
        ContactEmail: contact@spotler.com
        ContactListMemberReference: 4b76e5f6-ec75-40fe-88ed-e2b30ca0131f
        ContactPhone: '+441483411911'
        ContactReference: e4791aa5-f9c2-47bd-a6f3-e46f089a8239
        Name: Contact List
        Reference: 0fc3af62-042a-40c6-911a-94a88f74ff88
        Type: Audience
    Address:
      type: object
      properties:
        FirstName:
          type:
          - string
          - 'null'
        LastName:
          type:
          - string
          - 'null'
        Email:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Email'
        Phone:
          type:
          - string
          - 'null'
        PhoneE164:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/PhoneNumber'
        Mobile:
          type:
          - string
          - 'null'
        MobileE164:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/PhoneNumber'
        CompanyName:
          type:
          - string
          - 'null'
        Department:
          type:
          - string
          - 'null'
        ToAttentionOf:
          type:
          - string
          - 'null'
        Country:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Country'
        Region:
          type:
          - string
          - 'null'
        RegionCode:
          type:
          - string
          - 'null'
        City:
          type:
          - string
          - 'null'
        ZipCode:
          type:
          - string
          - 'null'
        Street:
          type:
          - string
          - 'null'
        Housenumber:
          type:
          - string
          - 'null'
        HousenumberExtension:
          type:
          - string
          - 'null'
      example:
        City: Alphen aan den Rijn
        CompanyName: Ministra Corp
        Country: NL
        Department: Management
        Email: adam@ministra.com
        FirstName: Adam
        Housenumber: '18'
        HousenumberExtension: S
        LastName: Ministra
        Mobile: '0612341234'
        MobileE164: '+31612341234'
        Phone: '0612341234'
        PhoneE164: '+31612341234'
        Region: Zuid-Holland
        RegionCode: ZH
        Street: Flemingweg
        ToAttentionOf: Mr. Ministra
        ZipCode: 2408 AV
    Async:
      type: object
      required:
      - tx
      properties:
        tx:
          type: string
          description: The `Id` of the transaction that will create/update the resource.
    AsyncResource:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Async'
      examples:
      - data:
          tx: gWSg1XPuh
    AutomationChannel:
      type: object
      required:
      - Channel
      - Name
      - SourceId
      - Triggers
      properties:
        Channel:
          type: string
        Name:
          type: string
        SourceId:
          type: string
        Triggers:
          type: array
          items:
            $ref: '#/components/schemas/AutomationTrigger'
      example:
        Channel: spotler-mail-plus
        Name: Spotler MailPlus
        SourceId: efc2d88c-942f-42a8-9c6d-febaafc74cbf
        Triggers:
        - Fields:
          - Key: Id
            Label: Id
            Type: string
          Label: automation
          Template: null
          TriggerId: 3d605d4f-6ac8-445f-91b7-5def6b228574
          TriggerKind: Automation
    AutomationChannelCollection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AutomationChannel'
      examples:
      - data:
        - Channel: spotler-mail-plus
          Name: Spotler MailPlus
          SourceId: efc2d88c-942f-42a8-9c6d-febaafc74cbf
          Triggers:
          - Fields:
            - Key: Id
              Label: Id
              Type: string
            Label: automation
            Template: null
            TriggerId: 3d605d4f-6ac8-445f-91b7-5def6b228574
            TriggerKind: Automation
    AutomationTrigger:
      type: object
      required:
      - TriggerId
      - TriggerKind
      - Label
      - Fields
      properties:
        TriggerId:
          type: string
        TriggerKind:
          $ref: '#/components/schemas/AutomationTriggerKind'
        Label:
          type: string
        Fields:
          type: array
          items:
            $ref: '#/components/schemas/AutomationTriggerFieldDeclaration'
        Template:
          type:
          - string
          - 'null'
      example:
        Fields:
        - Key: Id
          Label: Id
          Type: string
        Label: automation
        Template: null
        TriggerId: 3d605d4f-6ac8-445f-91b7-5def6b228574
        TriggerKind: Automation
    AutomationTriggerField:
      type: object
      required:
      - Key
      - Value
      - Type
      properties:
        Key:
          type: string
        Value:
          type: string
        Type:
          type: string
      example:
        Key: Id
        Type: string
        Value: Value
    AutomationTriggerFieldDeclaration:
      type: object
      required:
      - Key
      - Label
      - Type
      properties:
        Key:
          type: string
        Label:
          type: string
        Type:
          type: string
      example:
        Key: Id
        Label: Id
        Type: string
    AutomationWasTriggered:
      allOf:
      - $ref: '#/components/schemas/AutomationWasTriggeredMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    AutomationWasTriggeredMeta:
      type: object
      required:
      - TriggerId
      properties:
        TriggerReference:
          type:
          - string
          - 'null'
        Fields:
          type: array
          items:
            $ref: '#/components/schemas/AutomationTriggerField'
        TriggerId:
          type: string
        TriggerType:
          type:
          - string
          - 'null'
        ConfigurationId:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    BlueprintStatus:
      type: string
      enum:
      - Updating
      - Updated
      - Publishing
      - Stalled
      - Initializing
      - Published
      - Active
      - Disabled
      - Draft
    Collection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            type: object
    Configuration:
      type: object
      required:
      - Id
      - Name
      - Implementation
      - Active
      properties:
        Id:
          type: string
        Name:
          type: string
        Implementation:
          $ref: '#/components/schemas/ImplementationName'
        Active:
          type: boolean
        HealthStatus:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ConfigurationHealthStatus'
    ConfigurationCollection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Configuration'
      examples:
      - data:
        - Active: true
          HealthStatus: HEALTHY
          Id: 28718730-2ae9-4e02-a82c-77b2ba7886a9
          Implementation: SpotlerMailPlus
          Name: Mail+
    ConfigurationHealthStatus:
      type: string
      enum:
      - AUTHENTICATION_ISSUES
      - CONNECTION_ISSUES
      - HEALTHY
      - SERVICE_ISSUES
      - UNKNOWN
      - INTERNAL_ISSUES
    ConfigurationPatches:
      type: object
      properties:
        Active:
          type:
          - boolean
          - 'null'
    ConfigurationResource:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Configuration'
      examples:
      - data:
          Active: true
          HealthStatus: HEALTHY
          Id: 28718730-2ae9-4e02-a82c-77b2ba7886a9
          Implementation: SpotlerMailPlus
          Name: Mail+
    Consent:
      type: object
      required:
      - Allowed
      properties:
        Allowed:
          type: boolean
        Confirmed:
          type:
          - boolean
          - 'null'
        ConfirmedAt:
          $ref: '#/components/schemas/NaiveDateTime'
      example:
        Allowed: true
        Confirmed: true
        ConfirmedAt: 2022-08-04T12:38:42
    Contact:
      type: object
      required:
      - ProjectId
      - Status
      - Email
      - SourceNumber
      - Source
      properties:
        Id:
          type: string
          example: 9446fd24-4441-4df0-89f1-eaaf85246473
        ProjectId:
          type: string
          example: 1a83b8f1-0999-44b8-b079-256546b9afde
        Status:
          $ref: '#/components/schemas/ContactStatus'
        Email:
          $ref: '#/components/schemas/Email'
        Anonymized:
          type: boolean
          example: false
        Groups:
          type: array
          items:
            type: string
          example: []
        SourceNumber:
          type: string
          example: '#CUS1234'
        Source:
          type: string
          example: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
        FirstName:
          type:
          - string
          - 'null'
          example: Adam
        MiddleName:
          type:
          - string
          - 'null'
          example: Eva
        LastName:
          type:
          - string
          - 'null'
          example: Ministra
        Prefix:
          type:
          - string
          - 'null'
          example: Ministra
        Verified:
          type:
          - boolean
          - 'null'
          example: true
        Gender:
          $ref: '#/components/schemas/Gender'
        Birthdate:
          $ref: '#/components/schemas/NaiveDate'
        OptIn:
          type: boolean
          example: true
        OptInAt:
          $ref: '#/components/schemas/NaiveDateTime'
        OptInLevel:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/OptInLevel'
        OptOut:
          type:
          - boolean
          - 'null'
          example: null
        Address:
          $ref: '#/components/schemas/Address'
        Note:
          type:
          - string
          - 'null'
          example: null
        Tags:
          type: array
          items:
            type: string
          example: []
        Currency:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Currency'
        Language:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Language'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        Lists:
          $ref: '#/components/schemas/ContactLists'
        Preferences:
          $ref: '#/components/schemas/Preferences'
        ContactType:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ContactType'
        OrganisationId:
          type:
          - string
          - 'null'
          example: 5c9d78d7-f7c1-414a-a7b6-4633e8865a0a
        OrganisationSourceId:
          type:
          - string
          - 'null'
          example: '#ORG1234'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        UpdatedAt:
          $ref: '#/components/schemas/DateTime'
        DeletedAt:
          $ref: '#/components/schemas/DateTime'
        Reference:
          type:
          - string
          - 'null'
    ContactActivity:
      oneOf:
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_PageViewMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - PageView
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_EmailWasSentMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - EmailWasSent
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_EmailWasOpenedMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - EmailWasOpened
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_EmailWasBouncedMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - EmailWasBounced
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_EmailLinkWasClickedMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - EmailLinkWasClicked
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_SmsWasSentMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - SmsWasSent
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_SmsWasBouncedMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - SmsWasBounced
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_WasInvitedToEventMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - WasInvitedToEvent
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_WillAttendEventMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - WillAttendEvent
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_WillNotAttendEventMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - WillNotAttendEvent
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_HasAttendedEventMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - HasAttendedEvent
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_HasNotAttendedEventMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - HasNotAttendedEvent
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_FormWasSubmittedMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - FormWasSubmitted
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_ConversationWasConcludedMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - ConversationWasConcluded
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_SubscribeMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - Subscribe
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_UnsubscribeMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - Unsubscribe
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_AutomationWasTriggeredMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - AutomationWasTriggered
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_WasAddedToListMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - WasAddedToList
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_WasRemovedFromListMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - WasRemovedFromList
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_PurchaseMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - Purchase
      - allOf:
        - $ref: '#/components/schemas/ContactActivityMeta_EmailComplaintMeta'
        - type: object
          required:
          - Type
          properties:
            Type:
              type: string
              enum:
              - EmailComplaint
    ContactList:
      type: object
      required:
      - ProjectId
      - Status
      - SourceNumber
      - Source
      - Name
      - Type
      properties:
        Id:
          type: string
          example: 9446fd24-4441-4df0-89f1-eaaf85246473
        ProjectId:
          type: string
          example: 1a83b8f1-0999-44b8-b079-256546b9afde
        Status:
          $ref: '#/components/schemas/ContactListStatus'
        SourceNumber:
          type: string
          example: '329454872711'
        Source:
          type: string
          example: e78ba59f-30e8-4791-8ccb-c226c353d12f
        Name:
          type: string
          example: Subscribers
        Type:
          $ref: '#/components/schemas/ContactListType'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        Properties:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        UpdatedAt:
          $ref: '#/components/schemas/DateTime'
        DeletedAt:
          $ref: '#/components/schemas/DateTime'
      example:
        CreatedAt: 2024-05-27T10:36:23Z
        DeletedAt: null
        Id: 9446fd24-4441-4df0-89f1-eaaf85246473
        Meta: {}
        Name: Subscribers
        ProjectId: 1a83b8f1-0999-44b8-b079-256546b9afde
        Properties: {}
        Source: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
        SourceNumber: '#CUS1234'
        Status: Active
        Type: Audience
        UpdatedAt: 2024-05-27T10:36:23Z
    ContactListCollection:
      type: object
      required:
      - data
      - pagination
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ContactListWithCount'
        pagination:
          type: object
          properties:
            current_page:
              type: integer
            next_page:
              oneOf:
              - type: 'null'
              - type: integer
            page_count:
              type: integer
            page_size:
              type: integer
            prev_page:
              oneOf:
              - type: 'null'
              - type: integer
            total_count:
              type: integer
            total_pages:
              type: integer
      examples:
      - data:
        - Count: 100
          CreatedAt: 2024-05-27T10:36:23Z
          DeletedAt: null
          Id: 9446fd24-4441-4df0-89f1-eaaf85246473
          Meta: {}
          Name: Subscribers
          ProjectId: 1a83b8f1-0999-44b8-b079-256546b9afde
          Properties: {}
          Source: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
          SourceNumber: '#CUS1234'
          Status: Active
          Type: Audience
          UpdatedAt: 2024-05-27T10:36:23Z
        pagination:
          current_page: 1
          next_page: 2
          page_count: 10
          page_size: 10
          prev_page: null
          total_count: 100
          total_pages: 10
    ContactListKind:
      type: string
      enum:
      - Public
      - Private
      - Custom
      example: Public
    ContactListMember:
      type: object
      required:
      - ProjectId
      - Status
      - SourceNumber
      - Source
      - ContactListId
      - ContactId
      properties:
        Id:
          type: string
          example: 9446fd24-4441-4df0-89f1-eaaf85246473
        ProjectId:
          type: string
          example: 1a83b8f1-0999-44b8-b079-256546b9afde
        Status:
          $ref: '#/components/schemas/ContactListMemberStatus'
        SourceNumber:
          type: string
          example: '3454548736514'
        Source:
          type: string
          example: e78ba59f-30e8-4791-8ccb-c226c353d12f
        ContactListId:
          type: string
          example: d28c4d47-9271-4822-a521-42cb8d852016
        ContactId:
          type: string
          example: 01844775-8259-47e8-aca1-265595aa04c0
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        UpdatedAt:
          $ref: '#/components/schemas/DateTime'
      example:
        ContactId: 01844775-8259-47e8-aca1-265595aa04c0
        ContactListId: d28c4d47-9271-4822-a521-42cb8d852016
        CreatedAt: 2024-05-27T10:36:23Z
        Id: 9446fd24-4441-4df0-89f1-eaaf85246473
        Meta: {}
        ProjectId: 1a83b8f1-0999-44b8-b079-256546b9afde
        Source: e78ba59f-30e8-4791-8ccb-c226c353d12f
        SourceNumber: '3454548736514'
        Status: Included
        UpdatedAt: 2024-05-27T10:36:23Z
    ContactListMemberCollection:
      type: object
      required:
      - data
      - pagination
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ContactListMember'
        pagination:
          type: object
          properties:
            current_page:
              type: integer
            next_page:
              oneOf:
              - type: 'null'
              - type: integer
            page_count:
              type: integer
            page_size:
              type: integer
            prev_page:
              oneOf:
              - type: 'null'
              - type: integer
            total_count:
              type: integer
            total_pages:
              type: integer
      examples:
      - data:
        - Contact:
            Address:
              City: Alphen aan den Rijn
              CompanyName: Ministra Corp
              Country: NL
              Department: Management
              Email: adam@ministra.com
              FirstName: Adam
              Housenumber: '18'
              HousenumberExtension: S
              LastName: Ministra
              Mobile: '0612341234'
              MobileE164: '+31612341234'
              Phone: '0612341234'
              PhoneE164: '+31612341234'
              Region: Zuid-Holland
              RegionCode: ZH
              Street: Flemingweg
              ToAttentionOf: Mr. Ministra
              ZipCode: 2408 AV
            Anonymized: false
            Birthdate: 1999-02-12
            ContactType: Customer
            CreatedAt: 2024-05-27T10:36:23Z
            Currency: EUR
            DeletedAt: null
            Email: adam@ministra.com
            FirstName: Adam
            Gender: X
            Groups: []
            Id: 9446fd24-4441-4df0-89f1-eaaf85246473
            Language: nl
            LastName: Ministra
            Lists:
            - Kind: Public
              Name: Test
            Meta: {}
            MiddleName: Ministra
            Note: null
            OptIn: true
            OptInAt: 1970-01-01T00:00:00
            OptInLevel: Double
            OptOut: null
            OrganisationId: 5c9d78d7-f7c1-414a-a7b6-4633e8865a0a
            OrganisationSourceId: '#ORG1234'
            Preferences:
              Newsletter:
                Allowed: true
                Confirmed: true
                ConfirmedAt: 2022-08-04T12:38:42
            Prefix: Ministra
            ProjectId: 1a83b8f1-0999-44b8-b079-256546b9afde
            Source: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
            SourceNumber: '#CUS1234'
            Status: Active
            Tags: []
            UpdatedAt: 2024-05-27T10:36:23Z
            Verified: true
          CreatedAt: 2024-12-09T16:38:00Z
          Id: 9da80229-4f5e-4266-a58e-258fe99e8b17
          Meta: '{}'
          ProjectId: 07eddaab-83db-4728-a212-30892c64cc10
          Source: 1998e29c-76a8-40aa-8a55-c352a9042b07
          SourceNumber: d3f54dc9-c743-41f8-a88b-22b8e1c32434
          Status: Included
          UpdatedAt: 2024-12-09T16:38:00Z
        pagination:
          current_page: 1
          next_page: 2
          page_count: 10
          page_size: 10
          prev_page: null
          total_count: 100
          total_pages: 10
    ContactListMemberStatus:
      type: string
      enum:
      - Included
      - Excluded
      example: Included
    ContactListPatches:
      type:
      - object
      properties:
        Id:
          type:
          - string
          example: 9446fd24-4441-4df0-89f1-eaaf85246473
        ProjectId:
          type:
          - string
          example: 1a83b8f1-0999-44b8-b079-256546b9afde
        Status:
          oneOf:
          - $ref: '#/components/schemas/ContactListStatus'
          - type: 'null'
        SourceNumber:
          type:
          - string
          example: '329454872711'
        Source:
          type:
          - string
          example: e78ba59f-30e8-4791-8ccb-c226c353d12f
        Name:
          type:
          - string
          example: Subscribers
        Type:
          oneOf:
          - $ref: '#/components/schemas/ContactListType'
          - type: 'null'
        Meta:
          type:
          - object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        Properties:
          type:
          - object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        CreatedAt:
          oneOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        UpdatedAt:
          oneOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        DeletedAt:
          oneOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        Reference:
          type:
          - string
          - 'null'
    ContactListReference:
      type: object
      required:
      - ConfigId
      - Reference
      properties:
        ConfigId:
          type: string
        ConfigName:
          type:
          - string
          - 'null'
        Implementation:
          type:
          - string
          - 'null'
        Reference:
          type: string
    ContactListReferenceCollection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ContactListReference'
      examples:
      - data:
        - ConfigId: 702d1406-424e-4ef9-976b-83c296f5a8c1
          ConfigName: Spotler
          Implementation: spotler-connect
          Reference: 1a5b2adb-6c47-40b0-9919-1a5916630188
    ContactListResource:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ContactList'
      examples:
      - data:
          CreatedAt: 2024-05-27T10:36:23Z
          DeletedAt: null
          Id: 9446fd24-4441-4df0-89f1-eaaf85246473
          Meta: {}
          Name: Subscribers
          ProjectId: 1a83b8f1-0999-44b8-b079-256546b9afde
          Properties: {}
          Reference: 514b5b0e5a2de3bde578b235a289f910
          Source: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
          SourceNumber: '#CUS1234'
          Status: Active
          Type: Audience
          UpdatedAt: 2024-05-27T10:36:23Z
    ContactListStatus:
      type: string
      enum:
      - Active
      - Inactive
      example: Active
    ContactListType:
      type: string
      enum:
      - Audience
      - Campaign
    ContactListWithCount:
      type: object
      required:
      - ProjectId
      - Status
      - SourceNumber
      - Source
      - Name
      - Type
      properties:
        Id:
          type: string
          example: 9446fd24-4441-4df0-89f1-eaaf85246473
        ProjectId:
          type: string
          example: 1a83b8f1-0999-44b8-b079-256546b9afde
        Status:
          $ref: '#/components/schemas/ContactListStatus'
        SourceNumber:
          type: string
          example: '329454872711'
        Source:
          type: string
          example: e78ba59f-30e8-4791-8ccb-c226c353d12f
        Name:
          type: string
          example: Subscribers
        Type:
          $ref: '#/components/schemas/ContactListType'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        Properties:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        UpdatedAt:
          $ref: '#/components/schemas/DateTime'
        DeletedAt:
          $ref: '#/components/schemas/DateTime'
        Count:
          type:
          - integer
          - 'null'
          format: int64
    ContactLists:
      type: array
      items:
        $ref: '#/components/schemas/ContactListsItem'
      example:
      - Kind: Public
        Name: Test
    ContactListsItem:
      type: object
      required:
      - Name
      - Kind
      properties:
        Name:
          type: string
        Kind:
          $ref: '#/components/schemas/ContactListKind'
      example:
        Kind: Public
        Name: Test
    ContactPatches:
      type:
      - object
      properties:
        Id:
          type:
          - string
          example: 9446fd24-4441-4df0-89f1-eaaf85246473
        ProjectId:
          type:
          - string
          example: 1a83b8f1-0999-44b8-b079-256546b9afde
        Status:
          oneOf:
          - $ref: '#/components/schemas/ContactStatus'
          - type: 'null'
        Email:
          oneOf:
          - $ref: '#/components/schemas/Email'
          - type: 'null'
        Anonymized:
          type:
          - boolean
          example: false
        Groups:
          type:
          - array
          items:
            type:
            - string
          example: []
        SourceNumber:
          type:
          - string
          example: '#CUS1234'
        Source:
          type:
          - string
          example: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
        FirstName:
          type:
          - string
          - 'null'
          example: Adam
        MiddleName:
          type:
          - string
          - 'null'
          example: Eva
        LastName:
          type:
          - string
          - 'null'
          example: Ministra
        Prefix:
          type:
          - string
          - 'null'
          example: Ministra
        Verified:
          type:
          - boolean
          - 'null'
          example: true
        Gender:
          oneOf:
          - $ref: '#/components/schemas/Gender'
          - type: 'null'
        Birthdate:
          oneOf:
          - $ref: '#/components/schemas/NaiveDate'
          - type: 'null'
        OptIn:
          type:
          - boolean
          example: true
        OptInAt:
          oneOf:
          - $ref: '#/components/schemas/NaiveDateTime'
          - type: 'null'
        OptInLevel:
          oneOf:
          - type:
            - 'null'
          - $ref: '#/components/schemas/OptInLevel'
          - type: 'null'
        OptOut:
          type:
          - boolean
          - 'null'
          example: null
        Address:
          oneOf:
          - $ref: '#/components/schemas/Address'
          - type: 'null'
        Note:
          type:
          - string
          - 'null'
          example: null
        Tags:
          type:
          - array
          items:
            type:
            - string
          example: []
        Currency:
          oneOf:
          - type:
            - 'null'
          - $ref: '#/components/schemas/Currency'
          - type: 'null'
        Language:
          oneOf:
          - type:
            - 'null'
          - $ref: '#/components/schemas/Language'
          - type: 'null'
        Meta:
          type:
          - object
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        Lists:
          oneOf:
          - $ref: '#/components/schemas/ContactLists'
          - type: 'null'
        Preferences:
          oneOf:
          - $ref: '#/components/schemas/Preferences'
          - type: 'null'
        ContactType:
          oneOf:
          - type:
            - 'null'
          - $ref: '#/components/schemas/ContactType'
          - type: 'null'
        OrganisationId:
          type:
          - string
          - 'null'
          example: 5c9d78d7-f7c1-414a-a7b6-4633e8865a0a
        OrganisationSourceId:
          type:
          - string
          - 'null'
          example: '#ORG1234'
        CreatedAt:
          oneOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        UpdatedAt:
          oneOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        DeletedAt:
          oneOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        Reference:
          type:
          - string
          - 'null'
    ContactReference:
      type: object
      required:
      - ConfigId
      - Reference
      properties:
        ConfigId:
          type: string
        ConfigName:
          type:
          - string
          - 'null'
        Implementation:
          type:
          - string
          - 'null'
        Reference:
          type: string
    ContactReferenceCollection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ContactReference'
      examples:
      - data:
        - ConfigId: 702d1406-424e-4ef9-976b-83c296f5a8c1
          ConfigName: Spotler
          Implementation: spotler-connect
          Reference: 1a5b2adb-6c47-40b0-9919-1a5916630188
    ContactResource:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
      examples:
      - data:
          Address:
            City: Alphen aan den Rijn
            CompanyName: Ministra Corp
            Country: NL
            Department: Management
            Email: adam@ministra.com
            FirstName: Adam
            Housenumber: '18'
            HousenumberExtension: S
            LastName: Ministra
            Mobile: '0612341234'
            MobileE164: '+31612341234'
            Phone: '0612341234'
            PhoneE164: '+31612341234'
            Region: Zuid-Holland
            RegionCode: ZH
            Street: Flemingweg
            ToAttentionOf: Mr. Ministra
            ZipCode: 2408 AV
          Anonymized: false
          Birthdate: 1999-02-12
          ContactType: Customer
          CreatedAt: 2024-05-27T10:36:23Z
          Currency: EUR
          DeletedAt: null
          Email: adam@ministra.com
          FirstName: Adam
          Gender: X
          Groups: []
          Id: 9446fd24-4441-4df0-89f1-eaaf85246473
          Language: nl
          LastName: Ministra
          Lists:
          - Kind: Public
            Name: Test
          Meta: {}
          MiddleName: Ministra
          Note: null
          OptIn: true
          OptInAt: 1970-01-01T00:00:00
          OptInLevel: Double
          OptOut: null
          OrganisationId: 5c9d78d7-f7c1-414a-a7b6-4633e8865a0a
          OrganisationSourceId: '#ORG1234'
          Preferences:
            Newsletter:
              Allowed: true
              Confirmed: true
              ConfirmedAt: 2022-08-04T12:38:42
          Prefix: Ministra
          ProjectId: 1a83b8f1-0999-44b8-b079-256546b9afde
          Reference: 514b5b0e5a2de3bde578b235a289f910
          Source: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
          SourceNumber: '#CUS1234'
          Status: Active
          Tags: []
          UpdatedAt: 2024-05-27T10:36:23Z
          Verified: true
    ContactStatus:
      type: string
      enum:
      - Active
      - Disabled
      - Pending
      - Removed
      example: Active
    ContactType:
      type: string
      enum:
      - Analyst
      - Competitor
      - Customer
      - Dead
      - Other
      - Personal
      - Press
      - Prospect
      - Supplier
      - Suspect
      - Contact
      - Lead
      - Newsletter
      example: Customer
    ConversationMessage:
      type: object
      required:
      - From
      - MessageType
      - Fields
      properties:
        From:
          $ref: '#/components/schemas/ConversationParticipant'
        FromName:
          type:
          - string
          - 'null'
        MessageType:
          $ref: '#/components/schemas/ConversationMessageType'
        Fields:
          $ref: '#/components/schemas/ConversationMessageFields'
      example:
        Fields:
          caption: null
          message: Hello, I would like to know more about your product.
          message_id: 550e8400-e29b-41d4-a716-446655440000
        From: Contact
        FromName: Adam
        MessageType: Text
    ConversationMessageFields:
      type: object
      properties:
        message_id:
          type:
          - string
          - 'null'
        message:
          type:
          - string
          - 'null'
        caption:
          type:
          - string
          - 'null'
    ConversationMessageType:
      type: string
      enum:
      - Text
      - Video
      - Reaction
      example: Text
    ConversationParticipant:
      type: string
      enum:
      - Contact
      - Agent
      example: Contact
    ConversationWasConcluded:
      allOf:
      - $ref: '#/components/schemas/ConversationWasConcludedMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    ConversationWasConcludedMeta:
      type: object
      properties:
        Messages:
          type: array
          items:
            $ref: '#/components/schemas/ConversationMessage'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    Coupon:
      type: object
      required:
      - CouponId
      - Description
      properties:
        CouponId:
          type: string
        Description:
          type: string
        ValidFrom:
          $ref: '#/components/schemas/DateTime'
        ValidTo:
          $ref: '#/components/schemas/DateTime'
      example:
        CouponId: 6a2b22b7-54a4-47dc-b688-b4cc44f7599a|3423
        Description: 5% discount on €25 spend
        ValidFrom: 2025-12-22T23:00:00Z
        ValidTo: 2049-12-31T23:00:00Z
    CouponChannel:
      type: object
      required:
      - Channel
      - Name
      - SourceId
      properties:
        Channel:
          type: string
        Name:
          type: string
        SourceId:
          type: string
      example:
        Channel: aspos
        Name: Aspos
        SourceId: efc2d88c-942f-42a8-9c6d-febaafc74cbf
    CouponChannelCollection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CouponChannel'
      examples:
      - data:
        - Channel: aspos
          Name: Aspos
          SourceId: efc2d88c-942f-42a8-9c6d-febaafc74cbf
    CouponCollection:
      type: object
      required:
      - data
      - pagination
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Coupon'
        pagination:
          type: object
          properties:
            current_page:
              type: integer
            next_page:
              oneOf:
              - type: 'null'
              - type: integer
            page_count:
              type: integer
            page_size:
              type: integer
            prev_page:
              oneOf:
              - type: 'null'
              - type: integer
            total_count:
              type: integer
            total_pages:
              type: integer
      examples:
      - data:
        - CouponId: 6a2b22b7-54a4-47dc-b688-b4cc44f7599a|3423
          Description: 5% discount on €25 spend
          ValidFrom: 2025-12-22T23:00:00Z
          ValidTo: 2049-12-31T23:00:00Z
        pagination:
          current_page: 1
          next_page: 2
          page_count: 10
          page_size: 10
          prev_page: null
          total_count: 100
          total_pages: 10
    CreatePersonalCoupon:
      type: object
      required:
      - CouponId
      - Email
      properties:
        CouponId:
          type: string
        Email:
          type: string
    Currency:
      oneOf:
      - type: string
        enum:
        - EUR
      - type: object
        required:
        - OTHER
        properties:
          OTHER:
            type: string
      example: EUR
    DateTime:
      type: string
      format: date-time
      examples:
      - 2024-02-16 17:21:02
    Domain:
      type: string
      format: uri
    Email:
      type: string
      format: email
    EmailComplaint:
      allOf:
      - $ref: '#/components/schemas/EmailComplaintMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    EmailComplaintMeta:
      type: object
      properties:
        Campaign:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    EmailLinkWasClicked:
      allOf:
      - $ref: '#/components/schemas/EmailLinkWasClickedMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    EmailLinkWasClickedMeta:
      type: object
      properties:
        Campaign:
          type:
          - string
          - 'null'
        OnlineVersionUrl:
          type:
          - string
          - 'null'
        Subject:
          type:
          - string
          - 'null'
        Kind:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MailingKind'
        Link:
          type:
          - string
          - 'null'
        LinkName:
          type:
          - string
          - 'null'
        UtmId:
          type:
          - string
          - 'null'
        UtmSource:
          type:
          - string
          - 'null'
        UtmMedium:
          type:
          - string
          - 'null'
        UtmCampaign:
          type:
          - string
          - 'null'
        UtmTerm:
          type:
          - string
          - 'null'
        UtmContent:
          type:
          - string
          - 'null'
        TriggerReference:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    EmailWasBounced:
      allOf:
      - $ref: '#/components/schemas/EmailWasBouncedMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    EmailWasBouncedMeta:
      type: object
      required:
      - BounceType
      properties:
        Campaign:
          type:
          - string
          - 'null'
        OnlineVersionUrl:
          type:
          - string
          - 'null'
        Subject:
          type:
          - string
          - 'null'
        Kind:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MailingKind'
        BounceType:
          $ref: '#/components/schemas/BounceType'
        TriggerReference:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    EmailWasOpened:
      allOf:
      - $ref: '#/components/schemas/EmailWasOpenedMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    EmailWasOpenedMeta:
      type: object
      properties:
        Campaign:
          type:
          - string
          - 'null'
        OnlineVersionUrl:
          type:
          - string
          - 'null'
        Subject:
          type:
          - string
          - 'null'
        Kind:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MailingKind'
        TriggerReference:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    EmailWasSent:
      allOf:
      - $ref: '#/components/schemas/EmailWasSentMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    EmailWasSentMeta:
      type: object
      properties:
        Campaign:
          type:
          - string
          - 'null'
        OnlineVersionUrl:
          type:
          - string
          - 'null'
        Subject:
          type:
          - string
          - 'null'
        Kind:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MailingKind'
        TriggerReference:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    FilterActivityType:
      type: string
      enum:
      - EmailWasSent
      - EmailWasOpened
      - EmailWasBounced
      - EmailLinkWasClicked
      - EmailComplaint
      - SmsWasSent
      - SmsWasBounced
      - Unsubscribe
      - Subscribe
      - FormWasSubmitted
      - ConversationWasConcluded
      - Purchase
      - PageView
      - AutomationWasTriggered
      - WasInvitedToEvent
      - WillAttendEvent
      - WillNotAttendEvent
      - HasAttendedEvent
      - HasNotAttendedEvent
    FormField:
      type: object
      required:
      - Label
      - Value
      properties:
        Label:
          type: string
        Value:
          type: string
    FormSubmission:
      type: object
      required:
      - FormName
      - FormType
      - FormSubmittedDate
      - FormCompleted
      - FormFields
      - Reference
      properties:
        FormId:
          type:
          - string
          - 'null'
        FormName:
          type: string
        FormType:
          $ref: '#/components/schemas/FormType'
        FormResultId:
          type:
          - string
          - 'null'
        FormSubmittedDate:
          $ref: '#/components/schemas/DateTime'
        FormCompleted:
          type: boolean
        FormFields:
          type: array
          items:
            $ref: '#/components/schemas/FormField'
        Link:
          type:
          - string
          - 'null'
        LinkName:
          type:
          - string
          - 'null'
        UtmCampaign:
          type:
          - string
          - 'null'
        UtmContent:
          type:
          - string
          - 'null'
        UtmMedium:
          type:
          - string
          - 'null'
        UtmSource:
          type:
          - string
          - 'null'
        UtmTerm:
          type:
          - string
          - 'null'
        SourceName:
          type:
          - string
          - 'null'
          description: Human-readable name of the activity (defaults to `Reference`).
        Reference:
          type: string
          description: The `Reference` of the activity.
        ContactReference:
          type:
          - string
          - 'null'
          description: The `Reference` of the associated contact.
        ContactEmail:
          type:
          - string
          - 'null'
          description: The email of the associated contact.
        ContactPhone:
          type:
          - string
          - 'null'
          description: The phone number of the associated contact.
    FormWasSubmitted:
      allOf:
      - $ref: '#/components/schemas/FormWasSubmittedMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    FormWasSubmittedMeta:
      type: object
      required:
      - FormName
      - FormType
      - FormCompleted
      properties:
        FormId:
          type:
          - string
          - 'null'
        FormName:
          type: string
        FormType:
          $ref: '#/components/schemas/FormType'
        FormResultId:
          type:
          - string
          - 'null'
        FormSubmittedDate:
          type:
          - string
          - 'null'
        FormCompleted:
          type: boolean
        FormFields:
          type: array
          items:
            $ref: '#/components/schemas/FormField'
        Link:
          type:
          - string
          - 'null'
        LinkName:
          type:
          - string
          - 'null'
        UtmCampaign:
          type:
          - string
          - 'null'
        UtmContent:
          type:
          - string
          - 'null'
        UtmMedium:
          type:
          - string
          - 'null'
        UtmSource:
          type:
          - string
          - 'null'
        UtmTerm:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    Gender:
      type: string
      enum:
      - F
      - M
      - O
      - X
      example: X
    HasAttendedEvent:
      allOf:
      - $ref: '#/components/schemas/HasAttendedEventMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    HasAttendedEventMeta:
      type: object
      properties:
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    HasNotAttendedEvent:
      allOf:
      - $ref: '#/components/schemas/HasNotAttendedEventMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    HasNotAttendedEventMeta:
      type: object
      properties:
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    HealthStatus:
      type: string
      enum:
      - up
      - down
    Healthy:
      type: object
      required:
      - status
      properties:
        status:
          $ref: '#/components/schemas/HealthStatus'
      example:
        status: up
    ImplementationName:
      type: string
      enum:
      - Afas
      - Aspos
      - Bol
      - Boltrics
      - Coins
      - Copernica
      - Corax
      - Decathlon
      - DynamicsCrm
      - Fake
      - GoogleShoppingFeed
      - HubSpot
      - Jd
      - Klaviyo
      - LeadForensics
      - LeadInfo
      - Lightspeed
      - Magento
      - Maileon
      - Mailup
      - Marigold
      - Momice
      - Prestashop
      - ProspectCRM
      - Roller
      - Salesforce
      - Shopify
      - ShopifyGraphql
      - Shopware
      - SpotlerConnect
      - SpotlerActivate
      - SpotlerCrm
      - SpotlerMailPlus
      - SpotlerMailPro
      - SpotlerLeads
      - TribeCRM
      - Vtex
      - Woocommerce
    Language:
      oneOf:
      - type: string
        enum:
        - nl
      - type: string
        enum:
        - be
      - type: string
        enum:
        - de
      - type: object
        required:
        - other
        properties:
          other:
            type: string
      example: nl
    ListCollection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ListName'
      examples:
      - data:
        - Standard customer group
    ListContact:
      type: object
      required:
      - Id
      - Email
      - Address
      properties:
        Id:
          type: string
        Email:
          $ref: '#/components/schemas/Email'
        Phone:
          type:
          - string
          - 'null'
        FirstName:
          type:
          - string
          - 'null'
        MiddleName:
          type:
          - string
          - 'null'
        LastName:
          type:
          - string
          - 'null'
        Address:
          $ref: '#/components/schemas/Address'
    ListContactCollection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ListContact'
      examples:
      - data:
        - Address:
            City: Alphen aan den Rijn
            CompanyName: Ministra Corp
            Country: NL
            Department: Management
            Email: adam@ministra.com
            FirstName: Adam
            Housenumber: '18'
            HousenumberExtension: S
            LastName: Ministra
            Mobile: '0612341234'
            MobileE164: '+31612341234'
            Phone: '0612341234'
            PhoneE164: '+31612341234'
            Region: Zuid-Holland
            RegionCode: ZH
            Street: Flemingweg
            ToAttentionOf: Mr. Ministra
            ZipCode: 2408 AV
          Email: adam@ministra.com
          FirstName: Adam
          Id: 9446fd24-4441-4df0-89f1-eaaf85246473
          LastName: Ministra
          MiddleName: Ministra
          Phone: '+31612341234'
    ListName:
      type: string
    NaiveDate:
      type: string
      format: date
      examples:
      - 2002-05-28
    NaiveDateTime:
      type: string
      format: date-time
      examples:
      - 2017-06-22 08:42:33
    OptInLevel:
      type: string
      enum:
      - Single
      - Double
      example: Double
    OrderStatus:
      type: string
      enum:
      - Unknown
      - Cancelled
      - Completed
      - Failed
      - OnHold
      - PartiallyReturned
      - PartiallyRefunded
      - PartiallyShipped
      - PendingPayment
      - Processing
      - Refunded
      - Returned
    Organisation:
      type: object
      required:
      - ProjectId
      - Status
      - Email
      - Domain
      - SourceNumber
      - Source
      - Type
      - Generated
      properties:
        Id:
          type: string
          example: 9446fd24-4441-4df0-89f1-eaaf85246473
        Uid:
          type:
          - string
          - 'null'
        Name:
          type: string
          example: Ministra
        ProjectId:
          type: string
          example: 1a83b8f1-0999-44b8-b079-256546b9afde
        Status:
          $ref: '#/components/schemas/OrganisationStatus'
        Email:
          $ref: '#/components/schemas/Email'
        Domain:
          $ref: '#/components/schemas/Domain'
        Anonymized:
          type: boolean
          example: false
        SourceNumber:
          type: string
          example: '#CUS1234'
        Source:
          type: string
          example: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
        Type:
          $ref: '#/components/schemas/OrganisationType'
        Generated:
          type: boolean
          example: false
        Address:
          $ref: '#/components/schemas/Address'
        Description:
          type:
          - string
          - 'null'
          example: null
        Note:
          type:
          - string
          - 'null'
          example: null
        Meta:
          type:
          - object
          - 'null'
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        UpdatedAt:
          $ref: '#/components/schemas/DateTime'
        DeletedAt:
          $ref: '#/components/schemas/DateTime'
        Reference:
          type:
          - string
          - 'null'
    OrganisationPatches:
      type:
      - object
      properties:
        Id:
          type:
          - string
          example: 9446fd24-4441-4df0-89f1-eaaf85246473
        Uid:
          type:
          - string
          - 'null'
        Name:
          type:
          - string
          example: Ministra
        ProjectId:
          type:
          - string
          example: 1a83b8f1-0999-44b8-b079-256546b9afde
        Status:
          oneOf:
          - $ref: '#/components/schemas/OrganisationStatus'
          - type: 'null'
        Email:
          oneOf:
          - $ref: '#/components/schemas/Email'
          - type: 'null'
        Domain:
          oneOf:
          - $ref: '#/components/schemas/Domain'
          - type: 'null'
        Anonymized:
          type:
          - boolean
          example: false
        SourceNumber:
          type:
          - string
          example: '#CUS1234'
        Source:
          type:
          - string
          example: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
        Type:
          oneOf:
          - $ref: '#/components/schemas/OrganisationType'
          - type: 'null'
        Generated:
          type:
          - boolean
          example: false
        Address:
          oneOf:
          - $ref: '#/components/schemas/Address'
          - type: 'null'
        Description:
          type:
          - string
          - 'null'
          example: null
        Note:
          type:
          - string
          - 'null'
          example: null
        Meta:
          type:
          - object
          - 'null'
          additionalProperties: {}
          propertyNames:
            type: string
          example: {}
        CreatedAt:
          oneOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        UpdatedAt:
          oneOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        DeletedAt:
          oneOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        Reference:
          type:
          - string
          - 'null'
    OrganisationReference:
      type: object
      required:
      - ConfigId
      - Reference
      properties:
        ConfigId:
          type: string
        ConfigName:
          type:
          - string
          - 'null'
        Implementation:
          type:
          - string
          - 'null'
        Reference:
          type: string
    OrganisationReferenceCollection:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/OrganisationReference'
      examples:
      - data:
        - ConfigId: 702d1406-424e-4ef9-976b-83c296f5a8c1
          ConfigName: Spotler
          Implementation: spotler-connect
          Reference: 1a5b2adb-6c47-40b0-9919-1a5916630188
    OrganisationResource:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Organisation'
      examples:
      - data:
          Address:
            City: Alphen aan den Rijn
            CompanyName: Ministra Corp
            Country: NL
            Department: Management
            Email: adam@ministra.com
            FirstName: Adam
            Housenumber: '18'
            HousenumberExtension: S
            LastName: Ministra
            Mobile: '0612341234'
            MobileE164: '+31612341234'
            Phone: '0612341234'
            PhoneE164: '+31612341234'
            Region: Zuid-Holland
            RegionCode: ZH
            Street: Flemingweg
            ToAttentionOf: Mr. Ministra
            ZipCode: 2408 AV
          Anonymized: false
          CreatedAt: 2024-05-27T10:36:23Z
          DeletedAt: null
          Description: null
          Domain: example.com
          Email: adam@ministra.com
          Generated: false
          Id: 9446fd24-4441-4df0-89f1-eaaf85246473
          Meta: {}
          Name: Ministra
          Note: null
          ProjectId: 1a83b8f1-0999-44b8-b079-256546b9afde
          Reference: 514b5b0e5a2de3bde578b235a289f910
          Source: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
          SourceNumber: '#CUS1234'
          Status: Active
          Type: One
          Uid: '#ORG1234:00a6bfb6-f20c-44d1-ace0-98ee5dfea02f:1a83b8f1-0999-44b8-b079-256546b9afde'
          UpdatedAt: 2024-05-27T10:36:23Z
    OrganisationStatus:
      type: string
      enum:
      - Active
      - Inactive
    OrganisationType:
      type: string
      enum:
      - One
      - Two
      example: One
    PageView:
      allOf:
      - $ref: '#/components/schemas/PageViewMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    PageViewMeta:
      type: object
      properties:
        Referrer:
          type:
          - string
          - 'null'
        Browser:
          type:
          - string
          - 'null'
        Link:
          type:
          - string
          - 'null'
        LinkName:
          type:
          - string
          - 'null'
        Score:
          type:
          - integer
          - 'null'
          format: int32
        UtmCampaign:
          type:
          - string
          - 'null'
        UtmContent:
          type:
          - string
          - 'null'
        UtmMedium:
          type:
          - string
          - 'null'
        UtmSource:
          type:
          - string
          - 'null'
        UtmTerm:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    PersonalCoupon:
      type: object
      required:
      - Code
      properties:
        Code:
          type: string
      example:
        Code: ABC123DEF
    PersonalCouponWasCreated:
      type: object
      required:
      - CouponId
      - CouponCode
      - Reference
      properties:
        CouponId:
          type: string
        CouponCode:
          type: string
        ContactId:
          type:
          - string
          - 'null'
        ContactEmail:
          type:
          - string
          - 'null'
          description: The email of the associated contact.
        SourceName:
          type:
          - string
          - 'null'
          description: Human-readable name of the activity (defaults to `Reference`).
        Reference:
          type: string
          description: The `Reference` of the activity.
        ContactReference:
          type:
          - string
          - 'null'
          description: The `Reference` of the associated contact.
        ContactPhone:
          type:
          - string
          - 'null'
          description: The phone number of the associated contact.
    Preference:
      type: object
      required:
      - Name
      - Consent
      properties:
        Name:
          type: string
        Consent:
          $ref: '#/components/schemas/Consent'
      example:
        Consent:
          Allowed: true
          Confirmed: true
          ConfirmedAt: 2022-08-04T12:38:42
        Name: Newsletter
    Preferences:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/Consent'
      propertyNames:
        type: string
      example:
        Newsletter:
          Allowed: true
          Confirmed: true
          ConfirmedAt: 2022-08-04T12:38:42
    Price:
      type: object
      required:
      - Amount
      - Currency
      properties:
        Amount:
          type: number
          format: double
        Currency:
          $ref: '#/components/schemas/Currency'
      example:
        Amount: 0.0
        Currency: EUR
    ProductStatus:
      type: string
      enum:
      - Unknown
      - Draft
      - Active
      - Removed
    Purchase:
      allOf:
      - $ref: '#/components/schemas/PurchaseMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    PurchaseItem:
      type: object
      required:
      - Qty
      - Price
      properties:
        Sku:
          type:
          - string
          - 'null'
        Qty:
          type: integer
          format: int64
          minimum: 0
        Name:
          type:
          - string
          - 'null'
        Price:
          type: number
          format: double
    PurchaseMeta:
      type: object
      required:
      - PurchaseProperties
      properties:
        PurchaseProperties:
          $ref: '#/components/schemas/PurchaseProperties'
        Link:
          type:
          - string
          - 'null'
        LinkName:
          type:
          - string
          - 'null'
        UserAgent:
          type:
          - string
          - 'null'
        UtmCampaign:
          type:
          - string
          - 'null'
        UtmContent:
          type:
          - string
          - 'null'
        UtmMedium:
          type:
          - string
          - 'null'
        UtmSource:
          type:
          - string
          - 'null'
        UtmTerm:
          type:
          - string
          - 'null'
        Browser:
          type:
          - string
          - 'null'
        Device:
          type:
          - string
          - 'null'
        Referrer:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    PurchaseProperties:
      type: object
      required:
      - TotalValue
      - Currency
      - Items
      properties:
        TotalValue:
          type: number
          format: double
        Currency:
          type: string
        Items:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseItem'
    Resource:
      type: object
      required:
      - data
      properties:
        data:
          type: object
    SmsWasBounced:
      allOf:
      - $ref: '#/components/schemas/SmsWasBouncedMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    SmsWasBouncedMeta:
      type: object
      properties:
        Campaign:
          type:
          - string
          - 'null'
        TriggerReference:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    SmsWasSent:
      allOf:
      - $ref: '#/components/schemas/SmsWasSentMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    SmsWasSentMeta:
      type: object
      properties:
        Campaign:
          type:
          - string
          - 'null'
        TriggerReference:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    StockStatus:
      type: string
      enum:
      - InStock
      - OutOfStock
    Subscribe:
      allOf:
      - $ref: '#/components/schemas/SubscribeMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    SubscribeMeta:
      type: object
      properties:
        Channel:
          type:
          - string
          - 'null'
        Preference:
          type:
          - string
          - 'null'
        Campaign:
          type:
          - string
          - 'null'
        TriggerReference:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    Subtransaction:
      type: object
      required:
      - Id
      properties:
        Id:
          type: string
    SubtransactionCollection:
      type: object
      required:
      - data
      - pagination
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Subtransaction'
        pagination:
          type: object
          properties:
            current_page:
              type: integer
            next_page:
              oneOf:
              - type: 'null'
              - type: integer
            page_count:
              type: integer
            page_size:
              type: integer
            prev_page:
              oneOf:
              - type: 'null'
              - type: integer
            total_count:
              type: integer
            total_pages:
              type: integer
      examples:
      - data:
        - Id: gWSg1XPuh
        pagination:
          current_page: 1
          next_page: 2
          page_count: 10
          page_size: 10
          prev_page: null
          total_count: 100
          total_pages: 10
    Transaction:
      type: object
      required:
      - Id
      - Status
      - RunningSubtransactions
      properties:
        Id:
          type: string
        Status:
          $ref: '#/components/schemas/TransactionStatus'
        RunningSubtransactions:
          type: integer
          format: int64
          minimum: 0
    TransactionDetails:
      type: object
      required:
      - NotificationId
      - ConfigId
      - ConfigName
      - StreamId
      - StreamName
      - ProjectId
      - ProjectName
      - AccountId
      - AccountName
      properties:
        Reason:
          type:
          - string
          - 'null'
        Explanation:
          type:
          - string
          - 'null'
        NotificationId:
          type: string
        TriggerHandle:
          type:
          - string
          - 'null'
        ConfigId:
          type: string
        ConfigName:
          type: string
        StreamId:
          type: string
        StreamName:
          type: string
        ProjectId:
          type: string
        ProjectName:
          type: string
        AccountId:
          type: string
        AccountName:
          type: string
    TransactionResource:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/TransactionWithDetails'
      examples:
      - data:
          Details:
            AccountId: 9FYTJwTc
            AccountName: Test Shop 1
            ConfigId: 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f
            ConfigName: Test Connection 1
            Explanation: We cannot find a product with this ID
            NotificationId: bb471f6b-c785-42ac-8c9a-7b21e1fc3e77
            ProjectId: 1a83b8f1-0999-44b8-b079-256546b9afde
            ProjectName: Test Project 1
            Reason: 'E00020: Product ''13268459761'' from 00a6bfb6-f20c-44d1-ace0-98ee5dfea02f (Test Connection 1) not found in Spotler Connect'
            StreamId: ''
            StreamName: ''
            TriggerHandle: ProductsIn
          Id: gWSg1XPuh
          RunningSubtransactions: 0
          Status: Completed
    TransactionStatus:
      type: string
      enum:
      - Running
      - Completing
      - Failing
      - Skipping
      - Completed
      - Failed
      - Skipped
    TransactionWithDetails:
      allOf:
      - $ref: '#/components/schemas/Transaction'
      - type: object
        properties:
          Details:
            oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/TransactionDetails'
    TriggerAutomation:
      type: object
      required:
      - TriggerId
      - Reference
      properties:
        TriggerId:
          type: string
        SourceName:
          type:
          - string
          - 'null'
        Reference:
          type: string
        TriggerReference:
          type:
          - string
          - 'null'
        ContactReference:
          type:
          - string
          - 'null'
        ContactEmail:
          type:
          - string
          - 'null'
        ContactPhone:
          type:
          - string
          - 'null'
        Fields:
          type: array
          items:
            $ref: '#/components/schemas/TriggerAutomationField'
        Attributes:
          type: array
          items:
            $ref: '#/components/schemas/TriggerAutomationAttribute'
      example:
        Attributes:
        - Key: contact_id
          Value: 324
        ContactEmail: contact@spotler.com
        ContactPhone: '+441483411911'
        ContactReference: a3350965-0941-4874-a591-5b7c744d4c1b
        Fields:
        - Key: event_url
          Type: string
          Value: https://spotler.com/mailplus
        - Key: products
          Type: json
          Value:
          - MailPro
          - MailPlus
        Reference: 2024-07-02 13:51:42|TriggerAutomation|contact@spotler.com
        SourceName: 64f52a4b-2963-4fb1-a8b3-c1662ecb3d32
        TriggerId: b436e716-e288-412b-9d81-fd3ff58a08b1|6f13e418-9db4-40af-8fa1-b7ab272a262e|automation
        TriggerReference: your-trace-id
    TriggerAutomationAttribute:
      type: object
      required:
      - Key
      - Value
      properties:
        Key:
          type: string
        Value: {}
    TriggerAutomationField:
      type: object
      required:
      - Type
      - Key
      - Value
      properties:
        Type:
          $ref: '#/components/schemas/TriggerAutomationFieldType'
        Key:
          type: string
        Value: {}
    TriggerAutomationFieldType:
      type: string
      enum:
      - string
      - json
    Unhealthy:
      type: object
      required:
      - status
      properties:
        status:
          $ref: '#/components/schemas/HealthStatus'
      example:
        status: down
    Unsubscribe:
      allOf:
      - $ref: '#/components/schemas/UnsubscribeMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    UnsubscribeMeta:
      type: object
      properties:
        Channel:
          type:
          - string
          - 'null'
        Preference:
          type:
          - string
          - 'null'
        Campaign:
          type:
          - string
          - 'null'
        TriggerReference:
          type:
          - string
          - 'null'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    WasAddedToList:
      allOf:
      - $ref: '#/components/schemas/WasAddedToListMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    WasAddedToListMeta:
      type: object
      required:
      - ListId
      - ListReference
      - ListName
      - ListType
      properties:
        ListId:
          type: string
        ListReference:
          type: string
        ListName:
          type: string
        ListType:
          $ref: '#/components/schemas/ContactListType'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    WasInvitedToEvent:
      allOf:
      - $ref: '#/components/schemas/WasInvitedToEventMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    WasInvitedToEventMeta:
      type: object
      properties:
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    WasRemovedFromList:
      allOf:
      - $ref: '#/components/schemas/WasRemovedFromListMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    WasRemovedFromListMeta:
      type: object
      required:
      - ListId
      - ListReference
      - ListName
      - ListType
      properties:
        ListId:
          type: string
        ListReference:
          type: string
        ListName:
          type: string
        ListType:
          $ref: '#/components/schemas/ContactListType'
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    WillAttendEvent:
      allOf:
      - $ref: '#/components/schemas/WillAttendEventMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    WillAttendEventMeta:
      type: object
      properties:
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
    WillNotAttendEvent:
      allOf:
      - $ref: '#/components/schemas/WillNotAttendEventMeta'
      - type: object
        required:
        - Id
        properties:
          Id:
            type: string
            description: The ID of the activity.
          SourceName:
            type:
            - string
            - 'null'
            description: Human-readable name of the activity (defaults to `Reference`).
          ContactReference:
            type:
            - string
            - 'null'
            description: The `Reference` of the associated contact.
          ContactId:
            type:
            - string
            - 'null'
          ContactEmail:
            type:
            - string
            - 'null'
            description: The email of the associated contact.
          ContactPhone:
            type:
            - string
            - 'null'
            description: The phone number of the associated contact.
          OrganisationReference:
            type:
            - string
            - 'null'
          OrganisationId:
            type:
            - string
            - 'null'
          OrganisationDomain:
            type:
            - string
            - 'null'
          Timestamp:
            $ref: '#/components/schemas/DateTime'
    WillNotAttendEventMeta:
      type: object
      properties:
        Meta:
          type: object
          additionalProperties: {}
          propertyNames:
            type: string
  securitySchemes:
    default:
      type: apiKey
      in: header
      name: X-API-KEY
      description: |-
        Your API key can be retrieved from the advanced configuration section of the Spotler Connect connector screen (Project key).

        This connector will need to be created if it doesn't already exist.
security:
- default: []
x-tagGroups:
- name: Contact
  tags:
  - Contact (read)
  - Contact (create)
  - Contact (delete)
  - Contact (update)
- name: Activity
  tags:
  - Activity (list)
  - Activity (read)
  - Activity (create)
- name: Organisation
  tags:
  - Organisation (update)
  - Organisation (create)
  - Organisation (read)
  - Organisation (delete)
- name: Transaction
  tags:
  - Transaction (read)
  - Transaction (list)
- name: ContactList
  tags:
  - ContactList (update)
  - ContactList (create)
  - ContactList (list)
  - ContactList (read)
  - ContactList (delete)
- name: Configuration
  tags:
  - Configuration (read)
  - Configuration (list)
  - Configuration (update)
- name: List
  tags:
  - List (delete)
  - List (create)
- name: Application
  tags:
  - Application (read)
- name: ContactListMember
  tags:
  - ContactListMember (list)
- name: Coupon
  tags:
  - Coupon (create)
  - Coupon (list)
- name: Automation
  tags:
  - Automation (create)
  - Automation (list)
