openapi: 3.0.0
paths:
  /entrance/v1.0/organisations/{organisationUuid}/tickets:
    post:
      operationId: TicketsController_create_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTicketDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a ticket
      tags:
        - Tickets
    get:
      operationId: TicketsController_findAll_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: uuids
          required: false
          in: query
          description: Comma separated values for ticket uuid
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: externalIds
          required: false
          in: query
          description: Comma separated values for ticket externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: venueSections
          required: false
          in: query
          description: Comma separated values for venueSection externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: constraints
          required: false
          in: query
          description: Comma separated values for constraint externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: imports
          required: false
          in: query
          description: Comma separated values for importId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket saleOrigin
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: scannedAtStart
          required: true
          in: query
          description: scannedAt start date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T12:00:00.000Z'
            type: string
        - name: scannedAtEnd
          required: true
          in: query
          description: scannedAt end date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T23:00:00.000Z'
            type: string
        - name: status
          required: false
          in: query
          description: Filter tickets by their derived scan status
          schema:
            type: string
            enum:
              - CHECKED_IN
              - REMAINING
              - ERRORS
        - name: ticketStatus
          required: false
          in: query
          description: Filter tickets by their stored validity status (VALID / INVALID)
          schema:
            type: string
            enum:
              - VALID
              - INVALID
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Ticket'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List tickets with pagination
      tags:
        - Tickets
  /entrance/v1.0/organisations/{organisationUuid}/tickets/{ticketUuid}:
    get:
      operationId: TicketsController_findOne_v1.0
      parameters:
        - name: ticketUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get a ticket by UUID
      tags:
        - Tickets
    patch:
      operationId: TicketsController_patch_v1.0
      parameters:
        - name: ticketUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTicketDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a ticket
      tags:
        - Tickets
    delete:
      operationId: TicketsController_remove_v1.0
      parameters:
        - name: ticketUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a ticket
      tags:
        - Tickets
  /entrance/v1.0/organisations/{organisationUuid}/tickets/orders/{orderId}:
    get:
      operationId: TicketsController_findOrder_v1.0
      parameters:
        - name: orderId
          required: true
          in: path
          schema:
            type: string
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Ticket'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List tickets by order ID
      tags:
        - Tickets
  /entrance/v1.0/login:
    post:
      operationId: AuthController_login_v1.0
      parameters:
        - name: X-ENMA-APP-NAME
          required: true
          in: header
          schema:
            type: string
        - name: X-ENMA-DEVICE-ID
          required: true
          in: header
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginDto'
      responses:
        '200':
          description: >-
            Login to user account, provide optional organisationUuid or
            entrancePlanUuid to login directly to this entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Login to user account
      tags:
        - Authentication
  /entrance/v1.0/login/verify-username:
    post:
      operationId: AuthController_verifyUsername_v1.0
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUsernameDto'
      responses:
        '200':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Verify username for login
      tags:
        - Authentication
  /entrance/v1.0/switch-organisation-or-plan:
    post:
      operationId: AuthController_switchOrganisationOrEntrancePlan_v1.0
      parameters:
        - name: X-ENMA-APP-NAME
          required: true
          in: header
          schema:
            type: string
        - name: X-ENMA-DEVICE-ID
          required: true
          in: header
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginOrganisationEntrancePlanDto'
      responses:
        '200':
          description: Sign in to organisation or entrance plan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Switch organisation or entrance plan
      tags:
        - Authentication
  /entrance/v1.0/refresh:
    post:
      operationId: AuthController_refreshTokens_v1.0
      parameters:
        - name: X-ENMA-APP-NAME
          required: true
          in: header
          schema:
            type: string
        - name: X-ENMA-DEVICE-ID
          required: true
          in: header
          schema:
            type: string
      responses:
        '200':
          description: >-
            Update refresh token, to prolong session after auth cookie expires.
            Token is valid for a week.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Refresh authentication tokens
      tags:
        - Authentication
  /entrance/v1.0/logout:
    post:
      operationId: AuthController_logout_v1.0
      parameters:
        - name: X-ENMA-APP-NAME
          required: true
          in: header
          schema:
            type: string
        - name: X-ENMA-DEVICE-ID
          required: true
          in: header
          schema:
            type: string
      responses:
        '204':
          description: Logs out the current user
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Logout current user
      tags:
        - Authentication
  /entrance/v1.0/users:
    post:
      operationId: UsersController_createUser_v1.0
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a user
      tags:
        - Users
  /entrance/v1.0/users/{userUuid}:
    patch:
      operationId: UsersController_patchUser_v1.0
      parameters:
        - name: userUuid
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a user
      tags:
        - Users
    delete:
      operationId: UsersController_remove_v1.0
      parameters:
        - name: organisationId
          required: true
          in: query
          description: Uuid of the organisation the claims apply to
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: entrancePlanId
          required: true
          in: query
          description: Uuid of the entrance plan the claims apply to
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: userUuid
          required: true
          in: path
          schema:
            type: string
      responses:
        '204':
          description: >-
            If user has claims on different organisations only removes claims on
            organisation. If last organisation deletes user.
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a user
      tags:
        - Users
  /entrance/v1.0/users/{userUuid}/claims:
    patch:
      operationId: UsersController_patchUserClaims_v1.0
      parameters:
        - name: userUuid
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClaimsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update user claims
      tags:
        - Users
  /entrance/v1.0/users/me:
    get:
      operationId: UsersController_getUser_v1.0
      parameters: []
      responses:
        '200':
          description: Returns authenticated user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get the authenticated user
      tags:
        - Users
  /entrance/v1.0/invitations/{invitationId}:
    get:
      operationId: InvitationsController_getInvitation_v1.0
      parameters:
        - name: invitationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationsService'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Get invitation details
      tags:
        - Invitations
    post:
      operationId: InvitationsController_acceptInvitation_v1.0
      parameters:
        - name: invitationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserDto'
      responses:
        '201':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Accept an invitation
      tags:
        - Invitations
  /entrance/v1.0/invitations/{invitationId}/revoke:
    post:
      operationId: InvitationsController_revokeInvitation_v1.0
      parameters:
        - name: invitationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Revoke an invitation
      tags:
        - Invitations
  /entrance/v1.0/invitations/{invitationId}/resend:
    post:
      operationId: InvitationsController_resendInvitation_v1.0
      parameters:
        - name: invitationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Resend an invitation
      tags:
        - Invitations
  /entrance/v1.0/organisations:
    post:
      operationId: OrganisationsController_create_v1.0
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrganisationDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organisation'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a new organisation
      tags:
        - Organisations
    get:
      operationId: OrganisationsController_findAllByUser_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: cmAccountGuids
          required: false
          in: query
          description: Comma separated values for CM Account Id
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Organisation'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List organisations for current user
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}:
    get:
      operationId: OrganisationsController_findOne_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationWithConfigDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get organisation details
      tags:
        - Organisations
    patch:
      operationId: OrganisationsController_patch_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateOrganisationDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organisation'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update an organisation
      tags:
        - Organisations
    delete:
      operationId: OrganisationsController_remove_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema:
            type: string
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete an organisation
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}/features:
    get:
      operationId: OrganisationsController_findFeatures_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FeatureStateDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List all features and their enabled state for an organisation
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}/features/{key}:
    patch:
      operationId: OrganisationsController_patchFeature_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema:
            type: string
        - name: key
          required: true
          in: path
          schema:
            enum:
              - INTERSOLVE
              - PUBLIQ
              - GLOBAL_TICKET
              - CHECK_IN_ENTIRE_ORDER
              - TIMESLOTS
              - ANALYTICS_REPORT
              - OFFLINE_SYNC_TODAYS_TIMESLOTS
              - VENUE_LINKING
              - TICKET_IMPORT
              - GO_CITY
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFeatureDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeatureStateDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Enable or disable a feature for an organisation
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}/settings:
    get:
      operationId: OrganisationsController_findSettings_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SettingStateDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List all settings and their enabled state for an organisation
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}/settings/{key}:
    patch:
      operationId: OrganisationsController_patchSetting_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema:
            type: string
        - name: key
          required: true
          in: path
          schema:
            enum:
              - SWA_ANALYTICS_PRESET
              - CREATE_DEFAULT_ENTRANCE_PLAN
              - TIMEZONE
              - ALWAYS_DISPLAY_ALL_PRODUCTS_IN_ANALYTICS
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSettingDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingStateDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Enable or disable a setting for an organisation
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}/users:
    get:
      operationId: OrganisationsController_findOrganisationUsers_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: includePlanUsers
          required: false
          in: query
          description: Include users with claims on entrance plans (only) in the resultset
          schema:
            type: boolean
        - name: claims
          required: false
          in: query
          description: Comma separated values for claims
          schema:
            example:
              - OBSERVER
              - EDITOR
            type: array
            items:
              type: string
              enum:
                - OBSERVER
                - EDITOR
                - OWNER
                - ADMIN
                - SCAN_USER
                - SCAN_CHECKIN
                - SCAN_CHECKOUT
                - SCAN_CLICKER_CHECKIN
                - SCAN_CLICKER_CHECKOUT
                - SCAN_SEARCH
                - SCAN_VALIDATE
                - SCAN_ANALYTICS
        - name: invitationStatus
          required: false
          in: query
          description: Comma separated values for invitation status
          schema:
            example:
              - INVITED
            type: array
            items:
              type: string
              enum:
                - ACCEPTED
                - INVITED
                - REVOKED
                - EXPIRED
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List organisation users
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}/invited-users:
    get:
      operationId: OrganisationsController_findOrganisationInvitedUsers_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: includePlanUsers
          required: false
          in: query
          description: Include users with claims on entrance plans (only) in the resultset
          schema:
            type: boolean
        - name: claims
          required: false
          in: query
          description: Comma separated values for claims
          schema:
            example:
              - OBSERVER
              - EDITOR
            type: array
            items:
              type: string
              enum:
                - OBSERVER
                - EDITOR
                - OWNER
                - ADMIN
                - SCAN_USER
                - SCAN_CHECKIN
                - SCAN_CHECKOUT
                - SCAN_CLICKER_CHECKIN
                - SCAN_CLICKER_CHECKOUT
                - SCAN_SEARCH
                - SCAN_VALIDATE
                - SCAN_ANALYTICS
        - name: invitationStatus
          required: false
          in: query
          description: Comma separated values for invitation status
          schema:
            example:
              - INVITED
            type: array
            items:
              type: string
              enum:
                - ACCEPTED
                - INVITED
                - REVOKED
                - EXPIRED
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List invited organisation users
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}/configuration:
    post:
      operationId: OrganisationsController_createConfiguration_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrganisationConfigurationDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationConfigurationResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create organisation configuration
      tags:
        - Organisations
    patch:
      operationId: OrganisationsController_patchConfiguration_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrganisationConfigurationDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganisationConfigurationResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update organisation configuration
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}/configuration/{upstreamPlatform}:
    delete:
      operationId: OrganisationsController_removeConfiguration_v1.0
      parameters:
        - name: upstreamPlatform
          required: true
          in: path
          schema: {}
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete organisation configuration
      tags:
        - Organisations
  /entrance/v1.0/organisations/{organisationUuid}/go-city/terminal-profile:
    get:
      description: >-
        Uses the stored Go City credentials. With refresh=true the cache is
        bypassed, which tests the connection.
      operationId: OrganisationsController_getGoCityTerminalProfile_v1.0
      parameters:
        - name: refresh
          required: true
          in: query
          schema:
            type: boolean
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoCityTerminalProfileDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get the Go City terminal and its offers
      tags:
        - Organisations
  /entrance/v1.0/onboarding:
    post:
      operationId: OnboardingController_onboard_v1.0
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organisation'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Onboard a new organisation
      tags:
        - Onboarding
  /entrance/v1.0/onboarding/{organisationUuid}:
    patch:
      operationId: OnboardingController_onboardExistingOrganisation_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organisation'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Onboard an existing organisation
      tags:
        - Onboarding
  /entrance/v1.0/organisations/{organisationUuid}/plans:
    post:
      operationId: EntrancePlansController_create_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEntrancePlanDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create an entrance plan
      tags:
        - Entrance Plans
    get:
      operationId: EntrancePlansController_findAll_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: venues
          required: false
          in: query
          description: Comma separated values for venue ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: status
          required: false
          in: query
          description: Comma separated values for status filter
          schema:
            example:
              - ACTIVE
              - NO_RULES
            type: array
            items:
              type: string
              enum:
                - ACTIVE
                - INACTIVE
                - NO_RULES
        - name: onlyParents
          required: false
          in: query
          description: >-
            If true will only return top level parent plans without
            configuration. Default is false.
          schema:
            example: false
            type: boolean
        - name: period
          required: false
          in: query
          description: >-
            Filter entrance plans by event date period. FUTURE shows plans with
            upcoming events or no events, PAST shows plans with only past
            events.
          schema:
            example: FUTURE
            type: string
            enum:
              - PAST
              - FUTURE
              - ALL
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List all entrance plans
      tags:
        - Entrance Plans
  /entrance/v1.0/organisations/{organisationUuid}/plans/duplicate:
    post:
      operationId: EntrancePlansController_duplicate_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DuplicateEntrancePlansDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Duplicate entrance plans
      tags:
        - Entrance Plans
  /entrance/v1.0/organisations/{organisationUuid}/plans/{entrancePlanUuid}/plans:
    get:
      operationId: EntrancePlansController_findAllByPlan_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: venues
          required: false
          in: query
          description: Comma separated values for venue ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: status
          required: false
          in: query
          description: Comma separated values for status filter
          schema:
            example:
              - ACTIVE
              - NO_RULES
            type: array
            items:
              type: string
              enum:
                - ACTIVE
                - INACTIVE
                - NO_RULES
        - name: onlyParents
          required: false
          in: query
          description: >-
            If true will only return top level parent plans without
            configuration. Default is false.
          schema:
            example: false
            type: boolean
        - name: period
          required: false
          in: query
          description: >-
            Filter entrance plans by event date period. FUTURE shows plans with
            upcoming events or no events, PAST shows plans with only past
            events.
          schema:
            example: FUTURE
            type: string
            enum:
              - PAST
              - FUTURE
              - ALL
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List entrance plans for a parent plan
      tags:
        - Entrance Plans
  /entrance/v1.0/organisations/{organisationUuid}/plans/{entrancePlanUuid}:
    get:
      operationId: EntrancePlansController_findOne_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get an entrance plan by ID
      tags:
        - Entrance Plans
    patch:
      operationId: EntrancePlansController_patch_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEntrancePlanDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update an entrance plan
      tags:
        - Entrance Plans
    delete:
      operationId: EntrancePlansController_remove_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete an entrance plan
      tags:
        - Entrance Plans
  /entrance/v1.0/organisations/{organisationUuid}/plans/{entrancePlanUuid}/users:
    get:
      operationId: EntrancePlansController_findUsersByEntrancePlan_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List users for an entrance plan
      tags:
        - Entrance Plans
  /entrance/v1.0/organisations/{organisationUuid}/plans/{entrancePlanUuid}/invited-users:
    get:
      operationId: EntrancePlansController_findInvitedUsersByEntrancePlan_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/UserDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List invited users for an entrance plan
      tags:
        - Entrance Plans
  /entrance/v1.0/organisations/{organisationUuid}/events:
    post:
      operationId: EventsController_create_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEventDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create event
      tags:
        - Events
    get:
      operationId: EventsController_findAllByOrganisation_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Event'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List events by organisation
      tags:
        - Events
  /entrance/v1.0/organisations/{organisationUuid}/events/{eventUuid}/products:
    get:
      operationId: EventsController_findEventProducts_v1.0
      parameters:
        - name: eventUuid
          required: true
          in: path
          schema:
            type: string
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Product'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List products by event
      tags:
        - Events
  /entrance/v1.0/organisations/{organisationUuid}/events/{eventUuid}/plans:
    get:
      operationId: EventsController_findEventEntrancePlans_v1.0
      parameters:
        - name: eventUuid
          required: true
          in: path
          schema:
            type: string
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List entrance plans by event
      tags:
        - Events
  /entrance/v1.0/organisations/{organisationUuid}/events/{eventUuid}:
    get:
      operationId: EventsController_findOne_v1.0
      parameters:
        - name: eventUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get event by ID
      tags:
        - Events
    patch:
      operationId: EventsController_patch_v1.0
      parameters:
        - name: eventUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEventDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update event
      tags:
        - Events
    delete:
      operationId: EventsController_remove_v1.0
      parameters:
        - name: eventUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete event
      tags:
        - Events
  /entrance/v1.0/organisations/{organisationUuid}/events/{eventUuid}/plan:
    post:
      operationId: EventsController_addDefaultPlanToEvent_v1.0
      parameters:
        - name: eventUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Add default entrance plan to event
      tags:
        - Events
  /entrance/v1.0/organisations/{organisationUuid}/products:
    post:
      operationId: ProductsController_create_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProductDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a product
      tags:
        - Products
    get:
      operationId: ProductsController_findAllByOrganisation_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product type
          schema:
            example: REGULAR
            type: string
        - name: includeProductsWithoutEvent
          required: false
          in: query
          description: >-
            If true will include products without event in the result, even if
            event filter params are provided. Default is false.
          schema:
            example: true
            type: boolean
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Product'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List all products for an organisation
      tags:
        - Products
  /entrance/v1.0/organisations/{organisationUuid}/products/{productUuid}:
    get:
      operationId: ProductsController_findOne_v1.0
      parameters:
        - name: productUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get a product by UUID
      tags:
        - Products
    patch:
      operationId: ProductsController_patch_v1.0
      parameters:
        - name: productUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProductDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a product
      tags:
        - Products
    delete:
      operationId: ProductsController_remove_v1.0
      parameters:
        - name: productUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a product
      tags:
        - Products
  /entrance/v1.0/organisations/{organisationUuid}/plans/{entrancePlanUuid}/rules:
    post:
      operationId: RulesController_create_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRuleDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a scanning rule
      tags:
        - Scanning Rules
    get:
      operationId: RulesController_findAllByEntrancePlan_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/RuleDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List all rules for an entrance plan
      tags:
        - Scanning Rules
  /entrance/v1.0/organisations/{organisationUuid}/plans/{entrancePlanUuid}/rules/bulk:
    post:
      operationId: RulesController_createMany_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRulesBulkDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Rule'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Bulk-create scanning rules
      tags:
        - Scanning Rules
    patch:
      operationId: RulesController_patchMany_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkUpdateRulesDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Rule'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Bulk-update scan-config of multiple scanning rules
      tags:
        - Scanning Rules
    delete:
      operationId: RulesController_removeMany_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRuleUuidsDto'
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Bulk-delete scanning rules
      tags:
        - Scanning Rules
  /entrance/v1.0/organisations/{organisationUuid}/plans/{entrancePlanUuid}/rules/{ruleUuid}:
    get:
      operationId: RulesController_findOne_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: ruleUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get a scanning rule by UUID
      tags:
        - Scanning Rules
    patch:
      operationId: RulesController_patch_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: ruleUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRuleDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a scanning rule
      tags:
        - Scanning Rules
    delete:
      operationId: RulesController_remove_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: ruleUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a scanning rule
      tags:
        - Scanning Rules
  /entrance/v1.0/organisations/{organisationUuid}/venues:
    post:
      operationId: VenuesController_create_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVenueDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Venue'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a venue
      tags:
        - Venues
    get:
      operationId: VenuesController_findAllByOrganisation_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Venue'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List venues for an organisation
      tags:
        - Venues
  /entrance/v1.0/organisations/{organisationUuid}/venues/{venueUuid}:
    get:
      operationId: VenuesController_findOne_v1.0
      parameters:
        - name: venueUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Venue'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get a venue by UUID
      tags:
        - Venues
    patch:
      operationId: VenuesController_patch_v1.0
      parameters:
        - name: venueUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVenueDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Venue'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a venue
      tags:
        - Venues
    delete:
      operationId: VenuesController_remove_v1.0
      parameters:
        - name: venueUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: VenueSections cascade, so are also removed upon deleting venue
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a venue
      tags:
        - Venues
  /entrance/v1.0/organisations/{organisationUuid}/venues/{venueUuid}/plans:
    get:
      operationId: VenuesController_findVenueEntrancePlans_v1.0
      parameters:
        - name: venueUuid
          required: true
          in: path
          schema:
            type: string
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List entrance plans for a venue
      tags:
        - Venues
  /entrance/v1.0/organisations/{organisationUuid}/venues/{venueUuid}/sections/{sectionUuid}:
    delete:
      operationId: VenuesController_removeSection_v1.0
      parameters:
        - name: venueUuid
          required: true
          in: path
          schema:
            type: string
        - name: sectionUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a venue section
      tags:
        - Venues
    patch:
      operationId: VenuesController_patchSection_v1.0
      parameters:
        - name: venueUuid
          required: true
          in: path
          schema:
            type: string
        - name: sectionUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVenueSectionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VenueSection'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a venue section
      tags:
        - Venues
  /entrance/v1.0/organisations/{organisationUuid}/venues/{venueUuid}/sections:
    post:
      operationId: VenuesController_addSection_v1.0
      parameters:
        - name: venueUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVenueSectionDto'
      responses:
        '201':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Add a section to a venue
      tags:
        - Venues
  /entrance/v1.0/organisations/{organisationUuid}/constraints:
    post:
      operationId: ConstraintsController_create_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConstraintDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Constraint'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a constraint
      tags:
        - Constraints
    get:
      operationId: ConstraintsController_findAllByOrganisation_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Constraint'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List constraints for an organisation
      tags:
        - Constraints
  /entrance/v1.0/organisations/{organisationUuid}/constraints/{constraintUuid}:
    get:
      operationId: ConstraintsController_findOne_v1.0
      parameters:
        - name: constraintUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Constraint'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get a constraint by ID
      tags:
        - Constraints
    patch:
      operationId: ConstraintsController_patch_v1.0
      parameters:
        - name: constraintUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateConstraintDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Constraint'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a constraint
      tags:
        - Constraints
    delete:
      operationId: ConstraintsController_remove_v1.0
      parameters:
        - name: constraintUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a constraint
      tags:
        - Constraints
  /entrance/v1.0/organisations/{organisationUuid}/uploads/tickets:
    post:
      operationId: UploadController_importTicketsCsv_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUploadDto'
      responses:
        '202':
          description: >-
            File upload accepts both .csv and gzipped csv (.gz) files up to
            300MB and 250,000 rows
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponseDto'
        '403':
          description: The organisation does not have the TICKET_IMPORT feature enabled
      security:
        - cookie: []
      summary: Import tickets from CSV file
      tags:
        - Uploads
  /entrance/v1.0/scan/plans:
    get:
      operationId: ScanController_findAllByUser_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: includePastEntrancePlans
          required: false
          in: query
          description: >-
            If true, includes entrance plans whose events have all ended.
            Default is false (past entrance plans are excluded).
          schema:
            example: false
            type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List entrance plans for the current user
      tags:
        - Scanning
  /entrance/v1.0/scan/plans/{entrancePlanUuid}:
    get:
      operationId: ScanController_findPlan_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntrancePlan'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get an entrance plan by UUID
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/events:
    get:
      operationId: ScanController_findEventsByEntrancePlan_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Event'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List events for an entrance plan
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/rules:
    get:
      operationId: ScanController_findRulesByEntrancePlan_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Rule'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List rules for an entrance plan
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/venues:
    get:
      operationId: ScanController_findVenuesByEntrancePlan_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Venue'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List venues for an entrance plan
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/constraints:
    get:
      operationId: ScanController_findConstraintsByEntrancePlan_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Constraint'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List constraints for an entrance plan
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/products:
    get:
      operationId: ScanController_findProductsByEntrancePlan_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Product'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List products for an entrance plan
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/tickets:
    get:
      operationId: ScanController_findTicketsByEntrancePlan_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: uuids
          required: false
          in: query
          description: Comma separated values for ticket uuid
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: externalIds
          required: false
          in: query
          description: Comma separated values for ticket externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: venueSections
          required: false
          in: query
          description: Comma separated values for venueSection externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: constraints
          required: false
          in: query
          description: Comma separated values for constraint externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: imports
          required: false
          in: query
          description: Comma separated values for importId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket saleOrigin
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: scannedAtStart
          required: true
          in: query
          description: scannedAt start date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T12:00:00.000Z'
            type: string
        - name: scannedAtEnd
          required: true
          in: query
          description: scannedAt end date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T23:00:00.000Z'
            type: string
        - name: status
          required: false
          in: query
          description: Filter tickets by their derived scan status
          schema:
            type: string
            enum:
              - CHECKED_IN
              - REMAINING
              - ERRORS
        - name: ticketStatus
          required: false
          in: query
          description: Filter tickets by their stored validity status (VALID / INVALID)
          schema:
            type: string
            enum:
              - VALID
              - INVALID
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Ticket'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List tickets for an entrance plan
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/validate:
    post:
      operationId: ScanController_validate_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ValidateScanDto'
      responses:
        '200':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Validate a scan barcode
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/checkin:
    post:
      operationId: ScanController_checkIn_v1.0
      parameters:
        - name: X-ENMA-MDM-DEVICE-INFO
          required: true
          in: header
          schema:
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScanDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanResultDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Check in a barcode
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/order/preview:
    post:
      operationId: ScanController_previewOrder_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScanDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderScanPreviewDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Preview checking in the entire order for a scanned barcode
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/order/checkin:
    post:
      operationId: ScanController_checkInOrder_v1.0
      parameters:
        - name: X-ENMA-MDM-DEVICE-INFO
          required: true
          in: header
          schema:
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckInOrderDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderScanResultDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Check in the selected tickets of an order
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/checkin/confirm:
    post:
      operationId: ScanController_confirmCheckIn_v1.0
      parameters:
        - name: X-ENMA-MDM-DEVICE-INFO
          required: true
          in: header
          schema:
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScanDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanResultDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Confirm a pending check-in
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/checkin/deny:
    post:
      operationId: ScanController_denyCheckIn_v1.0
      parameters:
        - name: X-ENMA-MDM-DEVICE-INFO
          required: true
          in: header
          schema:
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScanDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanResultDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Deny a pending check-in
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/checkout:
    post:
      operationId: ScanController_checkOut_v1.0
      parameters:
        - name: X-ENMA-MDM-DEVICE-INFO
          required: true
          in: header
          schema:
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCheckOutDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanResultDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Check out a barcode
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/logs:
    get:
      operationId: ScanController_getScanLogsByEntrancePlan_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: statusCodes
          required: false
          in: query
          description: Comma separated values for scan status codes
          schema:
            example: 200,401
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: deviceIds
          required: false
          in: query
          description: Comma separated values for device ids
          schema:
            example: 872HA,AH84A
            type: string
        - name: ticketIds
          required: false
          in: query
          description: Comma separated values for ticket ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: orderIds
          required: false
          in: query
          description: Comma separated values for order ids
          schema:
            example: CM12345678,CM0000001
            type: string
        - name: productIds
          required: false
          in: query
          description: Comma separated values for product ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: eventIds
          required: false
          in: query
          description: Comma separated values for event ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: scannedAtStart
          required: true
          in: query
          description: scannedAt start date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T12:00:00.000Z'
            type: string
        - name: scannedAtEnd
          required: true
          in: query
          description: scannedAt end date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T23:00:00.000Z'
            type: string
        - name: includeRelatedEntrancePlans
          required: false
          in: query
          description: >-
            When true, include scan logs from the entire entrance plan
            collection the requested plan belongs to (its related plans across
            the collection) instead of only the requested entrance plan. Only
            affects entrance-plan-scoped requests; ignored for
            organisation-scoped requests.
          schema:
            example: true
            type: boolean
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/ScanLog'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List scan logs for an entrance plan (deprecated)
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/sync:
    post:
      operationId: ScanController_sync_v1.0
      parameters:
        - name: X-ENMA-MDM-DEVICE-INFO
          required: true
          in: header
          schema:
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Sync offline scans
      tags:
        - Scanning
    get:
      operationId: ScanController_getLogsSinceTimestamp_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ScanLog'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get scan logs since a given timestamp
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/sync/tickets:
    get:
      operationId: ScanController_getTicketsSinceTimestamp_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ScanLog'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get tickets updated since a given timestamp
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/download:
    get:
      operationId: ScanController_getInitialSyncFileByEntrancePlan_v1.0
      parameters:
        - name: forceZipJob
          required: true
          in: query
          description: Query parameter that can force creation of a new zip file
          schema:
            default: false
            type: boolean
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Download initial sync file for entrance plan
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/callback/{ulid}:
    post:
      operationId: ScanController_triggerScanCallback_v1.0
      parameters:
        - name: ulid
          required: true
          in: path
          schema:
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Trigger a scan callback
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/analytics/scan-progress:
    get:
      operationId: ScanAnalyticsController_getScanProgress_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanProgressResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get scan progress for an entrance plan
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/analytics/widgets:
    get:
      operationId: ScanAnalyticsController_getWidgets_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsWidgetResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get analytics widget data for an entrance plan
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/analytics/scans-by-product:
    get:
      operationId: ScanAnalyticsController_getScansByProduct_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScansByProductItemDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get scan counts grouped by product (only products with scans)
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/analytics/by-product:
    get:
      operationId: ScanAnalyticsController_getAllProductScans_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScansByProductItemDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get scan counts grouped by product (all products, zero-scan rows padded)
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/analytics/venue/{venueUuid}:
    get:
      operationId: ScanAnalyticsController_getVenueScanOverview_v1.0
      parameters:
        - name: venueUuid
          required: true
          in: path
          schema:
            type: string
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScansByVenueItemDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get scan overview for a venue
      tags:
        - Scanning
  /entrance/v1.0/scan/{entrancePlanUuid}/analytics/logs:
    get:
      operationId: ScanAnalyticsController_getScanLogs_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: statusCodes
          required: false
          in: query
          description: Comma separated values for scan status codes
          schema:
            example: 200,401
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: deviceIds
          required: false
          in: query
          description: Comma separated values for device ids
          schema:
            example: 872HA,AH84A
            type: string
        - name: ticketIds
          required: false
          in: query
          description: Comma separated values for ticket ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: orderIds
          required: false
          in: query
          description: Comma separated values for order ids
          schema:
            example: CM12345678,CM0000001
            type: string
        - name: productIds
          required: false
          in: query
          description: Comma separated values for product ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: eventIds
          required: false
          in: query
          description: Comma separated values for event ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: scannedAtStart
          required: true
          in: query
          description: scannedAt start date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T12:00:00.000Z'
            type: string
        - name: scannedAtEnd
          required: true
          in: query
          description: scannedAt end date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T23:00:00.000Z'
            type: string
        - name: includeRelatedEntrancePlans
          required: false
          in: query
          description: >-
            When true, include scan logs from the entire entrance plan
            collection the requested plan belongs to (its related plans across
            the collection) instead of only the requested entrance plan. Only
            affects entrance-plan-scoped requests; ignored for
            organisation-scoped requests.
          schema:
            example: true
            type: boolean
        - name: entrancePlanUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/ScanLog'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List scan logs for an entrance plan
      tags:
        - Scanning
  /entrance/v1.0/organisations/{organisationUuid}/plans/{entrancePlanUuid}/conditions:
    post:
      operationId: ConditionsController_create_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConditionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Condition'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a scanning condition
      tags:
        - Scanning Conditions
    get:
      operationId: ConditionsController_findAllByEntrancePlan_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/ConditionDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List conditions for an entrance plan
      tags:
        - Scanning Conditions
  /entrance/v1.0/organisations/{organisationUuid}/plans/{entrancePlanUuid}/conditions/{conditionUuid}:
    get:
      operationId: ConditionsController_findOne_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: conditionUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Condition'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get a scanning condition by ID
      tags:
        - Scanning Conditions
    patch:
      operationId: ConditionsController_patch_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: conditionUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateConditionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Condition'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a scanning condition
      tags:
        - Scanning Conditions
    delete:
      operationId: ConditionsController_remove_v1.0
      parameters:
        - name: entrancePlanUuid
          required: true
          in: path
          schema:
            type: string
        - name: conditionUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a scanning condition
      tags:
        - Scanning Conditions
  /entrance/v1.0/organisations/{organisationUuid}/imports:
    get:
      operationId: ImportsController_findAll_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: status
          required: false
          in: query
          description: Comma separated values for import statuses
          schema:
            example: COMPLETED,FAILED
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Import'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List all imports
      tags:
        - Imports
  /entrance/v1.0/organisations/{organisationUuid}/imports/{importUuid}/csv:
    get:
      operationId: ImportsController_downloadFailedRows_v1.0
      parameters:
        - name: importUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: Download a csv file with all records that failed to import
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Download failed import rows as CSV
      tags:
        - Imports
  /entrance/v1.0/organisations/{organisationUuid}/imports/ticket/example/csv:
    get:
      operationId: ImportsController_downloadExampleTicketImportCsv_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: Returns an example csv file that can be used to import tickets
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Download example ticket import CSV
      tags:
        - Imports
  /entrance/v1.0/organisations/{organisationUuid}/imports/{importUuid}:
    delete:
      operationId: ImportsController_remove_v1.0
      parameters:
        - name: importUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete an import
      tags:
        - Imports
  /entrance/v1.0/organisations/{organisationUuid}/imports/bulk-delete:
    post:
      operationId: ImportsController_delete_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteImportsDto'
      responses:
        '202':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Bulk delete imports
      tags:
        - Imports
  /entrance/v1.0/health:
    get:
      operationId: HealthController_check_v1.0
      parameters: []
      responses:
        '200':
          description: The Health Check is successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
                  info:
                    type: object
                    example:
                      database:
                        status: up
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  error:
                    type: object
                    example: {}
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  details:
                    type: object
                    example:
                      database:
                        status: up
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
        '503':
          description: The Health Check is not successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: error
                  info:
                    type: object
                    example:
                      database:
                        status: up
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  error:
                    type: object
                    example:
                      redis:
                        status: down
                        message: Could not connect
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  details:
                    type: object
                    example:
                      database:
                        status: up
                      redis:
                        status: down
                        message: Could not connect
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Check API health status
      tags:
        - Health
  /entrance/v1.0/organisations/{organisationUuid}/analytics/scan-progress:
    get:
      operationId: AnalyticsController_getScanProgress_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanProgressResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get scan progress data
      tags:
        - Analytics
  /entrance/v1.0/organisations/{organisationUuid}/analytics/widgets:
    get:
      operationId: AnalyticsController_getWidgets_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsWidgetResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get analytics widget data
      tags:
        - Analytics
  /entrance/v1.0/organisations/{organisationUuid}/analytics/by-product:
    get:
      operationId: AnalyticsController_getScansByProduct_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScansByProductItemDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get scans grouped by product
      tags:
        - Analytics
  /entrance/v1.0/organisations/{organisationUuid}/analytics/scans-by-product:
    get:
      operationId: AnalyticsController_getProductsByScanLogs_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScansByProductItemDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get products by scan logs
      tags:
        - Analytics
  /entrance/v1.0/organisations/{organisationUuid}/analytics/by-entrance-plan:
    get:
      operationId: AnalyticsController_getScansByEntrancePlan_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScansByEntrancePlanItemDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get scans grouped by entrance plan
      tags:
        - Analytics
  /entrance/v1.0/organisations/{organisationUuid}/analytics/clicker-scans:
    get:
      operationId: AnalyticsController_getClickerScans_v1.0
      parameters:
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClickerScansItemDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: >-
        Get clicker arrivals and departures per entrance plan (ticket filters do
        not apply)
      tags:
        - Analytics
  /entrance/v1.0/organisations/{organisationUuid}/analytics/venue/{venueUuid}:
    get:
      operationId: AnalyticsController_getVenueScanOverview_v1.0
      parameters:
        - name: venueUuid
          required: true
          in: path
          schema:
            type: string
        - name: startAt
          required: true
          in: query
          description: Start date of filter period. Must be in the past
          schema:
            format: date-time
            type: string
        - name: endAt
          required: true
          in: query
          description: >-
            End date of filter period. Defaults to current datetime (also if set
            in the future)
          schema:
            format: date-time
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: filterTimeslots
          required: false
          in: query
          description: >-
            If true will consider tickets that have their timeslot within the
            filter's date range. Default is false.
          schema:
            example: true
            type: boolean
        - name: includeClickerScans
          required: false
          in: query
          description: >-
            If true, clicker scans (ticketless arrivals/departures) are kept
            when filtering on products, product types, events or sale origins.
            Without such filters they are always included. Default is false.
          schema:
            example: true
            type: boolean
        - name: productTypes
          required: false
          in: query
          description: Comma separated values for product types
          schema:
            example: REGULAR,GUEST_LIST
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket sale origins
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScansByVenueItemDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Get venue scan overview
      tags:
        - Analytics
  /entrance/v1.0/organisations/{organisationUuid}/analytics/logs:
    get:
      operationId: AnalyticsController_getScanLogsByOrganisation_v1.0
      parameters:
        - name: order
          required: false
          in: query
          schema:
            default: ASC
            type: string
            enum:
              - ASC
              - DESC
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: number
        - name: take
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 5000
            default: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: statusCodes
          required: false
          in: query
          description: Comma separated values for scan status codes
          schema:
            example: 200,401
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: deviceIds
          required: false
          in: query
          description: Comma separated values for device ids
          schema:
            example: 872HA,AH84A
            type: string
        - name: ticketIds
          required: false
          in: query
          description: Comma separated values for ticket ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: orderIds
          required: false
          in: query
          description: Comma separated values for order ids
          schema:
            example: CM12345678,CM0000001
            type: string
        - name: productIds
          required: false
          in: query
          description: Comma separated values for product ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: eventIds
          required: false
          in: query
          description: Comma separated values for event ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: scannedAtStart
          required: true
          in: query
          description: scannedAt start date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T12:00:00.000Z'
            type: string
        - name: scannedAtEnd
          required: true
          in: query
          description: scannedAt end date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T23:00:00.000Z'
            type: string
        - name: includeRelatedEntrancePlans
          required: false
          in: query
          description: >-
            When true, include scan logs from the entire entrance plan
            collection the requested plan belongs to (its related plans across
            the collection) instead of only the requested entrance plan. Only
            affects entrance-plan-scoped requests; ignored for
            organisation-scoped requests.
          schema:
            example: true
            type: boolean
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageDto'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/ScanLog'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List scan logs for organisation
      tags:
        - Analytics
  /entrance/v1.0/organisations/{organisationUuid}/analytics/filter-presets:
    get:
      operationId: FilterPresetsController_findAll_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FilterPreset'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List all filter presets
      tags:
        - Analytics - Filter Presets
    post:
      operationId: FilterPresetsController_create_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFilterPresetDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilterPreset'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a filter preset
      tags:
        - Analytics - Filter Presets
  /entrance/v1.0/organisations/{organisationUuid}/analytics/filter-presets/{presetUuid}:
    patch:
      operationId: FilterPresetsController_update_v1.0
      parameters:
        - name: presetUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFilterPresetDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilterPreset'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a filter preset
      tags:
        - Analytics - Filter Presets
    delete:
      operationId: FilterPresetsController_remove_v1.0
      parameters:
        - name: presetUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a filter preset
      tags:
        - Analytics - Filter Presets
  /entrance/v1.0/organisations/{organisationUuid}/analytics/analytics-report-subscriptions:
    get:
      operationId: AnalyticsReportSubscriptionsController_findAll_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AnalyticsReportSubscription'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: List all recurring analytics report subscriptions
      tags:
        - Analytics - Report Subscriptions
    post:
      operationId: AnalyticsReportSubscriptionsController_create_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAnalyticsReportSubscriptionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsReportSubscription'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Create a recurring analytics report subscription
      tags:
        - Analytics - Report Subscriptions
  /entrance/v1.0/organisations/{organisationUuid}/analytics/analytics-report-subscriptions/{subscriptionUuid}:
    patch:
      operationId: AnalyticsReportSubscriptionsController_update_v1.0
      parameters:
        - name: subscriptionUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAnalyticsReportSubscriptionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsReportSubscription'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Update a recurring analytics report subscription
      tags:
        - Analytics - Report Subscriptions
    delete:
      operationId: AnalyticsReportSubscriptionsController_remove_v1.0
      parameters:
        - name: subscriptionUuid
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '204':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Delete a recurring analytics report subscription
      tags:
        - Analytics - Report Subscriptions
  /entrance/v1.0/organisations/{organisationUuid}/exports/ticket:
    post:
      operationId: ExportsController_startTicketExport_v1.0
      parameters:
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: uuids
          required: false
          in: query
          description: Comma separated values for ticket uuid
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: externalIds
          required: false
          in: query
          description: Comma separated values for ticket externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: products
          required: false
          in: query
          description: Comma separated values for product externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: events
          required: false
          in: query
          description: Comma separated values for event externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: venueSections
          required: false
          in: query
          description: Comma separated values for venueSection externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: constraints
          required: false
          in: query
          description: Comma separated values for constraint externalId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: imports
          required: false
          in: query
          description: Comma separated values for importId
          schema:
            example: 00000000-0000-0000-0000-000000000000
            type: string
        - name: saleOrigins
          required: false
          in: query
          description: Comma separated values for ticket saleOrigin
          schema:
            example: SHOP,GUEST_LIST
            type: string
        - name: scannedAtStart
          required: true
          in: query
          description: scannedAt start date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T12:00:00.000Z'
            type: string
        - name: scannedAtEnd
          required: true
          in: query
          description: scannedAt end date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T23:00:00.000Z'
            type: string
        - name: status
          required: false
          in: query
          description: Filter tickets by their derived scan status
          schema:
            type: string
            enum:
              - CHECKED_IN
              - REMAINING
              - ERRORS
        - name: ticketStatus
          required: false
          in: query
          description: Filter tickets by their stored validity status (VALID / INVALID)
          schema:
            type: string
            enum:
              - VALID
              - INVALID
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '201':
          description: Start ticket export and return job ID for progress tracking
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Start ticket export job
      tags:
        - Exports
  /entrance/v1.0/organisations/{organisationUuid}/exports/scan-log:
    post:
      operationId: ExportsController_startScanLogExport_v1.0
      parameters:
        - name: search
          required: false
          in: query
          description: >-
            Returns only records that match the search query. Searches in most
            common fields such as name, description and for tickets all visitor
            data.
          schema:
            minLength: 1
            maxLength: 255
            type: string
        - name: statusCodes
          required: false
          in: query
          description: Comma separated values for scan status codes
          schema:
            example: 200,401
            type: string
        - name: entrancePlanIds
          required: false
          in: query
          description: Comma separated values for entrance plan uuids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: deviceIds
          required: false
          in: query
          description: Comma separated values for device ids
          schema:
            example: 872HA,AH84A
            type: string
        - name: ticketIds
          required: false
          in: query
          description: Comma separated values for ticket ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: orderIds
          required: false
          in: query
          description: Comma separated values for order ids
          schema:
            example: CM12345678,CM0000001
            type: string
        - name: productIds
          required: false
          in: query
          description: Comma separated values for product ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: eventIds
          required: false
          in: query
          description: Comma separated values for event ids
          schema:
            example: >-
              00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
            type: string
        - name: scannedAtStart
          required: true
          in: query
          description: scannedAt start date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T12:00:00.000Z'
            type: string
        - name: scannedAtEnd
          required: true
          in: query
          description: scannedAt end date (ISO format)
          schema:
            format: date-time
            example: '2024-12-03T23:00:00.000Z'
            type: string
        - name: includeRelatedEntrancePlans
          required: false
          in: query
          description: >-
            When true, include scan logs from the entire entrance plan
            collection the requested plan belongs to (its related plans across
            the collection) instead of only the requested entrance plan. Only
            affects entrance-plan-scoped requests; ignored for
            organisation-scoped requests.
          schema:
            example: true
            type: boolean
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '201':
          description: Start scan export and return job ID for progress tracking
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Start scan log export job
      tags:
        - Exports
  /entrance/v1.0/organisations/{organisationUuid}/exports/download/{jobId}:
    get:
      operationId: ExportsController_downloadExport_v1.0
      parameters:
        - name: jobId
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: Download a csv file of your requested export
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Download export file
      tags:
        - Exports
  /entrance/v1.0/organisations/{organisationUuid}/exports/progress/{jobId}:
    get:
      operationId: ExportsController_getExportProgress_v1.0
      parameters:
        - name: jobId
          required: true
          in: path
          schema:
            type: string
        - name: organisationUuid
          required: true
          in: path
          schema: {}
      responses:
        '200':
          description: Server-sent events stream of export progress.
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Get export job progress
      tags:
        - Exports
  /entrance/v1.0/structured-logging/log:
    post:
      operationId: StructuredLoggingController_handleStructuredLog_v1.0
      parameters: []
      requestBody:
        required: true
        description: Array of structured log entries to process
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Object'
            examples:
              errorLog:
                summary: Error log example
                value:
                  - message: >-
                      Error: This is a test error for logging\nat
                      Component.method (https://example.com/file.js:66:11)
                    severity: ERROR
                    httpRequest:
                      requestMethod: POST
                    timestamp:
                      nanos: 366000000
                      seconds: 1748935093
                    logging.googleapis.com/labels:
                      application_id: SCANNING-WEB-APP
                      device_id: Y2T4T
                    logging.googleapis.com/sourceLocation: {}
                    additional:
                      - APPLICATION_ERROR_HANDLER
                      - {}
      responses:
        '202':
          description: Log entries have been accepted and processed
        '400':
          description: Invalid log entry format
      summary: Submit structured log entries
      tags:
        - Structured Logging
  /entrance/v1.0/reset-password/{passwordResetRequestUuid}:
    get:
      operationId: ResetPasswordController_getPasswordResetRequest_v1.0
      parameters:
        - name: passwordResetRequestUuid
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordResetRequest'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Get a password reset request
      tags:
        - Reset Password
    post:
      operationId: ResetPasswordController_resetPassword_v1.0
      parameters:
        - name: passwordResetRequestUuid
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResetPasswordDto'
      responses:
        '200':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Reset a user password
      tags:
        - Reset Password
  /entrance/v1.0/reset-password:
    post:
      operationId: ResetPasswordController_requestPasswordReset_v1.0
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResetPasswordRequestDto'
      responses:
        '200':
          description: ''
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      summary: Request a password reset
      tags:
        - Reset Password
  /entrance/v1.0/organisations/{organisationUuid}/tools/cdp/sync:
    post:
      operationId: ToolsController_syncCdpData_v1.0
      parameters:
        - name: organisationUuid
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncCdpDataDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResponseDto'
        4XX:
          description: >-
            The request could not be processed. The body contains a standardized
            error object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - cookie: []
      summary: Sync CDP data with filters
      tags:
        - Settings
info:
  title: Entrance Management
  description: Entrance Management API description
  version: '1.0'
  contact: {}
  license:
    name: Proprietary
    url: https://www.cm.com
tags:
  - name: entrance-management
    description: Entrance Management API for event scanning and access control
  - name: Authentication
    description: User authentication and session management
  - name: Events
    description: Event management and configuration
  - name: Entrance Plans
    description: Entrance plan configuration and assignment
  - name: Scanning
    description: >-
      Scan API for barcode scanning, validate, check-in, and check-out
      operations
  - name: Analytics
    description: Scan statistics and analytics data
  - name: Analytics - Filter Presets
    description: Saved filter presets for analytics views
  - name: Organisations
    description: Organisation management
  - name: Users
    description: User management and role assignment
  - name: Invitations
    description: User invitation lifecycle
  - name: Products
    description: Products management and configuration
  - name: Tickets
    description: Ticket management and lookup
  - name: Venues
    description: Venue configuration
  - name: Constraints
    description: Constraint management and configuration
  - name: Scanning Rules
    description: Rules governing scan behaviour
  - name: Scanning Conditions
    description: Conditions attached to entrance plans and scanning rules
  - name: Exports
    description: Data export jobs and downloads
  - name: Imports
    description: Data import operations
  - name: Uploads
    description: File upload handling
  - name: Health
    description: Service health and liveness checks
  - name: Reset Password
    description: Password reset request flow
  - name: Structured Logging
    description: Client-side structured log ingestion
  - name: Service tokens
    description: Machine-to-machine service token management
  - name: Settings
    description: System and organisation settings
  - name: Onboarding
    description: Organisation onboarding flows
servers:
  - url: https://api.cm.com
components:
  securitySchemes:
    cookie:
      type: apiKey
      in: cookie
      name: connect.sid
  schemas:
    CreateTicketDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        barcode:
          type: string
          maxLength: 255
          example: CMLQFLGRPA
        externalBarcode:
          type: string
          maxLength: 255
          example: CMLQFLGRPA
        orderId:
          type: string
          maxLength: 255
          example: BP28857934
        issuedAt:
          type: object
        timeSlotMomentAt:
          format: date-time
          type: string
        expiresAt:
          format: date-time
          type: string
        ticketDetails:
          type: string
          maxLength: 255
          description: Used to provide additional ticket details displayed on the scanners
          example: Row 8, seat 15
        firstName:
          type: string
          maxLength: 255
          example: Jane
        lastName:
          type: string
          maxLength: 255
          example: Doe
        email:
          type: string
          maxLength: 255
          description: Should be valid e-mail address
          example: jane.doe@example.com
        phoneNumber:
          type: string
          maxLength: 20
          example: '+31612345678'
        paymentReference:
          type: string
          maxLength: 255
          description: Reference to an external payment
          example: N270570809-DZ8HSB
        status:
          type: string
          enum:
            - VALID
            - INVALID
          example: INVALID
        statusDetails:
          type: string
          maxLength: 255
          description: Additional details as to why a status is invalid
          example: Ticket is refunded by user
        productId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        venueSectionId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        eventId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        primaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        secondaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        tertiaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        upstreamPlatform:
          type: string
          enum:
            - ENMA_SUBSCRIBER
            - GENERAL_ADMISSION
            - SEATED_TICKETING
            - GLOBAL_TICKET
            - INTERSOLVE
            - PUBLIQ
            - YOURTICKETPROVIDER
            - PASS_TEST
            - PASS_NATIONAAL_MILITAIR_MUSEUM
            - PASS_WEC
            - PASS_CENTRAAL_MUSEUM
            - PHOENIX_DES_LUMIERES
            - PORT_DES_LUMIERES
            - SMOOTHR_DEMO_ACCOUNT
            - ENTRANCE_MANAGEMENT
            - STICHTING_KONINKLIJKE_DEFENSIEMUSEA
            - ELECTRIC_IBIZA_ENTERTAINMENT
            - MOMICE_KLM_OPEN
            - CUSTOMER_DATA_PLATFORM
            - GO_CITY
          example: ENTRANCE_MANAGEMENT
        saleOrigin:
          type: string
          enum:
            - GUEST_LIST
            - PARTNER_API
            - SHOP
            - BACKOFFICE_ORDER
            - CM_POS
            - SECONDARY_TICKETING_CM
            - SECONDARY_TICKETING_TICKET_SWAP
          example: SHOP
      required:
        - barcode
        - orderId
        - status
        - productId
    Ticket:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        barcode:
          type: string
          maxLength: 255
          example: CMLQFLGRPA
        externalBarcode:
          type: string
          maxLength: 255
          example: CMLQFLGRPA
        orderId:
          type: string
          maxLength: 255
          example: BP28857934
        issuedAt:
          format: date-time
          type: string
          maxLength: 255
          description: Must be in the past
        timeSlotMomentAt:
          format: date-time
          type: string
        expiresAt:
          format: date-time
          type: string
        ticketDetails:
          type: string
          maxLength: 255
          description: Used to provide additional ticket details displayed on the scanners
          example: Row 8, seat 15
        firstName:
          type: string
          maxLength: 255
          example: Jane
        lastName:
          type: string
          maxLength: 255
          example: Doe
        email:
          type: string
          maxLength: 255
          description: Should be valid e-mail address
          example: jane.doe@example.com
        phoneNumber:
          type: string
          maxLength: 20
          example: '+31612345678'
        paymentReference:
          type: string
          maxLength: 255
          description: Reference to an external payment
          example: N270570809-DZ8HSB
        status:
          type: string
          enum:
            - VALID
            - INVALID
          example: INVALID
        statusDetails:
          type: string
          maxLength: 255
          description: Additional details as to why a status is invalid
          example: Ticket is refunded by user
        productId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        venueSectionId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        eventId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        primaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        secondaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        tertiaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        upstreamPlatform:
          type: string
          enum:
            - ENMA_SUBSCRIBER
            - GENERAL_ADMISSION
            - SEATED_TICKETING
            - GLOBAL_TICKET
            - INTERSOLVE
            - PUBLIQ
            - YOURTICKETPROVIDER
            - PASS_TEST
            - PASS_NATIONAAL_MILITAIR_MUSEUM
            - PASS_WEC
            - PASS_CENTRAAL_MUSEUM
            - PHOENIX_DES_LUMIERES
            - PORT_DES_LUMIERES
            - SMOOTHR_DEMO_ACCOUNT
            - ENTRANCE_MANAGEMENT
            - STICHTING_KONINKLIJKE_DEFENSIEMUSEA
            - ELECTRIC_IBIZA_ENTERTAINMENT
            - MOMICE_KLM_OPEN
            - CUSTOMER_DATA_PLATFORM
            - GO_CITY
          example: GLOBAL_TICKET
        saleOrigin:
          type: string
          enum:
            - GUEST_LIST
            - PARTNER_API
            - SHOP
            - BACKOFFICE_ORDER
            - CM_POS
            - SECONDARY_TICKETING_CM
            - SECONDARY_TICKETING_TICKET_SWAP
          example: SHOP
      required:
        - uuid
        - barcode
        - externalBarcode
        - orderId
        - issuedAt
        - email
        - status
        - productId
        - upstreamPlatform
    PageMetaDto:
      type: object
      properties:
        page:
          type: number
        take:
          type: number
        skip:
          type: number
        itemCount:
          type: number
        pageCount:
          type: number
        hasPreviousPage:
          type: boolean
        hasNextPage:
          type: boolean
      required:
        - page
        - take
        - skip
        - itemCount
        - pageCount
        - hasPreviousPage
        - hasNextPage
    PageDto:
      type: object
      properties:
        data:
          type: array
          items: {}
        meta:
          $ref: '#/components/schemas/PageMetaDto'
      required:
        - data
        - meta
    UpdateTicketDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        barcode:
          type: string
          maxLength: 255
          example: CMLQFLGRPA
        externalBarcode:
          type: string
          maxLength: 255
          example: CMLQFLGRPA
        orderId:
          type: string
          maxLength: 255
          example: BP28857934
        issuedAt:
          type: object
        timeSlotMomentAt:
          format: date-time
          type: string
        expiresAt:
          format: date-time
          type: string
        ticketDetails:
          type: string
          maxLength: 255
          description: Used to provide additional ticket details displayed on the scanners
          example: Row 8, seat 15
        firstName:
          type: string
          maxLength: 255
          example: Jane
        lastName:
          type: string
          maxLength: 255
          example: Doe
        email:
          type: string
          maxLength: 255
          description: Should be valid e-mail address
          example: jane.doe@example.com
        phoneNumber:
          type: string
          maxLength: 20
          example: '+31612345678'
        paymentReference:
          type: string
          maxLength: 255
          description: Reference to an external payment
          example: N270570809-DZ8HSB
        status:
          type: string
          enum:
            - VALID
            - INVALID
          example: INVALID
        statusDetails:
          type: string
          maxLength: 255
          description: Additional details as to why a status is invalid
          example: Ticket is refunded by user
        productId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        venueSectionId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        eventId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        primaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        secondaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        tertiaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        upstreamPlatform:
          type: string
          enum:
            - ENMA_SUBSCRIBER
            - GENERAL_ADMISSION
            - SEATED_TICKETING
            - GLOBAL_TICKET
            - INTERSOLVE
            - PUBLIQ
            - YOURTICKETPROVIDER
            - PASS_TEST
            - PASS_NATIONAAL_MILITAIR_MUSEUM
            - PASS_WEC
            - PASS_CENTRAAL_MUSEUM
            - PHOENIX_DES_LUMIERES
            - PORT_DES_LUMIERES
            - SMOOTHR_DEMO_ACCOUNT
            - ENTRANCE_MANAGEMENT
            - STICHTING_KONINKLIJKE_DEFENSIEMUSEA
            - ELECTRIC_IBIZA_ENTERTAINMENT
            - MOMICE_KLM_OPEN
            - CUSTOMER_DATA_PLATFORM
            - GO_CITY
          example: ENTRANCE_MANAGEMENT
        saleOrigin:
          type: string
          enum:
            - GUEST_LIST
            - PARTNER_API
            - SHOP
            - BACKOFFICE_ORDER
            - CM_POS
            - SECONDARY_TICKETING_CM
            - SECONDARY_TICKETING_TICKET_SWAP
          example: SHOP
    LoginDto:
      type: object
      properties:
        username:
          type: string
          description: >-
            Can be a username, an e-mail, or both, depending on how the user was
            created
          example: john.doe@example.com
        password:
          type: string
          minLength: 12
          description: >-
            Password have a minimum length of 12 characters and should contain
            at least one lowercase, one uppercase, one symbol and one number.
          example: MyStrong3x4mpl3P4ssword!
        organisationUuid:
          type: string
          description: >-
            Providing organisationUuid instantly logs user into that
            organisation and skips step 2
          example: 00000000-0000-0000-0000-000000000000
        entrancePlanUuid:
          type: string
          description: >-
            Providing entrancePlanUuid instantly logs user into that
            entrancePlan and skips step 2
          example: 00000000-0000-0000-0000-000000000000
      required:
        - username
        - password
    UserDto:
      type: object
      properties:
        uuid:
          type: string
          readOnly: true
        cmPersonGuid:
          type: string
          readOnly: true
        firstName:
          type: string
          readOnly: true
        lastName:
          type: string
          readOnly: true
        username:
          type: string
          readOnly: true
        email:
          type: string
          readOnly: true
        entrancePlanClaims:
          type: array
          items:
            type: string
            enum:
              - OBSERVER
              - EDITOR
              - OWNER
              - ADMIN
              - SCAN_USER
              - SCAN_CHECKIN
              - SCAN_CHECKOUT
              - SCAN_CLICKER_CHECKIN
              - SCAN_CLICKER_CHECKOUT
              - SCAN_SEARCH
              - SCAN_VALIDATE
              - SCAN_ANALYTICS
      required:
        - uuid
        - cmPersonGuid
        - firstName
        - lastName
        - username
        - email
        - entrancePlanClaims
    UserUsernameDto:
      type: object
      properties:
        username:
          type: string
          description: Username or e-mail address used to sign in
      required:
        - username
    LoginOrganisationEntrancePlanDto:
      type: object
      properties:
        organisationUuid:
          type: string
          description: >-
            Providing organisationUuid instantly logs user into that
            organisation and skips step 2
          example: 00000000-0000-0000-0000-000000000000
        entrancePlanUuid:
          type: string
          description: >-
            Providing entrancePlanUuid instantly logs user into that
            entrancePlan and skips step 2
          example: 00000000-0000-0000-0000-000000000000
    UserOrganisationClaimDto:
      type: object
      properties:
        organisationId:
          type: string
          description: Uuid of the organisation the claims apply to
          example: 00000000-0000-0000-0000-000000000000
        claims:
          type: array
          example:
            - ADMIN
          items:
            type: string
            enum:
              - OBSERVER
              - EDITOR
              - OWNER
              - ADMIN
              - SCAN_USER
              - SCAN_CHECKIN
              - SCAN_CHECKOUT
              - SCAN_CLICKER_CHECKIN
              - SCAN_CLICKER_CHECKOUT
              - SCAN_SEARCH
              - SCAN_VALIDATE
              - SCAN_ANALYTICS
      required:
        - organisationId
        - claims
    UserEntrancePlanClaimDto:
      type: object
      properties:
        entrancePlanId:
          type: string
          description: Uuid of the entrance plan the claims apply to
          example: 00000000-0000-0000-0000-000000000000
        claims:
          type: array
          example:
            - ADMIN
          items:
            type: string
            enum:
              - OBSERVER
              - EDITOR
              - OWNER
              - ADMIN
              - SCAN_USER
              - SCAN_CHECKIN
              - SCAN_CHECKOUT
              - SCAN_CLICKER_CHECKIN
              - SCAN_CLICKER_CHECKOUT
              - SCAN_SEARCH
              - SCAN_VALIDATE
              - SCAN_ANALYTICS
      required:
        - entrancePlanId
        - claims
    ClaimsDto:
      type: object
      properties:
        organisationClaims:
          description: >-
            Optional object which allows to give a user claims on a certain
            organisation
          allOf:
            - $ref: '#/components/schemas/UserOrganisationClaimDto'
        entrancePlanClaims:
          description: >-
            Optional object which allows to give a user claims on a certain
            entrance plan
          allOf:
            - $ref: '#/components/schemas/UserEntrancePlanClaimDto'
    CreateUserDto:
      type: object
      properties:
        cmPersonGuid:
          type: string
          minLength: 36
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        firstName:
          type: string
          maxLength: 255
          example: Jane
        lastName:
          type: string
          maxLength: 255
          example: Doe
        username:
          type: string
          description: Either one of username or e-mail is mandatory
          minLength: 6
          maxLength: 255
          example: myUserName
        email:
          type: string
          description: >-
            Either one of username or e-mail is mandatory. Should be a valid
            e-mail.
          maxLength: 255
          example: jane.doe@example.com
        password:
          type: string
          minLength: 6
          description: Password must contain a minimum of 6 characters
          example: MyStrong3x4mpl3P4ssword!
        sendInvitation:
          type: boolean
          description: >-
            If set to true user will receive an invitation e-mail which needs to
            be accepted before access is granted
          default: true
        claims:
          description: >-
            Optional object which allows to give a user claims on a certain
            organisation or entrance plan
          allOf:
            - $ref: '#/components/schemas/ClaimsDto'
      required:
        - password
        - sendInvitation
    UpdateUserDto:
      type: object
      properties:
        firstName:
          type: string
          maxLength: 255
          example: Jane
        lastName:
          type: string
          maxLength: 255
          example: Doe
        username:
          type: string
          description: Either one of username or e-mail is mandatory
          minLength: 6
          maxLength: 255
          example: myUserName
        email:
          type: string
          description: >-
            Either one of username or e-mail is mandatory. Should be a valid
            e-mail.
          maxLength: 255
          example: jane.doe@example.com
        password:
          type: string
          minLength: 6
          description: Password must contain a minimum of 6 characters
          example: MyStrong3x4mpl3P4ssword!
      required:
        - password
    GenericResponseDto:
      type: object
      properties:
        message:
          type: string
          readOnly: true
          example: Successfully uploaded file.
        details:
          type: array
          items:
            type: object
          example:
            - file: filename.csv
      required:
        - message
        - details
    InvitationsService:
      type: object
      properties: {}
    CreateOrganisationDto:
      type: object
      properties:
        uuid:
          type: string
          minLength: 36
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: CM.com NV
        cmAccountGuid:
          type: string
          minLength: 36
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        cmTicketingTechnicalLinkUuid:
          type: string
          minLength: 36
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        cmCrmId:
          type: number
          example: 123456
        email:
          type: string
          maxLength: 255
          description: Should be valid e-mail address
          example: jane.doe@example.com
        callbackUrl:
          type: string
          maxLength: 255
          description: Should be valid url. Will be used to POST scan events towards
          example: https://yourdomain.tld/scanning/callback
        callbackConfiguration:
          type: object
          description: Generic JSON configuration for callbacks
          example:
            apiKey: your-api-key
            apiSecret: your-api-secret
        upstreamPlatform:
          type: string
          enum:
            - ENMA_SUBSCRIBER
            - GENERAL_ADMISSION
            - SEATED_TICKETING
            - GLOBAL_TICKET
            - INTERSOLVE
            - PUBLIQ
            - YOURTICKETPROVIDER
            - PASS_TEST
            - PASS_NATIONAAL_MILITAIR_MUSEUM
            - PASS_WEC
            - PASS_CENTRAAL_MUSEUM
            - PHOENIX_DES_LUMIERES
            - PORT_DES_LUMIERES
            - SMOOTHR_DEMO_ACCOUNT
            - ENTRANCE_MANAGEMENT
            - STICHTING_KONINKLIJKE_DEFENSIEMUSEA
            - ELECTRIC_IBIZA_ENTERTAINMENT
            - MOMICE_KLM_OPEN
            - CUSTOMER_DATA_PLATFORM
            - GO_CITY
          example: GLOBAL_TICKET
      required:
        - name
        - email
        - upstreamPlatform
    Organisation:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: CM.com NV
        cmAccountGuid:
          type: string
          minLength: 36
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        cmTicketingTechnicalLinkUuid:
          type: string
          minLength: 36
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        cmCrmId:
          type: number
          example: 123456
        email:
          type: string
          maxLength: 255
          description: Should be valid e-mail address
          example: jane.doe@example.com
        upstreamPlatform:
          type: string
          enum:
            - ENMA_SUBSCRIBER
            - GENERAL_ADMISSION
            - SEATED_TICKETING
            - GLOBAL_TICKET
            - INTERSOLVE
            - PUBLIQ
            - YOURTICKETPROVIDER
            - PASS_TEST
            - PASS_NATIONAAL_MILITAIR_MUSEUM
            - PASS_WEC
            - PASS_CENTRAAL_MUSEUM
            - PHOENIX_DES_LUMIERES
            - PORT_DES_LUMIERES
            - SMOOTHR_DEMO_ACCOUNT
            - ENTRANCE_MANAGEMENT
            - STICHTING_KONINKLIJKE_DEFENSIEMUSEA
            - ELECTRIC_IBIZA_ENTERTAINMENT
            - MOMICE_KLM_OPEN
            - CUSTOMER_DATA_PLATFORM
            - GO_CITY
          example: GLOBAL_TICKET
      required:
        - uuid
        - name
        - email
        - upstreamPlatform
    OrganisationSettingDto:
      type: object
      properties:
        key:
          type: string
          enum:
            - SWA_ANALYTICS_PRESET
            - CREATE_DEFAULT_ENTRANCE_PLAN
            - TIMEZONE
            - ALWAYS_DISPLAY_ALL_PRODUCTS_IN_ANALYTICS
          example: SWA_ANALYTICS_PRESET
        config:
          type: object
          additionalProperties: true
          description: >-
            Free-form configuration for the setting. Shape depends on the
            setting key.
      required:
        - key
    OrganisationWithConfigDto:
      type: object
      properties:
        uuid:
          type: string
          readOnly: true
          example: 00000000-0000-0000-0000-000000000000
        cmAccountGuid:
          type: string
          readOnly: true
          example: 00000000-0000-0000-0000-000000000000
        cmTicketingTechnicalLinkUuid:
          type: string
          readOnly: true
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          readOnly: true
          example: CM.com NV
        email:
          type: string
          readOnly: true
          example: myOrganisation@cm.com
        upstreamPlatform:
          type: string
          readOnly: true
          enum:
            - ENMA_SUBSCRIBER
            - GENERAL_ADMISSION
            - SEATED_TICKETING
            - GLOBAL_TICKET
            - INTERSOLVE
            - PUBLIQ
            - YOURTICKETPROVIDER
            - PASS_TEST
            - PASS_NATIONAAL_MILITAIR_MUSEUM
            - PASS_WEC
            - PASS_CENTRAAL_MUSEUM
            - PHOENIX_DES_LUMIERES
            - PORT_DES_LUMIERES
            - SMOOTHR_DEMO_ACCOUNT
            - ENTRANCE_MANAGEMENT
            - STICHTING_KONINKLIJKE_DEFENSIEMUSEA
            - ELECTRIC_IBIZA_ENTERTAINMENT
            - MOMICE_KLM_OPEN
            - CUSTOMER_DATA_PLATFORM
            - GO_CITY
          example: GLOBAL_TICKET
        claims:
          type: array
          example:
            - EDITOR
            - ADMIN
          items:
            type: string
            enum:
              - OBSERVER
              - EDITOR
              - OWNER
              - ADMIN
              - SCAN_USER
              - SCAN_CHECKIN
              - SCAN_CHECKOUT
              - SCAN_CLICKER_CHECKIN
              - SCAN_CLICKER_CHECKOUT
              - SCAN_SEARCH
              - SCAN_VALIDATE
              - SCAN_ANALYTICS
        features:
          type: array
          example:
            - INTERSOLVE
          items:
            type: string
            enum:
              - INTERSOLVE
              - PUBLIQ
              - GLOBAL_TICKET
              - CHECK_IN_ENTIRE_ORDER
              - TIMESLOTS
              - ANALYTICS_REPORT
              - OFFLINE_SYNC_TODAYS_TIMESLOTS
              - VENUE_LINKING
              - TICKET_IMPORT
              - GO_CITY
        settings:
          example:
            - key: SWA_ANALYTICS_PRESET
              config:
                filterDateOption: TODAY
                filterPreset:
                  filterTimeslots: true
          type: array
          items:
            $ref: '#/components/schemas/OrganisationSettingDto'
        configurations:
          readOnly: true
          type: array
          items:
            type: string
      required:
        - configurations
    UpdateOrganisationDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
          example: CM.com NV
        cmAccountGuid:
          type: string
          minLength: 36
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        cmTicketingTechnicalLinkUuid:
          type: string
          minLength: 36
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        cmCrmId:
          type: number
          example: 123456
        email:
          type: string
          maxLength: 255
          description: Should be valid e-mail address
          example: jane.doe@example.com
        callbackUrl:
          type: string
          maxLength: 255
          description: Should be valid url. Will be used to POST scan events towards
          example: https://yourdomain.tld/scanning/callback
        callbackConfiguration:
          type: object
          description: Generic JSON configuration for callbacks
          example:
            apiKey: your-api-key
            apiSecret: your-api-secret
        upstreamPlatform:
          type: string
          enum:
            - ENMA_SUBSCRIBER
            - GENERAL_ADMISSION
            - SEATED_TICKETING
            - GLOBAL_TICKET
            - INTERSOLVE
            - PUBLIQ
            - YOURTICKETPROVIDER
            - PASS_TEST
            - PASS_NATIONAAL_MILITAIR_MUSEUM
            - PASS_WEC
            - PASS_CENTRAAL_MUSEUM
            - PHOENIX_DES_LUMIERES
            - PORT_DES_LUMIERES
            - SMOOTHR_DEMO_ACCOUNT
            - ENTRANCE_MANAGEMENT
            - STICHTING_KONINKLIJKE_DEFENSIEMUSEA
            - ELECTRIC_IBIZA_ENTERTAINMENT
            - MOMICE_KLM_OPEN
            - CUSTOMER_DATA_PLATFORM
            - GO_CITY
          example: GLOBAL_TICKET
    FeatureStateDto:
      type: object
      properties:
        key:
          type: string
          enum:
            - INTERSOLVE
            - PUBLIQ
            - GLOBAL_TICKET
            - CHECK_IN_ENTIRE_ORDER
            - TIMESLOTS
            - ANALYTICS_REPORT
            - OFFLINE_SYNC_TODAYS_TIMESLOTS
            - VENUE_LINKING
            - TICKET_IMPORT
            - GO_CITY
          example: GLOBAL_TICKET
        category:
          type: string
          enum:
            - FEATURE
            - SETTING
          example: FEATURE
        enabled:
          type: boolean
          example: false
          description: Whether the feature is enabled for the organisation.
        config:
          type: object
          additionalProperties: true
          nullable: true
          description: >-
            Free-form configuration for the feature. Shape depends on the
            feature key; null when unset.
      required:
        - key
        - category
        - enabled
    UpdateFeatureDto:
      type: object
      properties:
        enabled:
          type: boolean
          example: true
          description: Enable or disable the feature for the organisation.
        config:
          type: object
          additionalProperties: true
          description: >-
            Free-form configuration for the feature. When omitted, any existing
            config is preserved.
      required:
        - enabled
    SettingStateDto:
      type: object
      properties:
        key:
          type: string
          enum:
            - SWA_ANALYTICS_PRESET
            - CREATE_DEFAULT_ENTRANCE_PLAN
            - TIMEZONE
            - ALWAYS_DISPLAY_ALL_PRODUCTS_IN_ANALYTICS
          example: TIMEZONE
        category:
          type: string
          enum:
            - FEATURE
            - SETTING
          example: SETTING
        enabled:
          type: boolean
          example: true
          description: Whether the setting is enabled for the organisation.
        config:
          type: object
          additionalProperties: true
          nullable: true
          description: >-
            Free-form configuration for the setting. Shape depends on the
            setting key; null when unset.
      required:
        - key
        - category
        - enabled
    UpdateSettingDto:
      type: object
      properties:
        enabled:
          type: boolean
          example: true
          description: Enable or disable the setting for the organisation.
        config:
          type: object
          additionalProperties: true
          description: >-
            Free-form configuration for the setting. When omitted, any existing
            config is preserved.
      required:
        - enabled
    UpstreamPlatformEnum:
      type: string
      enum:
        - ENMA_SUBSCRIBER
        - GENERAL_ADMISSION
        - SEATED_TICKETING
        - GLOBAL_TICKET
        - INTERSOLVE
        - PUBLIQ
        - YOURTICKETPROVIDER
        - PASS_TEST
        - PASS_NATIONAAL_MILITAIR_MUSEUM
        - PASS_WEC
        - PASS_CENTRAAL_MUSEUM
        - PHOENIX_DES_LUMIERES
        - PORT_DES_LUMIERES
        - SMOOTHR_DEMO_ACCOUNT
        - ENTRANCE_MANAGEMENT
        - STICHTING_KONINKLIJKE_DEFENSIEMUSEA
        - ELECTRIC_IBIZA_ENTERTAINMENT
        - MOMICE_KLM_OPEN
        - CUSTOMER_DATA_PLATFORM
        - GO_CITY
      description: The upstream platform for which this configuration is intended
    CreateOrganisationConfigurationDto:
      type: object
      properties:
        upstreamPlatform:
          description: The upstream platform for which this configuration is intended
          example: INTERSOLVE
          allOf:
            - $ref: '#/components/schemas/UpstreamPlatformEnum'
        configuration:
          type: object
          description: Configuration object specific to the upstream platform
          example:
            apiKey: your-api-key
            apiSecret: your-api-secret
            propertyX: 1234
        callbackUrl:
          type: string
          maxLength: 255
          description: Should be valid url. Will be used to POST scan events towards
          example: https://yourdomain.tld/scanning/callback
      required:
        - upstreamPlatform
    OrganisationConfigurationResponseDto:
      type: object
      properties:
        upstreamPlatform:
          type: string
          enum:
            - ENMA_SUBSCRIBER
            - GENERAL_ADMISSION
            - SEATED_TICKETING
            - GLOBAL_TICKET
            - INTERSOLVE
            - PUBLIQ
            - YOURTICKETPROVIDER
            - PASS_TEST
            - PASS_NATIONAAL_MILITAIR_MUSEUM
            - PASS_WEC
            - PASS_CENTRAAL_MUSEUM
            - PHOENIX_DES_LUMIERES
            - PORT_DES_LUMIERES
            - SMOOTHR_DEMO_ACCOUNT
            - ENTRANCE_MANAGEMENT
            - STICHTING_KONINKLIJKE_DEFENSIEMUSEA
            - ELECTRIC_IBIZA_ENTERTAINMENT
            - MOMICE_KLM_OPEN
            - CUSTOMER_DATA_PLATFORM
            - GO_CITY
          example: INTERSOLVE
          description: The name of the upstream of the configuration
      required:
        - upstreamPlatform
    GoCityOfferDto:
      type: object
      properties:
        id:
          type: string
          example: ac7c9cec-3f8d-42a7-86cc-446fed191e3a
          description: Go City offer id
        name:
          type: string
          example: Heineken Experience
      required:
        - id
        - name
    GoCityTerminalProfileDto:
      type: object
      properties:
        terminalId:
          type: string
          example: apicmtest
          description: Go City terminal id (the integration username)
        displayName:
          type: string
          example: Heineken International B.V
        status:
          type: string
          example: ENABLED
          description: Terminal status as reported by Go City
        offers:
          type: array
          items:
            $ref: '#/components/schemas/GoCityOfferDto'
      required:
        - terminalId
        - displayName
        - offers
    OnboardingDto:
      type: object
      properties:
        organisation:
          description: Object of the organisation to be onboarded
          allOf:
            - $ref: '#/components/schemas/CreateOrganisationDto'
    CreateEntrancePlanDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 80
          example: Main Entrance
        description:
          type: string
          maxLength: 255
          example: Entrance plan for main entrance
        isDefault:
          type: boolean
          description: Mark an entrance plan as default (fallback) plan.
        isActive:
          type: boolean
          description: Sets an entranceplan active/inactive.
        startAt:
          format: date-time
          type: string
        endAt:
          format: date-time
          type: string
        scanMode:
          type: string
          enum:
            - OFFLINE_SYNC
            - ONLINE
          example: OFFLINE_SYNC
        parentId:
          type: string
          description: Make entrance plan a child of a parent plan (sub group)
          example: 00000000-0000-0000-0000-000000000000
      required:
        - name
        - isDefault
        - isActive
        - scanMode
        - parentId
    Event:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: CM.com Festival 2024
        startAt:
          format: date-time
          type: string
        endAt:
          format: date-time
          type: string
      required:
        - uuid
        - externalId
        - name
        - startAt
        - endAt
    VenueSection:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Northside Stand
      required:
        - uuid
        - externalId
        - name
    Venue:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: CM.com Arena
        venueSections:
          type: array
          items:
            $ref: '#/components/schemas/VenueSection'
      required:
        - uuid
        - externalId
        - name
        - venueSections
    Rule:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Scanning Rule All VIP tickets scannable twice
        maxValidations:
          type: number
          minimum: 0
          description: >-
            Amount a ticket can be validated (successfully scanned) on the rule.
            When 0 the ticket cannot be scanned.
        maxValidationScope:
          type: string
          enum:
            - UNRESTRICTED
            - DAILY
            - SAME_DAY
          example: UNRESTRICTED
          description: >-
            Defines the scope of maxValidations. UNRESTRICTED: total limit
            across entire validity period, DAILY: limit resets each day,
            SAME_DAY: all scans must occur on the same calendar day.
        validFrom:
          format: date-time
          type: string
          description: Barcodes can be scanned from this date onwards
        validUntil:
          format: date-time
          type: string
          description: Barcodes can be scanned until this date.
        daysValidAfterPurchase:
          type: number
          description: >-
            Amount of days a barcode can be validated after its issued date
            (whole days, timestamp is not taken into account)
        shouldValidateTimeslotMoment:
          type: boolean
          description: >-
            If set to true a barcode with a timeslot can only be scanned on the
            (whole) day of the timeslot
        minutesBeforeTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes before the timeslot moment a barcode may be scanned. When
            set (together with/or minutesAfterTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        minutesAfterTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes after the timeslot moment a barcode may be scanned. When set
            (together with/or minutesBeforeTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        shouldValidateOnParent:
          type: boolean
          description: >-
            If set to true barcodes will be validated on the top-level parent of
            the entrance plan.
        scanColour:
          type: string
          default: '#3ddc97'
          description: >-
            Colour (hexcode) that is used on scanner display for successful
            checkins (Default is green).
        scanMessage:
          type: string
          maxLength: 255
          default: Barcode successfully checked in.
          description: Message displayed on successful checkin.
        requiresPhotoVerification:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to verify the
            visitor against a photo (e.g. Museumpass Belgium) before it is
            registered.
        requiresConfirmationQuestion:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to answer a
            confirmation question before it is registered.
        confirmationQuestion:
          type: string
          maxLength: 80
          example: Does this visitor meet the 18+ age requirement?
          description: Question shown to staff when requiresConfirmationQuestion is true.
        eventId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of event the rule applies to
        venueSectionId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of venueSection the rule applies to
        productId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of product the rule applies to
        primaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        secondaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        tertiaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
      required:
        - uuid
        - name
        - maxValidations
        - maxValidationScope
        - shouldValidateTimeslotMoment
        - shouldValidateOnParent
        - requiresPhotoVerification
        - requiresConfirmationQuestion
    Condition:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: 'Scan Condition: Must be scanned once on entrance plan X'
        subject:
          type: string
          enum:
            - SUCCESS_SCANS_AMOUNT
            - TODAY_SUCCESS_SCANS_AMOUNT
            - IS_CHECKED_IN
          example: SUCCESS_SCANS_AMOUNT
        operator:
          type: string
          enum:
            - EQUALS
            - NOT_EQUALS
            - CONTAINS
            - NOT_CONTAINS
            - GREATER_THAN
            - GREATER_THAN_OR_EQUAL_TO
            - LOWER_THAN
            - LOWER_THAN_OR_EQUAL_TO
            - STARTS_WITH
            - ENDS_WITH
            - IS_BEFORE
            - IS_AFTER
          example: GREATER_THAN
        value:
          description: Value to compare the condition operator to.
          oneOf:
            - type: string
            - type: number
            - type: boolean
            - type: object
          example: 1
        entrancePlanId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: uuid of entrance plan the condition applies to
        ruleId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: uuid of rule the condition applies to
      required:
        - uuid
        - name
        - subject
        - operator
        - value
    EntrancePlan:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Main Entrance
        description:
          type: string
          maxLength: 255
          example: Entrance plan for main entrance
        isDefault:
          type: boolean
          description: Marks an entrancePlan as default plan.
        isActive:
          type: boolean
          description: Sets an entrancePlan as active/inactive.
        startAt:
          format: date-time
          type: string
        endAt:
          format: date-time
          type: string
        scanMode:
          type: string
          enum:
            - OFFLINE_SYNC
            - ONLINE
          example: OFFLINE_SYNC
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - NO_RULES
          example: ACTIVE
        children:
          type: array
          items:
            type: object
        events:
          type: array
          items:
            $ref: '#/components/schemas/Event'
        venues:
          type: array
          items:
            $ref: '#/components/schemas/Venue'
        rules:
          type: array
          items:
            $ref: '#/components/schemas/Rule'
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/Condition'
        organisation:
          type: object
      required:
        - uuid
        - name
        - isDefault
        - isActive
        - scanMode
    DuplicateEntrancePlansDto:
      type: object
      properties:
        entrancePlanUuids:
          description: >-
            Array of entrance plan uuids to duplicate. Up to 50 per call. Only
            the listed uuids are cloned: to duplicate a collection together with
            its children, include the children's uuids explicitly. A collection
            uuid passed without any of its children is cloned as an empty
            collection.
          type: array
          items:
            type: array
      required:
        - entrancePlanUuids
    UpdateEntrancePlanDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 80
          example: Main Entrance
        description:
          type: string
          maxLength: 255
          example: Entrance plan for main entrance
        isDefault:
          type: boolean
          description: Mark an entrance plan as default (fallback) plan.
        isActive:
          type: boolean
          description: Sets an entranceplan active/inactive.
        startAt:
          format: date-time
          type: string
        endAt:
          format: date-time
          type: string
        scanMode:
          type: string
          enum:
            - OFFLINE_SYNC
            - ONLINE
          example: OFFLINE_SYNC
        parentId:
          type: string
          description: Make entrance plan a child of a parent plan (sub group)
          example: 00000000-0000-0000-0000-000000000000
    CreateEventDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: CM.com Festival 2024
        startAt:
          format: date-time
          type: string
        endAt:
          format: date-time
          type: string
      required:
        - externalId
        - name
    Product:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Entrance Ticket
        productType:
          type: string
          enum:
            - REGULAR
            - BOX_OFFICE
            - GUEST_LIST
            - NON_ENTRY_PRODUCT
          example: REGULAR
      required:
        - uuid
        - externalId
        - name
        - productType
    UpdateEventDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: CM.com Festival 2024
        startAt:
          format: date-time
          type: string
        endAt:
          format: date-time
          type: string
    CreateProductDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Entrance Ticket
        productType:
          type: string
          enum:
            - REGULAR
            - BOX_OFFICE
            - GUEST_LIST
            - NON_ENTRY_PRODUCT
          example: REGULAR
      required:
        - externalId
        - name
        - productType
    UpdateProductDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Entrance Ticket
        productType:
          type: string
          enum:
            - REGULAR
            - BOX_OFFICE
            - GUEST_LIST
            - NON_ENTRY_PRODUCT
          example: REGULAR
    CreateRuleDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
          example: Scanning Rule All VIP tickets scannable twice
        maxValidations:
          type: number
          minimum: 0
          description: >-
            Amount a ticket can be validated (successfully scanned) on the rule.
            When 0 the ticket cannot be scanned.
        maxValidationScope:
          type: string
          enum:
            - UNRESTRICTED
            - DAILY
            - SAME_DAY
          example: UNRESTRICTED
          description: >-
            Defines the scope of maxValidations. UNRESTRICTED: total limit
            across entire validity period, DAILY: limit resets each day,
            SAME_DAY: all scans must occur on the same calendar day.
        validFrom:
          format: date-time
          type: string
          description: Barcodes can be scanned from this date onwards
        validUntil:
          format: date-time
          type: string
          description: Barcodes can be scanned until this date.
        daysValidAfterPurchase:
          type: number
          description: >-
            Amount of days a barcode can be validated after its issued date
            (whole days, timestamp is not taken into account)
        shouldValidateTimeslotMoment:
          type: boolean
          description: >-
            If set to true a barcode with a timeslot can only be scanned on the
            (whole) day of the timeslot
        minutesBeforeTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes before the timeslot moment a barcode may be scanned. When
            set (with or without minutesAfterTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        minutesAfterTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes after the timeslot moment a barcode may be scanned. When set
            (with or without minutesBeforeTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        shouldValidateOnParent:
          type: boolean
          description: >-
            If set to true barcodes will be validated on the top-level parent of
            the entrance plan.
        scanColour:
          type: string
          default: '#3ddc97'
          description: >-
            Colour (hexcode) that is used on scanner display for successful
            checkins (Default is green).
        scanMessage:
          type: string
          maxLength: 255
          default: Barcode successfully checked in.
          description: Message displayed on successful checkin.
        requiresPhotoVerification:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to verify the
            visitor against a photo (e.g. Museumpass Belgium) before it is
            registered.
        requiresConfirmationQuestion:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to answer a
            confirmation question before it is registered.
        confirmationQuestion:
          type: string
          maxLength: 80
          example: Does this visitor meet the 18+ age requirement?
          description: >-
            Question shown to staff. Required when requiresConfirmationQuestion
            is true.
        eventId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of event the rule applies to
        primaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        secondaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        tertiaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        productIds:
          description: Array of product externalIds the rule applies to
          type: array
          items:
            type: array
        venueSectionIds:
          description: Array of venue section externalIds the rule applies to
          type: array
          items:
            type: array
      required:
        - name
        - maxValidations
        - maxValidationScope
        - shouldValidateTimeslotMoment
        - shouldValidateOnParent
        - requiresPhotoVerification
        - requiresConfirmationQuestion
    CreateRulesBulkDto:
      type: object
      properties:
        rules:
          description: Array of scanning rules to create in a single call.
          type: array
          items:
            $ref: '#/components/schemas/CreateRuleDto'
      required:
        - rules
    RuleDto:
      type: object
      properties:
        uuid:
          type: string
          readOnly: true
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Scanning Rule All VIP tickets scannable twice
        maxValidations:
          type: number
          minimum: 0
          description: >-
            Amount a ticket can be validated (successfully scanned) on the rule.
            When 0 the ticket cannot be scanned.
        maxValidationScope:
          type: string
          enum:
            - UNRESTRICTED
            - DAILY
            - SAME_DAY
          example: UNRESTRICTED
          description: >-
            Defines the scope of maxValidations. UNRESTRICTED: total limit
            across entire validity period, DAILY: limit resets each day,
            SAME_DAY: all scans must occur on the same calendar day.
        validFrom:
          format: date-time
          type: string
          description: Barcodes can be scanned from this date onwards
        validUntil:
          format: date-time
          type: string
          description: Barcodes can be scanned until this date.
        daysValidAfterPurchase:
          type: number
          description: >-
            Amount of days a barcode can be validated after its issued date
            (whole days, timestamp is not taken into account)
        shouldValidateTimeslotMoment:
          type: boolean
          description: >-
            If set to true a barcode with a timeslot can only be scanned on the
            (whole) day of the timeslot
        minutesBeforeTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes before the timeslot moment a barcode may be scanned. When
            set (with or without minutesAfterTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        minutesAfterTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes after the timeslot moment a barcode may be scanned. When set
            (with or without minutesBeforeTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        shouldValidateOnParent:
          type: boolean
          description: >-
            If set to true barcodes will be validated on the top-level parent of
            the entrance plan.
        scanColour:
          type: string
          default: '#3ddc97'
          description: >-
            Colour (hexcode) that is used on scanner display for successful
            checkins (Default is green).
        scanMessage:
          type: string
          maxLength: 255
          default: Barcode successfully checked in.
          description: Message displayed on successful checkin.
        requiresPhotoVerification:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to verify the
            visitor against a photo (e.g. Museumpass Belgium) before it is
            registered.
        requiresConfirmationQuestion:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to answer a
            confirmation question before it is registered.
        confirmationQuestion:
          type: string
          maxLength: 80
          example: Does this visitor meet the 18+ age requirement?
          description: >-
            Question shown to staff. Required when requiresConfirmationQuestion
            is true.
        venueSectionId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of venueSection the rule applies to
        eventId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of event the rule applies to
        productId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of product the rule applies to
        primaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        secondaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        tertiaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
      required:
        - uuid
        - name
        - maxValidations
        - maxValidationScope
        - shouldValidateTimeslotMoment
        - shouldValidateOnParent
        - requiresPhotoVerification
        - requiresConfirmationQuestion
    BulkRuleChangesDto:
      type: object
      properties:
        maxValidations:
          type: number
          minimum: 0
          description: >-
            Amount a ticket can be validated (successfully scanned) on the rule.
            When 0 the ticket cannot be scanned.
        maxValidationScope:
          type: string
          enum:
            - UNRESTRICTED
            - DAILY
            - SAME_DAY
          example: UNRESTRICTED
          description: >-
            Defines the scope of maxValidations. UNRESTRICTED: total limit
            across entire validity period, DAILY: limit resets each day,
            SAME_DAY: all scans must occur on the same calendar day.
        validFrom:
          format: date-time
          type: string
          description: Barcodes can be scanned from this date onwards
        validUntil:
          format: date-time
          type: string
          description: Barcodes can be scanned until this date.
        daysValidAfterPurchase:
          type: number
          description: >-
            Amount of days a barcode can be validated after its issued date
            (whole days, timestamp is not taken into account)
        shouldValidateTimeslotMoment:
          type: boolean
          description: >-
            If set to true a barcode with a timeslot can only be scanned on the
            (whole) day of the timeslot
        minutesBeforeTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes before the timeslot moment a barcode may be scanned. When
            set (with or without minutesAfterTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        minutesAfterTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes after the timeslot moment a barcode may be scanned. When set
            (with or without minutesBeforeTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        shouldValidateOnParent:
          type: boolean
          description: >-
            If set to true barcodes will be validated on the top-level parent of
            the entrance plan.
        scanColour:
          type: string
          default: '#3ddc97'
          description: >-
            Colour (hexcode) that is used on scanner display for successful
            checkins (Default is green).
        scanMessage:
          type: string
          maxLength: 255
          default: Barcode successfully checked in.
          description: Message displayed on successful checkin.
        requiresPhotoVerification:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to verify the
            visitor against a photo (e.g. Museumpass Belgium) before it is
            registered.
        requiresConfirmationQuestion:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to answer a
            confirmation question before it is registered.
        confirmationQuestion:
          type: string
          maxLength: 80
          example: Does this visitor meet the 18+ age requirement?
          description: >-
            Question shown to staff. Required when requiresConfirmationQuestion
            is true.
        venueSectionId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of venueSection the rule applies to
        eventId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of event the rule applies to
        productId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of product the rule applies to
        primaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        secondaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        tertiaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
    BulkUpdateRulesDto:
      type: object
      properties:
        ruleUuids:
          description: UUIDs of the rules the operation should be applied to.
          type: array
          items:
            type: array
        changes:
          description: Scan-config changes applied to every rule listed in ruleUuids.
          allOf:
            - $ref: '#/components/schemas/BulkRuleChangesDto'
      required:
        - ruleUuids
        - changes
    UpdateRuleDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
          example: Scanning Rule All VIP tickets scannable twice
        maxValidations:
          type: number
          minimum: 0
          description: >-
            Amount a ticket can be validated (successfully scanned) on the rule.
            When 0 the ticket cannot be scanned.
        maxValidationScope:
          type: string
          enum:
            - UNRESTRICTED
            - DAILY
            - SAME_DAY
          example: UNRESTRICTED
          description: >-
            Defines the scope of maxValidations. UNRESTRICTED: total limit
            across entire validity period, DAILY: limit resets each day,
            SAME_DAY: all scans must occur on the same calendar day.
        validFrom:
          format: date-time
          type: string
          description: Barcodes can be scanned from this date onwards
        validUntil:
          format: date-time
          type: string
          description: Barcodes can be scanned until this date.
        daysValidAfterPurchase:
          type: number
          description: >-
            Amount of days a barcode can be validated after its issued date
            (whole days, timestamp is not taken into account)
        shouldValidateTimeslotMoment:
          type: boolean
          description: >-
            If set to true a barcode with a timeslot can only be scanned on the
            (whole) day of the timeslot
        minutesBeforeTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes before the timeslot moment a barcode may be scanned. When
            set (with or without minutesAfterTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        minutesAfterTimeslot:
          type: number
          minimum: 0
          maximum: 120
          description: >-
            Minutes after the timeslot moment a barcode may be scanned. When set
            (with or without minutesBeforeTimeslot) the scan is validated
            against an exact time window around the timeslot instead of the
            whole day. Only applies when shouldValidateTimeslotMoment is true.
        shouldValidateOnParent:
          type: boolean
          description: >-
            If set to true barcodes will be validated on the top-level parent of
            the entrance plan.
        scanColour:
          type: string
          default: '#3ddc97'
          description: >-
            Colour (hexcode) that is used on scanner display for successful
            checkins (Default is green).
        scanMessage:
          type: string
          maxLength: 255
          default: Barcode successfully checked in.
          description: Message displayed on successful checkin.
        requiresPhotoVerification:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to verify the
            visitor against a photo (e.g. Museumpass Belgium) before it is
            registered.
        requiresConfirmationQuestion:
          type: boolean
          description: >-
            If set to true a successful checkin requires staff to answer a
            confirmation question before it is registered.
        confirmationQuestion:
          type: string
          maxLength: 80
          example: Does this visitor meet the 18+ age requirement?
          description: >-
            Question shown to staff. Required when requiresConfirmationQuestion
            is true.
        venueSectionId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of venueSection the rule applies to
        eventId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of event the rule applies to
        productId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of product the rule applies to
        primaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        secondaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
        tertiaryConstraintId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: externalId of constraint the rule applies to
    BulkRuleUuidsDto:
      type: object
      properties:
        ruleUuids:
          description: UUIDs of the rules the operation should be applied to.
          type: array
          items:
            type: array
      required:
        - ruleUuids
    CreateVenueSectionDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          minLength: 1
          maxLength: 255
          example: Northside Stand
      required:
        - externalId
        - name
    CreateVenueDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          minLength: 1
          maxLength: 255
          example: CM.com Arena
        venueSections:
          type: array
          items:
            $ref: '#/components/schemas/CreateVenueSectionDto'
      required:
        - externalId
        - name
        - venueSections
    UpdateVenueDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          minLength: 1
          maxLength: 255
          example: CM.com Arena
        venueSections:
          type: array
          items:
            $ref: '#/components/schemas/CreateVenueSectionDto'
    UpdateVenueSectionDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          minLength: 1
          maxLength: 255
          example: Northside Stand
    CreateConstraintDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Special access group
      required:
        - externalId
        - name
    Constraint:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Special access group
      required:
        - uuid
        - externalId
        - name
    UpdateConstraintDto:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Special access group
    CreateUploadDto:
      type: object
      properties:
        name:
          type: string
          description: >-
            Provide a name for your import, this way you can recognize it easier
            later on.
        notificationType:
          type: string
          enum:
            - NONE
            - EMAIL
          example: EMAIL
          description: Type of notification uploader wishes to receive.
        isVisible:
          type: string
          description: >-
            If set to true the upload will be displayed under imports in the
            dashboard.
          default: false
      required:
        - name
        - notificationType
        - isVisible
    ValidateScanDto:
      type: object
      properties:
        ulid:
          type: string
          maxLength: 26
          example: 01J96A3A77SVXJKRZNGV386Q7G
          description: Unique (ULID) identifier of a scan
        scannedValue:
          type: string
          maxLength: 255
          example: CMLQFLGRPA
          description: Value (barcode) to be validated in the scan api
        deviceId:
          type: string
          maxLength: 5
          example: 9UY8H
          description: Generated identifier of the device
        deviceLabel:
          type: string
          maxLength: 25
          example: Entrance Scanner 1
          description: Custom label of the device
        shouldValidateScans:
          type: boolean
          example: true
          default: true
          description: >-
            Boolean to determine whether the validation should consider previous
            scans.
      required:
        - ulid
        - scannedValue
        - deviceId
        - deviceLabel
        - shouldValidateScans
    CreateScanDto:
      type: object
      properties:
        ulid:
          type: string
          maxLength: 26
          example: 01J96A3A77SVXJKRZNGV386Q7G
          description: Unique (ULID) identifier of a scan
        scannedValue:
          type: string
          maxLength: 255
          example: CMLQFLGRPA
          description: Value (barcode) to be validated in the scan api
        deviceId:
          type: string
          maxLength: 5
          example: 9UY8H
          description: Generated identifier of the device
        deviceLabel:
          type: string
          maxLength: 25
          example: Entrance Scanner 1
          description: Custom label of the device
      required:
        - ulid
        - scannedValue
        - deviceId
        - deviceLabel
    ScanValidationStepDto:
      type: object
      properties:
        requiresPhotoVerification:
          type: boolean
          description: >-
            Staff must verify the visitor against a photo (e.g. Museumpass
            Belgium).
        requiresConfirmationQuestion:
          type: boolean
          description: Staff must answer a confirmation question.
        confirmationQuestion:
          type: string
          readOnly: true
          example: Does this visitor meet the 18+ age requirement?
        photo:
          type: string
          readOnly: true
          example: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...
      required:
        - requiresPhotoVerification
        - requiresConfirmationQuestion
        - confirmationQuestion
        - photo
    ScanResultDto:
      type: object
      properties:
        ulid:
          type: string
          readOnly: true
          example: 01J96GHPJP8TKGTHCYP6V6HVAR
        scannedValue:
          type: string
          readOnly: true
          example: CMLQFLGRPA
        scannedAt:
          format: date-time
          type: string
          readOnly: true
        scanStatusCode:
          type: number
          description: Result of the scan
          enum:
            - 100
            - 200
            - 201
            - 300
            - 301
            - 400
            - 401
            - 402
            - 403
            - 404
            - 405
            - 406
            - 407
            - 408
            - 409
            - 410
            - 411
            - 412
            - 413
          example: 200
        scanMessage:
          type: string
          readOnly: true
          example: Barcode successfully checked in
        errorDetails:
          type: object
          readOnly: true
        scanColour:
          type: string
          description: Hex colour code to be used for the checkin
          example: '#3ddc97'
        deviceId:
          type: string
          description: Generated identifier of the device
          example: 9UY8G
        deviceLabel:
          type: string
          description: Custom label of the device
          example: Scanner Entrance 1
        name:
          type: string
          readOnly: true
          example: Jane Doe
        productName:
          type: string
          readOnly: true
          example: VIP Ticket
        venueSectionName:
          type: string
          readOnly: true
          example: Northside Stand
        ticketDetails:
          type: string
          readOnly: true
          example: Row 8, seat 15
        timeSlotMomentAt:
          format: date-time
          type: string
          readOnly: true
        validationStep:
          description: >-
            Present when scanStatusCode is VERIFICATION_REQUIRED. Describes the
            manual verification the scanner must perform before the check-in can
            be confirmed or denied.
          allOf:
            - $ref: '#/components/schemas/ScanValidationStepDto'
      required:
        - ulid
        - scannedValue
        - scannedAt
        - scanStatusCode
        - scanMessage
        - errorDetails
        - scanColour
        - deviceId
        - deviceLabel
        - name
        - productName
        - venueSectionName
        - ticketDetails
        - timeSlotMomentAt
    OrderScanTicketDto:
      type: object
      properties:
        barcode:
          type: string
          readOnly: true
          example: CMLQFLGRPA
        externalBarcode:
          type: string
          example: EXT-CMLQFLGRPA
        ticketUuid:
          type: string
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          readOnly: true
          example: Jane Doe
        productName:
          type: string
          readOnly: true
          example: VIP Ticket
        venueSectionName:
          type: string
          readOnly: true
          example: Northside Stand
        timeSlotMomentAt:
          format: date-time
          type: string
          readOnly: true
        checkedInAt:
          format: date-time
          type: string
          readOnly: true
          example: '2025-06-16T11:34:51.000Z'
        scanStatusCode:
          type: number
          enum:
            - 100
            - 200
            - 201
            - 300
            - 301
            - 400
            - 401
            - 402
            - 403
            - 404
            - 405
            - 406
            - 407
            - 408
            - 409
            - 410
            - 411
            - 412
            - 413
          example: 200
        scanMessage:
          type: string
          readOnly: true
          example: Successfully checked in.
        scanColour:
          type: string
          readOnly: true
          example: '#3ddc97'
        group:
          type: string
          enum:
            - VALID_HERE
            - ALREADY_CHECKED_IN
            - NOT_VALID_HERE
            - OTHER_DENIED
          example: VALID_HERE
        requiresVerification:
          type: boolean
          example: false
        isScannedTicket:
          type: boolean
          description: True for the ticket whose barcode was actually scanned
          example: true
      required:
        - barcode
        - name
        - productName
        - venueSectionName
        - timeSlotMomentAt
        - checkedInAt
        - scanStatusCode
        - scanMessage
        - scanColour
        - group
        - requiresVerification
        - isScannedTicket
    OrderScanSummaryDto:
      type: object
      properties:
        total:
          type: number
          example: 5
        validHere:
          type: number
          example: 3
        alreadyCheckedIn:
          type: number
          example: 1
        notValidHere:
          type: number
          example: 1
        otherDenied:
          type: number
          example: 0
        requiresVerification:
          type: number
          example: 0
      required:
        - total
        - validHere
        - alreadyCheckedIn
        - notValidHere
        - otherDenied
        - requiresVerification
    OrderScanPreviewDto:
      type: object
      properties:
        orderId:
          type: string
          readOnly: true
          example: ORDER-12345
        tickets:
          type: array
          items:
            $ref: '#/components/schemas/OrderScanTicketDto'
        summary:
          $ref: '#/components/schemas/OrderScanSummaryDto'
      required:
        - orderId
        - tickets
        - summary
    CheckInOrderDto:
      type: object
      properties:
        scans:
          maxItems: 250
          description: >-
            The selected tickets to check in, each with its own ulid and
            scannedValue (barcode).
          type: array
          items:
            $ref: '#/components/schemas/CreateScanDto'
      required:
        - scans
    OrderScanResultTicketDto:
      type: object
      properties:
        barcode:
          type: string
          readOnly: true
          example: CMLQFLGRPA
        ulid:
          type: string
          readOnly: true
          example: 01J96A3A77SVXJKRZNGV386Q7G
        outcome:
          type: string
          enum:
            - COMMITTED
            - SKIPPED
            - FAILED
          example: COMMITTED
        scanStatusCode:
          type: number
          enum:
            - 100
            - 200
            - 201
            - 300
            - 301
            - 400
            - 401
            - 402
            - 403
            - 404
            - 405
            - 406
            - 407
            - 408
            - 409
            - 410
            - 411
            - 412
            - 413
          example: 200
        scanMessage:
          type: string
          readOnly: true
          example: Successfully checked in.
        scanColour:
          type: string
          readOnly: true
          example: '#3ddc97'
        name:
          type: string
          readOnly: true
          example: Jane Doe
        productName:
          type: string
          readOnly: true
          example: VIP Ticket
        venueSectionName:
          type: string
          readOnly: true
          example: Northside Stand
      required:
        - barcode
        - ulid
        - outcome
        - scanStatusCode
        - scanMessage
        - scanColour
        - name
        - productName
        - venueSectionName
    OrderScanResultSummaryDto:
      type: object
      properties:
        total:
          type: number
          example: 4
        committed:
          type: number
          example: 3
        skipped:
          type: number
          example: 1
        failed:
          type: number
          example: 0
      required:
        - total
        - committed
        - skipped
        - failed
    OrderScanResultDto:
      type: object
      properties:
        orderId:
          type: string
          readOnly: true
          example: ORDER-12345
        tickets:
          type: array
          items:
            $ref: '#/components/schemas/OrderScanResultTicketDto'
        summary:
          $ref: '#/components/schemas/OrderScanResultSummaryDto'
      required:
        - orderId
        - tickets
        - summary
    CreateCheckOutDto:
      type: object
      properties:
        ulid:
          type: string
          maxLength: 26
          example: 01J96A3A77SVXJKRZNGV386Q7G
          description: Unique (ULID) identifier of a scan
        scannedValue:
          type: string
          maxLength: 255
          example: CMLQFLGRPA
          description: Value (barcode) to be validated in the scan api
        deviceId:
          type: string
          maxLength: 5
          example: 9UY8H
          description: Generated identifier of the device
        deviceLabel:
          type: string
          maxLength: 25
          example: Entrance Scanner 1
          description: Custom label of the device
        revalidate:
          type: boolean
          example: true
          default: false
          description: >-
            Boolean to determine whether the barcode is valid again after
            checkout (default false).
      required:
        - ulid
        - scannedValue
        - deviceId
        - deviceLabel
        - revalidate
    ScanLog:
      type: object
      properties:
        externalId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
        scannedValue:
          type: string
          maxLength: 255
          example: CMLQLGRPA
        scannedAt:
          format: date-time
          type: string
        scanStatusCode:
          type: number
          description: Result of the scan
          enum:
            - 100
            - 200
            - 201
            - 300
            - 301
            - 400
            - 401
            - 402
            - 403
            - 404
            - 405
            - 406
            - 407
            - 408
            - 409
            - 410
            - 411
            - 412
            - 413
          example: 200
        errorDetails:
          type: string
          readOnly: true
        deviceId:
          type: string
          readOnly: true
          example: 9UY8G
        deviceLabel:
          type: string
          readOnly: true
          example: Scanner Entrance 1
        mdmDeviceInfo:
          type: object
          readOnly: true
        ticket:
          $ref: '#/components/schemas/Ticket'
      required:
        - externalId
        - scannedValue
        - scannedAt
        - scanStatusCode
        - errorDetails
        - deviceId
        - deviceLabel
        - mdmDeviceInfo
        - ticket
    ScanProgressResponseDto:
      type: object
      properties:
        checkins:
          readOnly: true
          type: array
          items:
            type: string
        errors:
          readOnly: true
          type: array
          items:
            type: string
        checkouts:
          readOnly: true
          type: array
          items:
            type: string
        groupIntervalMs:
          type: number
          readOnly: true
        effectiveEndAt:
          format: date-time
          type: string
          readOnly: true
      required:
        - checkins
        - errors
        - checkouts
        - groupIntervalMs
        - effectiveEndAt
    AnalyticsWidgetResponseDto:
      type: object
      properties:
        currentVisitors:
          type: number
          readOnly: true
        totalVisitors:
          type: number
          readOnly: true
        totalCheckouts:
          type: number
          readOnly: true
        showUpPercentage:
          type: number
          readOnly: true
        totalTickets:
          type: number
          readOnly: true
        otherTickets:
          type: number
          readOnly: true
      required:
        - currentVisitors
        - totalVisitors
        - totalCheckouts
        - showUpPercentage
        - totalTickets
        - otherTickets
    ScansByProductItemDto:
      type: object
      properties: {}
    ScansByVenueItemDto:
      type: object
      properties: {}
    CreateConditionDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
          example: 'Scan Condition: Should be scanned once on plan X'
        subject:
          type: string
          enum:
            - SUCCESS_SCANS_AMOUNT
            - TODAY_SUCCESS_SCANS_AMOUNT
            - IS_CHECKED_IN
          example: SUCCESS_SCANS_AMOUNT
        operator:
          type: string
          enum:
            - EQUALS
            - NOT_EQUALS
            - CONTAINS
            - NOT_CONTAINS
            - GREATER_THAN
            - GREATER_THAN_OR_EQUAL_TO
            - LOWER_THAN
            - LOWER_THAN_OR_EQUAL_TO
            - STARTS_WITH
            - ENDS_WITH
            - IS_BEFORE
            - IS_AFTER
          example: GREATER_THAN
        value:
          description: Valid inputs are string, number, boolean, object or date
          oneOf:
            - type: string
            - type: number
            - type: boolean
            - type: object
          example: 1
        conditionEntrancePlanId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: uuid of entrance plan the condition applies to
        ruleId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: uuid of rule the condition applies to
      required:
        - name
        - subject
        - operator
        - value
    ConditionDto:
      type: object
      properties:
        uuid:
          type: string
          readOnly: true
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: 'Scan Condition: Should be scanned once on plan X'
        subject:
          type: string
          enum:
            - SUCCESS_SCANS_AMOUNT
            - TODAY_SUCCESS_SCANS_AMOUNT
            - IS_CHECKED_IN
          example: SUCCESS_SCANS_AMOUNT
        operator:
          type: string
          enum:
            - EQUALS
            - NOT_EQUALS
            - CONTAINS
            - NOT_CONTAINS
            - GREATER_THAN
            - GREATER_THAN_OR_EQUAL_TO
            - LOWER_THAN
            - LOWER_THAN_OR_EQUAL_TO
            - STARTS_WITH
            - ENDS_WITH
            - IS_BEFORE
            - IS_AFTER
          example: GREATER_THAN
        value:
          description: Valid inputs are string, number, boolean, object or date
          oneOf:
            - type: string
            - type: number
            - type: boolean
            - type: object
          example: 1
        conditionEntrancePlanId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: uuid of entrance plan the condition applies to
        ruleId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: uuid of rule the condition applies to
      required:
        - uuid
        - name
        - subject
        - operator
        - value
    UpdateConditionDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
          example: 'Scan Condition: Should be scanned once on plan X'
        subject:
          type: string
          enum:
            - SUCCESS_SCANS_AMOUNT
            - TODAY_SUCCESS_SCANS_AMOUNT
            - IS_CHECKED_IN
          example: SUCCESS_SCANS_AMOUNT
        operator:
          type: string
          enum:
            - EQUALS
            - NOT_EQUALS
            - CONTAINS
            - NOT_CONTAINS
            - GREATER_THAN
            - GREATER_THAN_OR_EQUAL_TO
            - LOWER_THAN
            - LOWER_THAN_OR_EQUAL_TO
            - STARTS_WITH
            - ENDS_WITH
            - IS_BEFORE
            - IS_AFTER
          example: GREATER_THAN
        value:
          description: Valid inputs are string, number, boolean, object or date
          oneOf:
            - type: string
            - type: number
            - type: boolean
            - type: object
          example: 1
        conditionEntrancePlanId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: uuid of entrance plan the condition applies to
        ruleId:
          type: string
          maxLength: 255
          example: 00000000-0000-0000-0000-000000000000
          description: uuid of rule the condition applies to
      required:
        - name
        - subject
        - operator
        - value
    Import:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 255
          example: Import name
        importedRecords:
          type: number
          readOnly: true
        failedRecords:
          type: number
          readOnly: true
        errorDetails:
          readOnly: true
          type: array
          items:
            type: string
        completedAt:
          format: date-time
          type: string
          readOnly: true
        status:
          type: string
          readOnly: true
          enum:
            - SCHEDULED
            - RUNNING
            - COMPLETED
            - COMPLETED_WITH_FAILURES
            - FAILED
          example: COMPLETED
        type:
          type: string
          readOnly: true
          enum:
            - TICKET
            - EVENT
            - VENUE
            - PRODUCT
          example: TICKET
        isVisible:
          type: boolean
          description: >-
            If set to true the upload will be displayed under imports in the
            dashboard.
          default: false
      required:
        - uuid
        - name
        - importedRecords
        - failedRecords
        - errorDetails
        - completedAt
        - status
        - type
        - isVisible
    DeleteImportsDto:
      type: object
      properties:
        uuids:
          description: Array of import uuids
          type: array
          items:
            type: array
      required:
        - uuids
    ScansByEntrancePlanItemDto:
      type: object
      properties: {}
    ClickerScansItemDto:
      type: object
      properties:
        entrancePlanId:
          type: string
          description: Entrance plan uuid
        name:
          type: string
        arrivals:
          type: number
          description: Clicker arrivals (ARRIVAL, 201)
        departures:
          type: number
          description: Clicker departures (ticketless DEPARTURE, 301)
        net:
          type: number
          description: >-
            Arrivals minus departures; can be negative when departures were
            tapped more often
      required:
        - entrancePlanId
        - arrivals
        - departures
        - net
    FilterPreset:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          maxLength: 40
          example: Morning filters
        scope:
          type: string
          enum:
            - USER
            - ORGANISATION
          example: USER
        filterParams:
          type: object
      required:
        - uuid
        - name
        - scope
        - filterParams
    CreateFilterPresetDto:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 40
          example: Morning filters
        scope:
          type: string
          enum:
            - USER
            - ORGANISATION
          example: USER
        filterParams:
          type: object
          description: The analytics filter configuration to save as a preset
      required:
        - name
        - scope
        - filterParams
    UpdateFilterPresetDto:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 40
          example: Updated preset name
        scope:
          type: string
          enum:
            - USER
            - ORGANISATION
          example: USER
        filterParams:
          type: object
          description: Updated analytics filter configuration
    AnalyticsReportSubscription:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        emails:
          description: >-
            Recipient email addresses. All addresses share the same computed
            report per run.
          example:
            - ops@customer.com
            - manager@customer.com
          type: array
          items:
            type: string
        phoneNumbers:
          description: >-
            Recipient phone numbers (E.164) for the WhatsApp channel. Empty for
            the EMAIL channel.
          example:
            - '+31612345678'
          type: array
          items:
            type: string
        filterPresetUuids:
          description: UUIDs of the filter presets whose analytics should be sent.
          type: array
          items:
            type: string
        dateRangeOption:
          type: string
          enum:
            - TODAY
            - WEEK
            - MONTH
            - ABSOLUTE
          example: TODAY
        intervalMinutes:
          type: number
          enum:
            - 15
            - 30
            - 60
          example: 60
        channel:
          type: string
          enum:
            - EMAIL
            - WHATSAPP
            - SMS
          example: EMAIL
        enabled:
          type: boolean
          example: true
        startAt:
          format: date-time
          type: string
        expiresAt:
          format: date-time
          type: string
          description: When the subscription auto-disables. Capped at 7 days from startAt.
        lastRunAt:
          type: object
          nullable: true
        nextRunAt:
          format: date-time
          type: string
      required:
        - uuid
        - emails
        - phoneNumbers
        - filterPresetUuids
        - dateRangeOption
        - intervalMinutes
        - channel
        - enabled
        - startAt
        - expiresAt
        - nextRunAt
    CreateAnalyticsReportSubscriptionDto:
      type: object
      properties:
        channel:
          type: string
          enum:
            - EMAIL
            - WHATSAPP
            - SMS
          default: EMAIL
          description: Delivery channel. Defaults to EMAIL.
        emails:
          minItems: 1
          maxItems: 20
          description: Recipient email addresses. Required for the EMAIL channel.
          example:
            - ops@customer.com
            - manager@customer.com
          type: array
          items:
            type: string
        phoneNumbers:
          minItems: 1
          maxItems: 20
          description: >-
            Recipient phone numbers (E.164) for the phone channels. Required for
            the WHATSAPP and SMS channels.
          example:
            - '+31612345678'
          type: array
          items:
            type: string
        filterPresetUuids:
          minItems: 1
          maxItems: 10
          description: UUIDs of the filter presets whose analytics should be sent.
          type: array
          items:
            type: string
        dateRangeOption:
          type: string
          enum:
            - TODAY
            - WEEK
            - MONTH
            - ABSOLUTE
          default: TODAY
          description: How the report window is resolved on each run. Defaults to TODAY.
        intervalMinutes:
          type: number
          enum:
            - 15
            - 30
            - 60
          example: 60
          description: How often to send the report, in minutes.
        expiresAt:
          type: string
          description: >-
            When sending stops. Must be in the future and at most 7 days out.
            Defaults to the 7-day cap when omitted.
          example: '2026-08-25T00:00:00.000Z'
      required:
        - filterPresetUuids
        - intervalMinutes
    UpdateAnalyticsReportSubscriptionDto:
      type: object
      properties:
        channel:
          type: string
          enum:
            - EMAIL
            - WHATSAPP
            - SMS
        emails:
          maxItems: 20
          example:
            - ops@customer.com
          type: array
          items:
            type: string
        phoneNumbers:
          maxItems: 20
          example:
            - '+31612345678'
          type: array
          items:
            type: string
        filterPresetUuids:
          minItems: 1
          maxItems: 10
          type: array
          items:
            type: string
        dateRangeOption:
          type: string
          enum:
            - TODAY
            - WEEK
            - MONTH
            - ABSOLUTE
        intervalMinutes:
          type: number
          enum:
            - 15
            - 30
            - 60
        enabled:
          type: boolean
          description: Reactivate or pause the subscription without deleting it.
        expiresAt:
          type: string
          description: New end date. Must be in the future and at most 7 days from now.
          example: '2026-08-25T00:00:00.000Z'
    Object:
      type: object
      properties: {}
    ListServiceTokenResponseDto:
      type: object
      properties:
        ulid:
          type: string
        name:
          type: string
      required:
        - ulid
        - name
    CreateServiceTokenDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
      required:
        - name
    ServiceTokenResponseDto:
      type: object
      properties:
        ulid:
          type: string
        name:
          type: string
        token:
          type: string
      required:
        - ulid
        - name
        - token
    UpdateServiceTokenDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
      required:
        - name
    PasswordResetRequest:
      type: object
      properties:
        uuid:
          type: string
          maxLength: 36
          example: 00000000-0000-0000-0000-000000000000
        expiresAt:
          format: date-time
          type: string
      required:
        - uuid
        - expiresAt
    ResetPasswordRequestDto:
      type: object
      properties:
        email:
          type: string
          description: >-
            E-mail address used for your account. If it exists you will receive
            an e-mail to reset your password.
      required:
        - email
    ResetPasswordDto:
      type: object
      properties:
        password:
          type: string
          minLength: 6
          description: Password must contain a minimum of 6 characters
          example: MyStrong3x4mpl3P4ssword!
      required:
        - password
    SyncCdpDataDto:
      type: object
      properties:
        entrancePlanIds:
          type: string
          example: >-
            00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000
          description: Comma separated values for entrance plan uuids
        syncFromDate:
          format: date-time
          type: string
          description: Start date of sync
        syncUntilDate:
          format: date-time
          type: string
          description: End date of sync
      required:
        - syncFromDate
        - syncUntilDate
    ErrorDto:
      type: object
      properties:
        errorCode:
          type: number
          example: 400100
          description: >-
            Error code specific to the error, consisting of a three digit http
            status code and a digit application specific code.
        description:
          type: string
          maxLength: 255
          example: Description of the error.
        httpStatus:
          type: number
          enum:
            - 100
            - 101
            - 102
            - 103
            - 200
            - 201
            - 202
            - 203
            - 204
            - 205
            - 206
            - 207
            - 208
            - 210
            - 300
            - 301
            - 302
            - 303
            - 304
            - 307
            - 308
            - 400
            - 401
            - 402
            - 403
            - 404
            - 405
            - 406
            - 407
            - 408
            - 409
            - 410
            - 411
            - 412
            - 413
            - 414
            - 415
            - 416
            - 417
            - 418
            - 421
            - 422
            - 423
            - 424
            - 428
            - 429
            - 456
            - 500
            - 501
            - 502
            - 503
            - 504
            - 505
            - 507
            - 508
          example: 400
      required:
        - errorCode
        - description
        - httpStatus
security:
  - cookie: []
