openapi: 3.1.0
info:
  contact:
    name: Magicline Developer Portal
    url: https://developer.sportalliance.com/
  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
  title: Magicline Connect API
  version: 1.0.0
servers:
  - description: Generated server url
    url: https://connectdemo.api.magicline.com
tags:
  - description: List your marketing campaigns
    name: Campaigns
  - description: /terminal
    name: Terminal
  - description: Allow prospects to book a trial session
    name: TrialSessions
  - description: Tenant information
    name: Tenant
  - description: Additional referral information for member creation
    name: Referral
  - description: Allow prospect to upload image
    name: Image
  - description: Getting information about external promotion participation
    name: Promotions
  - description: /addressdata
    name: AddressData
  - description: /contractvoucher
    name: ContractVoucher
  - description: /validation
    name: Validation
  - description: List rates and create new members
    name: Contracts
  - description: Store credit cards for new members
    name: CreditCard Tokenization
  - description: Cancel contracts
    name: Contracts
paths:
  /connect/v1/addressdata/italy/province:
    get:
      operationId: getProvinceInformation
      parameters:
        - in: query
          name: zipCode
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AddressProvinceDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - AddressData
      x-controller: ConnectApiAddressDataController
  /connect/v1/bankaccount:
    get:
      operationId: validateIbanAndLookupBic
      parameters:
        - in: query
          name: iban
          required: true
          schema:
            type: string
        - in: query
          name: organizationUnitId
          required: false
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiBankAccountBicIbanDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - BankAccount
      x-controller: ConnectApiBankAccountController
  /connect/v1/bankaccount/validate/accountholder:
    get:
      operationId: validateAccountHolderName
      parameters:
        - in: query
          name: accountHolder
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/ConnectApiBankAccountHolderValidationResult
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - BankAccount
      x-controller: ConnectApiBankAccountController
  /connect/v1/campaign:
    get:
      operationId: listAllActiveCampaigns
      parameters:
        - in: query
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiCampaignDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: List all campaigns
      tags:
        - Campaigns
      x-controller: ConnectApiCampaignController
  /connect/v1/contracts:
    post:
      operationId: getActiveContracts
      parameters:
        - description: client generated Google reCAPTCHA token
          in: query
          name: recaptchaToken
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetActiveContractsRequestDto'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GetActiveContractsResponseDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Contracts
      x-controller: ConnectApiContractController
  /connect/v1/contracts/cancel:
    post:
      operationId: cancelContract
      parameters:
        - description: client generated Google reCAPTCHA token
          in: query
          name: recaptchaToken
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelContractRequestDto'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CancelContractResponseDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Contracts
      x-controller: ConnectApiContractController
  /connect/v1/contracts/cancel-request:
    post:
      operationId: cancelContractManual
      parameters:
        - description: client generated Google reCAPTCHA token
          in: query
          name: recaptchaToken
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelContractManualRequestDto'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CancelContractManualResponseDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Contracts
      x-controller: ConnectApiContractController
  /connect/v1/contracts/studios/{studioId}:
    get:
      operationId: getStudioInfo
      parameters:
        - in: path
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiContractCancellationStudioDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Contracts
      x-controller: ConnectApiContractController
  /connect/v1/contractvoucher/{contractVoucherCode}/redeem:
    post:
      operationId: redeemContractVoucher
      parameters:
        - in: path
          name: contractVoucherCode
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiRedeemVoucherDto'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiRedeemVoucherResponseDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: >-
        Redeem a ContractVoucher. Only Vouchers of type 'Rate' are supported
        here.
      tags:
        - ContractVoucher
      x-controller: ConnectApiContractVoucherController
  /connect/v1/contractvoucher/{contractVoucherCode}/validate:
    get:
      operationId: validateContractVoucher
      parameters:
        - in: path
          name: contractVoucherCode
          required: true
          schema:
            type: string
        - in: query
          name: organizationUnitId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiContractVoucherDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: >-
        Validates a ContractVoucher and returns basic voucher information to
        display. Only Vouchers of type 'Rate' are supported here.
      tags:
        - ContractVoucher
      x-controller: ConnectApiContractVoucherController
  /connect/v1/creditcard/tokenization/{tokenizationReference}/complete:
    post:
      deprecated: true
      operationId: completeTokenization
      parameters:
        - description: Tokenization reference you'll get via initiate endpoint
          in: path
          name: tokenizationReference
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCompleteTokenizationDto'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AdyenCompleteTokenizationResponseDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Complete Tokenization
      tags:
        - CreditCard Tokenization
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v1/creditcard/tokenization/{tokenizationReference}/state:
    get:
      deprecated: true
      operationId: tokenizationState
      parameters:
        - in: path
          name: tokenizationReference
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizationStateDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Get Tokenization state
      tags:
        - CreditCard Tokenization
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v1/featurecheck/activefeatures:
    get:
      operationId: getActiveFeatures
      parameters:
        - in: query
          name: organizationUnitId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  type: string
                  enum:
                    - MYSPORTS_MESSAGE
                uniqueItems: true
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Lists all active features of the organization unit
      tags:
        - FeatureCheck
      x-controller: ConnectApiFeatureCheckController
  /connect/v1/i18n/countries:
    get:
      operationId: getCountries
      parameters:
        - in: query
          name: locale
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/KeyValuePairCountryCodeString'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: >-
        Returns a list of tuples with every available country code and the
        localized country name
      tags:
        - I18n
      x-controller: ConnectApiI18nController
  /connect/v1/lead:
    post:
      operationId: createLead
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCreateLeadDto'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiCreateLeadResponseDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Create leads for prospective customers
      tags:
        - Leads
      x-controller: ConnectApiLeadController
  /connect/v1/lead/{uuid}:
    get:
      operationId: getLeadCustomerByUuid
      parameters:
        - in: path
          name: uuid
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CommonTrialSessionLeadCustomerDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Returns information about an existing lead record
      tags:
        - Leads
      x-controller: ConnectApiLeadController
  /connect/v1/promotion/confirm-participation:
    post:
      operationId: confirmCustomerParticipation
      parameters:
        - in: query
          name: payload
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Promotions
      x-controller: ConnectApiPromotionController
  /connect/v1/prospectimage/uploadurl:
    get:
      operationId: generatePreSignedUrlForPreUpload
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DownloadUrlWithObjectKeyDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Image
      x-controller: UploadCustomerImageController
  /connect/v1/rate-bundle:
    get:
      operationId: getRateBundleList
      parameters:
        - description: The Id of the studio to fetch the rate bundles from
          example: 1
          in: query
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiRateBundleDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: 'List rate bundles (german wording: Angebote)'
      tags:
        - Contracts
      x-controller: ConnectApiRateBundleController
    post:
      operationId: createCustomerAndContract
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCreateContractDto'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiCreateContractResponseDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Create a new customer and a new contract
      tags:
        - Contracts
      x-controller: ConnectApiRateBundleController
  /connect/v1/referral:
    get:
      operationId: getReferralsByStudioId
      parameters:
        - description: Studio Id
          example: 1
          in: query
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiReferralDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: List all referrals by studioId
      tags:
        - Referral
      x-controller: ConnectApiReferralController
  /connect/v1/studio/{studioId}/communication-settings:
    get:
      description: >-
        Get the studio's default communication settings. The returned list
        contains an entry for each existing message category.
      operationId: getDefaultCommunicationConfiguration
      parameters:
        - in: path
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/ConnectApiStudioCommunicationConfigurationDto
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Get the studio's default communication settings.
      tags:
        - Studios
      x-controller: StudioController
  /connect/v1/studio/{studioId}/rate/{rateBundleId}/sepa/agreement:
    get:
      operationId: getSepaAgreementTextForRateBundle
      parameters:
        - in: path
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
        - in: path
          name: rateBundleId
          required: true
          schema:
            type: integer
            format: int64
        - description: Language to pick the right translation (IETF BCP 47 language tags)
          example: de-DE
          in: query
          name: language
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: string
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Studios
      x-controller: StudioController
  /connect/v1/studio/{studioId}/sepa/agreement:
    get:
      operationId: getSepaAgreementText
      parameters:
        - in: path
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: string
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Studios
      x-controller: StudioController
  /connect/v1/studio/{studioId}/utilization:
    get:
      description: >-
        Return information about the utilization of this studio. Needs to be
        enabled for public view in the configuration.
      operationId: getUtilizationPublic
      parameters:
        - in: path
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/UtilizationDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Get utilization for the studio.
      tags:
        - Studios
      x-controller: StudioController
  /connect/v1/tenant:
    get:
      operationId: getTenantInfo
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TenantDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Tenant
      x-controller: ConnectApiTenantController
  /connect/v1/terminal/customer-data-by-codicefiscale:
    get:
      operationId: getCustomerDataByCodiceFiscale
      parameters:
        - in: query
          name: codiceFiscale
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: >-
                  #/components/schemas/ConnectApiCodiceFiscaleBirthInformationResponseDto
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Terminal
      x-controller: ConnectApiTerminalController
  /connect/v1/trialsession:
    get:
      description: >-
        Returns free slots for a studio where a trial session appointment can be
        booked.
      operationId: getBookableItem
      parameters:
        - example: 1
          in: query
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
        - example: '2021-05-15'
          in: query
          name: startDate
          required: true
          schema:
            type: string
            format: date
        - example: '2021-05-21'
          in: query
          name: endDate
          required: true
          schema:
            type: string
            format: date
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiBookableItemDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Get free slots for a trial session
      tags:
        - TrialSessions
      x-controller: ConnectApiTrialSessionController
  /connect/v1/trialsession/book:
    post:
      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':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiTrialSessionBookedResponseDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Book a trial session
      tags:
        - TrialSessions
      x-controller: ConnectApiTrialSessionController
  /connect/v1/trialsession/config/validation:
    get:
      description: >-
        Returns the configuration which needs to be considered e.g. for form
        fields and their validation.
      operationId: getLeadConfig
      parameters:
        - example: 1
          in: query
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiTrialSessionLeadConfigDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Get mandatory field configuration
      tags:
        - TrialSessions
      x-controller: ConnectApiTrialSessionController
  /connect/v1/validation/taxId:
    post:
      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':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TaxIdValidationResultDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Validates the taxId against country based validation rules.
      tags:
        - Validation
      x-controller: ConnectApiValidationController
  /connect/v2/contracts/studios:
    get:
      operationId: getActiveStudiosInGermanyV2
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiBasicStudioDataDtoV2'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Contracts
      x-controller: ConnectApiContractControllerV2
  /connect/v2/creditcard/tokenization/initiate:
    post:
      operationId: initiateTokenizationV2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiInitiateTokenizationDtoV2'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AdyenInitiateTokenizationResponseDtoV2'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Initiate Tokenization
      tags:
        - CreditCard Tokenization
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v2/creditcard/tokenization/payment-methods:
    get:
      operationId: paymentMethodsV2
      parameters:
        - description: Studio Id
          example: 1
          in: query
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
        - description: Country code
          example: DE
          in: query
          name: countryCode
          required: true
          schema:
            type: string
        - description: Locale
          example: de-DE
          in: query
          name: locale
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentMethodsResponseDto'
          description: >-
            Get payment methods, the contained paymentMethodsJson must be
            deserialized and passed to the Adyen web component
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Load payment methods
      tags:
        - CreditCard Tokenization
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v2/creditcard/tokenization/{tokenizationReference}/complete:
    post:
      operationId: completeTokenizationV2
      parameters:
        - description: Tokenization reference you'll get via initiate endpoint
          in: path
          name: tokenizationReference
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCompleteTokenizationDto'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AdyenCompleteTokenizationResponseDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Complete Tokenization
      tags:
        - CreditCard Tokenization
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v2/creditcard/tokenization/{tokenizationReference}/state:
    get:
      operationId: tokenizationStateV2
      parameters:
        - in: path
          name: tokenizationReference
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TokenizationStateDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Get Tokenization state
      tags:
        - CreditCard Tokenization
      x-controller: ConnectApiCreditCardTokenizationController
  /connect/v2/preview:
    post:
      operationId: getPreview
      parameters:
        - in: query
          name: landingPageConfigurationId
          required: false
          schema:
            type: integer
            format: int64
        - in: query
          name: checkoutPageConfigurationId
          required: false
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectApiCreateContractDto'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiContractPreviewDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      tags:
        - Previews
      x-controller: ConnectApiContractPreviewControllerV2
  /connect/v2/studio:
    get:
      description: >-
        You can add optional filters. Parameters addressSearchQuery and
        studioTags are combined by AND
      operationId: getStudioList
      parameters:
        - 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.
          in: query
          name: studioTags
          required: false
          schema:
            type: array
            items:
              type: string
        - description: Search prefix for zipCode or city of studio address.
          in: query
          name: addressSearchQuery
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectApiStudioDtoV2'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: List all studios
      tags:
        - Studios
      x-controller: StudioControllerV2
  /connect/v2/studio/details/{studioId}:
    get:
      operationId: getStudioDetails
      parameters:
        - in: path
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiStudioDetailsDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Fetch detail information for one studio
      tags:
        - Studios
      x-controller: StudioControllerV2
  /connect/v2/studio/{studioId}:
    get:
      operationId: getStudio
      parameters:
        - in: path
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiStudioDtoV2'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Fetch information for one studio
      tags:
        - Studios
      x-controller: StudioControllerV2
  /connect/v2/studio/{studioId}/communicationFeatures:
    get:
      operationId: getEnabledCommunicationFeatureModules
      parameters:
        - in: path
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          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_FOR_REMOVAL
                    - 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
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Fetch enabled communication feature modules for one studio
      tags:
        - Studios
      x-controller: StudioControllerV2
  /connect/v2/studio/{studioId}/legalinfo:
    get:
      operationId: getStudioLegalLinks
      parameters:
        - in: path
          name: studioId
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiStudioLegalLinksDto'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: '#/components/schemas/ConnectApiErrorResponseDto'
                  - $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Forbidden
        '404':
          description: Not Found
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Conflict
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ConnectApiErrorResponseDto'
          description: Internal Server Error
      summary: Fetch legal information for one studio
      tags:
        - Studios
      x-controller: StudioControllerV2
components:
  schemas:
    AddressDetailsDto:
      type: object
      properties:
        additionalInformation:
          type: string
        block:
          type: string
        buildingName:
          type: string
        cityPart:
          type: string
        district:
          type: string
        door:
          type: string
        floor:
          type: string
        portal:
          type: string
        province:
          type: string
        provinceCode:
          type: string
        secondStreet:
          type: string
        stairway:
          type: string
        streetType:
          type: string
    AddressProvinceDto:
      type: object
      properties:
        province:
          type: string
        provinceCode:
          type: string
        zipCode:
          type: string
      required:
        - province
        - provinceCode
        - zipCode
    AdyenCompleteTokenizationResponseDto:
      type: object
      properties:
        refusalReason:
          type: string
        resultCode:
          type: string
    AdyenInitiateTokenizationResponseDtoV2:
      type: object
      properties:
        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
        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 
      required:
        - reference
        - resultCode
    AgeBasedAdjustmentDto:
      type: object
      properties:
        ageBasedAdjustmentType:
          type: string
          enum:
            - ABSOLUTE
            - PERCENTAGE
        ageRangeDto:
          $ref: '#/components/schemas/AgeRangeDto'
        value:
          type: number
      required:
        - ageBasedAdjustmentType
        - ageRangeDto
        - value
    AgeRangeDto:
      type: object
      properties:
        endAge:
          type: integer
          format: int32
        startAge:
          type: integer
          format: int32
    AttachedExternalUrlDto:
      type: object
      properties:
        link:
          type: string
        title:
          type: string
    BacsPaymentInstrumentDto:
      type: object
      properties:
        accountHolder:
          type: string
        bankAccountNumber:
          type: string
        bankLocationId:
          type: string
        directDebitPdfFormUrl:
          type: string
        mandateId:
          type: string
        shopperEmail:
          type: string
    BanContactCardDto:
      type: object
      properties:
        cardHolder:
          type: string
        cardNumber:
          type: string
        expiry:
          type: object
          properties:
            leapYear:
              type: boolean
            month:
              type: string
              enum:
                - JANUARY
                - FEBRUARY
                - MARCH
                - APRIL
                - MAY
                - JUNE
                - JULY
                - AUGUST
                - SEPTEMBER
                - OCTOBER
                - NOVEMBER
                - DECEMBER
            monthValue:
              type: integer
              format: int32
            year:
              type: integer
              format: int32
        id:
          type: integer
          format: int64
    BirthInformationDto:
      type: object
      properties:
        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
        dateOfBirth:
          type: string
          format: date
        placeOfBirth:
          type: string
    CancelContractManualRequestDto:
      type: object
      properties:
        additionalInformation:
          type: string
        cancelationReasonId:
          type: integer
          format: int64
        cancellationDate:
          type: string
          format: date
        cancellationDateType:
          type: string
          enum:
            - NEXT_POSSIBLE_CANCELLATION_DATE
            - ABSOLUTE_CANCELLATION_DATE
        cancellationType:
          type: string
          enum:
            - ORDINARY_CANCELLATION
            - EXTRAORDINARY_CANCELLATION
        confirmationEmail:
          type: string
        customerNumber:
          type: string
        dateOfBirth:
          type: string
          format: date
        firstname:
          type: string
        lastname:
          type: string
        studioId:
          type: integer
          format: int64
      required:
        - cancellationDateType
        - cancellationType
        - dateOfBirth
        - firstname
        - lastname
    CancelContractManualResponseDto:
      type: object
      properties:
        additionalInformation:
          type: string
        cancelationReason:
          $ref: '#/components/schemas/CancelationReasonDto'
        cancellationDate:
          type: string
          format: date
        cancellationDateType:
          type: string
          enum:
            - NEXT_POSSIBLE_CANCELLATION_DATE
            - ABSOLUTE_CANCELLATION_DATE
        cancellationType:
          type: string
          enum:
            - ORDINARY_CANCELLATION
            - EXTRAORDINARY_CANCELLATION
        confirmationEmail:
          type: string
        customerNumber:
          type: string
        dateOfBirth:
          type: string
          format: date
        firstname:
          type: string
        lastname:
          type: string
        requestReceivedDate:
          type: string
          format: date-time
        studioId:
          type: integer
          format: int64
    CancelContractRequestDto:
      type: object
      properties:
        additionalInformation:
          type: string
        cancelationReasonId:
          type: integer
          format: int64
        cancellationDate:
          type: string
          format: date
        cancellationDateType:
          type: string
          enum:
            - NEXT_POSSIBLE_CANCELLATION_DATE
            - ABSOLUTE_CANCELLATION_DATE
        cancellationType:
          type: string
          enum:
            - ORDINARY_CANCELLATION
            - EXTRAORDINARY_CANCELLATION
        confirmationEmail:
          type: string
        contractId:
          type: integer
          format: int64
        customerNumber:
          type: string
        dateOfBirth:
          type: string
          format: date
        firstname:
          type: string
        lastname:
          type: string
      required:
        - cancellationDate
        - cancellationType
        - contractId
        - customerNumber
        - dateOfBirth
        - firstname
        - lastname
    CancelContractResponseDto:
      type: object
      properties:
        additionalInformation:
          type: string
        cancelationReason:
          $ref: '#/components/schemas/CancelationReasonDto'
        cancellationDate:
          type: string
          format: date
        cancellationReceivedDateTime:
          type: string
          format: date-time
        cancellationType:
          type: string
          enum:
            - ORDINARY_CANCELLATION
            - EXTRAORDINARY_CANCELLATION
        confirmationEmail:
          type: string
        contractName:
          type: string
        customerNumber:
          type: string
        dateOfBirth:
          type: string
          format: date
        firstname:
          type: string
        lastname:
          type: string
        studioId:
          type: integer
          format: int64
    CancelationReasonDto:
      type: object
      properties:
        databaseId:
          type: integer
          format: int64
        fkOrganizationUnit:
          type: integer
          format: int64
        name:
          type: string
        optlock:
          type: integer
          format: int64
        system:
          type: boolean
        type:
          type: string
          enum:
            - UNDEFINED
            - CUSTOM
            - CONTRACT_SWITCH
            - REST_MATURITY
            - DUNNING
        visibleInNox:
          type: boolean
      required:
        - fkOrganizationUnit
    CdnImageDto:
      type: object
      properties:
        bucketName:
          type: string
        id:
          type: integer
          format: int64
        objectKey:
          type: string
        url:
          type: string
      required:
        - bucketName
        - objectKey
    CentralLegalLinkDto:
      type: object
      properties:
        centralLegalLinkDocumentType:
          type: string
          enum:
            - IMPRINT
            - PRIVACY
            - TERMS_AND_CONDITIONS
            - REVOCATION
        content:
          type: string
        contents:
          type: array
          items:
            $ref: '#/components/schemas/StringWithLocaleDto'
          properties:
            empty:
              type: boolean
            first:
              $ref: '#/components/schemas/StringWithLocaleDto'
            last:
              $ref: '#/components/schemas/StringWithLocaleDto'
            locales:
              type: array
              items:
                type: string
              uniqueItems: true
            values:
              type: array
              items:
                type: string
              uniqueItems: true
        databaseId:
          type: integer
          format: int64
        legalLinkType:
          type: string
          enum:
            - EXTERNAL_URL
            - TEXT
        legalLinkTypes:
          type: array
          items:
            $ref: '#/components/schemas/LegalLinkTypeWithLocaleDto'
          properties:
            empty:
              type: boolean
            first:
              $ref: '#/components/schemas/LegalLinkTypeWithLocaleDto'
            last:
              $ref: '#/components/schemas/LegalLinkTypeWithLocaleDto'
            locales:
              type: array
              items:
                type: string
              uniqueItems: true
            values:
              type: array
              items:
                type: string
                enum:
                  - EXTERNAL_URL
                  - TEXT
              uniqueItems: true
        legalOrganizationUnitId:
          type: integer
          format: int64
        optlock:
          type: integer
          format: int64
    CommonTrialSessionLeadAddressDto:
      type: object
      properties:
        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'
        houseNumber:
          type: string
          example: 1b
          maxLength: 300
          minLength: 0
        street:
          type: string
          example: Heinrichstraße
          maxLength: 300
          minLength: 0
        zip:
          type: string
          example: 20095
          maxLength: 100
          minLength: 0
    CommonTrialSessionLeadCustomerDto:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/CommonTrialSessionLeadAddressDto'
        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'
        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
        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
        dateOfBirth:
          type: string
          format: date
          example: '1985-05-29'
        email:
          type: string
          example: mm@test.de
          maxLength: 300
          minLength: 0
        firstname:
          type: string
          example: Max
          maxLength: 100
          minLength: 0
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        lastname:
          type: string
          example: Mustermann
          maxLength: 100
          minLength: 0
        phone:
          type: string
          example: +49 40 123 555
          maxLength: 300
          minLength: 0
        placeOfBirth:
          type: string
          example: Rom
          maxLength: 300
          minLength: 0
        privacyConfiguration:
          $ref: '#/components/schemas/PublicApiPrivacyConfigurationDto'
          description: Data privacy configuration for marketing purposes
        secondFirstname:
          type: string
          example: Martin
          maxLength: 100
          minLength: 0
        secondLastname:
          type: string
          example: Muster
          maxLength: 100
          minLength: 0
        studioId:
          type: integer
          format: int64
          description: Only set if lead is fetched
        taxId:
          type: string
          example: 56982134w
          maxLength: 300
          minLength: 0
      required:
        - firstname
        - lastname
    CommunicationChannelDto:
      type: object
      properties:
        active:
          type: boolean
        communicationChannel:
          type: string
          enum:
            - LETTER
            - EMAIL
            - TEXT_MESSAGE
            - PHONE
            - MYSPORTS_MESSAGE
            - FAX
            - CONVERSATION
            - CHAT
            - OTHER
        customerOverridable:
          type: boolean
    ConnectApiBankAccountBicIbanDto:
      type: object
      properties:
        bankCity:
          type: string
        bankName:
          type: string
        bankZip:
          type: string
        bic:
          type: string
        errorMessage:
          type: string
          description: >-
            Additional information if validation fails. Currently only for IT
            based IBANs
        supportsSepaDirectDebit:
          type: boolean
        validIban:
          type: boolean
    ConnectApiBankAccountHolderValidationResult:
      type: object
      properties:
        errorMessages:
          type: array
          items:
            type: string
        valid:
          type: boolean
    ConnectApiBasicStudioDataDtoV2:
      type: object
      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
    ConnectApiBookTrialSessionDto:
      type: object
      properties:
        leadCustomer:
          $ref: '#/components/schemas/CommonTrialSessionLeadCustomerDto'
        note:
          type: string
          example: become fit
          maxLength: 300
          minLength: 0
        participants:
          type: integer
          format: int32
          example: 2
        referralCode:
          type: string
          example: ABCXYZ
          maxLength: 300
          minLength: 0
        referrerId:
          type: integer
          format: int64
          example: 10
        sourceCampaignId:
          type: integer
          format: int64
          example: 2
        startDateTime:
          type: string
          format: date-time
          example: '2019-04-15T07:00:00.000Z'
        studioId:
          type: integer
          format: int64
          example: 1
        trainerRequired:
          type: boolean
          description: Depends on bookingWithoutResourcesAllowed
          example: true
      required:
        - leadCustomer
        - startDateTime
        - studioId
        - trainerRequired
    ConnectApiBookableItemDto:
      type: object
      properties:
        bookingWithoutResourcesAllowed:
          type: boolean
          description: >-
            true: Customer can decide if a trainer is needed, false: Trainer is
            always mandatory (trainerRequired) 
        description:
          type: string
          description: Short description how the trial session looks like
        name:
          type: string
          description: Display name of trial session
        slots:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiBookableItemSlotDto'
    ConnectApiBookableItemSlotDto:
      type: object
      properties:
        endDateTime:
          type: string
          format: date-time
        startDateTime:
          type: string
          format: date-time
    ConnectApiCampaignDto:
      type: object
      properties:
        externalIdentifier:
          type: string
        id:
          type: integer
          format: int64
        name:
          type: string
      required:
        - externalIdentifier
        - id
        - name
    ConnectApiCodiceFiscaleBirthInformationResponseDto:
      type: object
      properties:
        birthInformationDto:
          $ref: '#/components/schemas/BirthInformationDto'
          description: Date, place and country of birth of customer
        codiceFiscale:
          type: string
          description: Codice fiscale of customer
        gender:
          type: string
          description: Gender of customer
          enum:
            - MALE
            - FEMALE
            - UNISEX
      required:
        - birthInformationDto
        - codiceFiscale
        - gender
    ConnectApiCommunicationPreferencesDto:
      type: object
      properties:
        activeCommunicationChannels:
          type: array
          description: >-
            The list of channels on which messages of the given category are
            allowed to be sent
          items:
            type: string
            enum:
              - LETTER
              - EMAIL
              - TEXT_MESSAGE
              - PHONE
              - MYSPORTS_MESSAGE
              - FAX
              - CONVERSATION
              - CHAT
              - OTHER
          uniqueItems: true
        messageCategoryId:
          type: integer
          format: int64
          description: The ID of the message category
      required:
        - activeCommunicationChannels
        - messageCategoryId
    ConnectApiCompleteTokenizationDto:
      type: object
      properties:
        redirectResult:
          type: string
          description: Redirect result
        threeDSResult:
          type: string
          description: 3DS Result
    ConnectApiContractCancellationStudioDto:
      type: object
      properties:
        cancellationReasons:
          type: array
          items:
            $ref: '#/components/schemas/CancelationReasonDto'
        legalLinks:
          type: array
          items:
            $ref: '#/components/schemas/CentralLegalLinkDto'
    ConnectApiContractDataDto:
      type: object
      properties:
        contractSignature:
          $ref: '#/components/schemas/PublicApiSignatureDto'
        notes:
          type: string
          maxLength: 300
          minLength: 0
        optionalRateBundleTermModules:
          type: array
          description: Selected optional rate bundle term modules additionally payable.
          items:
            $ref: '#/components/schemas/PublicApiSelectedOptionalRateBundleModuleDto'
        preuseDate:
          type: string
          format: date
        rateBundleTermId:
          type: integer
          format: int64
        selectedRateBundleModules:
          type: array
          description: Selected free inclusive rate bundle modules.
          items:
            $ref: >-
              #/components/schemas/PublicApiSelectedSelectableRateBundleModuleDto
        sepaSignature:
          $ref: '#/components/schemas/PublicApiSignatureDto'
          description: if not set, the same value as in contractSignature is used
        startDate:
          type: string
          format: date
        textBlockSignatures:
          type: array
          items:
            $ref: '#/components/schemas/PublicApiSignatureDto'
      required:
        - rateBundleTermId
        - startDate
    ConnectApiContractPreviewDto:
      type: object
      properties:
        ageAdjustedPrice:
          type: number
          description: >-
            The adjusted price, if age-based discounts are configured and the
            customer is eligible, null otherwise
        basePrice:
          type: number
          description: base price of contract
        companyAmount:
          type: number
          description: Amount the company has to pay
        companyAmountPreUseCharge:
          type: number
          description: Amount the company has to pay for pre use charge
        companyAmountWithoutDiscount:
          type: number
          description: Amount the company has to pay without discount
        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
        contractVolumeInformation:
          $ref: '#/components/schemas/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)
        creditValue:
          type: number
          description: Voucher credit value, if a valid credit 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
        discountedBasePrice:
          type: number
          description: >-
            Discounted base price, if a valid (company) discount voucher is
            provided
        discountedPreUseCharge:
          type: number
          description: >-
            Discounted pre use charge, if a valid (company) discount voucher is
            provided
        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
        flatFeePreviews:
          type: array
          description: >-
            Flat fee previews, including discount if a valid discount voucher is
            provided
          items:
            $ref: '#/components/schemas/ConnectApiFlatFeePreviewDto'
        memberAmount:
          type: number
          description: Amount the member has to pay
        memberAmountPreUseCharge:
          type: number
          description: Amount the member has to pay for pre use charge
        memberAmountWithoutDiscount:
          type: number
          description: Amount the member has to pay without discount
        moduleConsentTextBlocks:
          type: array
          description: Consent texts for modules that are part of the contract
          items:
            $ref: '#/components/schemas/ConnectApiSignableTextBlockDto'
        preUseCharge:
          type: number
          description: Charge for the time between startdateofuse and startdate
        selectedOptionalModulesPreviews:
          type: array
          description: >-
            Optional module contract preview including discount, company split
            or credit, if a valid voucher is provided
          items:
            $ref: '#/components/schemas/ConnectApiModuleContractPreviewDto'
        voucherBonusPeriod:
          $ref: '#/components/schemas/ConnectApiRateBonusPeriodDto'
          description: >-
            Bonus period applied with the (company) discount voucher, if valid a
            (company) discount voucher is provided
        voucherEffectivePeriod:
          type: string
          description: Effective period type in which a discount is applied
          enum:
            - UNLIMITED
            - INITIAL_TERM
            - TIME_BASED
        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
        voucherErrorMessage:
          type: string
          description: >-
            A readable, non-localized error message, if the voucher code is
            invalid
        voucherRemarks:
          type: string
          description: Voucher remarks, if a valid voucher code is provided
        voucherSuccessMessage:
          type: string
          description: >-
            Textual representation of the voucher conditions, if a valid voucher
            is provided
        voucherTextBlocks:
          type: array
          description: Voucher related text blocks, if a valid voucher is provided
          items:
            $ref: '#/components/schemas/ConnectApiSignableTextBlockDto'
        voucherType:
          type: string
          description: Type of a voucher, if a valid voucher code is provided
          enum:
            - CONTRACT
            - CREDIT
            - DISCOUNT
            - COMPANY_FEE_SPLIT
            - CHECKIN
    ConnectApiContractVoucherDto:
      type: object
      properties:
        rateDetailTerm:
          type: string
        rateName:
          type: string
        validityPeriod:
          $ref: '#/components/schemas/OpenTimePeriodClientDto'
    ConnectApiCreateContractDto:
      type: object
      description: contract and customer data
      properties:
        contract:
          $ref: '#/components/schemas/ConnectApiContractDataDto'
        customer:
          $ref: '#/components/schemas/ConnectApiCreatePublicCustomerDto'
        landingPageConfigurationId:
          type: integer
          format: int64
        offerUuid:
          type: string
          format: uuid
        studioId:
          type: integer
          format: int64
        voucherCode:
          type: string
          description: Only vouchers of type 'Credit' or 'Discount' are supported here.
      required:
        - contract
        - customer
        - studioId
    ConnectApiCreateContractResponseDto:
      type: object
      properties:
        ' customer id':
          type: integer
          format: int64
        ' customer member name':
          type: string
          readOnly: true
        ' customer member number':
          type: string
        ' token for additional requests after member creation':
          $ref: '#/components/schemas/ConnectApiFollowUpActionTokenDto'
          readOnly: true
        Optional payment url where the user needs to be redirected to:
          type: string
          readOnly: true
        Quick registration url for MySports:
          type: string
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
      required:
        - ' customer id'
        - ' customer member number'
        - id
    ConnectApiCreateLeadDto:
      type: object
      properties:
        additionalAddressInformation:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        city:
          type: string
          example: Hamburg
          maxLength: 300
          minLength: 0
        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'
        countryCode:
          type: string
          example: DE
          maxLength: 300
          minLength: 0
        dateOfBirth:
          type: string
          format: date
        door:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        email:
          type: string
          maxLength: 300
          minLength: 0
        firstname:
          type: string
          maxLength: 100
          minLength: 0
        firstname2:
          type: string
          description: addition for Turkey
          maxLength: 100
          minLength: 0
        floor:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        gender:
          type: string
          description: User will be assigned as UNISEX if no gender is set.
          enum:
            - MALE
            - FEMALE
            - UNISEX
        houseNumber:
          type: string
          example: 3-4
          maxLength: 100
          minLength: 0
        lastname:
          type: string
          maxLength: 100
          minLength: 0
        lastname2:
          type: string
          description: addition for Spain
          maxLength: 100
          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
        phone:
          type: string
          maxLength: 300
          minLength: 0
        portal:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        privacyConfiguration:
          $ref: '#/components/schemas/PublicApiPrivacyConfigurationDto'
          description: Data privacy configuration for marketing purposes
        province:
          type: string
          description: addition for southern Europe/US countries (e.g. Madrid, California)
          maxLength: 300
          minLength: 0
        provinceCode:
          type: string
          description: addition for US state abbreviation (e.g. CA)
          maxLength: 300
          minLength: 0
        sourceCampaignId:
          type: integer
          format: int64
        stairway:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        street:
          type: string
          example: Raboisen
          maxLength: 300
          minLength: 0
        streetBlock:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        streetType:
          type: string
          description: addition for Spain (e.g. calle)
          maxLength: 300
          minLength: 0
        studioId:
          type: integer
          format: int64
        taxId:
          type: string
          description: addition for Spain and Italy
          maxLength: 300
          minLength: 0
        zipCode:
          type: string
          example: 22099
          maxLength: 100
          minLength: 0
      required:
        - firstname
        - lastname
        - studioId
    ConnectApiCreateLeadResponseDto:
      type: object
      properties:
        customerNumber:
          type: string
          description: Customer number of prospect
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        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
    ConnectApiCreatePublicCustomerDto:
      type: object
      properties:
        additionalAddressInformation:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        bankAccount:
          $ref: '#/components/schemas/PublicApiBankAccountDto'
          description: Required in combination with paymentChoice DIRECT_DEBIT
        buildingName:
          type: string
          description: addition for Turkish addresses
          maxLength: 300
          minLength: 0
        city:
          type: string
          example: Hamburg
          maxLength: 300
          minLength: 0
        cityPart:
          type: string
          description: addition for Turkish addresses
          maxLength: 300
          minLength: 0
        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'
        countryCode:
          type: string
          example: DE
          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
        creditCard:
          $ref: '#/components/schemas/PublicApiCreditCardDto'
          description: Required in combination with paymentChoice CREDIT_CARD
        dateOfBirth:
          type: string
          format: date
          description: The age must be between 0 and 100 years inclusive.
        district:
          type: string
          description: addition for Turkish addressses
          maxLength: 300
          minLength: 0
        documentIdentification:
          $ref: '#/components/schemas/PublicApiDocumentIdentificationDto'
          description: information from an official document with identifies the customer
        door:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        email:
          type: string
          maxLength: 300
          minLength: 0
        firstname:
          type: string
          maxLength: 100
          minLength: 0
        floor:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        gender:
          type: string
          description: User will be assigned as UNISEX if no gender is set.
          enum:
            - MALE
            - FEMALE
            - UNISEX
        houseNumber:
          type: string
          example: 3-4
          maxLength: 100
          minLength: 0
        identification:
          $ref: '#/components/schemas/ConnectApiIdentificationDto'
          deprecated: true
          description: Deprecated. Use the identityNumber field.
        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
        imageObjectKey:
          type: string
          description: Object key for pre-uploaded image
          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
        lastname:
          type: string
          maxLength: 100
          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
        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
        placeOfBirth:
          type: string
          description: Required for italian studios and nationals
          maxLength: 300
          minLength: 0
        portal:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        privacyConfiguration:
          $ref: '#/components/schemas/PublicApiPrivacyConfigurationDto'
          deprecated: true
          description: >-
            Data privacy configuration for marketing purposes. Deprecated. Use
            communicationPreferences instead.
        province:
          type: string
          description: addition for southern Europe countries/US (e.g. Madrid, California)
          maxLength: 300
          minLength: 0
        provinceCode:
          type: string
          description: addition for US states (e.g. CA)
          maxLength: 300
          minLength: 0
        publicGender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
        referralCode:
          type: string
          description: Referral code to link with recruiter
          maxLength: 300
          minLength: 0
        secondFirstname:
          type: string
          description: addition for Turkey
          maxLength: 100
          minLength: 0
        secondLastName:
          type: string
          description: addition for Spain
          maxLength: 100
          minLength: 0
        secondStreet:
          type: string
          description: addition for Turkish addresses
          maxLength: 300
          minLength: 0
        stairway:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        street:
          type: string
          example: Raboisen
          maxLength: 300
          minLength: 0
        streetBlock:
          type: string
          description: addition for Spain
          maxLength: 300
          minLength: 0
        streetType:
          type: string
          description: addition for Spain (e.g. calle)
          maxLength: 300
          minLength: 0
        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
        taxId:
          type: string
          description: Required if the studio is located in Spain or Italy
          maxLength: 300
          minLength: 0
        telephone_mobile:
          type: string
          description: If only one number is available use mobile as default.
          maxLength: 300
          minLength: 0
        telephone_private:
          type: string
          description: If only one number is available use mobile as default.
          maxLength: 300
          minLength: 0
        zipCode:
          type: string
          example: 22099
          maxLength: 100
          minLength: 0
      required:
        - city
        - countryCode
        - dateOfBirth
        - email
        - firstname
        - houseNumber
        - lastname
        - paymentChoice
        - street
        - zipCode
    ConnectApiDocumentDto:
      type: object
      properties:
        fileName:
          type: string
        url:
          type: string
          description: Temporary valid download link. Expires after 5 hours
      required:
        - fileName
        - url
    ConnectApiErrorResponseDto:
      type: object
      properties:
        errorCodes:
          type: array
          description: Generic categories of errors. You may map them to default responses
          items:
            type: string
            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
        message:
          type: string
          description: >-
            For developer integration and logging purposes. Do not show message
            in client!
        traceId:
          type: string
          description: Trace id
      required:
        - errorCodes
    ConnectApiFlatFeePreviewDto:
      type: object
      properties:
        companyAmount:
          type: number
        creditValue:
          type: number
        discountedPrice:
          type: number
        identifier:
          type: string
        memberAmount:
          type: number
        name:
          type: string
        paidTimePeriodCalculationType:
          type: string
          enum:
            - REFERENCE_DATE
            - NORMALIZATION_ON_CALENDAR_UNIT
        paymentFrequency:
          type: string
        paymentFrequencyDto:
          $ref: '#/components/schemas/ConnectApiPaymentFrequencyDto'
        paymentFrequencyType:
          type: string
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        paymentFrequencyUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyValue:
          type: integer
          format: int32
        price:
          type: number
        voucherBonusPeriod:
          $ref: '#/components/schemas/ConnectApiRateBonusPeriodDto'
    ConnectApiFollowUpActionTokenDto:
      type: object
      properties:
        token:
          type: string
        tokenValidUntil:
          type: string
      required:
        - token
        - tokenValidUntil
    ConnectApiIdentificationDto:
      type: object
      properties:
        spain_DNI_NIE:
          type: string
          deprecated: true
          description: Required if the studio is located in Spain
          maxLength: 300
          minLength: 0
    ConnectApiInitiateTokenizationDtoV2:
      type: object
      properties:
        browserInfo:
          type: string
          description: >-
            Browser Info object, is obtained from Adyen card component and must
            be serialized to string
        origin:
          type: string
          description: Origin, obtained via window.location.origin
        paymentMethod:
          type: string
          description: >-
            Payment Method, is obtained from Adyen card component and must be
            serialized to string
        returnUrl:
          type: string
          description: >-
            Return url for redirects. If user is redirected to banking page, he
            will be redirected to this url after authentication.
        studioId:
          type: integer
          format: int64
          description: Studio Id
      required:
        - browserInfo
        - origin
        - paymentMethod
        - returnUrl
        - studioId
    ConnectApiModuleContractPreviewDto:
      type: object
      properties:
        companyAmount:
          type: number
        creditValue:
          type: number
        discountedPrice:
          type: number
        memberAmount:
          type: number
        name:
          type: string
        paidTimePeriodCalculationType:
          type: string
          enum:
            - REFERENCE_DATE
            - NORMALIZATION_ON_CALENDAR_UNIT
        paymentFrequency:
          type: string
        paymentFrequencyDto:
          $ref: '#/components/schemas/ConnectApiPaymentFrequencyDto'
        paymentFrequencyType:
          type: string
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        paymentFrequencyUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyValue:
          type: integer
          format: int32
        price:
          type: number
        voucherBonusPeriod:
          $ref: '#/components/schemas/ConnectApiRateBonusPeriodDto'
    ConnectApiPaymentFrequencyDto:
      type: object
      properties:
        ageBasedAdjustmentDtos:
          type: array
          description: >-
            Age-based price adjustments. Price adjustments can be either a
            percentage by which the base price is being discounted or an
            absolute price.
          items:
            $ref: '#/components/schemas/AgeBasedAdjustmentDto'
        money:
          $ref: '#/components/schemas/MoneyDto'
          description: >-
            The price for this payment frequency. Only set if "type" is either
            "RECURRING" or "NON_RECURRING"
        monthDayWithPrices:
          type: array
          description: >-
            The dates and respective prices on which payments are due. Only set
            if "type" is "MONTH_DAY"
          items:
            $ref: '#/components/schemas/MonthDayWithPriceDto'
        recurring:
          type: boolean
          description: >-
            Whether the cycle of payments repeats indefinitely. Only relevant if
            type is "TERM_BASED" or "MONTH_DAY".
        term:
          $ref: '#/components/schemas/TermDto'
          description: >-
            The interval in which payments are made. Only set if "type" is
            "RECURRING"
        termWithPrices:
          type: array
          description: >-
            The terms and respective prices after which payments are due. Only
            set if "type" is "TERM_BASED"
          items:
            $ref: '#/components/schemas/TermWithPriceDto'
        type:
          type: string
          description: The kind of intervals in which payments are made
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
      required:
        - recurring
        - type
    ConnectApiRateBonusPeriodDto:
      type: object
      properties:
        displaySeparately:
          type: boolean
        extendsCancellationPeriod:
          type: boolean
        runtimeExtensionType:
          type: string
          enum:
            - WITH_EXTENSION
            - WITHOUT_EXTENSION
        termStrategy:
          type: string
          enum:
            - CONTRACT_START
            - FIXED
            - END_OF_CURRENT_TERM
            - START_OF_NEXT_TERM
        termUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        termValue:
          type: integer
          format: int32
    ConnectApiRateBundleDto:
      type: object
      properties:
        allowedPaymentChoices:
          type: array
          description: >-
            Allowed payment types for this rate bundle. Others than in this list
            will not be accepted when creating a contract. Please note: The
            Connect API only supports 'DIRECT_DEBIT' and 'CREDIT_CARD'.
            Therefore, this list will contain these two values at most.
          items:
            type: string
            enum:
              - CASH
              - BANK_TRANSFER
              - DIRECT_DEBIT
              - CREDIT_CARD
              - TWINT
          uniqueItems: true
        contractSignaturesRequired:
          type: boolean
          description: >-
            Indicates if a digital signature for the contract (and SEPA
            agreement) is mandatory.
        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'
        description:
          type: string
        footnote:
          type: string
          description: Contractual or legal comments to be displayed below the offer.
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        imageUrl:
          type: string
          description: >-
            Temporary valid download link for rate bundle image. Expires after
            24h
        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.
        limitedOfferingPeriod:
          $ref: '#/components/schemas/TimePeriodClientDto'
          description: The period in which this rate bundle is offered
        maximumNumberOfSelectableModules:
          type: integer
          format: int32
          description: >-
            The maximum value of the selectable modules that the customer can
            choose.
        modules:
          type: array
          description: Included free modules.
          items:
            $ref: '#/components/schemas/ConnectApiRateBundleModuleDto'
        name:
          type: string
        onlinePaymentType:
          type: string
          description: >-
            Under development: Indicates if this RateBundle has some kind of
            special Payment Handling
          enum:
            - NONE
            - DIRECT_PAYMENT
        preuseType:
          type: string
          description: '[0=NONE, 1=CHARGEABLE, 2=FREE]'
          enum:
            - NONE
            - CHARGEABLE
            - FREE
        rateCodeDto:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiRateCodeDto'
        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'
        subDescription:
          type: string
        terms:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiRateBundleTermDto'
      required:
        - description
        - id
        - modules
        - name
        - terms
    ConnectApiRateBundleModuleDto:
      type: object
      properties:
        consentTextBlock:
          $ref: '#/components/schemas/ConnectApiSignableTextBlockDto'
        description:
          type: string
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        imageUrl:
          type: string
        name:
          type: string
        paymentFrequencyDto:
          $ref: '#/components/schemas/ConnectApiPaymentFrequencyDto'
        paymentFrequencyId:
          type: integer
          format: int64
        paymentFrequencyType:
          type: string
          deprecated: true
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        paymentFrequencyUnit:
          type: string
          deprecated: true
          description: is set in combination with RECURRING type
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyValue:
          type: integer
          format: int32
          deprecated: true
          description: is set in combination with RECURRING type
        price:
          type: number
          deprecated: true
        publicTrialPeriodDto:
          $ref: '#/components/schemas/PublicTrialPeriodDto'
        term:
          $ref: '#/components/schemas/TermInformationDto'
      required:
        - id
        - name
        - paymentFrequencyDto
        - paymentFrequencyId
    ConnectApiRateBundleTermDto:
      type: object
      properties:
        ageBasedAdjustmentDtos:
          type: array
          deprecated: true
          description: >-
            A list of age-based price adjustments for this term. Deprecated, use
            "paymentFrequencyDto.ageBasedAdjustmentDtos" instead.
          items:
            $ref: '#/components/schemas/AgeBasedAdjustmentDto'
        cancelationStrategy:
          type: string
          enum:
            - TERM
            - RECEIPT_DATE
        cancellationPeriod:
          type: integer
          format: int32
        cancellationPeriodUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        contractStartDateOfUse:
          type: string
          format: date
          description: >-
            This contract start date of use will be used if none will be send,
            but can be overridden
        contractVolumeInformation:
          $ref: '#/components/schemas/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)
        defaultContractStartDate:
          type: string
          format: date
          description: >-
            This contract start will be used if none will be send, but can be
            overridden
        extensionCancellationPeriod:
          type: integer
          format: int32
        extensionCancellationPeriodUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        extensionFixedTerm:
          type: integer
          format: int32
        extensionFixedTermUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        extensionType:
          type: string
          enum:
            - NONE
            - TERM_EXTENSION
            - SUBSEQUENT_RATE_DETAIL
        flatFees:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiRateBundleTermFlatFeeDto'
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        optionalModules:
          type: array
          description: Optional modules additionally payable.
          items:
            $ref: '#/components/schemas/ConnectApiRateBundleModuleDto'
        paymentFrequencyDto:
          $ref: '#/components/schemas/ConnectApiPaymentFrequencyDto'
          description: The payment frequency of this term
        paymentFrequencyType:
          type: string
          deprecated: true
          description: Deprecated, use "paymentFrequencyDto.type" instead.
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        paymentFrequencyUnit:
          type: string
          deprecated: true
          description: >-
            Is set in combination with RECURRING type. Deprecated, use
            "paymentFrequencyDto.term.termUnit" instead.
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyValue:
          type: integer
          format: int32
          deprecated: true
          description: >-
            Is set in combination with RECURRING type. Deprecated, use
            "paymentFrequencyDto.term.term" instead.
        price:
          type: number
          deprecated: true
          description: Deprecated, use "paymentFrequencyDto.money.amount" instead.
        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'
        priceAfterExtension:
          type: number
          description: >-
            The new price after minimum contract duration. Null if not
            configured.
        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.
        subsequentRateDto:
          $ref: '#/components/schemas/ConnectApiRateBundleDto'
        term:
          $ref: '#/components/schemas/TermDto'
        termUnit:
          type: string
          deprecated: true
          description: Deprecated, use "term.termUnit" instead.
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        termUnitAfterExtension:
          type: string
          description: >-
            The new term unit after minimum contract duration. Null if not
            configured.
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        termValue:
          type: integer
          format: int32
          deprecated: true
          description: Deprecated, use "term.term" instead.
        termValueAfterExtension:
          type: integer
          format: int32
          description: >-
            The new term value after minimum contract duration. Null if not
            configured.
        termValueWithoutBonusPeriod:
          type: integer
          format: int32
      required:
        - id
        - paymentFrequencyDto
        - term
        - termUnit
        - termValue
        - termValueWithoutBonusPeriod
    ConnectApiRateBundleTermFlatFeeDto:
      type: object
      properties:
        firstBookingDelayUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        firstBookingDelayValue:
          type: integer
          format: int32
        identifier:
          type: string
        isStarterPackage:
          type: boolean
        name:
          type: string
        paidTimePeriodCalculationType:
          type: string
          enum:
            - REFERENCE_DATE
            - NORMALIZATION_ON_CALENDAR_UNIT
        paymentFrequency:
          type: string
          deprecated: true
          description: >-
            Additional details of payment frequency. Deprecated, formatting
            should be handled on the client side using information from
            "paymentFrequencyDto"
          example: One time on 01.01, Every 01.01., etc.
        paymentFrequencyDto:
          $ref: '#/components/schemas/ConnectApiPaymentFrequencyDto'
          description: Payment frequency information
        paymentFrequencyId:
          type: integer
          format: int64
        paymentFrequencyType:
          type: string
          deprecated: true
          description: Deprecated, use "paymentFrequencyDto.type" instead
          enum:
            - NON_RECURRING
            - RECURRING
            - MONTH_DAY
            - TERM_BASED
            - FREE
        paymentFrequencyUnit:
          type: string
          deprecated: true
          description: >-
            Is set in combination with RECURRING type. Deprecated, use
            "paymentFrequencyDto.term.termUnit" instead.
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        paymentFrequencyValue:
          type: integer
          format: int32
          deprecated: true
          description: >-
            Is set in combination with RECURRING type. Deprecated, use
            "paymentFrequencyDto.term.term" instead.
        price:
          type: number
          deprecated: true
          description: Deprecated, use "paymentFrequencyDto.money.amount" instead
      required:
        - identifier
        - name
        - paidTimePeriodCalculationType
        - paymentFrequencyDto
        - paymentFrequencyId
        - paymentFrequencyType
        - price
    ConnectApiRateCodeDto:
      type: object
      properties:
        identifier:
          type: string
        name:
          type: string
      required:
        - identifier
        - name
    ConnectApiRedeemVoucherDto:
      type: object
      properties:
        contractStartDate:
          type: string
          format: date
        contractStartPreuseDate:
          type: string
          format: date
        customerDto:
          $ref: '#/components/schemas/ConnectApiCreatePublicCustomerDto'
        organizationUnitId:
          type: integer
          format: int64
    ConnectApiRedeemVoucherResponseDto:
      type: object
      properties:
        customerNumber:
          type: string
    ConnectApiReferralDto:
      type: object
      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
    ConnectApiSignableTextBlockDto:
      type: object
      properties:
        attachedDocument:
          $ref: '#/components/schemas/ConnectApiDocumentDto'
          description: >-
            Optional contract document attachment You should display a download
            link if this field is set.
        attachedExternalUrlDto:
          $ref: '#/components/schemas/AttachedExternalUrlDto'
          description: >-
            Optional link to external url You should display a link if this
            field is set with the given title and target url
        attachmentType:
          type: string
          description: >-
            Indicates the type of attachment for this block: None, file
            (attachedDocument) or Url (attachedExternalUrlDto)
          enum:
            - NONE
            - FILE
            - URL
            - CONTRACT_PDF_PREVIEW
        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.
        id:
          type: integer
          format: int64
        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. 
        order:
          type: integer
          format: int32
          description: order in contract document
        rateBundleModuleId:
          type: integer
          format: int64
          description: >-
            The ID of the associated rate bundle module. Only set if this is a
            module consent text block.
        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. 
        text:
          type: string
        title:
          type: string
      required:
        - hasSignature
        - id
        - isConfirmationRequired
        - order
        - showCommunicationPrivacyOptions
        - text
        - title
    ConnectApiStudioAddressDto:
      type: object
      properties:
        additionalAddressInformation:
          type: string
          description: addition for Spain
        buildingName:
          type: string
          description: addition for Turkey
        city:
          type: string
        cityPart:
          type: string
          description: addition for Turkey
        countryCode:
          type: string
        countryCodeAlpha2:
          type: string
        district:
          type: string
          description: addition for Turkey
        door:
          type: string
          description: addition for Spain
        floor:
          type: string
          description: addition for Spain
        houseNumber:
          type: string
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
        portal:
          type: string
          description: addition for Spain
        province:
          type: string
          description: addition for southern Europe/US countries (e.g. Madrid, California)
        provinceCode:
          type: string
          description: addition for US (e.g. CA for California)
        secondStreet:
          type: string
          description: addition for Turkey
        stairway:
          type: string
          description: addition for Spain
        street:
          type: string
        streetAddition:
          type: string
        streetBlock:
          type: string
          description: addition for Spain
        streetType:
          type: string
          description: addition for Spain (e.g. calle)
        zipCode:
          type: string
    ConnectApiStudioCommunicationConfigurationDto:
      type: object
      properties:
        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'
        messageCategory:
          $ref: '#/components/schemas/MessageCategoryDto'
          description: The message category
    ConnectApiStudioDetailsDto:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/ConnectApiStudioAddressDto'
        centralLegalLinks:
          type: array
          description: >-
            Legal Links configured on the Operating Company currently active on
            the Studio
          items:
            $ref: '#/components/schemas/CentralLegalLinkDto'
        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.
        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
        defaultLocale:
          type: string
          description: The Studios default Locale
        hasRateBundles:
          type: boolean
          description: Does this studio has contract offers for online sign up
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        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!
        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'
        referralProgramActive:
          type: boolean
          description: Whether the studio has an active referral program configuration
        studioEmail:
          type: string
        studioName:
          type: string
        studioPhone:
          type: string
        studioTags:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiStudioTagDto'
        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'
        trialSessionName:
          type: string
          description: >-
            Name of the trial session benefit which you can book appointments
            for
        zoneId:
          type: object
          description: Timezone of the studios location
          properties:
            id:
              type: string
            rules:
              type: object
              properties:
                fixedOffset:
                  type: boolean
                transitionRules:
                  type: array
                  items:
                    type: object
                    properties:
                      dayOfMonthIndicator:
                        type: integer
                        format: int32
                      dayOfWeek:
                        type: string
                        enum:
                          - MONDAY
                          - TUESDAY
                          - WEDNESDAY
                          - THURSDAY
                          - FRIDAY
                          - SATURDAY
                          - SUNDAY
                      localTime:
                        $ref: '#/components/schemas/LocalTime'
                      midnightEndOfDay:
                        type: boolean
                      month:
                        type: string
                        enum:
                          - JANUARY
                          - FEBRUARY
                          - MARCH
                          - APRIL
                          - MAY
                          - JUNE
                          - JULY
                          - AUGUST
                          - SEPTEMBER
                          - OCTOBER
                          - NOVEMBER
                          - DECEMBER
                      offsetAfter:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      offsetBefore:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      standardOffset:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      timeDefinition:
                        type: string
                        enum:
                          - UTC
                          - WALL
                          - STANDARD
                transitions:
                  type: array
                  items:
                    type: object
                    properties:
                      dateTimeAfter:
                        type: string
                        format: date-time
                      dateTimeBefore:
                        type: string
                        format: date-time
                      duration:
                        type: object
                        properties:
                          nano:
                            type: integer
                            format: int32
                          negative:
                            type: boolean
                          positive:
                            type: boolean
                          seconds:
                            type: integer
                            format: int64
                          units:
                            type: array
                            items:
                              type: object
                              properties:
                                dateBased:
                                  type: boolean
                                durationEstimated:
                                  type: boolean
                                timeBased:
                                  type: boolean
                          zero:
                            type: boolean
                      gap:
                        type: boolean
                      instant:
                        type: string
                        format: date-time
                      offsetAfter:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      offsetBefore:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      overlap:
                        type: boolean
      required:
        - id
        - studioName
    ConnectApiStudioDtoV2:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/ConnectApiStudioAddressDto'
        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.
        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
        hasRateBundles:
          type: boolean
          description: Does this studio has contract offers for online sign up
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        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!
        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'
        studioEmail:
          type: string
        studioName:
          type: string
        studioPhone:
          type: string
        studioTags:
          type: array
          items:
            $ref: '#/components/schemas/ConnectApiStudioTagDto'
        trialSessionBookable:
          type: boolean
          description: Has this studio trial session configured for online booking of slots
        trialSessionName:
          type: string
          description: >-
            Name of the trial session benefit which you can book appointments
            for
        zoneId:
          type: object
          description: Timezone of the studios location
          properties:
            id:
              type: string
            rules:
              type: object
              properties:
                fixedOffset:
                  type: boolean
                transitionRules:
                  type: array
                  items:
                    type: object
                    properties:
                      dayOfMonthIndicator:
                        type: integer
                        format: int32
                      dayOfWeek:
                        type: string
                        enum:
                          - MONDAY
                          - TUESDAY
                          - WEDNESDAY
                          - THURSDAY
                          - FRIDAY
                          - SATURDAY
                          - SUNDAY
                      localTime:
                        $ref: '#/components/schemas/LocalTime'
                      midnightEndOfDay:
                        type: boolean
                      month:
                        type: string
                        enum:
                          - JANUARY
                          - FEBRUARY
                          - MARCH
                          - APRIL
                          - MAY
                          - JUNE
                          - JULY
                          - AUGUST
                          - SEPTEMBER
                          - OCTOBER
                          - NOVEMBER
                          - DECEMBER
                      offsetAfter:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      offsetBefore:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      standardOffset:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      timeDefinition:
                        type: string
                        enum:
                          - UTC
                          - WALL
                          - STANDARD
                transitions:
                  type: array
                  items:
                    type: object
                    properties:
                      dateTimeAfter:
                        type: string
                        format: date-time
                      dateTimeBefore:
                        type: string
                        format: date-time
                      duration:
                        type: object
                        properties:
                          nano:
                            type: integer
                            format: int32
                          negative:
                            type: boolean
                          positive:
                            type: boolean
                          seconds:
                            type: integer
                            format: int64
                          units:
                            type: array
                            items:
                              type: object
                              properties:
                                dateBased:
                                  type: boolean
                                durationEstimated:
                                  type: boolean
                                timeBased:
                                  type: boolean
                          zero:
                            type: boolean
                      gap:
                        type: boolean
                      instant:
                        type: string
                        format: date-time
                      offsetAfter:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      offsetBefore:
                        type: object
                        properties:
                          id:
                            type: string
                          totalSeconds:
                            type: integer
                            format: int32
                      overlap:
                        type: boolean
      required:
        - id
        - studioName
    ConnectApiStudioLegalLinksDto:
      type: object
      properties:
        legalLinks:
          type: array
          items:
            $ref: '#/components/schemas/CentralLegalLinkDto'
    ConnectApiStudioTagDto:
      type: object
      properties:
        identifier:
          type: string
        name:
          type: string
      required:
        - identifier
        - name
    ConnectApiTaxIdDto:
      type: object
      properties:
        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
        dateOfBirth:
          type: string
          format: date
        firstname:
          type: string
        gender:
          type: string
          description: User will be assigned as UNISEX if no gender is set.
          enum:
            - MALE
            - FEMALE
            - UNISEX
        lastname:
          type: string
        placeOfBirth:
          type: string
          description: addition for Italy if customer is national
        studioId:
          type: integer
          format: int64
          description: Is needed to determine country specific validation rules
        taxId:
          type: string
          description: Is country specific, like CodiceFisacale in Italy
      required:
        - dateOfBirth
        - firstname
        - lastname
        - studioId
        - taxId
    ConnectApiTrialSessionBookedResponseDto:
      type: object
      properties:
        customerNumber:
          type: string
          description: Customer number of prospect
        id:
          type: integer
          format: int64
          description: Id of current data block. See name field parameter or name of Dto!
        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
    ConnectApiTrialSessionLeadConfigDto:
      type: object
      properties:
        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
        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
        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
        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
        minimumAge:
          type: integer
          format: int32
          description: >-
            minimum age to book a trial session (dateOfBirthMode is mandatory if
            value is set)
        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
        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
        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
        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
        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
    ContractVolumeDto:
      type: object
      properties:
        averagePaymentVolumePerMonth:
          type: number
        averagePaymentVolumePerPaymentFrequencyTerm:
          type: number
        totalContractVolume:
          type: number
    CreditCardDto:
      type: object
      properties:
        brand:
          type: string
          enum:
            - amex
            - bancontact
            - cartebancaire
            - cup
            - diners
            - discover
            - elo
            - girocard
            - hipercard
            - jcb
            - maestro
            - mc
            - twint_pos
            - visa
            - vpay
            - unknown
        cardHolder:
          type: string
        cardNumber:
          type: string
        expiry:
          type: object
          properties:
            leapYear:
              type: boolean
            month:
              type: string
              enum:
                - JANUARY
                - FEBRUARY
                - MARCH
                - APRIL
                - MAY
                - JUNE
                - JULY
                - AUGUST
                - SEPTEMBER
                - OCTOBER
                - NOVEMBER
                - DECEMBER
            monthValue:
              type: integer
              format: int32
            year:
              type: integer
              format: int32
        id:
          type: integer
          format: int64
        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
        preferred:
          type: boolean
        provider:
          type: string
          enum:
            - ADYEN
        providerToken:
          type: string
    CustomerCommunicationPreferencesData:
      type: object
      properties:
        activeCommunicationChannels:
          type: array
          items:
            type: string
            enum:
              - LETTER
              - EMAIL
              - TEXT_MESSAGE
              - PHONE
              - MYSPORTS_MESSAGE
              - FAX
              - CONVERSATION
              - CHAT
              - OTHER
          uniqueItems: true
        messageCategoryId:
          type: integer
          format: int64
    DownloadUrlWithObjectKeyDto:
      type: object
      properties:
        objectKey:
          type: string
        uploadUrl:
          type: string
    GetActiveContractsRequestDto:
      type: object
      properties:
        customerNumber:
          type: string
        dateOfBirth:
          type: string
          format: date
        firstname:
          type: string
        lastname:
          type: string
      required:
        - dateOfBirth
        - firstname
        - lastname
    GetActiveContractsResponseDto:
      type: object
      properties:
        cancellationDates:
          type: array
          items:
            type: string
            format: date
        cancellationType:
          type: string
          enum:
            - FIXED_DATES
            - ANY_AFTER_FIRST_DATE
        cancelled:
          type: boolean
        contractId:
          type: integer
          format: int64
        contractName:
          type: string
        studioId:
          type: integer
          format: int64
    IdealPaymentInstrumentDto:
      type: object
      properties:
        issuer:
          type: string
    KeyValuePairCountryCodeString:
      type: object
      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
    LegalLinkTypeWithLocaleDto:
      type: object
      properties:
        locale:
          type: string
        value:
          type: string
          enum:
            - EXTERNAL_URL
            - TEXT
    LocalTime:
      type: object
      properties:
        hour:
          type: integer
          format: int32
        minute:
          type: integer
          format: int32
        nano:
          type: integer
          format: int32
        second:
          type: integer
          format: int32
    MessageCategoryDto:
      type: object
      properties:
        databaseId:
          type: integer
          format: int64
        name:
          type: string
        optlock:
          type: integer
          format: int64
        publicDescription:
          type: string
        shortDescription:
          type: string
        showAsterisk:
          type: boolean
    MoneyDto:
      type: object
      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:
      type: object
      properties:
        monthDay:
          type: string
        price:
          $ref: '#/components/schemas/MoneyDto'
      required:
        - monthDay
        - price
    OpenTimePeriodClientDto:
      type: object
      properties:
        endDate:
          type: string
          format: date
        startDate:
          type: string
          format: date
    PaymentInstrumentDto:
      type: object
      properties:
        accountPaymentInstrumentToken:
          type: string
        bacsPaymentInstrument:
          $ref: '#/components/schemas/BacsPaymentInstrumentDto'
        banContactCard:
          $ref: '#/components/schemas/BanContactCardDto'
        creditCard:
          $ref: '#/components/schemas/CreditCardDto'
        id:
          type: integer
          format: int64
        idealPaymentInstrument:
          $ref: '#/components/schemas/IdealPaymentInstrumentDto'
        paymentInstrumentInvalidReason:
          type: string
          enum:
            - CHARGEBACK
            - RECURRING_TOKEN_DISABLED
        paymentInstrumentStatus:
          type: string
          enum:
            - WAITING_FOR_CONFIRMATION
            - CONFIRMED
            - INVALID
        paymentInstrumentType:
          type: string
          enum:
            - CREDIT_CARD
            - PAYPAL
            - TERMINAL
            - APPLE_PAY
            - GOOGLE_PAY
            - SAMSUNG_PAY
            - BANCONTACT
            - IDEAL
            - SEPA
            - TWINT
            - BACS
        preferred:
          type: boolean
        recurringReference:
          type: string
        sepaPaymentInstrumentDto:
          $ref: '#/components/schemas/SepaPaymentInstrumentDto'
        userAccountToken:
          type: string
    PaymentMethodsResponseDto:
      type: object
      properties:
        paymentMethodsJson:
          type: string
          description: Contains the Adyen payment methods, serialized to JSON.
      required:
        - paymentMethodsJson
    PublicApiBankAccountDto:
      type: object
      properties:
        accountHolder:
          type: string
        bic:
          type: string
          description: BIC will be auto-detected from IBAN if not given
        iban:
          type: string
      required:
        - accountHolder
        - iban
    PublicApiCreditCardDto:
      type: object
      properties:
        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.
        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.
    PublicApiDocumentIdentificationDto:
      type: object
      properties:
        documentNumber:
          type: string
        documentType:
          type: string
          enum:
            - ID_CARD
            - PASSPORT
            - DRIVERS_LICENCE
            - RESIDENCE_PERMIT
            - NATIONAL_ID_NUMBER
            - OTHERS
      required:
        - documentNumber
        - documentType
    PublicApiPrivacyConfigurationDto:
      type: object
      properties:
        email:
          type: boolean
          description: Marketing contact via email allowed
        letter:
          type: boolean
          description: Marketing contact via letter allowed
        mySportsMessage:
          type: boolean
          description: Marketing contact via MySports allowed
        phone:
          type: boolean
          description: Marketing contact via phone allowed
        textMessage:
          type: boolean
          description: Marketing contact via text message allowed
    PublicApiSelectedOptionalRateBundleModuleDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
    PublicApiSelectedSelectableRateBundleModuleDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
    PublicApiSignatureDto:
      type: object
      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
    PublicApiTermAdjustmentRuleDto:
      type: object
      properties:
        chargeAdjustmentType:
          type: string
          description: >-
            Type of the value: Percentage/absolute relative change or new
            absolute base amount 
          enum:
            - RELATIVE
            - ABSOLUTE
            - BASIC_AMOUNT
        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.
        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
        value:
          type: string
          description: >-
            Value of price adjustment rule, might be percentage or amount,
            depends on chargeAdjustmentType
    PublicTrialPeriodDto:
      type: object
      properties:
        description:
          type: string
        trialPeriod:
          $ref: '#/components/schemas/TermDto'
    SepaPaymentInstrumentDto:
      type: object
      properties:
        accountHolder:
          type: string
        iban:
          type: string
        id:
          type: integer
          format: int64
        provider:
          type: string
          enum:
            - ADYEN
        providerToken:
          type: string
        recurringReference:
          type: string
    StringWithLocaleDto:
      type: object
      properties:
        locale:
          type: string
        value:
          type: string
    StudioAvailabilityDto:
      type: object
      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'
    StudioPublicDto:
      type: object
      properties:
        city:
          type: string
        description:
          type: string
        email:
          type: string
        houseNumber:
          type: string
        logo:
          $ref: '#/components/schemas/CdnImageDto'
        name:
          type: string
        province:
          type: string
        provinceCode:
          type: string
        street:
          type: string
        telephone:
          type: string
        website:
          type: string
        zip:
          type: string
    TaxIdValidationResultDto:
      type: object
      properties:
        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
        valid:
          type: boolean
    TenantDto:
      type: object
      properties:
        tenantBusinessType:
          type: string
          enum:
            - SMALL_BUSINESS
            - GLOBAL_ENTERPRISE
        tenantMultiBrandType:
          type: string
          enum:
            - MAGICLINE
            - PERFECT_GYM
            - PERFECT_LEISURE
        tenantName:
          type: string
        tenantUsageType:
          type: string
          enum:
            - BLUEPRINT
            - DEMO_POOL
            - DEMO
            - EMPTY_POOL
            - EMPTY
            - INTERNAL
            - PARTNER
            - PRODUCTION
            - TEST
            - TRAINING
            - SANDBOX_BLUEPRINT
            - SANDBOX_POOL
    TermDto:
      type: object
      properties:
        term:
          type: integer
          format: int32
        termUnit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
      required:
        - term
        - termUnit
    TermInformationDto:
      type: object
      properties:
        cancelationPeriod:
          $ref: '#/components/schemas/TermDto'
        extensionCancelationPeriod:
          $ref: '#/components/schemas/TermDto'
        extensionType:
          type: string
          enum:
            - NONE
            - TERM_EXTENSION
            - SUBSEQUENT_RATE_DETAIL
        term:
          $ref: '#/components/schemas/TermDto'
        termExtension:
          $ref: '#/components/schemas/TermDto'
    TermWithPriceDto:
      type: object
      properties:
        price:
          $ref: '#/components/schemas/MoneyDto'
        term:
          $ref: '#/components/schemas/TermDto'
      required:
        - price
        - term
    TimePeriodClientDto:
      type: object
      properties:
        endDate:
          type: string
          format: date
        startDate:
          type: string
          format: date
      required:
        - endDate
        - startDate
    TokenizationStateDto:
      type: object
      properties:
        errorMessage:
          type: string
        paymentInstrumentDto:
          $ref: '#/components/schemas/PaymentInstrumentDto'
          description: >-
            The created payment instrument, only filled when tokenization
            completed
        publicUserToken:
          type: string
          format: uuid
        state:
          type: string
          description: State of tokenization, on success this is 'COMPLETE'
          enum:
            - INITIATE
            - FAILURE
            - COMPLETE
        userToken:
          type: string
          format: uuid
      required:
        - state
    UtilizationDto:
      type: object
      properties:
        endTime:
          $ref: '#/components/schemas/LocalTime'
        items:
          type: array
          items:
            $ref: '#/components/schemas/UtilizationItemDto'
        startTime:
          $ref: '#/components/schemas/LocalTime'
      required:
        - items
    UtilizationItemDto:
      type: object
      properties:
        endTime:
          $ref: '#/components/schemas/LocalTime'
        isCurrent:
          type: boolean
        level:
          type: string
          enum:
            - HIGH
            - NORMAL
            - LOW
        percentage:
          type: integer
          format: int32
        startTime:
          $ref: '#/components/schemas/LocalTime'
      required:
        - endTime
        - isCurrent
        - level
        - percentage
        - startTime
