openapi: 3.1.0
info:
  title: Magicline Connect API
  description: >
    [//]: # (The content of this file is used as the descrption of the API)


    # Scope of this API


    This API can be used to integrate Magicline operations into third party
    clients like websites or apps.


    Following operations are supported


    * Online contract conclusion

    * Trial session slot booking

    * Lead creation
  contact:
    name: Magicline Developer Portal
    url: https://developer.sportalliance.com/
  version: 1.0.0
servers:
  - url: https://connectdemo.api.magicline.com
    description: Generated server url
tags:
  - name: Campaigns
    description: List your marketing campaigns
  - name: Terminal
    description: /terminal
  - name: TrialSessions
    description: Allow prospects to book a trial session
  - name: Tenant
    description: Tenant information
  - name: Referral
    description: Additional referral information for member creation
  - name: Image
    description: Allow prospect to upload image
  - name: Promotions
    description: Getting information about external promotion participation
  - name: AddressData
    description: /addressdata
  - name: ContractVoucher
    description: /contractvoucher
  - name: Validation
    description: /validation
  - name: Contracts
    description: List rates and create new members
  - name: CreditCard Tokenization
    description: Store credit cards for new members
  - name: Contracts
    description: Cancel contracts
paths:
  /connect/v2/preview:
    post:
      tags:
        - Previews
      operationId: getPreview
      parameters:
        - name: landingPageConfigurationId
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: checkoutPageConfigurationId
          in: query
          required: false
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCreateContractDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiContractPreviewDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiContractPreviewControllerV2
  /connect/v2/creditcard/tokenization/initiate:
    post:
      tags:
        - CreditCard Tokenization
      summary: Initiate Tokenization
      operationId: initiateTokenizationV2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiInitiateTokenizationDtoV2'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AdyenInitiateTokenizationResponseDtoV2'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v1/validation/taxId:
    post:
      tags:
        - Validation
      summary: Validates the taxId against country based validation rules.
      description: >-
        For some countries additional customer related attributes might be
        needed for that. Country will be derived from given studioId.
      operationId: validateTaxId
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiTaxIdDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TaxIdValidationResultDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiValidationController
  /connect/v1/trialsession/book:
    post:
      tags:
        - TrialSessions
      summary: Book a trial session
      description: >-
        Book a free slot. Might return errorCode CONFLICT if configured
        resources are overbooked for this slot. In this case its advised to
        reload free slots and let the user select a different slot. If you get a
        validation error make sure all required fields are filled. Required
        fields are returned by the `/config/validation` endpoint.
      operationId: book
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiBookTrialSessionDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiTrialSessionBookedResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiTrialSessionController
  /connect/v1/rate-bundle:
    get:
      tags:
        - Contracts
      summary: 'List rate bundles (german wording: Angebote)'
      operationId: getRateBundleList
      parameters:
        - name: studioId
          in: query
          description: The Id of the studio to fetch the rate bundles from
          required: true
          schema:
            type: integer
            format: int64
          example: 1
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiRateBundleDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiRateBundleController
    post:
      tags:
        - Contracts
      summary: Create a new customer and a new contract
      operationId: createCustomerAndContract
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCreateContractDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiCreateContractResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiRateBundleController
  /connect/v1/promotion/confirm-participation:
    post:
      tags:
        - Promotions
      operationId: confirmCustomerParticipation
      parameters:
        - name: payload
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiPromotionController
  /connect/v1/preview:
    post:
      tags:
        - Previews
      operationId: getPreview_1
      parameters:
        - name: landingPageConfigurationId
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: checkoutPageConfigurationId
          in: query
          required: false
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCreateContractDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiContractPreviewDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiContractPreviewController
  /connect/v1/lead:
    post:
      tags:
        - Leads
      summary: Create leads for prospective customers
      operationId: createLead
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCreateLeadDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiCreateLeadResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiLeadController
  /connect/v1/creditcard/tokenization/{tokenizationReference}/complete:
    post:
      tags:
        - CreditCard Tokenization
      summary: Complete Tokenization
      operationId: completeTokenization
      parameters:
        - name: tokenizationReference
          in: path
          description: Tokenization reference you'll get via initiate endpoint
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCompleteTokenizationDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AdyenCompleteTokenizationResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v1/contractvoucher/{contractVoucherCode}/redeem:
    post:
      tags:
        - ContractVoucher
      summary: >-
        Redeem a ContractVoucher. Only Vouchers of type 'Rate' are supported
        here.
      operationId: redeemContractVoucher
      parameters:
        - name: contractVoucherCode
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiRedeemVoucherDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiRedeemVoucherResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiContractVoucherController
  /connect/v1/contracts:
    post:
      tags:
        - Contracts
      operationId: getActiveContracts
      parameters:
        - name: recaptchaToken
          in: query
          description: client generated Google reCAPTCHA token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetActiveContractsRequestDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetActiveContractsResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiContractController
  /connect/v1/contracts/cancel:
    post:
      tags:
        - Contracts
      operationId: cancelContract
      parameters:
        - name: recaptchaToken
          in: query
          description: client generated Google reCAPTCHA token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelContractRequestDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CancelContractResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiContractController
  /connect/v1/contracts/cancel-request:
    post:
      tags:
        - Contracts
      operationId: cancelContractManual
      parameters:
        - name: recaptchaToken
          in: query
          description: client generated Google reCAPTCHA token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelContractManualRequestDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CancelContractManualResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiContractController
  /connect/v2/studio:
    get:
      tags:
        - Studios
      summary: List all studios
      description: >-
        You can add optional filters. Parameters addressSearchQuery and
        studioTags are combined by AND
      operationId: getStudioList
      parameters:
        - name: studioTags
          in: query
          description: >-
            Filter by identifier of StudioTag (german wording: Standort Code).
            Dynamic attribute configured at studio (e.g for Brands or
            Locations). Multiple Tags are combined by OR.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: addressSearchQuery
          in: query
          description: Search prefix for zipCode or city of studio address.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiStudioDtoV2'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: StudioControllerV2
  /connect/v2/studio/{studioId}:
    get:
      tags:
        - Studios
      summary: Fetch information for one studio
      operationId: getStudio
      parameters:
        - name: studioId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiStudioDtoV2'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: StudioControllerV2
  /connect/v2/studio/{studioId}/legalinfo:
    get:
      tags:
        - Studios
      summary: Fetch legal information for one studio
      operationId: getStudioLegalLinks
      parameters:
        - name: studioId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiStudioLegalLinksDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: StudioControllerV2
  /connect/v2/studio/{studioId}/communicationFeatures:
    get:
      tags:
        - Studios
      summary: Fetch enabled communication feature modules for one studio
      operationId: getEnabledCommunicationFeatureModules
      parameters:
        - name: studioId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  type: string
                  enum:
                    - ANALYTICS
                    - CALENDAR
                    - CASH_REGISTER
                    - CHECK_IN
                    - CHECK_IN_BENEFITS
                    - CHECK_IN_DISCOUNT
                    - CLASSES
                    - CORPORATE_FITNESS
                    - CROSS_LOCATION_SALES
                    - CUSTOMER_GROUPS
                    - CUSTOMER_RECOVERY
                    - EPOST
                    - EQUIPMENT
                    - HARDWARE
                    - INVENTORY_MANAGEMENT
                    - LEAD_MANAGEMENT
                    - LETTER
                    - LOCATIONS
                    - LOYALTY_PROGRAM
                    - MAGICLINE_WEBSITES
                    - MEMBER_APP
                    - MEMBER_CARE_SYSTEM
                    - MEMBER_RETENTION_HUB
                    - MEMBERS_RECRUIT_MEMBERS
                    - MY_SPORTS_MESSAGES
                    - RETURNS
                    - SALES_TOOL
                    - SECOND_SCREEN
                    - SERVICES
                    - SHIFT_PLANNING
                    - STUDIO_NEWS
                    - TASK_MANAGEMENT
                    - TEXT_MESSAGE
                    - TIME_TRACKING
                    - TOUCHPOINT
                    - TRAINING_WORLD
                    - TRIAL_TRAINING
                    - VOUCHERS
                    - TEST_MODULE_1
                    - TEST_MODULE_2
                    - TEST_MODULE_3
                    - TEST_MODULE_4
                    - TEST_MODULE_5
                    - TEST_MODULE_6
                    - TEST_MODULE_7
                    - TEST_MODULE_8
                    - TEST_MODULE_9
                    - TEST_MODULE_10
                    - TEST_MODULE_11
                uniqueItems: true
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: StudioControllerV2
  /connect/v2/studio/details/{studioId}:
    get:
      tags:
        - Studios
      summary: Fetch detail information for one studio
      operationId: getStudioDetails
      parameters:
        - name: studioId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiStudioDetailsDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: StudioControllerV2
  /connect/v2/creditcard/tokenization/payment-methods:
    get:
      tags:
        - CreditCard Tokenization
      summary: Load payment methods
      operationId: paymentMethodsV2
      parameters:
        - name: studioId
          in: query
          description: Studio Id
          required: true
          schema:
            type: integer
            format: int64
          example: 1
        - name: countryCode
          in: query
          description: Country code
          required: true
          schema:
            type: string
          example: DE
        - name: locale
          in: query
          description: Locale
          required: true
          schema:
            type: string
          example: de-DE
      responses:
        '200':
          description: >-
            Get payment methods, the contained paymentMethodsJson must be
            deserialized and passed to the Adyen web component
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentMethodsResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v2/contracts/studios:
    get:
      tags:
        - Contracts
      operationId: getActiveStudiosInGermanyV2
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiBasicStudioDataDtoV2'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiContractControllerV2
  /connect/v1/trialsession:
    get:
      tags:
        - TrialSessions
      summary: Get free slots for a trial session
      description: >-
        Returns free slots for a studio where a trial session appointment can be
        booked.
      operationId: getBookableItem
      parameters:
        - name: studioId
          in: query
          required: true
          schema:
            type: integer
            format: int64
          example: 1
        - name: startDate
          in: query
          required: true
          schema:
            type: string
            format: date
          example: '2021-05-15'
        - name: endDate
          in: query
          required: true
          schema:
            type: string
            format: date
          example: '2021-05-21'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiBookableItemDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiTrialSessionController
  /connect/v1/trialsession/config/validation:
    get:
      tags:
        - TrialSessions
      summary: Get mandatory field configuration
      description: >-
        Returns the configuration which needs to be considered e.g. for form
        fields and their validation.
      operationId: getLeadConfig
      parameters:
        - name: studioId
          in: query
          required: true
          schema:
            type: integer
            format: int64
          example: 1
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiTrialSessionLeadConfigDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiTrialSessionController
  /connect/v1/terminal/customer-data-by-codicefiscale:
    get:
      tags:
        - Terminal
      operationId: getCustomerDataByCodiceFiscale
      parameters:
        - name: codiceFiscale
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/ConnectApiCodiceFiscaleBirthInformationResponseDto
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiTerminalController
  /connect/v1/tenant:
    get:
      tags:
        - Tenant
      operationId: getTenantInfo
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TenantDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiTenantController
  /connect/v1/studio/{studioId}/utilization:
    get:
      tags:
        - Studios
      summary: Get utilization for the studio.
      description: >-
        Return information about the utilization of this studio. Needs to be
        enabled for public view in the configuration.
      operationId: getUtilizationPublic
      parameters:
        - name: studioId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/UtilizationDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: StudioController
  /connect/v1/studio/{studioId}/sepa/agreement:
    get:
      tags:
        - Studios
      operationId: getSepaAgreementText
      parameters:
        - name: studioId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: StudioController
  /connect/v1/studio/{studioId}/rate/{rateBundleId}/sepa/agreement:
    get:
      tags:
        - Studios
      operationId: getSepaAgreementTextForRateBundle
      parameters:
        - name: studioId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: rateBundleId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: language
          in: query
          description: Language to pick the right translation (IETF BCP 47 language tags)
          required: false
          schema:
            type: string
          example: de-DE
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: StudioController
  /connect/v1/studio/{studioId}/communication-settings:
    get:
      tags:
        - Studios
      summary: Get the studio's default communication settings.
      description: >-
        Get the studio's default communication settings. The returned list
        contains an entry for each existing message category.
      operationId: getDefaultCommunicationConfiguration
      parameters:
        - name: studioId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/ConnectApiStudioCommunicationConfigurationDto
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: StudioController
  /connect/v1/referral:
    get:
      tags:
        - Referral
      summary: List all referrals by studioId
      operationId: getReferralsByStudioId
      parameters:
        - name: studioId
          in: query
          description: Studio Id
          required: true
          schema:
            type: integer
            format: int64
          example: 1
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiReferralDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiReferralController
  /connect/v1/prospectimage/uploadurl:
    get:
      tags:
        - Image
      operationId: generatePreSignedUrlForPreUpload
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DownloadUrlWithObjectKeyDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: UploadCustomerImageController
  /connect/v1/lead/{uuid}:
    get:
      tags:
        - Leads
      summary: Returns information about an existing lead record
      operationId: getLeadCustomerByUuid
      parameters:
        - name: uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CommonTrialSessionLeadCustomerDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiLeadController
  /connect/v1/i18n/countries:
    get:
      tags:
        - I18n
      summary: >-
        Returns a list of tuples with every available country code and the
        localized country name
      operationId: getCountries
      parameters:
        - name: locale
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/KeyValuePairCountryCodeString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiI18nController
  /connect/v1/featurecheck/activefeatures:
    get:
      tags:
        - FeatureCheck
      summary: Lists all active features of the organization unit
      operationId: getActiveFeatures
      parameters:
        - name: organizationUnitId
          in: query
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  type: string
                  enum:
                    - MYSPORTS_MESSAGE
                uniqueItems: true
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiFeatureCheckController
  /connect/v1/creditcard/tokenization/{tokenizationReference}/state:
    get:
      tags:
        - CreditCard Tokenization
      summary: Get Tokenization state
      operationId: tokenizationState
      parameters:
        - name: tokenizationReference
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizationStateDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v1/contractvoucher/{contractVoucherCode}/validate:
    get:
      tags:
        - ContractVoucher
      summary: >-
        Validates a ContractVoucher and returns basic voucher information to
        display. Only Vouchers of type 'Rate' are supported here.
      operationId: validateContractVoucher
      parameters:
        - name: contractVoucherCode
          in: path
          required: true
          schema:
            type: string
        - name: organizationUnitId
          in: query
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiContractVoucherDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiContractVoucherController
  /connect/v1/contracts/studios/{studioId}:
    get:
      tags:
        - Contracts
      operationId: getStudioInfo
      parameters:
        - name: studioId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiContractCancellationStudioDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiContractController
  /connect/v1/campaign:
    get:
      tags:
        - Campaigns
      summary: List all campaigns
      operationId: listAllActiveCampaigns
      parameters:
        - name: studioId
          in: query
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiCampaignDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiCampaignController
  /connect/v1/bankaccount:
    get:
      tags:
        - BankAccount
      operationId: validateIbanAndLookupBic
      parameters:
        - name: iban
          in: query
          required: true
          schema:
            type: string
        - name: organizationUnitId
          in: query
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiBankAccountBicIbanDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiBankAccountController
  /connect/v1/bankaccount/validate/accountholder:
    get:
      tags:
        - BankAccount
      operationId: validateAccountHolderName
      parameters:
        - name: accountHolder
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/ConnectApiBankAccountHolderValidationResult
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiBankAccountController
  /connect/v1/addressdata/italy/province:
    get:
      tags:
        - AddressData
      operationId: getProvinceInformation
      parameters:
        - name: zipCode
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AddressProvinceDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '404':
          description: Not Found
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
      x-controller: ConnectApiAddressDataController
components:
  schemas:
    ConnectApiErrorResponseDto:
      properties:
        message:
          type: string
          description: >-
            For developer integration and logging purposes. Do not show message
            in client!
        errorCodes:
          type: array
          description: Generic categories of errors. You may map them to default responses
          items:
            type: string
            description: >-
              Generic categories of errors. You may map them to default
              responses
            enum:
              - ENTITY_NOT_FOUND
              - CONFLICT
              - BAD_REQUEST
              - REQUIRED_PARAMETER_MISSING
              - VALIDATION_FAILED
              - FORBIDDEN
              - OPERATION_NOT_ALLOWED_FOR_STUDIO
              - SERVER_ERROR
              - FEATURE_DISABLED
              - STUDIO_NOT_IN_GERMANY
              - VOUCHER_VALIDATION_FAILED_INVALID_CODE
              - VOUCHER_VALIDATION_FAILED_NOT_REDEEMABLE_HERE
              - VOUCHER_VALIDATION_FAILED_NOT_IN_VALIDITY_PERIOD
              - VOUCHER_VALIDATION_FAILED_NOT_ALLOWED_FOR_RATE
              - TRIALSESSION_ALREADY_BOOKED
              - ACTIVE_MEMBER_CANNOT_BOOK_TRIAL_SESSION
          uniqueItems: true
        traceId:
          type: string
          description: Trace id
      required:
        - errorCodes
    ConnectApiCommunicationPreferencesDto:
      description: >-
        Communication preferences for the customer. If specified, the list must
        contain an element for each message category.
      properties:
        messageCategoryId:
          type: integer
          format: int64
          description: The ID of the message category
        activeCommunicationChannels:
          type: array
          description: >-
            The list of channels on which messages of the given category are
            allowed to be sent
          items:
            type: string
            description: >-
              The list of channels on which messages of the given category are
              allowed to be sent
            enum:
              - LETTER
              - EMAIL
              - TEXT_MESSAGE
              - PHONE
              - MYSPORTS_MESSAGE
              - FAX
              - CONVERSATION
              - CHAT
              - OTHER
          uniqueItems: true
      required:
        - activeCommunicationChannels
        - messageCategoryId
    ConnectApiContractDataDto:
      properties:
        rateBundleTermId:
          type: integer
          format: int64
        startDate:
          type: string
          format: date
        preuseDate:
          type: string
          format: date
        notes:
          type: string
          maxLength: 300
          minLength: 0
        contractSignature:
          $ref: '#/components/schemas/PublicApiSignatureDto'
        sepaSignature:
          $ref: '#/components/schemas/PublicApiSignatureDto'
        textBlockSignatures:
          type: array
          items:
            $ref: '#/components/schemas/PublicApiSignatureDto'
        selectedRateBundleModules:
          type: array
          description: Selected free inclusive rate bundle modules.
          items:
            $ref: >-
              #/components/schemas/PublicApiSelectedSelectableRateBundleModuleDto
        optionalRateBundleTermModules:
          type: array
          description: Selected optional rate bundle term modules additionally payable.
          items:
            $ref: '#/components/schemas/PublicApiSelectedOptionalRateBundleModuleDto'
      required:
        - rateBundleTermId
        - startDate
    ConnectApiCreateContractDto:
      description: contract and customer data
      properties:
        studioId:
          type: integer
          format: int64
        contract:
          $ref: '#/components/schemas/ConnectApiContractDataDto'
        customer:
          $ref: '#/components/schemas/ConnectApiCreatePublicCustomerDto'
        landingPageConfigurationId:
          type: integer
          format: int64
        voucherCode:
          type: string
          description: Only vouchers of type 'Credit' or 'Discount' are supported here.
        offerUuid:
          type: string
          format: uuid
      required:
        - contract
        - customer
        - studioId
    ConnectApiCreatePublicCustomerDto:
      properties:
        identityToken:
          type: string
          format: uuid
          description: >-
            [Optional] Should only be set if checkout page has been called with
            URL param identityToken. If no customer exists with this UUID a new
            one will be created.
          example: 2340b1cc-3fe7-4f81-8eca-f92181dd2bb4
        firstname:
          type: string
          maxLength: 100
          minLength: 0
        secondFirstname:
          type: string
          description: addition for Turkey
          maxLength: 100
          minLength: 0
        lastname:
          type: string
          maxLength: 100
          minLength: 0
        secondLastName:
          type: string
          description: addition for Spain
          maxLength: 100
          minLength: 0
        dateOfBirth:
          type: string
          format: date
          description: The age must be between 0 and 100 years inclusive.
        email:
          type: string
          maxLength: 300
          minLength: 0
        gender:
          type: string
          description: User will be assigned as UNISEX if no gender is set.
          enum:
            - MALE
            - FEMALE
            - UNISEX
        telephone_private:
          type: string
          description: If only one number is available use mobile as default.
          maxLength: 300
          minLength: 0
        telephone_mobile:
          type: string
          description: If only one number is available use mobile as default.
          maxLength: 300
          minLength: 0
        street:
          type: string
          example: Raboisen
          maxLength: 300
          minLength: 0
        secondStreet:
          type: string
          description: addition for Turkish addresses
          maxLength: 300
          minLength: 0
        cityPart:
          type: string
          description: addition for Turkish addresses
          maxLength: 300
          minLength: 0
        district:
          type: string
          description: addition for Turkish addressses
          maxLength: 300
          minLength: 0
        streetType:
          type: string
          description: addition for Spain (e.g. calle)
          maxLength: 300
          minLength: 0
        streetBlock:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        portal:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        stairway:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        door:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        province:
          type: string
          description: addition for southern Europe countries (e.g. Madrid)
          maxLength: 300
          minLength: 0
        additionalAddressInformation:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        floor:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        language:
          type: string
          description: language of customer as ISO 639-1 two-letter code (e.g. es or de)
          maxLength: 300
          minLength: 0
        locale:
          type: string
          description: >-
            locale of customer as ISO 639-1 two-letter language and country code
            (e.g. es_ES or de_DE)
          maxLength: 300
          minLength: 0
        houseNumber:
          type: string
          example: 3-4
          maxLength: 100
          minLength: 0
        buildingName:
          type: string
          description: addition for Turkish addresses
          maxLength: 300
          minLength: 0
        city:
          type: string
          example: Hamburg
          maxLength: 300
          minLength: 0
        zipCode:
          type: string
          example: '22099'
          maxLength: 100
          minLength: 0
        countryCode:
          type: string
          example: DE
          maxLength: 300
          minLength: 0
        paymentChoice:
          type: string
          description: >-
            Only configured values in the rate bundle allowed. For Contract
            Voucher redemption use CASH
          enum:
            - CASH
            - BANK_TRANSFER
            - DIRECT_DEBIT
            - CREDIT_CARD
            - TWINT
          example: DIRECT_DEBIT
        bankAccount:
          $ref: '#/components/schemas/PublicApiBankAccountDto'
        creditCard:
          $ref: '#/components/schemas/PublicApiCreditCardDto'
        privacyConfiguration:
          $ref: '#/components/schemas/PublicApiPrivacyConfigurationDto'
        communicationPreferences:
          type: array
          description: >-
            Communication preferences for the customer. If specified, the list
            must contain an element for each message category.
          items:
            $ref: '#/components/schemas/ConnectApiCommunicationPreferencesDto'
        identification:
          $ref: '#/components/schemas/ConnectApiIdentificationDto'
        taxId:
          type: string
          description: Required if the studio is located in Spain or Italy
          maxLength: 300
          minLength: 0
        placeOfBirth:
          type: string
          description: Required for italian studios and nationals
          maxLength: 300
          minLength: 0
        countryOfBirth:
          type: string
          description: Required for italian studios and none-italian nationals
          enum:
            - UNDEFINED
            - AC
            - AD
            - AE
            - AF
            - AG
            - AI
            - AL
            - AM
            - AN
            - AO
            - AQ
            - AR
            - AS
            - AT
            - AU
            - AW
            - AX
            - AZ
            - BA
            - BB
            - BD
            - BE
            - BF
            - BG
            - BH
            - BI
            - BJ
            - BL
            - BM
            - BN
            - BO
            - BQ
            - BR
            - BS
            - BT
            - BU
            - BV
            - BW
            - BY
            - BZ
            - CA
            - CC
            - CD
            - CF
            - CG
            - CH
            - CI
            - CK
            - CL
            - CM
            - CN
            - CO
            - CP
            - CR
            - CS
            - CU
            - CV
            - CW
            - CX
            - CY
            - CZ
            - DE
            - DG
            - DJ
            - DK
            - DM
            - DO
            - DZ
            - EA
            - EC
            - EE
            - EG
            - EH
            - ER
            - ES
            - ET
            - EU
            - EZ
            - FI
            - FJ
            - FK
            - FM
            - FO
            - FR
            - FX
            - GA
            - GB
            - GD
            - GE
            - GF
            - GG
            - GH
            - GI
            - GL
            - GM
            - GN
            - GP
            - GQ
            - GR
            - GS
            - GT
            - GU
            - GW
            - GY
            - HK
            - HM
            - HN
            - HR
            - HT
            - HU
            - IC
            - ID
            - IE
            - IL
            - IM
            - IN
            - IO
            - IQ
            - IR
            - IS
            - IT
            - JE
            - JM
            - JO
            - JP
            - KE
            - KG
            - KH
            - KI
            - KM
            - KN
            - KP
            - KR
            - KW
            - KY
            - KZ
            - LA
            - LB
            - LC
            - LI
            - LK
            - LR
            - LS
            - LT
            - LU
            - LV
            - LY
            - MA
            - MC
            - MD
            - ME
            - MF
            - MG
            - MH
            - MK
            - ML
            - MM
            - MN
            - MO
            - MP
            - MQ
            - MR
            - MS
            - MT
            - MU
            - MV
            - MW
            - MX
            - MY
            - MZ
            - NA
            - NC
            - NE
            - NF
            - NG
            - NI
            - NL
            - 'NO'
            - NP
            - NR
            - NT
            - NU
            - NZ
            - OM
            - PA
            - PE
            - PF
            - PG
            - PH
            - PK
            - PL
            - PM
            - PN
            - PR
            - PS
            - PT
            - PW
            - PY
            - QA
            - RE
            - RO
            - RS
            - RU
            - RW
            - SA
            - SB
            - SC
            - SD
            - SE
            - SF
            - SG
            - SH
            - SI
            - SJ
            - SK
            - SL
            - SM
            - SN
            - SO
            - SR
            - SS
            - ST
            - SU
            - SV
            - SX
            - SY
            - SZ
            - TA
            - TC
            - TD
            - TF
            - TG
            - TH
            - TJ
            - TK
            - TL
            - TM
            - TN
            - TO
            - TP
            - TR
            - TT
            - TV
            - TW
            - TZ
            - UA
            - UG
            - UK
            - UM
            - US
            - UY
            - UZ
            - VA
            - VC
            - VE
            - VG
            - VI
            - VN
            - VU
            - WF
            - WS
            - XI
            - XU
            - XK
            - YE
            - YT
            - YU
            - ZA
            - ZM
            - ZR
            - ZW
        documentIdentification:
          $ref: '#/components/schemas/PublicApiDocumentIdentificationDto'
        imageObjectKey:
          type: string
          description: Object key for pre-uploaded image
          maxLength: 300
          minLength: 0
        referralCode:
          type: string
          description: Referral code to link with recruiter
          maxLength: 300
          minLength: 0
        publicGender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
        studioCountryCode:
          type: string
          enum:
            - UNDEFINED
            - AC
            - AD
            - AE
            - AF
            - AG
            - AI
            - AL
            - AM
            - AN
            - AO
            - AQ
            - AR
            - AS
            - AT
            - AU
            - AW
            - AX
            - AZ
            - BA
            - BB
            - BD
            - BE
            - BF
            - BG
            - BH
            - BI
            - BJ
            - BL
            - BM
            - BN
            - BO
            - BQ
            - BR
            - BS
            - BT
            - BU
            - BV
            - BW
            - BY
            - BZ
            - CA
            - CC
            - CD
            - CF
            - CG
            - CH
            - CI
            - CK
            - CL
            - CM
            - CN
            - CO
            - CP
            - CR
            - CS
            - CU
            - CV
            - CW
            - CX
            - CY
            - CZ
            - DE
            - DG
            - DJ
            - DK
            - DM
            - DO
            - DZ
            - EA
            - EC
            - EE
            - EG
            - EH
            - ER
            - ES
            - ET
            - EU
            - EZ
            - FI
            - FJ
            - FK
            - FM
            - FO
            - FR
            - FX
            - GA
            - GB
            - GD
            - GE
            - GF
            - GG
            - GH
            - GI
            - GL
            - GM
            - GN
            - GP
            - GQ
            - GR
            - GS
            - GT
            - GU
            - GW
            - GY
            - HK
            - HM
            - HN
            - HR
            - HT
            - HU
            - IC
            - ID
            - IE
            - IL
            - IM
            - IN
            - IO
            - IQ
            - IR
            - IS
            - IT
            - JE
            - JM
            - JO
            - JP
            - KE
            - KG
            - KH
            - KI
            - KM
            - KN
            - KP
            - KR
            - KW
            - KY
            - KZ
            - LA
            - LB
            - LC
            - LI
            - LK
            - LR
            - LS
            - LT
            - LU
            - LV
            - LY
            - MA
            - MC
            - MD
            - ME
            - MF
            - MG
            - MH
            - MK
            - ML
            - MM
            - MN
            - MO
            - MP
            - MQ
            - MR
            - MS
            - MT
            - MU
            - MV
            - MW
            - MX
            - MY
            - MZ
            - NA
            - NC
            - NE
            - NF
            - NG
            - NI
            - NL
            - 'NO'
            - NP
            - NR
            - NT
            - NU
            - NZ
            - OM
            - PA
            - PE
            - PF
            - PG
            - PH
            - PK
            - PL
            - PM
            - PN
            - PR
            - PS
            - PT
            - PW
            - PY
            - QA
            - RE
            - RO
            - RS
            - RU
            - RW
            - SA
            - SB
            - SC
            - SD
            - SE
            - SF
            - SG
            - SH
            - SI
            - SJ
            - SK
            - SL
            - SM
            - SN
            - SO
            - SR
            - SS
            - ST
            - SU
            - SV
            - SX
            - SY
            - SZ
            - TA
            - TC
            - TD
            - TF
            - TG
            - TH
            - TJ
            - TK
            - TL
            - TM
            - TN
            - TO
            - TP
            - TR
            - TT
            - TV
            - TW
            - TZ
            - UA
            - UG
            - UK
            - UM
            - US
            - UY
            - UZ
            - VA
            - VC
            - VE
            - VG
            - VI
            - VN
            - VU
            - WF
            - WS
            - XI
            - XU
            - XK
            - YE
            - YT
            - YU
            - ZA
            - ZM
            - ZR
            - ZW
      required:
        - city
        - countryCode
        - dateOfBirth
        - email
        - firstname
        - houseNumber
        - lastname
        - paymentChoice
        - street
        - zipCode
    ConnectApiIdentificationDto:
      description: Deprecated. Use the identityNumber field.
      properties:
        spain_DNI_NIE:
          type: string
          deprecated: true
          description: Required if the studio is located in Spain
          maxLength: 300
          minLength: 0
    PublicApiBankAccountDto:
      description: Required in combination with paymentChoice DIRECT_DEBIT
      properties:
        iban:
          type: string
          maxLength: 34
          minLength: 0
        bic:
          type: string
          description: BIC will be auto-detected from IBAN if not given
          maxLength: 11
          minLength: 0
        accountHolder:
          type: string
          maxLength: 100
          minLength: 0
      required:
        - accountHolder
        - iban
    PublicApiCreditCardDto:
      description: Required in combination with paymentChoice CREDIT_CARD
      properties:
        tokenizationReference:
          type: string
          description: >-
            This is the 'reference' you'll receive via
            /creditcard/tokenization/initiate endpoint. Use this if the customer
            adds a new credit card while contract signing.
          maxLength: 100
          minLength: 0
        accountPaymentInstrumentToken:
          type: string
          description: >-
            This is the 'accountPaymentInstrumentToken' the user has received
            when he has configured his credit card. Use this if an existing
            credit card by Mysports is used.
          maxLength: 100
          minLength: 0
    PublicApiDocumentIdentificationDto:
      description: information from an official document with identifies the customer
      properties:
        documentNumber:
          type: string
          maxLength: 300
          minLength: 0
        documentType:
          type: string
          enum:
            - ID_CARD
            - PASSPORT
            - DRIVERS_LICENCE
            - RESIDENCE_PERMIT
            - NATIONAL_ID_NUMBER
            - OTHERS
      required:
        - documentNumber
        - documentType
    PublicApiPrivacyConfigurationDto:
      description: >-
        Data privacy configuration for marketing purposes. Deprecated. Use
        communicationPreferences instead.
      properties:
        letter:
          type: boolean
          description: Marketing contact via letter allowed
        email:
          type: boolean
          description: Marketing contact via email allowed
        textMessage:
          type: boolean
          description: Marketing contact via text message allowed
        phone:
          type: boolean
          description: Marketing contact via phone allowed
        mySportsMessage:
          type: boolean
          description: Marketing contact via MySports allowed
    PublicApiSelectedOptionalRateBundleModuleDto:
      description: Selected optional rate bundle term modules additionally payable.
      properties:
        id:
          type: integer
          format: int64
    PublicApiSelectedSelectableRateBundleModuleDto:
      description: Selected free inclusive rate bundle modules.
      properties:
        id:
          type: integer
          format: int64
    PublicApiSignatureDto:
      properties:
        base64Svg:
          type: string
          description: >-
            If signature is set, you have to provide a valid svg value as base
            64 string. Required format: data:image/svg+xml,... with or without
            prefix Check workflow documentation for more details.
        textBlockId:
          type: integer
          format: int64
          description: >-
            If signature is part of a contract text block, set the corresponding
            id
      required:
        - base64Svg
    AttachedExternalUrlDto:
      description: >-
        Optional link to external url You should display a link if this field is
        set with the given title and target url
      properties:
        title:
          type: string
        link:
          type: string
    ConnectApiContractPreviewDto:
      properties:
        basePrice:
          type: number
          description: base price of contract
        preUseCharge:
          type: number
          description: Charge for the time between startdateofuse and startdate
        voucherType:
          type: string
          description: Type of a voucher, if a valid voucher code is provided
          enum:
            - CONTRACT
            - CREDIT
            - DISCOUNT
            - COMPANY_FEE_SPLIT
        voucherRemarks:
          type: string
          description: Voucher remarks, if a valid voucher code is provided
        voucherEffectivePeriod:
          type: string
          description: Effective period type in which a discount is applied
          enum:
            - UNLIMITED
            - INITIAL_TERM
            - TIME_BASED
        effectivePeriodTimeBasedTerm:
          type: integer
          format: int32
          description: >-
            Effective period: term in which a discount is applied if type is
            time base
        effectivePeriodTimeBasedTermUnit:
          type: string
          description: >-
            Effective period: term unit in which a discount is applied if type
            is time base
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        discountedBasePrice:
          type: number
          description: >-
            Discounted base price, if a valid (company) discount voucher is
            provided
        discountType:
          type: string
          description: >-
            Type of discount (percentage or absolute), if valid a (company)
            discount voucher is provided
          enum:
            - ABSOLUTE
            - PERCENTAGE
        discountValue:
          type: number
          description: Discount value, if a valid (company) discount voucher is provided
        discountedPreUseCharge:
          type: number
          description: >-
            Discounted pre use charge, if a valid (company) discount voucher is
            provided
        creditValue:
          type: number
          description: Voucher credit value, if a valid credit voucher is provided
        companyFeeSplitType:
          type: string
          description: >-
            Type of company fee split (percentage or absolute), if valid a
            company discount voucher is provided
          enum:
            - ABSOLUTE
            - PERCENTAGE
        companyFeeSplitValue:
          type: number
          description: >-
            Company fee split value, if a valid company discount voucher is
            provided
        companyName:
          type: string
          description: Name of the company that will pay the company amount
        companyAmountPreUseCharge:
          type: number
          description: Amount the company has to pay for pre use charge
        companyAmount:
          type: number
          description: Amount the company has to pay
        memberAmount:
          type: number
          description: Amount the member has to pay
        memberAmountPreUseCharge:
          type: number
          description: Amount the member has to pay for pre use charge
        companyAmountWithoutDiscount:
          type: number
          description: Amount the company has to pay without discount
        memberAmountWithoutDiscount:
          type: number
          description: Amount the member has to pay without discount
        voucherBonusPeriod:
          $ref: '#/components/schemas/ConnectApiRateBonusPeriodDto'
        voucherTextBlocks:
          type: array
          description: Voucher related text blocks, if a valid voucher is provided
          items:
            $ref: '#/components/schemas/ConnectApiSignableTextBlockDto'
        flatFeePreviews:
          type: array
          description: >-
            Flat fee previews, including discount if a valid discount voucher is
            provided
          items:
            $ref: '#/components/schemas/ConnectApiFlatFeePreviewDto'
        voucherSuccessMessage:
          type: string
          description: >-
            Textual representation of the voucher conditions, if a valid voucher
            is provided
        voucherErrorMessage:
          type: string
          description: >-
            A readable, non-localized error message, if the voucher code is
            invalid
        voucherErrorCode:
          type: string
          description: An error code, if the voucher code is invalid
          enum:
            - ENTITY_NOT_FOUND
            - CONFLICT
            - BAD_REQUEST
            - REQUIRED_PARAMETER_MISSING
            - VALIDATION_FAILED
            - FORBIDDEN
            - OPERATION_NOT_ALLOWED_FOR_STUDIO
            - SERVER_ERROR
            - FEATURE_DISABLED
            - STUDIO_NOT_IN_GERMANY
            - VOUCHER_VALIDATION_FAILED_INVALID_CODE
            - VOUCHER_VALIDATION_FAILED_NOT_REDEEMABLE_HERE
            - VOUCHER_VALIDATION_FAILED_NOT_IN_VALIDITY_PERIOD
            - VOUCHER_VALIDATION_FAILED_NOT_ALLOWED_FOR_RATE
            - TRIALSESSION_ALREADY_BOOKED
            - ACTIVE_MEMBER_CANNOT_BOOK_TRIAL_SESSION
        ageAdjustedPrice:
          type: number
          description: >-
            The adjusted price, if age-based discounts are configured and the
            customer is eligible, null otherwise
        contractVolumeInformation:
          $ref: '#/components/schemas/ContractVolumeDto'
        moduleConsentTextBlocks:
          type: array
          description: Consent texts for modules that are part of the contract
          items:
            $ref: '#/components/schemas/ConnectApiSignableTextBlockDto'
    ConnectApiDocumentDto:
      description: >-
        Optional contract document attachment You should display a download link
        if this field is set.
      properties:
        fileName:
          type: string
        url:
          type: string
          description: Temporary valid download link. Expires after 5 hours
      required:
        - fileName
        - url
    ConnectApiFlatFeePreviewDto:
      description: >-
        Flat fee previews, including discount if a valid discount voucher is
        provided
      properties:
        identifier:
          type: string
        name:
          type: string
        price:
          type: number
        discountedPrice:
          type: number
        paidTimePeriodCalculationType:
          type: string
          enum:
            - REFERENCE_DATE
            - NORMALIZATION_ON_CALENDAR_UNIT
        paymentFrequencyValue:
          type: integer
          format: int32
        paymentFrequencyUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyType:
          type: string
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        paymentFrequency:
          type: string
    ConnectApiRateBonusPeriodDto:
      description: >-
        Bonus period applied with the (company) discount voucher, if valid a
        (company) discount voucher is provided
      properties:
        termUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        termValue:
          type: integer
          format: int32
        termStrategy:
          type: string
          enum:
            - CONTRACT_START
            - FIXED
            - END_OF_CURRENT_TERM
            - START_OF_NEXT_TERM
        displaySeparately:
          type: boolean
        runtimeExtensionType:
          type: string
          enum:
            - WITH_EXTENSION
            - WITHOUT_EXTENSION
        extendsCancellationPeriod:
          type: boolean
    ConnectApiSignableTextBlockDto:
      description: Consent texts for modules that are part of the contract
      properties:
        id:
          type: integer
          format: int64
        title:
          type: string
        text:
          type: string
        order:
          type: integer
          format: int32
          description: order in contract document
        hasSignature:
          type: boolean
          description: >-
            text block configuration has a signature field. You have the option
            to show a signature input field and it will be added in the contract
            document. It is not a required field in magicline. It is up to your
            implementation if you add this field.
        isConfirmationRequired:
          type: boolean
          description: >-
            text block configuration contains a confirmation. You are advised to
            show a check box (or signature if hasSignature=true) in combination
            with this text block where the user should give his consent. 
        showCommunicationPrivacyOptions:
          type: boolean
          description: >-
            text block contains information about the communication privacy
            options You are advised to show a matrix with communication settings
            in combination with this text block. 
        attachmentType:
          type: string
          description: >-
            Indicates the type of attachment for this block: None, file
            (attachedDocument) or Url (attachedExternalUrlDto)
          enum:
            - NONE
            - FILE
            - URL
        attachedExternalUrlDto:
          $ref: '#/components/schemas/AttachedExternalUrlDto'
        attachedDocument:
          $ref: '#/components/schemas/ConnectApiDocumentDto'
        rateBundleModuleId:
          type: integer
          format: int64
          description: >-
            The ID of the associated rate bundle module. Only set if this is a
            module consent text block.
      required:
        - hasSignature
        - id
        - isConfirmationRequired
        - order
        - showCommunicationPrivacyOptions
        - text
        - title
    ContractVolumeDto:
      description: >-
        Contains the total amount to be paid during the initial runtime of the
        contract and the average amounts per month and per the rate's payment
        frequency (e.g. 1 week)
      properties:
        totalContractVolume:
          type: number
        averagePaymentVolumePerMonth:
          type: number
        averagePaymentVolumePerPaymentFrequencyTerm:
          type: number
    ConnectApiInitiateTokenizationDtoV2:
      properties:
        paymentMethod:
          type: string
          description: >-
            Payment Method, is obtained from Adyen card component and must be
            serialized to string
        browserInfo:
          type: string
          description: >-
            Browser Info object, is obtained from Adyen card component and must
            be serialized to string
        studioId:
          type: integer
          format: int64
          description: Studio Id
        returnUrl:
          type: string
          description: >-
            Return url for redirects. If user is redirected to banking page, he
            will be redirected to this url after authentication.
        origin:
          type: string
          description: Origin, obtained via window.location.origin
      required:
        - browserInfo
        - origin
        - paymentMethod
        - returnUrl
        - studioId
    AdyenInitiateTokenizationResponseDtoV2:
      properties:
        reference:
          type: string
          description: Reference for tokenization process, use it in further requests
        resultCode:
          type: string
          description: >-
            Result code by payment provider, usually 'IdentifyShopper' or
            'RedirectShopper', then 'action' needs to be passed to Adyen
            component. Display generic error message when this is 'Error'. For a
            complete list see:
            https://docs.adyen.com/online-payments/payment-result-codes 
        action:
          type: string
          description: >-
            Action object by Adyen (serialized to Json string). If this is not
            'null' pass it to the Adyen web component
        errorMessage:
          type: string
      required:
        - reference
        - resultCode
    ConnectApiTaxIdDto:
      properties:
        studioId:
          type: integer
          format: int64
          description: Is needed to determine country specific validation rules
        firstname:
          type: string
        lastname:
          type: string
        taxId:
          type: string
          description: Is country specific, like CodiceFisacale in Italy
        dateOfBirth:
          type: string
          format: date
        placeOfBirth:
          type: string
          description: addition for Italy if customer is national
        countryOfBirth:
          type: string
          description: addition for Italy if customer isn't national
          enum:
            - UNDEFINED
            - AC
            - AD
            - AE
            - AF
            - AG
            - AI
            - AL
            - AM
            - AN
            - AO
            - AQ
            - AR
            - AS
            - AT
            - AU
            - AW
            - AX
            - AZ
            - BA
            - BB
            - BD
            - BE
            - BF
            - BG
            - BH
            - BI
            - BJ
            - BL
            - BM
            - BN
            - BO
            - BQ
            - BR
            - BS
            - BT
            - BU
            - BV
            - BW
            - BY
            - BZ
            - CA
            - CC
            - CD
            - CF
            - CG
            - CH
            - CI
            - CK
            - CL
            - CM
            - CN
            - CO
            - CP
            - CR
            - CS
            - CU
            - CV
            - CW
            - CX
            - CY
            - CZ
            - DE
            - DG
            - DJ
            - DK
            - DM
            - DO
            - DZ
            - EA
            - EC
            - EE
            - EG
            - EH
            - ER
            - ES
            - ET
            - EU
            - EZ
            - FI
            - FJ
            - FK
            - FM
            - FO
            - FR
            - FX
            - GA
            - GB
            - GD
            - GE
            - GF
            - GG
            - GH
            - GI
            - GL
            - GM
            - GN
            - GP
            - GQ
            - GR
            - GS
            - GT
            - GU
            - GW
            - GY
            - HK
            - HM
            - HN
            - HR
            - HT
            - HU
            - IC
            - ID
            - IE
            - IL
            - IM
            - IN
            - IO
            - IQ
            - IR
            - IS
            - IT
            - JE
            - JM
            - JO
            - JP
            - KE
            - KG
            - KH
            - KI
            - KM
            - KN
            - KP
            - KR
            - KW
            - KY
            - KZ
            - LA
            - LB
            - LC
            - LI
            - LK
            - LR
            - LS
            - LT
            - LU
            - LV
            - LY
            - MA
            - MC
            - MD
            - ME
            - MF
            - MG
            - MH
            - MK
            - ML
            - MM
            - MN
            - MO
            - MP
            - MQ
            - MR
            - MS
            - MT
            - MU
            - MV
            - MW
            - MX
            - MY
            - MZ
            - NA
            - NC
            - NE
            - NF
            - NG
            - NI
            - NL
            - 'NO'
            - NP
            - NR
            - NT
            - NU
            - NZ
            - OM
            - PA
            - PE
            - PF
            - PG
            - PH
            - PK
            - PL
            - PM
            - PN
            - PR
            - PS
            - PT
            - PW
            - PY
            - QA
            - RE
            - RO
            - RS
            - RU
            - RW
            - SA
            - SB
            - SC
            - SD
            - SE
            - SF
            - SG
            - SH
            - SI
            - SJ
            - SK
            - SL
            - SM
            - SN
            - SO
            - SR
            - SS
            - ST
            - SU
            - SV
            - SX
            - SY
            - SZ
            - TA
            - TC
            - TD
            - TF
            - TG
            - TH
            - TJ
            - TK
            - TL
            - TM
            - TN
            - TO
            - TP
            - TR
            - TT
            - TV
            - TW
            - TZ
            - UA
            - UG
            - UK
            - UM
            - US
            - UY
            - UZ
            - VA
            - VC
            - VE
            - VG
            - VI
            - VN
            - VU
            - WF
            - WS
            - XI
            - XU
            - XK
            - YE
            - YT
            - YU
            - ZA
            - ZM
            - ZR
            - ZW
        gender:
          type: string
          description: User will be assigned as UNISEX if no gender is set.
          enum:
            - MALE
            - FEMALE
            - UNISEX
      required:
        - dateOfBirth
        - firstname
        - lastname
        - studioId
        - taxId
    TaxIdValidationResultDto:
      properties:
        valid:
          type: boolean
        errors:
          type: array
          items:
            type: string
            enum:
              - INVALID_TAX_ID
              - MISSING_LASTNAME
              - MISSING_FIRSTNAME
              - MISSING_GENDER
              - UNSUPPORTED_GENDER
              - MISSING_DATE_OF_BIRTH
              - MISSING_PLACE_OR_COUNTRY_OF_BIRTH
          uniqueItems: true
    AddressDetailsDto:
      properties:
        additionalInformation:
          type: string
        streetType:
          type: string
        block:
          type: string
        portal:
          type: string
        stairway:
          type: string
        floor:
          type: string
        door:
          type: string
        province:
          type: string
        provinceCode:
          type: string
        secondStreet:
          type: string
        buildingName:
          type: string
        cityPart:
          type: string
        district:
          type: string
    CommonTrialSessionLeadAddressDto:
      properties:
        street:
          type: string
          example: Heinrichstraße
          maxLength: 300
          minLength: 0
        houseNumber:
          type: string
          example: 1b
          maxLength: 300
          minLength: 0
        zip:
          type: string
          example: '20095'
          maxLength: 100
          minLength: 0
        city:
          type: string
          example: Hamburg
          maxLength: 300
          minLength: 0
        country:
          type: string
          enum:
            - UNDEFINED
            - AC
            - AD
            - AE
            - AF
            - AG
            - AI
            - AL
            - AM
            - AN
            - AO
            - AQ
            - AR
            - AS
            - AT
            - AU
            - AW
            - AX
            - AZ
            - BA
            - BB
            - BD
            - BE
            - BF
            - BG
            - BH
            - BI
            - BJ
            - BL
            - BM
            - BN
            - BO
            - BQ
            - BR
            - BS
            - BT
            - BU
            - BV
            - BW
            - BY
            - BZ
            - CA
            - CC
            - CD
            - CF
            - CG
            - CH
            - CI
            - CK
            - CL
            - CM
            - CN
            - CO
            - CP
            - CR
            - CS
            - CU
            - CV
            - CW
            - CX
            - CY
            - CZ
            - DE
            - DG
            - DJ
            - DK
            - DM
            - DO
            - DZ
            - EA
            - EC
            - EE
            - EG
            - EH
            - ER
            - ES
            - ET
            - EU
            - EZ
            - FI
            - FJ
            - FK
            - FM
            - FO
            - FR
            - FX
            - GA
            - GB
            - GD
            - GE
            - GF
            - GG
            - GH
            - GI
            - GL
            - GM
            - GN
            - GP
            - GQ
            - GR
            - GS
            - GT
            - GU
            - GW
            - GY
            - HK
            - HM
            - HN
            - HR
            - HT
            - HU
            - IC
            - ID
            - IE
            - IL
            - IM
            - IN
            - IO
            - IQ
            - IR
            - IS
            - IT
            - JE
            - JM
            - JO
            - JP
            - KE
            - KG
            - KH
            - KI
            - KM
            - KN
            - KP
            - KR
            - KW
            - KY
            - KZ
            - LA
            - LB
            - LC
            - LI
            - LK
            - LR
            - LS
            - LT
            - LU
            - LV
            - LY
            - MA
            - MC
            - MD
            - ME
            - MF
            - MG
            - MH
            - MK
            - ML
            - MM
            - MN
            - MO
            - MP
            - MQ
            - MR
            - MS
            - MT
            - MU
            - MV
            - MW
            - MX
            - MY
            - MZ
            - NA
            - NC
            - NE
            - NF
            - NG
            - NI
            - NL
            - 'NO'
            - NP
            - NR
            - NT
            - NU
            - NZ
            - OM
            - PA
            - PE
            - PF
            - PG
            - PH
            - PK
            - PL
            - PM
            - PN
            - PR
            - PS
            - PT
            - PW
            - PY
            - QA
            - RE
            - RO
            - RS
            - RU
            - RW
            - SA
            - SB
            - SC
            - SD
            - SE
            - SF
            - SG
            - SH
            - SI
            - SJ
            - SK
            - SL
            - SM
            - SN
            - SO
            - SR
            - SS
            - ST
            - SU
            - SV
            - SX
            - SY
            - SZ
            - TA
            - TC
            - TD
            - TF
            - TG
            - TH
            - TJ
            - TK
            - TL
            - TM
            - TN
            - TO
            - TP
            - TR
            - TT
            - TV
            - TW
            - TZ
            - UA
            - UG
            - UK
            - UM
            - US
            - UY
            - UZ
            - VA
            - VC
            - VE
            - VG
            - VI
            - VN
            - VU
            - WF
            - WS
            - XI
            - XU
            - XK
            - YE
            - YT
            - YU
            - ZA
            - ZM
            - ZR
            - ZW
          example: DE
        details:
          $ref: '#/components/schemas/AddressDetailsDto'
    CommonTrialSessionLeadCustomerDto:
      properties:
        studioId:
          type: integer
          format: int64
          description: Only set if lead is fetched
        firstname:
          type: string
          example: Max
          maxLength: 100
          minLength: 0
        secondFirstname:
          type: string
          example: Martin
          maxLength: 100
          minLength: 0
        lastname:
          type: string
          example: Mustermann
          maxLength: 100
          minLength: 0
        secondLastname:
          type: string
          example: Muster
          maxLength: 100
          minLength: 0
        taxId:
          type: string
          example: 56982134w
          maxLength: 300
          minLength: 0
        placeOfBirth:
          type: string
          example: Rom
          maxLength: 300
          minLength: 0
        countryOfBirth:
          type: string
          enum:
            - UNDEFINED
            - AC
            - AD
            - AE
            - AF
            - AG
            - AI
            - AL
            - AM
            - AN
            - AO
            - AQ
            - AR
            - AS
            - AT
            - AU
            - AW
            - AX
            - AZ
            - BA
            - BB
            - BD
            - BE
            - BF
            - BG
            - BH
            - BI
            - BJ
            - BL
            - BM
            - BN
            - BO
            - BQ
            - BR
            - BS
            - BT
            - BU
            - BV
            - BW
            - BY
            - BZ
            - CA
            - CC
            - CD
            - CF
            - CG
            - CH
            - CI
            - CK
            - CL
            - CM
            - CN
            - CO
            - CP
            - CR
            - CS
            - CU
            - CV
            - CW
            - CX
            - CY
            - CZ
            - DE
            - DG
            - DJ
            - DK
            - DM
            - DO
            - DZ
            - EA
            - EC
            - EE
            - EG
            - EH
            - ER
            - ES
            - ET
            - EU
            - EZ
            - FI
            - FJ
            - FK
            - FM
            - FO
            - FR
            - FX
            - GA
            - GB
            - GD
            - GE
            - GF
            - GG
            - GH
            - GI
            - GL
            - GM
            - GN
            - GP
            - GQ
            - GR
            - GS
            - GT
            - GU
            - GW
            - GY
            - HK
            - HM
            - HN
            - HR
            - HT
            - HU
            - IC
            - ID
            - IE
            - IL
            - IM
            - IN
            - IO
            - IQ
            - IR
            - IS
            - IT
            - JE
            - JM
            - JO
            - JP
            - KE
            - KG
            - KH
            - KI
            - KM
            - KN
            - KP
            - KR
            - KW
            - KY
            - KZ
            - LA
            - LB
            - LC
            - LI
            - LK
            - LR
            - LS
            - LT
            - LU
            - LV
            - LY
            - MA
            - MC
            - MD
            - ME
            - MF
            - MG
            - MH
            - MK
            - ML
            - MM
            - MN
            - MO
            - MP
            - MQ
            - MR
            - MS
            - MT
            - MU
            - MV
            - MW
            - MX
            - MY
            - MZ
            - NA
            - NC
            - NE
            - NF
            - NG
            - NI
            - NL
            - 'NO'
            - NP
            - NR
            - NT
            - NU
            - NZ
            - OM
            - PA
            - PE
            - PF
            - PG
            - PH
            - PK
            - PL
            - PM
            - PN
            - PR
            - PS
            - PT
            - PW
            - PY
            - QA
            - RE
            - RO
            - RS
            - RU
            - RW
            - SA
            - SB
            - SC
            - SD
            - SE
            - SF
            - SG
            - SH
            - SI
            - SJ
            - SK
            - SL
            - SM
            - SN
            - SO
            - SR
            - SS
            - ST
            - SU
            - SV
            - SX
            - SY
            - SZ
            - TA
            - TC
            - TD
            - TF
            - TG
            - TH
            - TJ
            - TK
            - TL
            - TM
            - TN
            - TO
            - TP
            - TR
            - TT
            - TV
            - TW
            - TZ
            - UA
            - UG
            - UK
            - UM
            - US
            - UY
            - UZ
            - VA
            - VC
            - VE
            - VG
            - VI
            - VN
            - VU
            - WF
            - WS
            - XI
            - XU
            - XK
            - YE
            - YT
            - YU
            - ZA
            - ZM
            - ZR
            - ZW
          example: FR
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        dateOfBirth:
          type: string
          format: date
          example: '1985-05-29'
        email:
          type: string
          example: mm@test.de
          maxLength: 300
          minLength: 0
        phone:
          type: string
          example: +49 40 123 555
          maxLength: 300
          minLength: 0
        address:
          $ref: '#/components/schemas/CommonTrialSessionLeadAddressDto'
        customerUUID:
          type: string
          description: >-
            Should only be set if booking page has been called with URL param
            identityToken. If no lead exists with this UUID a new one will be
            created.
          example: 2340b1cc-3fe7-4f81-8eca-f92181dd2bb4
          maxLength: 300
          minLength: 0
        privacyConfiguration:
          $ref: '#/components/schemas/PublicApiPrivacyConfigurationDto'
        communicationPreferences:
          type: array
          description: >-
            Communication preferences for the customer. If specified, the list
            must contain an element for each message category.
          items:
            $ref: '#/components/schemas/CustomerCommunicationPreferencesData'
      required:
        - firstname
        - lastname
    ConnectApiBookTrialSessionDto:
      properties:
        studioId:
          type: integer
          format: int64
          example: 1
        startDateTime:
          type: string
          format: date-time
          example: '2019-04-15T07:00:00Z'
        leadCustomer:
          $ref: '#/components/schemas/CommonTrialSessionLeadCustomerDto'
        note:
          type: string
          example: become fit
          maxLength: 300
          minLength: 0
        referrerId:
          type: integer
          format: int64
          example: 10
        participants:
          type: integer
          format: int32
          example: 2
        sourceCampaignId:
          type: integer
          format: int64
          example: 2
        referralCode:
          type: string
          example: ABCXYZ
          maxLength: 300
          minLength: 0
      required:
        - leadCustomer
        - startDateTime
        - studioId
    CustomerCommunicationPreferencesData:
      description: >-
        Communication preferences for the customer. If specified, the list must
        contain an element for each message category.
      properties:
        messageCategoryId:
          type: integer
          format: int64
        activeCommunicationChannels:
          type: array
          items:
            type: string
            enum:
              - LETTER
              - EMAIL
              - TEXT_MESSAGE
              - PHONE
              - MYSPORTS_MESSAGE
              - FAX
              - CONVERSATION
              - CHAT
              - OTHER
          uniqueItems: true
    ConnectApiTrialSessionBookedResponseDto:
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        customerNumber:
          type: string
          description: Customer number of prospect
        uuid:
          type: string
          format: uuid
          description: >-
            Can be used to execute follow up actions (Booking of appointment,
            singing a contract with this exact customer.
          example: 2340b1cc-3fe7-4f81-8eca-f92181dd2bb4
      required:
        - id
    ConnectApiCreateContractResponseDto:
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        ' customer id':
          type: integer
          format: int64
        ' customer member number':
          type: string
        ' customer member name':
          type: string
          readOnly: true
        ' token for additional requests after member creation':
          $ref: '#/components/schemas/ConnectApiFollowUpActionTokenDto'
        Optional payment url where the user needs to be redirected to:
          type: string
          readOnly: true
        Quick registration url for MySports:
          type: string
      required:
        - ' customer id'
        - ' customer member number'
        - id
    ConnectApiFollowUpActionTokenDto:
      properties:
        tokenValidUntil:
          type: string
        token:
          type: string
      readOnly: true
      required:
        - token
        - tokenValidUntil
    ConnectApiCreateLeadDto:
      properties:
        studioId:
          type: integer
          format: int64
        firstname:
          type: string
          maxLength: 100
          minLength: 0
        firstname2:
          type: string
          description: addition for Turkey
          maxLength: 100
          minLength: 0
        lastname:
          type: string
          maxLength: 100
          minLength: 0
        lastname2:
          type: string
          description: addition for Spain
          maxLength: 100
          minLength: 0
        taxId:
          type: string
          description: addition for Spain and Italy
          maxLength: 300
          minLength: 0
        dateOfBirth:
          type: string
          format: date
        email:
          type: string
          maxLength: 300
          minLength: 0
        gender:
          type: string
          description: User will be assigned as UNISEX if no gender is set.
          enum:
            - MALE
            - FEMALE
            - UNISEX
        phone:
          type: string
          maxLength: 300
          minLength: 0
        street:
          type: string
          example: Raboisen
          maxLength: 300
          minLength: 0
        streetType:
          type: string
          description: addition for Spain (e.g. calle)
          maxLength: 300
          minLength: 0
        streetBlock:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        portal:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        stairway:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        floor:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        door:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        province:
          type: string
          description: addition for southern Europe countries (e.g. Madrid)
          maxLength: 300
          minLength: 0
        additionalAddressInformation:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        houseNumber:
          type: string
          example: 3-4
          maxLength: 100
          minLength: 0
        city:
          type: string
          example: Hamburg
          maxLength: 300
          minLength: 0
        zipCode:
          type: string
          example: '22099'
          maxLength: 100
          minLength: 0
        countryCode:
          type: string
          example: DE
          maxLength: 300
          minLength: 0
        locale:
          type: string
          description: >-
            locale of customer as ISO 639-1 two-letter language and country code
            (e.g. es_ES or de_DE)
          maxLength: 300
          minLength: 0
        notes:
          type: string
          example: any notes about this lead
          maxLength: 1000
          minLength: 0
        sourceCampaignId:
          type: integer
          format: int64
        privacyConfiguration:
          $ref: '#/components/schemas/PublicApiPrivacyConfigurationDto'
        communicationPreferences:
          type: array
          description: >-
            Communication preferences for the customer. If specified, the list
            must contain an element for each message category.
          items:
            $ref: '#/components/schemas/CustomerCommunicationPreferencesData'
      required:
        - firstname
        - lastname
        - studioId
    ConnectApiCreateLeadResponseDto:
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        customerNumber:
          type: string
          description: Customer number of prospect
        uuid:
          type: string
          format: uuid
          description: >-
            Can be used to execute follow up actions (Booking of appointment,
            singing a contract with this exact customer.
          example: 2340b1cc-3fe7-4f81-8eca-f92181dd2bb4
      required:
        - id
    ConnectApiCompleteTokenizationDto:
      properties:
        redirectResult:
          type: string
          description: Redirect result
        threeDSResult:
          type: string
          description: 3DS Result
    AdyenCompleteTokenizationResponseDto:
      properties:
        resultCode:
          type: string
        refusalReason:
          type: string
    ConnectApiRedeemVoucherDto:
      properties:
        organizationUnitId:
          type: integer
          format: int64
        contractStartDate:
          type: string
          format: date
        contractStartPreuseDate:
          type: string
          format: date
        customerDto:
          $ref: '#/components/schemas/ConnectApiCreatePublicCustomerDto'
    ConnectApiRedeemVoucherResponseDto:
      properties:
        customerNumber:
          type: string
    GetActiveContractsRequestDto:
      properties:
        firstname:
          type: string
        lastname:
          type: string
        dateOfBirth:
          type: string
          format: date
        customerNumber:
          type: string
      required:
        - dateOfBirth
        - firstname
        - lastname
    GetActiveContractsResponseDto:
      properties:
        studioId:
          type: integer
          format: int64
        contractName:
          type: string
        contractId:
          type: integer
          format: int64
        cancellationDates:
          type: array
          items:
            type: string
            format: date
        cancellationType:
          type: string
          enum:
            - FIXED_DATES
            - ANY_AFTER_FIRST_DATE
        cancelled:
          type: boolean
    CancelContractRequestDto:
      properties:
        firstname:
          type: string
        lastname:
          type: string
        dateOfBirth:
          type: string
          format: date
        customerNumber:
          type: string
        contractId:
          type: integer
          format: int64
        cancellationType:
          type: string
          enum:
            - ORDINARY_CANCELLATION
            - EXTRAORDINARY_CANCELLATION
        cancelationReasonId:
          type: integer
          format: int64
        cancellationDate:
          type: string
          format: date
        additionalInformation:
          type: string
        confirmationEmail:
          type: string
        cancellationDateType:
          type: string
          enum:
            - NEXT_POSSIBLE_CANCELLATION_DATE
            - ABSOLUTE_CANCELLATION_DATE
      required:
        - cancellationDate
        - cancellationType
        - contractId
        - customerNumber
        - dateOfBirth
        - firstname
        - lastname
    CancelContractResponseDto:
      properties:
        firstname:
          type: string
        lastname:
          type: string
        dateOfBirth:
          type: string
          format: date
        customerNumber:
          type: string
        studioId:
          type: integer
          format: int64
        contractName:
          type: string
        cancellationDate:
          type: string
          format: date
        confirmationEmail:
          type: string
        cancellationReceivedDateTime:
          type: string
          format: date-time
        cancelationReason:
          $ref: '#/components/schemas/CancelationReasonDto'
        cancellationType:
          type: string
          enum:
            - ORDINARY_CANCELLATION
            - EXTRAORDINARY_CANCELLATION
        additionalInformation:
          type: string
    CancelationReasonDto:
      properties:
        databaseId:
          type: integer
          format: int64
        optlock:
          type: integer
          format: int64
        fkOrganizationUnit:
          type: integer
          format: int64
        name:
          type: string
        extraordinaryCancelation:
          type: boolean
        type:
          type: string
          enum:
            - UNDEFINED
            - CUSTOM
            - CONTRACT_SWITCH
            - REST_MATURITY
            - DUNNING
        visibleInNox:
          type: boolean
        system:
          type: boolean
      required:
        - fkOrganizationUnit
    CancelContractManualRequestDto:
      properties:
        firstname:
          type: string
        lastname:
          type: string
        dateOfBirth:
          type: string
          format: date
        customerNumber:
          type: string
        additionalInformation:
          type: string
        studioId:
          type: integer
          format: int64
        cancellationDateType:
          type: string
          enum:
            - NEXT_POSSIBLE_CANCELLATION_DATE
            - ABSOLUTE_CANCELLATION_DATE
        cancellationDate:
          type: string
          format: date
        cancelationReasonId:
          type: integer
          format: int64
        cancellationType:
          type: string
          enum:
            - ORDINARY_CANCELLATION
            - EXTRAORDINARY_CANCELLATION
        confirmationEmail:
          type: string
      required:
        - cancellationDateType
        - cancellationType
        - dateOfBirth
        - firstname
        - lastname
    CancelContractManualResponseDto:
      properties:
        firstname:
          type: string
        lastname:
          type: string
        dateOfBirth:
          type: string
          format: date
        customerNumber:
          type: string
        studioId:
          type: integer
          format: int64
        additionalInformation:
          type: string
        requestReceivedDate:
          type: string
          format: date-time
        confirmationEmail:
          type: string
        cancellationDateType:
          type: string
          enum:
            - NEXT_POSSIBLE_CANCELLATION_DATE
            - ABSOLUTE_CANCELLATION_DATE
        cancellationDate:
          type: string
          format: date
        cancelationReason:
          $ref: '#/components/schemas/CancelationReasonDto'
        cancellationType:
          type: string
          enum:
            - ORDINARY_CANCELLATION
            - EXTRAORDINARY_CANCELLATION
    ConnectApiStudioAddressDto:
      properties:
        street:
          type: string
        secondStreet:
          type: string
          description: addition for Turkey
        cityPart:
          type: string
          description: addition for Turkey
        district:
          type: string
          description: addition for Turkey
        city:
          type: string
        zipCode:
          type: string
        streetAddition:
          type: string
        houseNumber:
          type: string
        buildingName:
          type: string
          description: addition for Turkey
        countryCode:
          type: string
        countryCodeAlpha2:
          type: string
        longitude:
          type: number
          format: double
        latitude:
          type: number
          format: double
        streetType:
          type: string
          description: addition for Spain (e.g. calle)
        streetBlock:
          type: string
          description: addition for Spain
        portal:
          type: string
          description: addition for Spain
        stairway:
          type: string
          description: addition for Spain
        door:
          type: string
          description: addition for Spain
        floor:
          type: string
          description: addition for Spain
        province:
          type: string
          description: addition for southern Europe countries (e.g. Madrid)
        additionalAddressInformation:
          type: string
          description: addition for Spain
    ConnectApiStudioDtoV2:
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        studioName:
          type: string
        studioPhone:
          type: string
        studioEmail:
          type: string
        trialSessionBookable:
          type: boolean
          description: Has this studio trial session configured for online booking of slots
        address:
          $ref: '#/components/schemas/ConnectApiStudioAddressDto'
        studioTags:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiStudioTagDto'
        masterStudioId:
          type: integer
          format: int64
        openingDate:
          type: string
          format: date
          description: >-
            If this value is set, inform the customer about a delayed contract
            start. Send start date with min value of openingDate!
        closingDate:
          type: string
          format: date
          description: >-
            Studio is either fully closed, or temporarily closed from this date
            on. It is up to the studio owner to decide how to interpret this
            value on his website.
        openingHours:
          type: array
          description: >-
            List of day ranges with openingHours, dayOfWeek 1 = MONDAY,
            dayOfWeek 7 = SUNDAY. Might be one range 1 - 7 if  openingHours does
            not differ from day to day or multiple ranges like 1-5 and 6-7 if
            the studio has different opening hours on week days and weekends.
          items:
            $ref: '#/components/schemas/StudioAvailabilityDto'
        zoneId:
          type: object
          description: Timezone of the studios location
          properties:
            id:
              type: string
            rules:
              type: object
              properties:
                fixedOffset:
                  type: boolean
                transitions:
                  type: array
                  items:
                    type: object
                    properties:
                      offsetBefore:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      offsetAfter:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      duration:
                        type: object
                        properties:
                          seconds:
                            type: integer
                            format: int64
                          zero:
                            type: boolean
                          nano:
                            type: integer
                            format: int32
                          negative:
                            type: boolean
                          units:
                            type: array
                            items:
                              type: object
                              properties:
                                durationEstimated:
                                  type: boolean
                                timeBased:
                                  type: boolean
                                dateBased:
                                  type: boolean
                      gap:
                        type: boolean
                      dateTimeAfter:
                        type: string
                        format: date-time
                      dateTimeBefore:
                        type: string
                        format: date-time
                      overlap:
                        type: boolean
                      instant:
                        type: string
                        format: date-time
                transitionRules:
                  type: array
                  items:
                    type: object
                    properties:
                      month:
                        type: string
                        enum:
                          - JANUARY
                          - FEBRUARY
                          - MARCH
                          - APRIL
                          - MAY
                          - JUNE
                          - JULY
                          - AUGUST
                          - SEPTEMBER
                          - OCTOBER
                          - NOVEMBER
                          - DECEMBER
                      timeDefinition:
                        type: string
                        enum:
                          - UTC
                          - WALL
                          - STANDARD
                      standardOffset:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      offsetBefore:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      offsetAfter:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      dayOfWeek:
                        type: string
                        enum:
                          - MONDAY
                          - TUESDAY
                          - WEDNESDAY
                          - THURSDAY
                          - FRIDAY
                          - SATURDAY
                          - SUNDAY
                      dayOfMonthIndicator:
                        type: integer
                        format: int32
                      localTime:
                        $ref: '#/components/schemas/LocalTime'
                      midnightEndOfDay:
                        type: boolean
        hasRateBundles:
          type: boolean
          description: Does this studio has contract offers for online sign up
        trialSessionName:
          type: string
          description: >-
            Name of the trial session benefit which you can book appointments
            for
        currencyCode:
          type: string
          description: Studio currency code
          enum:
            - UNDEFINED
            - AED
            - AFN
            - ALL
            - AMD
            - ANG
            - AOA
            - ARS
            - AUD
            - AWG
            - AZN
            - BAM
            - BBD
            - BDT
            - BGN
            - BHD
            - BIF
            - BMD
            - BND
            - BOB
            - BOV
            - BRL
            - BSD
            - BTN
            - BWP
            - BYN
            - BYR
            - BZD
            - CAD
            - CDF
            - CHE
            - CHF
            - CHW
            - CLF
            - CLP
            - CNY
            - COP
            - COU
            - CRC
            - CUC
            - CUP
            - CVE
            - CZK
            - DJF
            - DKK
            - DOP
            - DZD
            - EGP
            - ERN
            - ETB
            - EUR
            - FJD
            - FKP
            - GBP
            - GEL
            - GHS
            - GIP
            - GMD
            - GNF
            - GTQ
            - GYD
            - HKD
            - HNL
            - HRK
            - HTG
            - HUF
            - IDR
            - ILS
            - INR
            - IQD
            - IRR
            - ISK
            - JMD
            - JOD
            - JPY
            - KES
            - KGS
            - KHR
            - KMF
            - KPW
            - KRW
            - KWD
            - KYD
            - KZT
            - LAK
            - LBP
            - LKR
            - LRD
            - LSL
            - LTL
            - LYD
            - MAD
            - MDL
            - MGA
            - MKD
            - MMK
            - MNT
            - MOP
            - MRO
            - MRU
            - MUR
            - MVR
            - MWK
            - MXN
            - MXV
            - MYR
            - MZN
            - NAD
            - NGN
            - NIO
            - NOK
            - NPR
            - NZD
            - OMR
            - PAB
            - PEN
            - PGK
            - PHP
            - PKR
            - PLN
            - PYG
            - QAR
            - RON
            - RSD
            - RUB
            - RUR
            - RWF
            - SAR
            - SBD
            - SCR
            - SDG
            - SEK
            - SGD
            - SHP
            - SLL
            - SOS
            - SRD
            - SSP
            - STD
            - STN
            - SVC
            - SYP
            - SZL
            - THB
            - TJS
            - TMT
            - TND
            - TOP
            - TRY
            - TTD
            - TWD
            - TZS
            - UAH
            - UGX
            - USD
            - USN
            - USS
            - UYI
            - UYU
            - UZS
            - VEF
            - VES
            - VND
            - VUV
            - WST
            - XAF
            - XAG
            - XAU
            - XBA
            - XBB
            - XBC
            - XBD
            - XCD
            - XDR
            - XOF
            - XPD
            - XPF
            - XPT
            - XSU
            - XTS
            - XUA
            - XXX
            - YER
            - ZAR
            - ZMW
            - ZWL
      required:
        - id
        - studioName
    ConnectApiStudioTagDto:
      properties:
        name:
          type: string
        identifier:
          type: string
      required:
        - identifier
        - name
    LocalTime:
      properties:
        hour:
          type: integer
          format: int32
        minute:
          type: integer
          format: int32
        second:
          type: integer
          format: int32
        nano:
          type: integer
          format: int32
    StudioAvailabilityDto:
      description: >-
        List of day ranges with openingHours, dayOfWeek 1 = MONDAY, dayOfWeek 7
        = SUNDAY. Might be one range 1 - 7 if  openingHours does not differ from
        day to day or multiple ranges like 1-5 and 6-7 if the studio has
        different opening hours on week days and weekends.
      properties:
        dayOfWeekFrom:
          type: string
          enum:
            - MONDAY
            - TUESDAY
            - WEDNESDAY
            - THURSDAY
            - FRIDAY
            - SATURDAY
            - SUNDAY
        dayOfWeekTo:
          type: string
          enum:
            - MONDAY
            - TUESDAY
            - WEDNESDAY
            - THURSDAY
            - FRIDAY
            - SATURDAY
            - SUNDAY
        timeFrom:
          $ref: '#/components/schemas/LocalTime'
        timeTo:
          $ref: '#/components/schemas/LocalTime'
    CentralLegalLinkDto:
      properties:
        databaseId:
          type: integer
          format: int64
        optlock:
          type: integer
          format: int64
        legalOrganizationUnitId:
          type: integer
          format: int64
        centralLegalLinkDocumentType:
          type: string
          enum:
            - IMPRINT
            - PRIVACY
            - TERMS_AND_CONDITIONS
            - REVOCATION
        legalLinkType:
          type: string
          enum:
            - EXTERNAL_URL
            - TEXT
        legalLinkTypes:
          type: array
          items:
            $ref: '#/components/schemas/LegalLinkTypeWithLocaleDto'
          properties:
            values:
              type: array
              items:
                type: string
                enum:
                  - EXTERNAL_URL
                  - TEXT
              uniqueItems: true
            locales:
              type: array
              items:
                type: string
              uniqueItems: true
            empty:
              type: boolean
        content:
          type: string
        contents:
          type: array
          items:
            $ref: '#/components/schemas/StringWithLocaleDto'
          properties:
            values:
              type: array
              items:
                type: string
              uniqueItems: true
            locales:
              type: array
              items:
                type: string
              uniqueItems: true
            empty:
              type: boolean
    ConnectApiStudioLegalLinksDto:
      properties:
        legalLinks:
          type: array
          items:
            $ref: '#/components/schemas/CentralLegalLinkDto'
    LegalLinkTypeWithLocaleDto:
      properties:
        locale:
          type: string
        value:
          type: string
          enum:
            - EXTERNAL_URL
            - TEXT
    StringWithLocaleDto:
      properties:
        locale:
          type: string
        value:
          type: string
    ConnectApiStudioDetailsDto:
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        studioName:
          type: string
        studioPhone:
          type: string
        studioEmail:
          type: string
        trialSessionBookable:
          type: boolean
          description: Has this studio trial session configured for online booking of slots
        trialSessionHours:
          type: array
          description: >-
            List of day range and timeframe where trial session can be booked,
            dayOfWeek 1 = MONDAY, dayOfWeek 7 = SUNDAY.Might be one range 1 - 7
            if trialSessionHours does not differ from day to day or multiple
            ranges like 1-5 and 6-7 if the studio has different
            trialSessionHours on week days and weekends.
          items:
            $ref: '#/components/schemas/StudioAvailabilityDto'
        address:
          $ref: '#/components/schemas/ConnectApiStudioAddressDto'
        studioTags:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiStudioTagDto'
        masterStudioId:
          type: integer
          format: int64
        openingDate:
          type: string
          format: date
          description: >-
            If this value is set, inform the customer about a delayed contract
            start. Send start date with min value of openingDate!
        closingDate:
          type: string
          format: date
          description: >-
            Studio is either fully closed, or temporarily closed from this date
            on. It is up to the studio owner to decide how to interpret this
            value on his website.
        openingHours:
          type: array
          description: >-
            List of day ranges with openingHours, dayOfWeek 1 = MONDAY,
            dayOfWeek 7 = SUNDAY. Might be one range 1 - 7 if openingHours does
            not differ from day to day or multiple ranges like 1-5 and 6-7 if
            the studio has different opening hours on week days and weekends.
          items:
            $ref: '#/components/schemas/StudioAvailabilityDto'
        zoneId:
          type: object
          description: Timezone of the studios location
          properties:
            id:
              type: string
            rules:
              type: object
              properties:
                fixedOffset:
                  type: boolean
                transitions:
                  type: array
                  items:
                    type: object
                    properties:
                      offsetBefore:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      offsetAfter:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      duration:
                        type: object
                        properties:
                          seconds:
                            type: integer
                            format: int64
                          zero:
                            type: boolean
                          nano:
                            type: integer
                            format: int32
                          negative:
                            type: boolean
                          units:
                            type: array
                            items:
                              type: object
                              properties:
                                durationEstimated:
                                  type: boolean
                                timeBased:
                                  type: boolean
                                dateBased:
                                  type: boolean
                      gap:
                        type: boolean
                      dateTimeAfter:
                        type: string
                        format: date-time
                      dateTimeBefore:
                        type: string
                        format: date-time
                      overlap:
                        type: boolean
                      instant:
                        type: string
                        format: date-time
                transitionRules:
                  type: array
                  items:
                    type: object
                    properties:
                      month:
                        type: string
                        enum:
                          - JANUARY
                          - FEBRUARY
                          - MARCH
                          - APRIL
                          - MAY
                          - JUNE
                          - JULY
                          - AUGUST
                          - SEPTEMBER
                          - OCTOBER
                          - NOVEMBER
                          - DECEMBER
                      timeDefinition:
                        type: string
                        enum:
                          - UTC
                          - WALL
                          - STANDARD
                      standardOffset:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      offsetBefore:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      offsetAfter:
                        type: object
                        properties:
                          totalSeconds:
                            type: integer
                            format: int32
                          id:
                            type: string
                      dayOfWeek:
                        type: string
                        enum:
                          - MONDAY
                          - TUESDAY
                          - WEDNESDAY
                          - THURSDAY
                          - FRIDAY
                          - SATURDAY
                          - SUNDAY
                      dayOfMonthIndicator:
                        type: integer
                        format: int32
                      localTime:
                        $ref: '#/components/schemas/LocalTime'
                      midnightEndOfDay:
                        type: boolean
        hasRateBundles:
          type: boolean
          description: Does this studio has contract offers for online sign up
        trialSessionName:
          type: string
          description: >-
            Name of the trial session benefit which you can book appointments
            for
        currencyCode:
          type: string
          description: Studio currency code
          enum:
            - UNDEFINED
            - AED
            - AFN
            - ALL
            - AMD
            - ANG
            - AOA
            - ARS
            - AUD
            - AWG
            - AZN
            - BAM
            - BBD
            - BDT
            - BGN
            - BHD
            - BIF
            - BMD
            - BND
            - BOB
            - BOV
            - BRL
            - BSD
            - BTN
            - BWP
            - BYN
            - BYR
            - BZD
            - CAD
            - CDF
            - CHE
            - CHF
            - CHW
            - CLF
            - CLP
            - CNY
            - COP
            - COU
            - CRC
            - CUC
            - CUP
            - CVE
            - CZK
            - DJF
            - DKK
            - DOP
            - DZD
            - EGP
            - ERN
            - ETB
            - EUR
            - FJD
            - FKP
            - GBP
            - GEL
            - GHS
            - GIP
            - GMD
            - GNF
            - GTQ
            - GYD
            - HKD
            - HNL
            - HRK
            - HTG
            - HUF
            - IDR
            - ILS
            - INR
            - IQD
            - IRR
            - ISK
            - JMD
            - JOD
            - JPY
            - KES
            - KGS
            - KHR
            - KMF
            - KPW
            - KRW
            - KWD
            - KYD
            - KZT
            - LAK
            - LBP
            - LKR
            - LRD
            - LSL
            - LTL
            - LYD
            - MAD
            - MDL
            - MGA
            - MKD
            - MMK
            - MNT
            - MOP
            - MRO
            - MRU
            - MUR
            - MVR
            - MWK
            - MXN
            - MXV
            - MYR
            - MZN
            - NAD
            - NGN
            - NIO
            - NOK
            - NPR
            - NZD
            - OMR
            - PAB
            - PEN
            - PGK
            - PHP
            - PKR
            - PLN
            - PYG
            - QAR
            - RON
            - RSD
            - RUB
            - RUR
            - RWF
            - SAR
            - SBD
            - SCR
            - SDG
            - SEK
            - SGD
            - SHP
            - SLL
            - SOS
            - SRD
            - SSP
            - STD
            - STN
            - SVC
            - SYP
            - SZL
            - THB
            - TJS
            - TMT
            - TND
            - TOP
            - TRY
            - TTD
            - TWD
            - TZS
            - UAH
            - UGX
            - USD
            - USN
            - USS
            - UYI
            - UYU
            - UZS
            - VEF
            - VES
            - VND
            - VUV
            - WST
            - XAF
            - XAG
            - XAU
            - XBA
            - XBB
            - XBC
            - XBD
            - XCD
            - XDR
            - XOF
            - XPD
            - XPF
            - XPT
            - XSU
            - XTS
            - XUA
            - XXX
            - YER
            - ZAR
            - ZMW
            - ZWL
        centralLegalLinks:
          type: array
          description: >-
            Legal Links configured on the Operating Company currently active on
            the Studio
          items:
            $ref: '#/components/schemas/CentralLegalLinkDto'
        referralProgramActive:
          type: boolean
          description: Whether the studio has an active referral program configuration
        defaultLocale:
          type: string
      required:
        - id
        - studioName
    PaymentMethodsResponseDto:
      properties:
        paymentMethodsJson:
          type: string
          description: Contains the Adyen payment methods, serialized to JSON.
      required:
        - paymentMethodsJson
    CdnImageDto:
      properties:
        bucketName:
          type: string
        objectKey:
          type: string
        id:
          type: integer
          format: int64
        url:
          type: string
      required:
        - bucketName
        - objectKey
    ConnectApiBasicStudioDataDtoV2:
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        studioPublicDto:
          $ref: '#/components/schemas/StudioPublicDto'
      required:
        - id
    StudioPublicDto:
      properties:
        name:
          type: string
        description:
          type: string
        email:
          type: string
        street:
          type: string
        houseNumber:
          type: string
        zip:
          type: string
        city:
          type: string
        telephone:
          type: string
        website:
          type: string
        logo:
          $ref: '#/components/schemas/CdnImageDto'
    ConnectApiBookableItemDto:
      properties:
        name:
          type: string
          description: Display name of trial session
        description:
          type: string
          description: Short description how the trial session looks like
        slots:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiBookableItemSlotDto'
    ConnectApiBookableItemSlotDto:
      properties:
        startDateTime:
          type: string
          format: date-time
        endDateTime:
          type: string
          format: date-time
    ConnectApiTrialSessionLeadConfigDto:
      properties:
        nameMode:
          type: string
          description: >-
            Defines validation mode for full name. INACTIVE: hide it, OPTIONAL:
            Show it as optional form field, MANDATORY: Show it as mandatory form
            field.
          enum:
            - INACTIVE
            - OPTIONAL
            - MANDATORY
        genderMode:
          type: string
          description: >-
            Defines validation mode for gender. INACTIVE: hide it, OPTIONAL:
            Show it as optional form field, MANDATORY: Show it as mandatory form
            field.
          enum:
            - INACTIVE
            - OPTIONAL
            - MANDATORY
        dateOfBirthMode:
          type: string
          description: >-
            Defines validation mode for birthdate. INACTIVE: hide it, OPTIONAL:
            Show it as optional form field, MANDATORY: Show it as mandatory form
            field.
          enum:
            - INACTIVE
            - OPTIONAL
            - MANDATORY
        placeOfBirthMode:
          type: string
          description: >-
            Defines validation mode fro place of birth. INACTIVE: hide it,
            OPTIONAL: Show it as optional form field, MANDATORY: Show it as
            mandatory form field.
          enum:
            - INACTIVE
            - OPTIONAL
            - MANDATORY
        emailMode:
          type: string
          description: >-
            Defines validation mode for email address. INACTIVE: hide it,
            OPTIONAL: Show it as optional form field, MANDATORY: Show it as
            mandatory form field.
          enum:
            - INACTIVE
            - OPTIONAL
            - MANDATORY
        telephoneMode:
          type: string
          description: >-
            Defines validation mode for telephone number. INACTIVE: hide it,
            OPTIONAL: Show it as optional form field, MANDATORY: Show it as
            mandatory form field.
          enum:
            - INACTIVE
            - OPTIONAL
            - MANDATORY
        addressMode:
          type: string
          description: >-
            Defines validation mode for full address. INACTIVE: hide it,
            OPTIONAL: Show it as optional form field, MANDATORY: Show it as
            mandatory form field.
          enum:
            - INACTIVE
            - OPTIONAL
            - MANDATORY
        zipMode:
          type: string
          description: >-
            Defines validation mode for zip code. INACTIVE: hide it, OPTIONAL:
            Show it as optional form field, MANDATORY: Show it as mandatory form
            field.
          enum:
            - INACTIVE
            - OPTIONAL
            - MANDATORY
        minimumAge:
          type: integer
          format: int32
          description: >-
            minimum age to book a trial session (dateOfBirthMode is mandatory if
            value is set)
        taxIdMode:
          type: string
          description: >-
            Defines validation mode for tax id. INACTIVE: hide it, OPTIONAL:
            Show it as optional form field, MANDATORY: Show it as mandatory form
            field.
          enum:
            - INACTIVE
            - OPTIONAL
            - MANDATORY
    BirthInformationDto:
      description: Date, place and country of birth of customer
      properties:
        dateOfBirth:
          type: string
          format: date
        placeOfBirth:
          type: string
        countryOfBirth:
          type: string
          enum:
            - UNDEFINED
            - AC
            - AD
            - AE
            - AF
            - AG
            - AI
            - AL
            - AM
            - AN
            - AO
            - AQ
            - AR
            - AS
            - AT
            - AU
            - AW
            - AX
            - AZ
            - BA
            - BB
            - BD
            - BE
            - BF
            - BG
            - BH
            - BI
            - BJ
            - BL
            - BM
            - BN
            - BO
            - BQ
            - BR
            - BS
            - BT
            - BU
            - BV
            - BW
            - BY
            - BZ
            - CA
            - CC
            - CD
            - CF
            - CG
            - CH
            - CI
            - CK
            - CL
            - CM
            - CN
            - CO
            - CP
            - CR
            - CS
            - CU
            - CV
            - CW
            - CX
            - CY
            - CZ
            - DE
            - DG
            - DJ
            - DK
            - DM
            - DO
            - DZ
            - EA
            - EC
            - EE
            - EG
            - EH
            - ER
            - ES
            - ET
            - EU
            - EZ
            - FI
            - FJ
            - FK
            - FM
            - FO
            - FR
            - FX
            - GA
            - GB
            - GD
            - GE
            - GF
            - GG
            - GH
            - GI
            - GL
            - GM
            - GN
            - GP
            - GQ
            - GR
            - GS
            - GT
            - GU
            - GW
            - GY
            - HK
            - HM
            - HN
            - HR
            - HT
            - HU
            - IC
            - ID
            - IE
            - IL
            - IM
            - IN
            - IO
            - IQ
            - IR
            - IS
            - IT
            - JE
            - JM
            - JO
            - JP
            - KE
            - KG
            - KH
            - KI
            - KM
            - KN
            - KP
            - KR
            - KW
            - KY
            - KZ
            - LA
            - LB
            - LC
            - LI
            - LK
            - LR
            - LS
            - LT
            - LU
            - LV
            - LY
            - MA
            - MC
            - MD
            - ME
            - MF
            - MG
            - MH
            - MK
            - ML
            - MM
            - MN
            - MO
            - MP
            - MQ
            - MR
            - MS
            - MT
            - MU
            - MV
            - MW
            - MX
            - MY
            - MZ
            - NA
            - NC
            - NE
            - NF
            - NG
            - NI
            - NL
            - 'NO'
            - NP
            - NR
            - NT
            - NU
            - NZ
            - OM
            - PA
            - PE
            - PF
            - PG
            - PH
            - PK
            - PL
            - PM
            - PN
            - PR
            - PS
            - PT
            - PW
            - PY
            - QA
            - RE
            - RO
            - RS
            - RU
            - RW
            - SA
            - SB
            - SC
            - SD
            - SE
            - SF
            - SG
            - SH
            - SI
            - SJ
            - SK
            - SL
            - SM
            - SN
            - SO
            - SR
            - SS
            - ST
            - SU
            - SV
            - SX
            - SY
            - SZ
            - TA
            - TC
            - TD
            - TF
            - TG
            - TH
            - TJ
            - TK
            - TL
            - TM
            - TN
            - TO
            - TP
            - TR
            - TT
            - TV
            - TW
            - TZ
            - UA
            - UG
            - UK
            - UM
            - US
            - UY
            - UZ
            - VA
            - VC
            - VE
            - VG
            - VI
            - VN
            - VU
            - WF
            - WS
            - XI
            - XU
            - XK
            - YE
            - YT
            - YU
            - ZA
            - ZM
            - ZR
            - ZW
    ConnectApiCodiceFiscaleBirthInformationResponseDto:
      properties:
        codiceFiscale:
          type: string
          description: Codice fiscale of customer
        birthInformationDto:
          $ref: '#/components/schemas/BirthInformationDto'
        gender:
          type: string
          description: Gender of customer
          enum:
            - MALE
            - FEMALE
            - UNISEX
      required:
        - birthInformationDto
        - codiceFiscale
        - gender
    TenantDto:
      properties:
        tenantName:
          type: string
        tenantUsageType:
          type: string
          enum:
            - BLUEPRINT
            - DEMO_POOL
            - DEMO
            - EMPTY_POOL
            - EMPTY
            - INTERNAL
            - PARTNER
            - PRODUCTION
            - TEST
            - TRAINING
            - SANDBOX_BLUEPRINT
            - SANDBOX_POOL
        tenantBusinessType:
          type: string
          enum:
            - SMALL_BUSINESS
            - GLOBAL_ENTERPRISE
        tenantMultiBrandType:
          type: string
          enum:
            - MAGICLINE
            - PERFECT_GYM
    UtilizationDto:
      properties:
        startTime:
          $ref: '#/components/schemas/LocalTime'
        endTime:
          $ref: '#/components/schemas/LocalTime'
        items:
          type: array
          items:
            $ref: '#/components/schemas/UtilizationItemDto'
      required:
        - items
    UtilizationItemDto:
      properties:
        startTime:
          $ref: '#/components/schemas/LocalTime'
        endTime:
          $ref: '#/components/schemas/LocalTime'
        percentage:
          type: integer
          format: int32
        level:
          type: string
          enum:
            - HIGH
            - NORMAL
            - LOW
        isCurrent:
          type: boolean
      required:
        - endTime
        - isCurrent
        - level
        - percentage
        - startTime
    CommunicationChannelDto:
      description: >-
        A list containing all channels. Each channel contains information on
        whether it is active and / or customer overridable.
      properties:
        communicationChannel:
          type: string
          enum:
            - LETTER
            - EMAIL
            - TEXT_MESSAGE
            - PHONE
            - MYSPORTS_MESSAGE
            - FAX
            - CONVERSATION
            - CHAT
            - OTHER
        customerOverridable:
          type: boolean
        active:
          type: boolean
    ConnectApiStudioCommunicationConfigurationDto:
      properties:
        messageCategory:
          $ref: '#/components/schemas/MessageCategoryDto'
        communicationChannels:
          type: array
          description: >-
            A list containing all channels. Each channel contains information on
            whether it is active and / or customer overridable.
          items:
            $ref: '#/components/schemas/CommunicationChannelDto'
    MessageCategoryDto:
      description: The message category
      properties:
        databaseId:
          type: integer
          format: int64
        optlock:
          type: integer
          format: int64
        name:
          type: string
        shortDescription:
          type: string
        publicDescription:
          type: string
        showAsterisk:
          type: boolean
    ConnectApiReferralDto:
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        type:
          type: string
      required:
        - id
        - type
    AgeBasedAdjustmentDto:
      properties:
        ageRangeDto:
          $ref: '#/components/schemas/AgeRangeDto'
        value:
          type: number
        ageBasedAdjustmentType:
          type: string
          enum:
            - ABSOLUTE
            - PERCENTAGE
      required:
        - ageBasedAdjustmentType
        - ageRangeDto
        - value
    AgeRangeDto:
      properties:
        startAge:
          type: integer
          format: int32
        endAge:
          type: integer
          format: int32
    ConnectApiRateBundleDto:
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        description:
          type: string
        name:
          type: string
        subDescription:
          type: string
        preuseType:
          type: string
          description: '[0=NONE, 1=CHARGEABLE, 2=FREE]'
          enum:
            - NONE
            - CHARGEABLE
            - FREE
        terms:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiRateBundleTermDto'
        modules:
          type: array
          description: Included free modules.
          items:
            $ref: '#/components/schemas/ConnectApiRateBundleModuleDto'
        maximumNumberOfSelectableModules:
          type: integer
          format: int32
          description: >-
            The maximum value of the selectable modules that the customer can
            choose.
        selectableModules:
          type: array
          description: >-
            Selectable free inclusive modules. Customer is only allowed to
            choose a fixed value of them. The maximum value of the selected
            modules describes `maximumNumberOfSelectableModules` property.
          items:
            $ref: '#/components/schemas/ConnectApiRateBundleModuleDto'
        rateCodeDto:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiRateCodeDto'
        contractTextBlocks:
          type: array
          description: >-
            Important contract details such as privacy details or special
            conditions. Show them to the customer before contract acceptance
          items:
            $ref: '#/components/schemas/ConnectApiSignableTextBlockDto'
        imageUrl:
          type: string
          description: >-
            Temporary valid download link for rate bundle image. Expires after
            24h
        footnote:
          type: string
          description: Contractual or legal comments to be displayed below the offer.
        initialPaymentRequired:
          type: boolean
          description: >-
            An initial payment has to be made in order to gain access to the
            studio. An email will be sent to the user after contract creation
            with details how to make the payment.
        contractSignaturesRequired:
          type: boolean
          description: >-
            Indicates if a digital signature for the contract (and SEPA
            agreement) is mandatory.
        onlinePaymentType:
          type: string
          description: >-
            Under development: Indicates if this RateBundle has some kind of
            special Payment Handling
          enum:
            - NONE
            - DIRECT_PAYMENT
        allowedPaymentChoices:
          type: array
          description: >-
            Allowed payment types for this rate bundle. Others than in this list
            will not be accepted when creating a contract
          items:
            type: string
            description: >-
              Allowed payment types for this rate bundle. Others than in this
              list will not be accepted when creating a contract
            enum:
              - CASH
              - BANK_TRANSFER
              - DIRECT_DEBIT
              - CREDIT_CARD
              - TWINT
          uniqueItems: true
        limitedOfferingPeriod:
          $ref: '#/components/schemas/TimePeriodClientDto'
      required:
        - description
        - id
        - modules
        - name
        - terms
    ConnectApiRateBundleModuleDto:
      description: Optional modules additionally payable.
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        paymentFrequencyId:
          type: integer
          format: int64
        name:
          type: string
        description:
          type: string
        paymentFrequencyValue:
          type: integer
          format: int32
          deprecated: true
          description: is set in combination with RECURRING type
        paymentFrequencyUnit:
          type: string
          deprecated: true
          description: is set in combination with RECURRING type
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyType:
          type: string
          deprecated: true
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        price:
          type: number
          deprecated: true
        imageUrl:
          type: string
        term:
          $ref: '#/components/schemas/TermInformationDto'
        publicTrialPeriodDto:
          $ref: '#/components/schemas/PublicTrialPeriodDto'
        paymentFrequencyDto:
          $ref: '#/components/schemas/PublicModulePaymentFrequencyDto'
        consentTextBlock:
          $ref: '#/components/schemas/ConnectApiSignableTextBlockDto'
      required:
        - id
        - name
        - paymentFrequencyDto
        - paymentFrequencyId
    ConnectApiRateBundleTermDto:
      properties:
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        defaultContractStartDate:
          type: string
          format: date
          description: >-
            This contract start will be used if none will be send, but can be
            overridden
        contractStartDateOfUse:
          type: string
          format: date
          description: >-
            This contract start date of use will be used if none will be send,
            but can be overridden
        termValue:
          type: integer
          format: int32
        termValueWithoutBonusPeriod:
          type: integer
          format: int32
        termUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyValue:
          type: integer
          format: int32
          description: is set in combination with RECURRING type
        paymentFrequencyUnit:
          type: string
          description: is set in combination with RECURRING type
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyType:
          type: string
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        price:
          type: number
        priceAdjustmentRules:
          type: array
          description: >-
            A list of price adjustment rules which applies to this term. Like a
            5% raise every 6 months
          items:
            $ref: '#/components/schemas/PublicApiTermAdjustmentRuleDto'
        ageBasedAdjustmentDtos:
          type: array
          description: A list of age-based price adjustments for this term.
          items:
            $ref: '#/components/schemas/AgeBasedAdjustmentDto'
        contractVolumeInformation:
          $ref: '#/components/schemas/ContractVolumeDto'
        flatFees:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiRateBundleTermFlatFeeDto'
        extensionFixedTerm:
          type: integer
          format: int32
        extensionFixedTermUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        extensionType:
          type: string
          enum:
            - NONE
            - TERM_EXTENSION
            - SUBSEQUENT_RATE_DETAIL
        subsequentRateDto:
          $ref: '#/components/schemas/ConnectApiRateBundleDto'
        cancelationStrategy:
          type: string
          enum:
            - TERM
            - RECEIPT_DATE
        cancellationPeriod:
          type: integer
          format: int32
        cancellationPeriodUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        extensionCancellationPeriod:
          type: integer
          format: int32
        extensionCancellationPeriodUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        rateBonusPeriods:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiRateBonusPeriodDto'
        rateStartPrice:
          type: number
          description: >-
            price for the first period of the contract, if the term has bonus
            period at the beginning of the contract then it is equal to 0,
            otherwise is equal to term price.
        optionalModules:
          type: array
          description: Optional modules additionally payable.
          items:
            $ref: '#/components/schemas/ConnectApiRateBundleModuleDto'
        termValueAfterExtension:
          type: integer
          format: int32
          description: >-
            The new term value after minimum contract duration. Null if not
            configured.
        termUnitAfterExtension:
          type: string
          description: >-
            The new term unit after minimum contract duration. Null if not
            configured.
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        priceAfterExtension:
          type: number
          description: >-
            The new price after minimum contract duration. Null if not
            configured.
      required:
        - id
        - paymentFrequencyType
        - price
        - termUnit
        - termValue
        - termValueWithoutBonusPeriod
    ConnectApiRateBundleTermFlatFeeDto:
      properties:
        paymentFrequencyId:
          type: integer
          format: int64
        name:
          type: string
        identifier:
          type: string
        paidTimePeriodCalculationType:
          type: string
          enum:
            - REFERENCE_DATE
            - NORMALIZATION_ON_CALENDAR_UNIT
        paymentFrequencyValue:
          type: integer
          format: int32
          description: Is set in combination with RECURRING type
        paymentFrequencyUnit:
          type: string
          description: Is set in combination with RECURRING type
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyType:
          type: string
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        price:
          type: number
        paymentFrequency:
          type: string
          description: Additional details of payment frequency
          example: One time on 01.01, Every 01.01., etc.
        firstBookingDelayValue:
          type: integer
          format: int32
        firstBookingDelayUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        isStarterPackage:
          type: boolean
      required:
        - identifier
        - name
        - paidTimePeriodCalculationType
        - paymentFrequencyId
        - paymentFrequencyType
        - price
    ConnectApiRateCodeDto:
      properties:
        name:
          type: string
        identifier:
          type: string
      required:
        - identifier
        - name
    MoneyDto:
      properties:
        amount:
          type: number
        currencyCode:
          type: string
          enum:
            - UNDEFINED
            - AED
            - AFN
            - ALL
            - AMD
            - ANG
            - AOA
            - ARS
            - AUD
            - AWG
            - AZN
            - BAM
            - BBD
            - BDT
            - BGN
            - BHD
            - BIF
            - BMD
            - BND
            - BOB
            - BOV
            - BRL
            - BSD
            - BTN
            - BWP
            - BYN
            - BYR
            - BZD
            - CAD
            - CDF
            - CHE
            - CHF
            - CHW
            - CLF
            - CLP
            - CNY
            - COP
            - COU
            - CRC
            - CUC
            - CUP
            - CVE
            - CZK
            - DJF
            - DKK
            - DOP
            - DZD
            - EGP
            - ERN
            - ETB
            - EUR
            - FJD
            - FKP
            - GBP
            - GEL
            - GHS
            - GIP
            - GMD
            - GNF
            - GTQ
            - GYD
            - HKD
            - HNL
            - HRK
            - HTG
            - HUF
            - IDR
            - ILS
            - INR
            - IQD
            - IRR
            - ISK
            - JMD
            - JOD
            - JPY
            - KES
            - KGS
            - KHR
            - KMF
            - KPW
            - KRW
            - KWD
            - KYD
            - KZT
            - LAK
            - LBP
            - LKR
            - LRD
            - LSL
            - LTL
            - LYD
            - MAD
            - MDL
            - MGA
            - MKD
            - MMK
            - MNT
            - MOP
            - MRO
            - MRU
            - MUR
            - MVR
            - MWK
            - MXN
            - MXV
            - MYR
            - MZN
            - NAD
            - NGN
            - NIO
            - NOK
            - NPR
            - NZD
            - OMR
            - PAB
            - PEN
            - PGK
            - PHP
            - PKR
            - PLN
            - PYG
            - QAR
            - RON
            - RSD
            - RUB
            - RUR
            - RWF
            - SAR
            - SBD
            - SCR
            - SDG
            - SEK
            - SGD
            - SHP
            - SLL
            - SOS
            - SRD
            - SSP
            - STD
            - STN
            - SVC
            - SYP
            - SZL
            - THB
            - TJS
            - TMT
            - TND
            - TOP
            - TRY
            - TTD
            - TWD
            - TZS
            - UAH
            - UGX
            - USD
            - USN
            - USS
            - UYI
            - UYU
            - UZS
            - VEF
            - VES
            - VND
            - VUV
            - WST
            - XAF
            - XAG
            - XAU
            - XBA
            - XBB
            - XBC
            - XBD
            - XCD
            - XDR
            - XOF
            - XPD
            - XPF
            - XPT
            - XSU
            - XTS
            - XUA
            - XXX
            - YER
            - ZAR
            - ZMW
            - ZWL
      required:
        - amount
        - currencyCode
    MonthDayWithPriceDto:
      properties:
        monthDay:
          type: string
        price:
          $ref: '#/components/schemas/MoneyDto'
      required:
        - monthDay
        - price
    PublicApiTermAdjustmentRuleDto:
      description: >-
        A list of price adjustment rules which applies to this term. Like a 5%
        raise every 6 months
      properties:
        defaultDescription:
          type: string
          description: >-
            A complete formatted sentence which contains all details about this
            price adjustment rule.If the presenation should differ use the
            separate attributes.
        value:
          type: string
          description: >-
            Value of price adjustment rule, might be percentage or amount,
            depends on chargeAdjustmentType
        recurrenceFrequency:
          type: string
          description: >-
            Recurrence of price adjustment rule, how often and when applies this
            rule
        type:
          type: string
          description: States if this rule is overall a RAISE or REDUCTION of the price
          enum:
            - RAISE
            - REDUCTION
            - NEW_BASIC_AMOUNT
        chargeAdjustmentType:
          type: string
          description: >-
            Type of the value: Percentage/absolute relative change or new
            absolute base amount 
          enum:
            - RELATIVE
            - ABSOLUTE
            - BASIC_AMOUNT
    PublicModulePaymentFrequencyDto:
      properties:
        type:
          type: string
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        money:
          $ref: '#/components/schemas/MoneyDto'
        term:
          $ref: '#/components/schemas/TermDto'
        recurring:
          type: boolean
        monthDayWithPrices:
          type: array
          items:
            $ref: '#/components/schemas/MonthDayWithPriceDto'
        termWithPrices:
          type: array
          items:
            $ref: '#/components/schemas/TermWithPriceDto'
        ageBasedAdjustmentDtos:
          type: array
          items:
            $ref: '#/components/schemas/AgeBasedAdjustmentDto'
    PublicTrialPeriodDto:
      properties:
        trialPeriod:
          $ref: '#/components/schemas/TermDto'
        description:
          type: string
    TermDto:
      properties:
        term:
          type: integer
          format: int32
        termUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
      required:
        - term
        - termUnit
    TermInformationDto:
      properties:
        extensionType:
          type: string
          enum:
            - NONE
            - TERM_EXTENSION
            - SUBSEQUENT_RATE_DETAIL
        term:
          $ref: '#/components/schemas/TermDto'
        termExtension:
          $ref: '#/components/schemas/TermDto'
        cancelationPeriod:
          $ref: '#/components/schemas/TermDto'
        extensionCancelationPeriod:
          $ref: '#/components/schemas/TermDto'
    TermWithPriceDto:
      properties:
        term:
          $ref: '#/components/schemas/TermDto'
        price:
          $ref: '#/components/schemas/MoneyDto'
      required:
        - price
        - term
    TimePeriodClientDto:
      description: The period in which this rate bundle is offered
      properties:
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
      required:
        - endDate
        - startDate
    DownloadUrlWithObjectKeyDto:
      properties:
        uploadUrl:
          type: string
        objectKey:
          type: string
    KeyValuePairCountryCodeString:
      properties:
        key:
          type: string
          enum:
            - UNDEFINED
            - AC
            - AD
            - AE
            - AF
            - AG
            - AI
            - AL
            - AM
            - AN
            - AO
            - AQ
            - AR
            - AS
            - AT
            - AU
            - AW
            - AX
            - AZ
            - BA
            - BB
            - BD
            - BE
            - BF
            - BG
            - BH
            - BI
            - BJ
            - BL
            - BM
            - BN
            - BO
            - BQ
            - BR
            - BS
            - BT
            - BU
            - BV
            - BW
            - BY
            - BZ
            - CA
            - CC
            - CD
            - CF
            - CG
            - CH
            - CI
            - CK
            - CL
            - CM
            - CN
            - CO
            - CP
            - CR
            - CS
            - CU
            - CV
            - CW
            - CX
            - CY
            - CZ
            - DE
            - DG
            - DJ
            - DK
            - DM
            - DO
            - DZ
            - EA
            - EC
            - EE
            - EG
            - EH
            - ER
            - ES
            - ET
            - EU
            - EZ
            - FI
            - FJ
            - FK
            - FM
            - FO
            - FR
            - FX
            - GA
            - GB
            - GD
            - GE
            - GF
            - GG
            - GH
            - GI
            - GL
            - GM
            - GN
            - GP
            - GQ
            - GR
            - GS
            - GT
            - GU
            - GW
            - GY
            - HK
            - HM
            - HN
            - HR
            - HT
            - HU
            - IC
            - ID
            - IE
            - IL
            - IM
            - IN
            - IO
            - IQ
            - IR
            - IS
            - IT
            - JE
            - JM
            - JO
            - JP
            - KE
            - KG
            - KH
            - KI
            - KM
            - KN
            - KP
            - KR
            - KW
            - KY
            - KZ
            - LA
            - LB
            - LC
            - LI
            - LK
            - LR
            - LS
            - LT
            - LU
            - LV
            - LY
            - MA
            - MC
            - MD
            - ME
            - MF
            - MG
            - MH
            - MK
            - ML
            - MM
            - MN
            - MO
            - MP
            - MQ
            - MR
            - MS
            - MT
            - MU
            - MV
            - MW
            - MX
            - MY
            - MZ
            - NA
            - NC
            - NE
            - NF
            - NG
            - NI
            - NL
            - 'NO'
            - NP
            - NR
            - NT
            - NU
            - NZ
            - OM
            - PA
            - PE
            - PF
            - PG
            - PH
            - PK
            - PL
            - PM
            - PN
            - PR
            - PS
            - PT
            - PW
            - PY
            - QA
            - RE
            - RO
            - RS
            - RU
            - RW
            - SA
            - SB
            - SC
            - SD
            - SE
            - SF
            - SG
            - SH
            - SI
            - SJ
            - SK
            - SL
            - SM
            - SN
            - SO
            - SR
            - SS
            - ST
            - SU
            - SV
            - SX
            - SY
            - SZ
            - TA
            - TC
            - TD
            - TF
            - TG
            - TH
            - TJ
            - TK
            - TL
            - TM
            - TN
            - TO
            - TP
            - TR
            - TT
            - TV
            - TW
            - TZ
            - UA
            - UG
            - UK
            - UM
            - US
            - UY
            - UZ
            - VA
            - VC
            - VE
            - VG
            - VI
            - VN
            - VU
            - WF
            - WS
            - XI
            - XU
            - XK
            - YE
            - YT
            - YU
            - ZA
            - ZM
            - ZR
            - ZW
        value:
          type: string
    BacsPaymentInstrumentDto:
      properties:
        shopperEmail:
          type: string
        bankAccountNumber:
          type: string
        accountHolder:
          type: string
        bankLocationId:
          type: string
        mandateId:
          type: string
        directDebitPdfFormUrl:
          type: string
    BanContactCardDto:
      properties:
        id:
          type: integer
          format: int64
        cardNumber:
          type: string
        expiry:
          type: object
          properties:
            year:
              type: integer
              format: int32
            month:
              type: string
              enum:
                - JANUARY
                - FEBRUARY
                - MARCH
                - APRIL
                - MAY
                - JUNE
                - JULY
                - AUGUST
                - SEPTEMBER
                - OCTOBER
                - NOVEMBER
                - DECEMBER
            monthValue:
              type: integer
              format: int32
            leapYear:
              type: boolean
        cardHolder:
          type: string
    CreditCardDto:
      properties:
        id:
          type: integer
          format: int64
        cardNumber:
          type: string
        expiry:
          type: object
          properties:
            year:
              type: integer
              format: int32
            month:
              type: string
              enum:
                - JANUARY
                - FEBRUARY
                - MARCH
                - APRIL
                - MAY
                - JUNE
                - JULY
                - AUGUST
                - SEPTEMBER
                - OCTOBER
                - NOVEMBER
                - DECEMBER
            monthValue:
              type: integer
              format: int32
            leapYear:
              type: boolean
        cardHolder:
          type: string
        issuerCountry:
          type: string
          enum:
            - UNDEFINED
            - AC
            - AD
            - AE
            - AF
            - AG
            - AI
            - AL
            - AM
            - AN
            - AO
            - AQ
            - AR
            - AS
            - AT
            - AU
            - AW
            - AX
            - AZ
            - BA
            - BB
            - BD
            - BE
            - BF
            - BG
            - BH
            - BI
            - BJ
            - BL
            - BM
            - BN
            - BO
            - BQ
            - BR
            - BS
            - BT
            - BU
            - BV
            - BW
            - BY
            - BZ
            - CA
            - CC
            - CD
            - CF
            - CG
            - CH
            - CI
            - CK
            - CL
            - CM
            - CN
            - CO
            - CP
            - CR
            - CS
            - CU
            - CV
            - CW
            - CX
            - CY
            - CZ
            - DE
            - DG
            - DJ
            - DK
            - DM
            - DO
            - DZ
            - EA
            - EC
            - EE
            - EG
            - EH
            - ER
            - ES
            - ET
            - EU
            - EZ
            - FI
            - FJ
            - FK
            - FM
            - FO
            - FR
            - FX
            - GA
            - GB
            - GD
            - GE
            - GF
            - GG
            - GH
            - GI
            - GL
            - GM
            - GN
            - GP
            - GQ
            - GR
            - GS
            - GT
            - GU
            - GW
            - GY
            - HK
            - HM
            - HN
            - HR
            - HT
            - HU
            - IC
            - ID
            - IE
            - IL
            - IM
            - IN
            - IO
            - IQ
            - IR
            - IS
            - IT
            - JE
            - JM
            - JO
            - JP
            - KE
            - KG
            - KH
            - KI
            - KM
            - KN
            - KP
            - KR
            - KW
            - KY
            - KZ
            - LA
            - LB
            - LC
            - LI
            - LK
            - LR
            - LS
            - LT
            - LU
            - LV
            - LY
            - MA
            - MC
            - MD
            - ME
            - MF
            - MG
            - MH
            - MK
            - ML
            - MM
            - MN
            - MO
            - MP
            - MQ
            - MR
            - MS
            - MT
            - MU
            - MV
            - MW
            - MX
            - MY
            - MZ
            - NA
            - NC
            - NE
            - NF
            - NG
            - NI
            - NL
            - 'NO'
            - NP
            - NR
            - NT
            - NU
            - NZ
            - OM
            - PA
            - PE
            - PF
            - PG
            - PH
            - PK
            - PL
            - PM
            - PN
            - PR
            - PS
            - PT
            - PW
            - PY
            - QA
            - RE
            - RO
            - RS
            - RU
            - RW
            - SA
            - SB
            - SC
            - SD
            - SE
            - SF
            - SG
            - SH
            - SI
            - SJ
            - SK
            - SL
            - SM
            - SN
            - SO
            - SR
            - SS
            - ST
            - SU
            - SV
            - SX
            - SY
            - SZ
            - TA
            - TC
            - TD
            - TF
            - TG
            - TH
            - TJ
            - TK
            - TL
            - TM
            - TN
            - TO
            - TP
            - TR
            - TT
            - TV
            - TW
            - TZ
            - UA
            - UG
            - UK
            - UM
            - US
            - UY
            - UZ
            - VA
            - VC
            - VE
            - VG
            - VI
            - VN
            - VU
            - WF
            - WS
            - XI
            - XU
            - XK
            - YE
            - YT
            - YU
            - ZA
            - ZM
            - ZR
            - ZW
        brand:
          type: string
          enum:
            - amex
            - bancontact
            - cartebancaire
            - cup
            - diners
            - discover
            - elo
            - girocard
            - hipercard
            - jcb
            - maestro
            - mc
            - twint_pos
            - visa
            - vpay
            - unknown
        preferred:
          type: boolean
        provider:
          type: string
          enum:
            - ADYEN
        providerToken:
          type: string
    IdealPaymentInstrumentDto:
      properties:
        issuer:
          type: string
    PaymentInstrumentDto:
      description: The created payment instrument, only filled when tokenization completed
      properties:
        id:
          type: integer
          format: int64
        paymentInstrumentType:
          type: string
          enum:
            - CREDIT_CARD
            - PAYPAL
            - TERMINAL
            - APPLE_PAY
            - GOOGLE_PAY
            - SAMSUNG_PAY
            - BANCONTACT
            - IDEAL
            - SEPA
            - TWINT
            - BACS
        creditCard:
          $ref: '#/components/schemas/CreditCardDto'
        banContactCard:
          $ref: '#/components/schemas/BanContactCardDto'
        preferred:
          type: boolean
        accountPaymentInstrumentToken:
          type: string
        sepaPaymentInstrumentDto:
          $ref: '#/components/schemas/SepaPaymentInstrumentDto'
        idealPaymentInstrument:
          $ref: '#/components/schemas/IdealPaymentInstrumentDto'
        userAccountToken:
          type: string
        recurringReference:
          type: string
        bacsPaymentInstrument:
          $ref: '#/components/schemas/BacsPaymentInstrumentDto'
        paymentInstrumentStatus:
          type: string
          enum:
            - WAITING_FOR_CONFIRMATION
            - CONFIRMED
            - INVALID
        paymentInstrumentInvalidReason:
          type: string
          enum:
            - CHARGEBACK
            - RECURRING_TOKEN_DISABLED
    SepaPaymentInstrumentDto:
      properties:
        id:
          type: integer
          format: int64
        iban:
          type: string
        accountHolder:
          type: string
        provider:
          type: string
          enum:
            - ADYEN
        providerToken:
          type: string
        recurringReference:
          type: string
    TokenizationStateDto:
      properties:
        state:
          type: string
          description: State of tokenization, on success this is 'COMPLETE'
          enum:
            - INITIATE
            - FAILURE
            - COMPLETE
        errorMessage:
          type: string
        userToken:
          type: string
          format: uuid
        publicUserToken:
          type: string
          format: uuid
        paymentInstrumentDto:
          $ref: '#/components/schemas/PaymentInstrumentDto'
      required:
        - state
    ConnectApiContractVoucherDto:
      properties:
        validityPeriod:
          $ref: '#/components/schemas/OpenTimePeriodClientDto'
        rateName:
          type: string
        rateDetailTerm:
          type: string
    OpenTimePeriodClientDto:
      properties:
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
    ConnectApiContractCancellationStudioDto:
      properties:
        legalLinks:
          type: array
          items:
            $ref: '#/components/schemas/CentralLegalLinkDto'
        cancellationReasons:
          type: array
          items:
            $ref: '#/components/schemas/CancelationReasonDto'
    ConnectApiCampaignDto:
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        externalIdentifier:
          type: string
      required:
        - externalIdentifier
        - id
        - name
    ConnectApiBankAccountBicIbanDto:
      properties:
        validIban:
          type: boolean
        supportsSepaDirectDebit:
          type: boolean
        bic:
          type: string
        bankName:
          type: string
        bankZip:
          type: string
        bankCity:
          type: string
        errorMessage:
          type: string
          description: >-
            Additional information if validation fails. Currently only for IT
            based IBANs
    ConnectApiBankAccountHolderValidationResult:
      properties:
        valid:
          type: boolean
        errorMessages:
          type: array
          items:
            type: string
    AddressProvinceDto:
      properties:
        zipCode:
          type: string
        province:
          type: string
        provinceCode:
          type: string
      required:
        - province
        - provinceCode
        - zipCode
