# TEST THE CONFIG VIA https://editor.swagger.io/ i.e.
openapi: 3.0.0
info:
    version: "2024011300" # Format: YYYYMMDD and a two digit number to iterate through multiple changes of a day
    title: "TyrePro"
    contact:
        name: "PRM-Software-AG-Team"
        email: "info@prm-ag.de"
    description: "Public REST-API of TyrePro and it's services. Please feel free to contact if you find a bug or you need more data ;) ."
externalDocs:
    description: "Developers homepage"
    url: "https://prm-ag.de"
servers:
    - url: "{ProtocollAndDomain}{ResolvingParameter}/api"
      description: "Development"
      variables:
        ProtocollAndDomain:
          default: "http://localhost"
          enum: 
            - "http://localhost"
            - "http://nicosrechner"
        ResolvingParameter:
          default: ""
          description: "ResolvingTenantNumber=XXX or ResolvingServerDesignation=XXX can be provided to give the webserver an instruction how to resolve the request to the corrent processing server."
tags: 
  - name: "AddressStates"
    description: "AddressStates of this planet which we provide and work with (currently)."
  - name: "ApiDocumentation"
    description: "Returns the current version of this API documentation. Please stay always up to date. Our servers were running only with one version of software (latest) and do not provide an API for each version."
  - name: "Articles"
    description: "Article informations of all kinds of articles - starting with physical till services."
  - name: "Branches"
    description: "The Branches of this company."
  - name: "ContactRequests"
    description: "You can post contact requests to us. Those requests will reach our sales team. Currently they will not be stored permanently."
  - name: "CustomerVehicles"
    description: "Vehicles of a customer."
  - name: "Customers"
    description: "A customer out of the view of the tenant."
  - name: "CustomerStorages"
    description: "Customerstorages of a customers vehicle."
  - name: "CustomerStoragePositions"
    description: "The position information of each tyre, rim, status or axle of the vehicle."
  - name: "CustomerStorageStatus"
    description: "Status of a customer storage to help to categorize."
  - name: "DbBlobs"
    description: "Database blob files like images, pdf files, ..."
  - name: "DmsFiles"
    description: "Dms, which means document management system, contains all files (see DbBlobs) which were referenced to some ressources like documents, customers, customerStorages, ..."
  - name: "DocumentPositions"
    description: "Collection of document positions associated to a document like offers, orders, invoices and so on. Containing information about position type, amount, article reference and prices"
  - name: "Documents"
    description: "Documents like offers, orders and invoices, contains informations about type, dates, reference number, prices, customer reference and references to previous and following documents"
  - name: "Employees"
    description: "Employees of the company."
  - name: "Exceptions"
    description: "You can report client side exceptions or server side exceptions to trace and track them. Currently they will not be stored permanently."
  - name: "MaterialGroups"
    description: "All articles were defined by materialtype, materialgroup and materialsubgroup to categorize them."
  - name: "MaterialSubGroups"
    description: "All articles were defined by materialtype, materialgroup and materialsubgroup to categorize them."
  - name: "MaterialTypes"
    description: "All articles were defined by materialtype, materialgroup and materialsubgroup to categorize them."
  - name: "OnlineSchedulerServices"
    description: "SchedulerServices like 'Make an appointment for tyre change', 'Make an appointment for holiday check', ..."
  - name: "OnlineSchedulerAppointmentJobs"
    description: "Optional jobs which can be choosen by the customer for an appointment."
  - name: "OnlineSchedulerBranches"
    description: "In which branch is it possible to make an appointment."
  - name: "OnlineSchedulerContactFields"
    description: "ContactFields which were required to make an appointment."
  - name: "OnlineSchedulerAppointmentDates"
    description: "Dates in which a customer can create an appointment in a branch."
  - name: "OnlineSchedulerAppointmentTimes"
    description: "Times in which a customer can create an appointment in a branch."
  - name: "OnlineServiceDomainFooterModules"
    description: "Individual footer modules for the page like a custom impressum, links to social media and other..."
  - name: "OnlineServiceDomains"
    description: "Public internet domains. They hosts services like shop, scheduler, ..."
  - name: "OnlineServices"
    description: "Services like shop, scheduler, ..."
  - name: "OnlineUsers"
    description: "A customer who can login with it's credentials to see and manipulate his own data, create appointments, create orders, etc."
  - name: "SchedulerAppointments"
    description: "Appointments for different types."
  - name: "SchedulerResourceGroupJobs"
    description: "Preconfigured jobs which a user can choose for an appointment. It can have automatisms."
  - name: "Sessions"
    description: "A session for all services. This grants you i.e. permissions."
  - name: "Storages"
    description: "The storage is defined by storages and it's storage locations."
  - name: "StorageLocations"
    description: "The storage is defined by storages and it's storage locations."
paths:
  /AddressStates:
    get:
      tags:
      - "AddressStates"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/AddressState"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /AddressStates/{Guid}:
    get:
      tags:
      - "AddressStates"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AddressState"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /ApiDocumentation:
    get:
      tags:
      - "ApiDocumentation"
      parameters:
      - $ref: "#/components/parameters/ContentDispositionParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/yaml:
              schema:
                type: "string"
                format: "binary"
        default:
          $ref: "#/components/responses/GenericError"
  /Articles:
    get:
      tags:
      - "Articles"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/Article"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Articles/{Guid}:
    get:
      tags:
      - "Articles"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Article"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Branches:
    get:
      tags:
      - "Branches"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/Branch"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Branches/{Guid}:
    get:
      tags:
      - "Branches"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Branch"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /ContactRequests:
    post:
      tags:
      - "ContactRequests"
      parameters:
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "Name"
        in: "query"
        required: true
        schema:
          type: "string"
          example: "Max Mustermann"
      - name: "EMailAddress"
        in: "query"
        required: true
        schema:
          type: "string"
          example: "max@mustermann.de"
      - name: "Message"
        in: "query"
        required: true
        schema:
          type: "string"
          example: "Hey, please call me."
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContactRequest"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /ContactRequests/{Guid}:
    get:
      tags:
      - "ContactRequests"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContactRequest"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Customers:
    get:
      tags:
      - "Customers"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/Customer"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
    post:
      tags:
      - "Customers"
      parameters:
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "EMailAddressShouldBeUsedToCreateADefaultDocumentDespatch"
        in: "query"
        required: false
        description: "The default - as in our ERP program TyrePro - is: NonCashReceiptDealsOnly, Invoices, CreditNotes and CustomerStorages will get delivered by E-Mail as normal PDF."
        schema:
          type: "boolean"
          default: false
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Customer"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Customer"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Customers/{Guid}:
    get:
      tags:
      - "Customers"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Customer"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
    patch:
      tags:
      - "Customers"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/_HashValueParameter"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Customer"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Customer"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Customers/{Guid}/DmsFiles:
    get:
      tags:
      - "Customers"
      - "DmsFiles"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/DmsFilesTypeParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DmsFile"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Customers/custommethods/FindSimilarAccounts:
    get:
      tags:
      - "Customers"
      description: "Finds similar accounts. The algorithm uses for example phonetic analysis and more to create the results."
      parameters:
      - name: "GuidBranch"
        in: "query"
        required: true
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "Name1"
        in: "query"
        required: true
        schema:
          type: "string"
          default: null
          example: "Max Mustermann"
      - name: "Name2"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
      - name: "Name3"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
      - name: "Street"
        in: "query"
        required: true
        schema:
          type: "string"
          default: null
          example: "Musterstraße 123"
      - name: "Postalcode"
        in: "query"
        required: true
        schema:
          type: "string"
          default: null
          example: "01234"
      - name: "Town"
        in: "query"
        required: true
        schema:
          type: "string"
          default: null
          example: "Musterhausen"
      - name: "EMailAddress"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "max@mustermann.de"
      - name: "SalesTaxIdentificationNumber"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                type: "array"
                items:
                  type: "object"
                  required: 
                    - "WouldBeChoosenAutomatically"
                    - "GuidCustomer"
                  properties:
                    WouldBeChoosenAutomatically:
                      type: "boolean"
                    AutomaticChoiceDescription:
                      type: "string"
                    NameSimilarityInPercent:
                      type: "number"
                    AddressSimilarityInPercent:
                      type: "number"
                    GuidCustomer:
                      type: "string"
                  example: 
                    WouldBeChoosenAutomatically: true
                    AutomaticChoiceDescription: "USt.-IdNr. stimmt überein"
                    NameSimilarityInPercent: 100
                    AddressSimilarityInPercent: 97.4
                    GuidCustomer: "9acea90b-f0d9-2d95-7814-c53b28d87980"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerStorages:
    get:
      tags:
      - "CustomerStorages"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/CustomerStorage"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerStorages/{Guid}:
    get:
      tags:
      - "CustomerStorages"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomerStorage"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerStorages/{Guid}/CustomerStoragePositions:
    get:
      tags:
      - "CustomerStorages"
      - "CustomerStoragePositions"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/CustomerStoragePosition"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerStorages/{Guid}/DmsFiles:
    get:
      tags:
      - "CustomerStorages"
      - "DmsFiles"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/DmsFilesTypeParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DmsFile"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerStorages/{Guid}/SchedulerAppointments:
    get:
      tags:
      - "CustomerStorages"
      - "SchedulerAppointments"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/SchedulerAppointment"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerStoragePositions:
    get:
      tags:
      - "CustomerStoragePositions"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/CustomerStoragePosition"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerStoragePositions/{Guid}:
    get:
      tags:
      - "CustomerStoragePositions"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomerStoragePosition"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerStorageStatus:
    get:
      tags:
      - "CustomerStorageStatus"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/CustomerStorageStatus"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerStorageStatus/{Guid}:
    get:
      tags:
      - "CustomerStorageStatus"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomerStorageStatus"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerVehicles:
    get:
      tags:
      - "CustomerVehicles"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/CustomerVehicle"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerVehicles/{Guid}:
    get:
      tags:
      - "CustomerVehicles"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomerVehicle"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
    patch:
      tags:
      - "CustomerVehicles"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/_HashValueParameter"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CustomerVehicle"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomerVehicle"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerVehicles/{Guid}/CustomerStorages:
    get:
      tags:
      - "CustomerVehicles"
      - "CustomerStorages"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/CustomerStorage"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerVehicles/{Guid}/DmsFiles:
    get:
      tags:
      - "CustomerVehicles"
      - "DmsFiles"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/DmsFilesTypeParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DmsFile"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerVehicles/{Guid}/SchedulerAppointments:
    get:
      tags:
      - "CustomerVehicles"
      - "SchedulerAppointments"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/SchedulerAppointment"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /CustomerVehicles/custommethods/GenerateCsvFile:
    get:
      tags:
      - "CustomerVehicles"
      description: "Generates a CSV-file with all customer vehicle information and delivers the binary file content."
      parameters:
      - $ref: "#/components/parameters/ContentDispositionParameter"
      responses:
        200:
          description: "successful operation"
          content:
            text/csv:
              schema:
                type: "string"
                format: "binary"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /DbBlobs:
    get:
      tags:
      - "DbBlobs"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ContentShallBeIncludedParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DbBlob"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /DbBlobs/{Guid}:
    get:
      tags:
      - "DbBlobs"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/BinaryResponseParameter"
      - $ref: "#/components/parameters/ContentDispositionParameter"
      - $ref: "#/components/parameters/ContentShallBeIncludedParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DbBlob"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /DmsFiles:
    get:
      tags:
      - "DmsFiles"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/DmsFilesTableNameParameter"
      - $ref: "#/components/parameters/GuidOfTableNameParameter"
      - $ref: "#/components/parameters/DmsFilesTypeParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DmsFile"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /DmsFiles/{Guid}:
    get:
      tags:
      - "DmsFiles"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DmsFile"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /DmsFiles/{Guid}/DmsFiles:
    get:
      tags:
      - "DmsFiles"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/DmsFilesTypeParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DmsFile"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /DmsFiles/custommethods/CountNumberOfFiles:
    get:
      tags:
      - "DmsFiles"
      description: "Counts all files."
      parameters:
      - $ref: "#/components/parameters/DmsFilesTableNameParameter"
      - $ref: "#/components/parameters/GuidOfTableNameParameter"
      - $ref: "#/components/parameters/RecursiveParamter"
      - $ref: "#/components/parameters/DmsFilesTypeParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                type: "object"
                required:
                  - "NumberOfFiles"
                properties:
                  NumberOfFiles:
                    type: "number"
                example: 
                  NumberOfFiles: 12
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Documents:
    get:
      tags:
      - "Documents"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "Type"
        in: "query"
        required: false
        description: "Type of the document. Remember: a finished invoice is not active anymore. So try the combinations of Type and IsActive to find your documents."
        schema:
          type: "string"
          enum: 
            - "Offer"
            - "Order"
            - "DeliveryNote"
            - "Invoice"
            - "CreditNote"
          example: "Invoice"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/Document"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Documents/{Guid}:
    get:
      tags:
      - "Documents"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Document"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Documents/{Guid}/DocumentPositions:
    get:
      tags:
      - "Documents"
      - "DocumentPositions"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DocumentPosition"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Documents/{Guid}/DmsFiles:
    get:
      tags:
      - "Documents"
      - "DmsFiles"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/DmsFilesTypeParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DmsFile"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Documents/{Guid}/SchedulerAppointments:
    get:
      tags:
      - "Documents"
      - "SchedulerAppointments"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/SchedulerAppointment"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Documents/{Guid}/custommethods/AcceptOffer:
    post:
      tags:
      - "Documents"
      description: "Accepts an offer. Dependant on the implementation, it could be that the offer is after the operation an order."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/_HashValueParameter"
      - name: "Comment"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "Thanks you!"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Document"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Documents/{Guid}/custommethods/RejectOffer:
    post:
      tags:
      - "Documents"
      description: "Rejects an offer. Dependant on the implementation, the offer keeps beeing open for further responses or gets historic."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/_HashValueParameter"
      - name: "Comment"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "The price is higher than excepted. Can you make another offer?"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Document"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /DocumentPositions:
    get:
      tags:
      - "DocumentPositions"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DocumentPosition"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /DocumentPositions/{Guid}:
    get:
      tags:
      - "DocumentPositions"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DocumentPosition"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Employees:
    get:
      tags:
      - "Employees"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/Employee"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Employees/{Guid}:
    get:
      tags:
      - "Employees"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Employee"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Exceptions:
    post:
      tags:
      - "Exceptions"
      description: "This service without session is based on a fair use model. Please be professional and don't abuse or spam. It's just open to make your world as developer easier in case you want to report errors during session-creation. Whenever possible provide a session."
      parameters:
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "Message"
        in: "query"
        required: false
        schema:
          type: "string"
      - name: "StackTrace"
        in: "query"
        required: false
        schema:
          type: "string"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Exception"
        default:
          $ref: "#/components/responses/GenericError"
  /Exceptions/{Guid}:
    get:
      tags:
      - "Exceptions"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Exception"
        default:
          $ref: "#/components/responses/GenericError"
  /MaterialGroups:
    get:
      tags:
      - "MaterialGroups"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/MaterialGroup"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /MaterialGroups/{Guid}:
    get:
      tags:
      - "MaterialGroups"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MaterialGroup"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /MaterialSubGroups:
    get:
      tags:
      - "MaterialSubGroups"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/MaterialSubGroup"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /MaterialSubGroups/{Guid}:
    get:
      tags:
      - "MaterialSubGroups"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MaterialSubGroup"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /MaterialTypes:
    get:
      tags:
      - "MaterialTypes"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/MaterialType"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /MaterialTypes/{Guid}:
    get:
      tags:
      - "MaterialTypes"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MaterialType"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerAppointmentDates:
    get:
      tags:
      - "OnlineSchedulerAppointmentDates"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/AppointmentDurationTokenParameter"
      - name: "GuidOnlineSchedulerBranch"
        in: "query"
        required: true
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "StartDate"
        in: "query"
        required: true
        schema:
          type: "string"
          format: "date"
          default: null
          example: "2021-02-02"
      - name: "EndDate"
        in: "query"
        required: true
        schema:
          type: "string"
          format: "date"
          default: null
          example: "2021-02-02"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerAppointmentDate"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerAppointmentDates/{Guid}:
    get:
      tags:
      - "OnlineSchedulerAppointmentDates"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineSchedulerAppointmentDate"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerAppointmentDates/{Guid}/OnlineSchedulerAppointmentTimes:
    get:
      tags:
      - "OnlineSchedulerAppointmentDates"
      - "OnlineSchedulerAppointmentTimes"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/AppointmentDurationTokenParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerAppointmentTime"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerAppointmentDates/{Guid}/SchedulerAppointments:
    post:
      tags:
      - "OnlineSchedulerAppointmentDates"
      - "SchedulerAppointments"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ConfirmationEMailShallBeSendParameter"
      - $ref: "#/components/parameters/AppointmentDurationTokenParameter"
      - $ref: "#/components/parameters/OnlineSchedulerContactFieldsParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchedulerAppointment"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerAppointmentJobs:
    get:
      tags:
      - "OnlineSchedulerAppointmentJobs"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/OnlyBookableEntriesShallBeReturnedParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidOnlineSchedulerService"
        in: "query"
        required: false
        description: "Parentreference. Required if your session is not TyreProUser or higher."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "GuidOnlineSchedulerBranch"
        in: "query"
        required: false
        description: "OnlineSchedulerBranch identifier. Required for parameter OnlyBookableEntriesShallBeReturnedParameter."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerAppointmentJob"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerAppointmentJobs/{Guid}:
    get:
      tags:
      - "OnlineSchedulerAppointmentJobs"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineSchedulerAppointmentJob"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerAppointmentTimes:
    get:
      tags:
      - "OnlineSchedulerAppointmentTimes"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/AppointmentDurationTokenParameter"
      - name: "GuidOnlineSchedulerAppointmentDate"
        in: "query"
        required: true
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerAppointmentTime"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerAppointmentTimes/{Guid}:
    get:
      tags:
      - "OnlineSchedulerAppointmentTimes"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineSchedulerAppointmentTime"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerAppointmentTimes/{Guid}/SchedulerAppointments:
    post:
      tags:
      - "OnlineSchedulerAppointmentTimes"
      - "SchedulerAppointments"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ConfirmationEMailShallBeSendParameter"
      - $ref: "#/components/parameters/AppointmentDurationTokenParameter"
      - $ref: "#/components/parameters/OnlineSchedulerContactFieldsParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchedulerAppointment"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerBranches:
    get:
      tags:
      - "OnlineSchedulerBranches"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/OnlyBookableEntriesShallBeReturnedParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidOnlineSchedulerService"
        in: "query"
        required: false
        description: "Parentreference. Required if your session is not TyreProUser or higher."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerBranch"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerBranches/{Guid}:
    get:
      tags:
      - "OnlineSchedulerBranches"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineSchedulerBranch"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerBranches/{Guid}/OnlineSchedulerAppointmentDates:
    get:
      tags:
      - "OnlineSchedulerBranches"
      - "OnlineSchedulerAppointmentDates"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/AppointmentDurationTokenParameter"
      - name: "StartDate"
        in: "query"
        required: true
        schema:
          type: "string"
          format: "date"
          default: null
          example: "2021-02-02"
      - name: "EndDate"
        in: "query"
        required: true
        schema:
          type: "string"
          format: "date"
          default: null
          example: "2021-02-02"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerAppointmentDate"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerBranches/{Guid}/custommethods/CalculateAppointmentDuration:
    get:
      tags:
      - "OnlineSchedulerBranches"
      - "OnlineSchedulerAppointmentDates" # To give the developer a tip of where to get this.
      description: "Based on the given input values you will get informations about the duration of your appointment. It's necessary to ask for this before creating an appointment."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - name: "GuidCustomerVehicle"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "GuidCustomerStorage"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "GuidOnlineSchedulerAppointmentJob"
        in: "query"
        required: false
        schema:
          type: "array"
          items: 
            type: "string"
            default: null
            example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AppointmentDuration"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerBranches/{Guid}/custommethods/SchedulerAppointments:
    get:
      tags:
      - "OnlineSchedulerBranches"
      - "SchedulerAppointments"
      description: "Gives all unfinished appointments for the given data. With this method your able to precheck if an appointmentcreation could be successfully done or not."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - name: "GuidCustomerVehicle"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "GuidCustomerStorage"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                type: "array"
                items:
                  type: "object"
                  required: 
                    - "Guid"
                    - "StartMoment"
                    - "WasCreatedByOnlineScheduler"
                  properties:
                    Guid:
                      type: "string"
                    StartMoment:
                      type: "string"
                      format: "date-time"
                    WasCreatedByOnlineScheduler:
                      type: "boolean"
                  example: 
                    Guid: "9acea90b-f0d9-2d95-7814-c53b28d87980"
                    StartMoment: "2021-02-02T10:36:10.172"
                    WasCreatedByOnlineScheduler: true
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerContactFields:
    get:
      tags:
      - "OnlineSchedulerContactFields"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidOnlineSchedulerService"
        in: "query"
        required: false
        description: "Parentreference. Required if your session is not TyreProUser or higher."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerContactField"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerContactFields/{Guid}:
    get:
      tags:
      - "OnlineSchedulerContactFields"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineSchedulerContactField"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerContactFields/{Guid}/custommethods/Validate:
    get:
      tags:
      - "OnlineSchedulerContactFields"
      description: "Checks the given data and validates this. I.e. is the email-address valid (with a kind of domainchecking, send-trying, ...)? Stuff which your client shouldn't worry about, because it's already written ;) ."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - name: "Content"
        in: "query"
        required: true
        description: "Validates the content of the field. The validation routines could be heavy and deep so that should be the way to go if you want to check if your fields were filled out correctly."
        schema:
          type: "string"
          default: null
          example: "Test"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                  type: "object"
                  required: 
                    - "IsValid"
                    - "Reason"
                  properties:
                    IsValid:
                      type: "boolean"
                    Reason:
                      type: "string"
                  example: 
                    IsValid: true
                    Reason: "Die E-Mail-Adresse ist invalide."
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerServices:
    get:
      tags:
      - "OnlineSchedulerServices"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidOnlineService"
        in: "query"
        required: false
        description: "Parentreference. Required if your session is not TyreProUser or higher."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerService"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerServices/{Guid}:
    get:
      tags:
      - "OnlineSchedulerServices"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineSchedulerService"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerServices/{Guid}/OnlineSchedulerAppointmentJobs:
    get:
      tags:
      - "OnlineSchedulerServices"
      - "OnlineSchedulerAppointmentJobs"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/OnlyBookableEntriesShallBeReturnedParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidOnlineSchedulerBranch"
        in: "query"
        required: false
        description: "OnlineSchedulerBranch identifier. Required for parameter OnlyBookableEntriesShallBeReturnedParameter."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerAppointmentJob"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerServices/{Guid}/OnlineSchedulerBranches:
    get:
      tags:
      - "OnlineSchedulerServices"
      - "OnlineSchedulerBranches"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/OnlyBookableEntriesShallBeReturnedParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerBranch"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerServices/{Guid}/OnlineSchedulerContactFields:
    get:
      tags:
      - "OnlineSchedulerServices"
      - "OnlineSchedulerContactFields"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerContactField"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerServices/custommethods/CustomerVehicles:
    get:
      tags:
      - "OnlineSchedulerServices"
      - "CustomerVehicles"
      description: "Checks the given licenceTag and gives a list of vehicles back with a small amout of informations. If there were multiple vehicles with the given licenceTag you will have to choose from the list."
      parameters:
      - $ref: "#/components/parameters/OnlyBookableEntriesShallBeReturnedParameter"
      - name: "LicenceTagNumber"
        in: "query"
        required: true
        description: "LicenceTagNumber of your vehicle. All symbols except of letters and numbers will be ignored during the search."
        schema:
          type: "string"
          default: null
          example: "A-BC 123"
      - name: "GuidOnlineSchedulerService"
        in: "query"
        required: false
        description: "OnlineSchedulerService identifier. Required for parameter OnlyBookableEntriesShallBeReturnedParameter."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                type: "array"
                items:
                  type: "object"
                  required: 
                    - "Guid"
                    - "Designation"
                    - "RepresentsCustomerEnteredAndNewLicenceTagNumber"
                  properties:
                    Guid:
                      type: "string"
                    Designation:
                      type: "string"
                    Description:
                      type: "string"
                    RepresentsCustomerEnteredAndNewLicenceTagNumber:
                      type: "boolean"
                  example: 
                    Guid: "9acea90b-f0d9-2d95-7814-c53b28d87980"
                    Designation: "A-BC 123"
                    Description: "Skoda Ocatavia, 1Z, schwarz"
                    RepresentsCustomerEnteredAndNewLicenceTagNumber: false
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineSchedulerServices/custommethods/CustomerStorages:
    get:
      tags:
      - "OnlineSchedulerServices"
      - "CustomerStorages"
      description: "Checks the given licenceTag or vehicle and gives a list of CustomerStorages back with a small amout of informations. If there were multiple CustomerStorages with the given information you will have to choose from the list."
      parameters:
      - $ref: "#/components/parameters/OnlyBookableEntriesShallBeReturnedParameter"
      - name: "GuidCustomerVehicle"
        in: "query"
        required: true
        description: "Vehicle identifier."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "GuidOnlineSchedulerService"
        in: "query"
        required: false
        description: "OnlineSchedulerService identifier. Required for parameter OnlyBookableEntriesShallBeReturnedParameter."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                type: "array"
                items:
                  type: "object"
                  required: 
                    - "Guid"
                    - "Designation"
                    - "GuidBranch"
                  properties:
                    Guid:
                      type: "string"
                    Designation:
                      type: "string"
                    Description:
                      type: "string"
                    GuidBranch:
                      type: "string"
                  example: 
                    Guid: "9acea90b-f0d9-2d95-7814-c53b28d87980"
                    Designation: "Einlagerung 12345 vom 01.01.2019"
                    Description: "15 Zoll Michelin Winterreifen"
                    GuidBranch: "9acea90b-f0d9-2d95-7814-c53b28d87980"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServiceDomainFooterModules:
    get:
      tags:
      - "OnlineServiceDomainFooterModules"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidOnlineServiceDomain"
        in: "query"
        required: false
        description: "Parentreference. Required if your session is not TyreProUser or higher."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineServiceDomainFooterModule"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServiceDomainFooterModules/{Guid}:
    get:
      tags:
      - "OnlineServiceDomainFooterModules"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineServiceDomainFooterModule"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServiceDomains:
    get:
      tags:
      - "OnlineServiceDomains"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "Domain"
        in: "query"
        description: "When the parameter is not given the results will be filtered by your calling domain."
        required: false
        schema:
          type: "string"
          default: null
          example: "shop.musterreifen.de"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineServiceDomain"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServiceDomains/{Guid}:
    get:
      tags:
      - "OnlineServiceDomains"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineServiceDomain"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServiceDomains/{Guid}/OnlineServiceDomainFooterModules:
    get:
      tags:
      - "OnlineServiceDomains"
      - "OnlineServiceDomainFooterModules"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineServiceDomainFooterModule"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServiceDomains/{Guid}/OnlineServices:
    get:
      tags:
      - "OnlineServiceDomains"
      - "OnlineServices"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineService"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServiceDomains/{Guid}/custommethods/GenerateCssFile:
    get:
      tags:
      - "OnlineServiceDomains"
      description: "Generates a CSS-file with the colors as css-variables and delivers the binary file content."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ContentDispositionParameter"
      responses:
        200:
          description: "successful operation"
          content:
            text/css:
              schema:
                type: "string"
                format: "binary"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServices:
    get:
      tags:
      - "OnlineServices"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidOnlineServiceDomain"
        in: "query"
        required: false
        description: "Parentreference. Required if your session is not TyreProUser or higher."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineService"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServices/{Guid}:
    get:
      tags:
      - "OnlineServices"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineService"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineServices/{Guid}/OnlineSchedulerServices:
    get:
      tags:
      - "OnlineServices"
      - "OnlineSchedulerServices"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineSchedulerService"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineUsers:
    get:
      tags:
      - "OnlineUsers"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/UsernameParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/OnlineUser"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineUsers/{Guid}:
    get:
      tags:
      - "OnlineUsers"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineUser"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /OnlineUsers/{Guid}/custommethods/SetPassword:
    post:
      tags:
      - "OnlineUsers"
      description: "Sets a (new) password."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/PasswordHashValueParameter"
      responses:
        200:
          description: "successful operation"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerAppointments:
    get:
      tags:
      - "SchedulerAppointments"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidCustomerStorage"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "GuidDocument"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "GuidCustomerVehicle"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/SchedulerAppointment"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
    post:
      tags:
      - "SchedulerAppointments"
      parameters:
      - $ref: "#/components/parameters/ConfirmationEMailShallBeSendParameter"
      - $ref: "#/components/parameters/AppointmentDurationTokenParameter"
      - $ref: "#/components/parameters/OnlineSchedulerContactFieldsParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidOnlineSchedulerAppointmentDate"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "GuidOnlineSchedulerAppointmentTime"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchedulerAppointment"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerAppointments/{Guid}:
    get:
      tags:
      - "SchedulerAppointments"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchedulerAppointment"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
    delete:
      tags:
      - "SchedulerAppointments"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/_HashValueParameter"
      - $ref: "#/components/parameters/ConfirmationEMailShallBeSendParameter"
      responses:
        200:
          description: "successful operation"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerAppointments/{Guid}/DmsFiles:
    get:
      tags:
      - "SchedulerAppointments"
      - "DmsFiles"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/DmsFilesTypeParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/DmsFile"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerAppointments/{Guid}/custommethods/CalculateAppointmentDuration:
    get:
      tags:
      - "SchedulerAppointments"
      description: "Based on the given input values you will get informations about the duration of your appointment. It's necessary to ask for this before creating an appointment."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AppointmentDuration"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerAppointments/{Guid}/custommethods/CalculateLastPossibleModificationMoment:
    get:
      tags:
      - "SchedulerAppointments"
      description: "You will get the moment till when it's allowed to modify the appointment. Also a deletion counts as modification out of the perspective of the trader and it's view over the scheduler."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                  type: "object"
                  required: 
                    - "Moment"
                  properties:
                    Moment:
                      type: "string"
                      format: "date-time"
                  example: 
                    Moment: "2021-02-02T10:36:10.172"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerAppointments/{Guid}/custommethods/GenerateICalFile:
    get:
      tags:
      - "SchedulerAppointments"
      description: "Generates an ICal-file with all informations and delivers the binary file content."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ContentDispositionParameter"
      responses:
        200:
          description: "successful operation"
          content:
            text/calendar:
              schema:
                type: "string"
                format: "binary"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerAppointments/{Guid}/custommethods/RescheduleAppointment:
    post:
      tags:
      - "SchedulerAppointments"
      description: "Reschedule the appointment."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ConfirmationEMailShallBeSendParameter"
      - $ref: "#/components/parameters/AppointmentDurationTokenParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "Type"
        in: "query"
        required: true
        schema:
          type: "string"
          enum:
            - "OnlineScheduler"
            - "TyreProScheduler"
      - name: "GuidOnlineSchedulerAppointmentDate"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      - name: "GuidOnlineSchedulerAppointmentTime"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchedulerAppointment"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerAppointments/{Guid}/custommethods/SendConfirmationEMail:
    post:
      tags:
      - "SchedulerAppointments"
      description: "Sends a confirmation mail to the customer to the mail address of the appointment."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerResourceGroupJobs:
    get:
      tags:
      - "SchedulerResourceGroupJobs"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "GuidSchedulerResourceGroup"
        in: "query"
        required: false
        description: "Parentreference. Required if your session is not TyreProUser or higher."
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/SchedulerResourceGroupJob"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /SchedulerResourceGroupJobs/{Guid}:
    get:
      tags:
      - "SchedulerResourceGroupJobs"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SchedulerResourceGroupJob"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Sessions:
    get:
      tags:
      - "Sessions"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/Session"
        401:
          $ref: "#/components/responses/SessionOfTyreProUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
    post:
      tags:
      - "Sessions"
      parameters:
      - $ref: "#/components/parameters/UserAgentParameter"
      - $ref: "#/components/parameters/UsernameParameter"
      - $ref: "#/components/parameters/PasswordHashValueParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      - name: "TableName"
        in: "query"
        required: true
        schema:
          type: "string"
          enum:
            - "OnlineServiceDomain"
            - "OnlineUser"
            - "TyreProUser"
      - name: "GuidOfTableName"
        in: "query"
        required: false
        description: "IsRequired = true, if no other information could be extracted for the create. This is the leading parameter."
        schema:
          type: "string"
          default: null
      - name: "Password"
        in: "query"
        description: "The password itself. Unhashed."
        required: false
        schema:
          type: "string"
          default: null
          example: "secret!"
      - name: "NumberOfSecondsTillExpiration"
        in: "query"
        description: "Describes the moment when the session expires."
        required: false
        schema:
          type: "integer"
          default: 300
          minimum: 60
          maximum: 86400
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Session"
        default:
          $ref: "#/components/responses/GenericError"
  /Sessions/{Guid}:
    get:
      tags:
      - "Sessions"
      description: "You are always allowed to read your own session, but others only if your an TyreProUser."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Session"
        default:
          $ref: "#/components/responses/GenericError"
    delete:
      tags:
      - "Sessions"
      description: "You are always allowed to delete your own session, but only to delete others if your an TyreProUser."
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/_HashValueParameter"
      responses:
        200:
          description: "successful operation"
        default:
          $ref: "#/components/responses/GenericError"
  /Sessions/custommethods/RequestResetPasswordEMail:
    post:
      tags:
      - "Sessions"
      description: "The user will get an email in which he/she is able to reset the password."
      parameters:
      - name: "TableName"
        in: "query"
        required: true
        schema:
          type: "string"
          enum:
            - "OnlineUser"
            - "TyreProUser"
      - name: "GuidOfTableName"
        in: "query"
        required: false
        description: "IsRequired = true, if no other information could be extracted for the create. This is the leading parameter."
        schema:
          type: "string"
          default: null
      - $ref: "#/components/parameters/UserAgentParameter"
      - $ref: "#/components/parameters/UsernameParameter"
      responses:
        200:
          description: "successful operation"
        default:
          $ref: "#/components/responses/GenericError"
  /Storages:
    get:
      tags:
      - "Storages"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/Storage"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /Storages/{Guid}:
    get:
      tags:
      - "Storages"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      - $ref: "#/components/parameters/ResponseResolutionDepthParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Storage"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /StorageLocations:
    get:
      tags:
      - "StorageLocations"
      parameters:
      - $ref: "#/components/parameters/OffsetParameter"
      - $ref: "#/components/parameters/LimitParameter"
      - $ref: "#/components/parameters/IsActiveParameter"
      - $ref: "#/components/parameters/SearchTermParameter"
      responses:
        200:
          description: "successful operation"
          headers:
            TotalNumberOfEntries:
              schema:
                type: integer
              description: The total number of results of this operation. Please be aware that this number could be wrong if the parameter SearchTerm is used, due to processing the SearchTerm over the acutal result array.
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/StorageLocation"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
  /StorageLocations/{Guid}:
    get:
      tags:
      - "StorageLocations"
      parameters:
      - $ref: "#/components/parameters/GuidPathParameter"
      responses:
        200:
          description: "successful operation"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StorageLocation"
        401:
          $ref: "#/components/responses/SessionOfOnlineUserOrHigherRequired"
        default:
          $ref: "#/components/responses/GenericError"
      security: 
      - SessionScheme: []
components:
    schemas:
        GenericError:
          type: "object"
          required:
            - "Message"
            - "Details"
          properties:
            Message:
              type: "string"
            Details:
              type: "string"
          example: 
            Message: "Ihr Anwender wurde nicht gefunden."
            Details: "Progress.Lang.AppError\n  Ihr Anwender wurde nicht gefunden.\nat sourcecode.line 123"
        _HashValue:
          type: "string"
          description: "HashValue of the object which you'll need to process write-operations."
          example: "f50df554352ac91635f900026860e3371a71999d"
        AddressState:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
            - "ISO2Code"
            - "ISO3Code"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            ISO2Code:
              type: "string"
            ISO3Code:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "Deutschland"
            ISO2Code: "DE"
            ISO3Code: "DEU"
        AppointmentDuration:
          type: "object"
          description: "The minimum and maximum gross duration is based on different grid sizes of the scheduler. The examples minimum is a 20 minutes grid, the maximum a 15 minute grid. The exact duration is choosen in appointment creation (by the system, not via api). It's uncommon to have different grid sizes."
          required: 
            - "AppointmentDurationToken"
            - "BaseDurationInMinutes"
            - "Surcharges"
            - "NetDurationInMinutes"
            - "MininumAppointmentGridRoundingSurchargeInMinutes"
            - "MaximumAppointmentGridRoundingSurchargeInMinutes"
            - "MinimumGrossDurationInMinutes"
            - "MaximumGrossDurationInMinutes"
            - "DaysOfForerun"
          properties:
            AppointmentDurationToken:
              type: "string"
            BaseDurationInMinutes:
              type: "integer"
            Surcharges:
              type: "array"
              items:
                type: "object"
                required: 
                  - "Type"
                  - "Reason"
                  - "DurationInMinutes"
                properties:
                  Type:
                    type: "string"
                    enum:
                      - "CustomerVehicle"
                      - "OnlineSchedulerLengthCondition"
                      - "OnlineSchedulerAppointmentJob"
                  Reason:
                    type: "string"
                  DurationInMinutes:
                    type: "integer"
                example: 
                  Type: "OnlineSchedulerLengthCondition"
                  Reason: "Reifen haben weniger als 3 mm Profil"
                  DurationInMinutes: 5
            NetDurationInMinutes:
              type: "integer"
            MininumAppointmentGridRoundingSurchargeInMinutes:
              type: "integer"
            MaximumAppointmentGridRoundingSurchargeInMinutes:
              type: "integer"
            MinimumGrossDurationInMinutes:
              type: "integer"
            MaximumGrossDurationInMinutes:
              type: "integer"
            DaysOfForerun:
              type: "integer"
          example: 
            AppointmentDurationToken: "eyJTb21lVGFnIjoiYmE1MWU3ZmUtODAzYy0wNGE1LTc4MTQtYzUzYjE4YjU1MzI1IiwiU29tZURhdGUiOiIyMDIxLTAyLTAxIiwiU29tZVZhbHVlIjp0cnVlfQ.0e2a55756bde97a5d592914c702893cf23a47cdd"
            BaseDurationInMinutes: 30
            Surcharges: null
            NetDurationInMinutes: 35
            MininumAppointmentGridRoundingSurchargeInMinutes: 5
            MaximumAppointmentGridRoundingSurchargeInMinutes: 10
            MinimumGrossDurationInMinutes: 40
            MaximumGrossDurationInMinutes: 45
            DaysOfForerun: 1
        Article:
          type: "object"
          required: 
            - "Guid"
            - "GuidMaterialType"
            - "IsActive"
            - "Designation"
          properties:
            Guid:
              type: "string"
            GuidMaterialType:
              type: "string"
            GuidMaterialGroup:
              type: "string"
            GuidMaterialSubGroup:
              type: "string"
            IsActive:
              type: "boolean"
            Designation:
              type: "string"
            Manufacturer:
              type: "string"
            ManufacturerArticleNumber:
              type: "string"
            Ean:
              type: "string"
            KronprinzNumber:
              type: "string"
            AlcarNumber:
              type: "string"
            SuedradNumber:
              type: "string"
            DiameterInInch:
              type: "number"
            WidthInMm:
              type: "number"
            SectionInMm:
              type: "number"
            LoadIndex:
              type: "string"
            SpeedIndex:
              type: "string"
            OffsetInMm:
              type: "number"
            HubBoreHoleInMm:
              type: "number"
            HoleCount:
              type: "number"
            HoleCircleInMm:
              type: "number"
            WeightInKg:
              type: "number"
            FuelConsumptionClass:
              type: "string"
            BrakingPerformanceClass:
              type: "string"
            NoiseClass:
              type: "string"
            NoiseLevelInDb:
              type: "number"
            VehicleClass:
              type: "string"
            RegulationNumber:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidMaterialType: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidMaterialGroup: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidMaterialSubGroup: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "Michelin 205/55R16 91H M+S 3PMSF Alpin 6"
            IsActive: true
        Branch:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
            - "Number"
            - "IsActive"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            Number:
              type: "integer"
            IsActive:
              type: "boolean"
            Address:
              $ref: "#/components/schemas/PostalAddress"
            EMailAddress:
              type: "string"
            PhoneNumber:
              type: "string"
            FaxNumber:
              type: "string"
            Latitude:
              type: "number"
            Longitude:
              type: "number"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "Zentrale"
            Number: 1
            IsActive: true
            Address: null
            EMailAddress: "info@mail.org"
            PhoneNumber: "+49123456789"
            FaxNumber: null
            Latitude: 12.34
            Longitude: 12.34
        ContactRequest:
          type: "object"
          required: 
            - "Guid"
          properties:
            Guid:
              type: "string"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
        Customer:
          type: "object"
          required: 
            - "Guid"
            - "Number"
            - "IsActive"
          properties:
            Guid:
              type: "string"
            GuidBranch:
              type: "string"
            Number:
              type: "integer"
            IsActive:
              type: "boolean"
            Address:
              $ref: "#/components/schemas/PostalAddress"
            PhoneNumber:
              type: "string"
            FaxNumber:
              type: "string"
            MobilphoneNumber:
              type: "string"
            EMailAddress:
              type: "string"
            HomepageAddress:
              type: "string"
            SalesTaxIdentificationNumber:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Number: 123456
            IsActive: true
            Address: null
            PhoneNumber: "0123456789"
            FaxNumber: null
            MobilphoneNumber: null
            MailAddress: "max@mustermann.de"
            HomepageAddress: null
            SalesTaxIdentificationNumber: null
        CustomerStorage:
          type: "object"
          required: 
            - "Guid"
            - "Number"
            - "Date"
            - "IsActive"
            - "GuidCustomer"
            - "GuidBranch"
            - "StorageType"
          properties:
            Guid:
              type: "string"
            Number:
              type: "integer"
            Date:
              type: "string"
              format: "date"
            IsActive:
              type: "boolean"
            GuidCustomerVehicle:
              type: "string"
            GuidCustomer:
              type: "string"
            GuidBranch:
              type: "string"
            Comment:
              type: "string"
            DriverName:
              type: "string"
            ExternalReferenceNumber:
              type: "string"
            ShallBeWashed:
              type: "boolean"
            ShallBeBalanced:
              type: "boolean"
            ShallBeRdksChecked:
              type: "boolean"
            RimType:
              type: "string"
              enum:
                - "Carbon"
                - "AlloyRimOriginal"
                - "AlloyRimAftermarket"
                - "SteelRim"
                - "WithoutRim"
                - "Unknown"
            GuidCustomerStorageStatus:
              type: "string"
            GuidMaterialGroup:
              type: "string"
            StorageType:
              type: "string"
              enum:
                - "Storage"
                - "Customer"
            GuidStorage:
              type: "string"
            GuidStorageLocation:
              type: "string"
            ExternalStorageReferenceNumber:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Number: 123456
            Date: "2021-02-02"
            IsActive: true
            GuidCustomerVehicle: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidCustomer: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Comment: null
            DriverName: "Max Mustermann Junior"
            ExternalReferenceNumber: null
            ShallBeWashed: true
            ShallBeBalanced: true
            ShallBeRdksChecked: false
            RimType: "AlloyRimAftermarket"
            GuidCustomerStorageStatus: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidMaterialGroup: "ebb89e89-8d25-809e-7814-c53b686ae164"
            StorageType: "Branch"
            GuidStorage: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidStorageLocation: "ebb89e89-8d25-809e-7814-c53b686ae164"
            ExternalStorageReferenceNumber: null
        CustomerStoragePosition:
          type: "object"
          required: 
            - "Guid"
            - "GuidCustomerStorage"
            - "PositionDescription"
          properties:
            Guid:
              type: "string"
            GuidCustomerStorage:
              type: "string"
            PositionDescription:
              type: "string"
              enum:
                - "FR"
                - "FL"
                - "RR"
                - "RL"
            GuidArticleOfTyre:
              type: "string"
            TyreDimension:
              type: "string"
            TyreManufacturer:
              type: "string"
            TyreProfile:
              type: "string"
            TyreProfileDepthInMillimeters:
              type: "number"
            TyreDotYear:
              type: "integer"
            TyreDotWeek:
              type: "integer"
            RimDimension:
              type: "string"
            RimManufacturer:
              type: "string"
            GuidCustomerStorageStatus:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidCustomerStorage: "ebb89e89-8d25-809e-7814-c53b686ae164"
            PositionDescription: "FR"
            GuidArticleOfTyre: "ebb89e89-8d25-809e-7814-c53b686ae164"
            TyreDimension: null
            TyreManufacturer: null
            TyreProfile: null
            TyreProfileDepthInMillimeters: 5.6
            TyreDotYear: 21
            TyreDotWeek: 42
            RimDimension: "7x17"
            RimManufacturer: "AEZ"
            GuidCustomerStorageStatus: "ebb89e89-8d25-809e-7814-c53b686ae164"
        CustomerStorageStatus:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "In Ordnung"
        CustomerVehicle:
          type: "object"
          required: 
            - "Guid"
            - "GuidCustomer"
            - "IsActive"
            - "LicenceTagNumber"
          properties:
            Guid:
              type: "string"
            GuidCustomer:
              type: "string"
            IsActive:
              type: "boolean"
            LicenceTagNumber:
              type: "string"
            ChassisNumber:
              type: "string"
            EgTypeApprovalNumber:
              type: "string"
            KbaNumber1:
              type: "string"
            KbaNumber2:
              type: "string"
            VehicleManufacturer:
              type: "string"
            VehicleDesignation:
              type: "string"
            VehicleType:
              type: "string"
            VehicleModel:
              type: "string"
            RegistrationDate:
              type: "string"
              format: "date"
            FuelType:
              type: "string"
            DisplacementInCcm:
              type: "number"
            PowerInKw:
              type: "number"
            MileageInKm:
              type: "number"
            TuevDate:
              type: "string"
              format: "date"
            InspectionDate:
              type: "string"
              format: "date"
            UvvDate:
              type: "string"
              format: "date"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidCustomer: "ebb89e89-8d25-809e-7814-c53b686ae164"
            IsActive: true
            LicenceTagNumber: "A-BC 1234"
            ChassisNumber: null
            KbaNumber1: "8004"
            KbaNumber2: "AHE"
            VehicleManufacturer: "Skoda"
            VehicleDesignation: "Octavia"
            VehicleType: "Limosine"
            VehicleModel: "1Z, Facelift"
            RegistrationDate: "2021-02-02"
        DbBlob:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
            - "Characterset"
            - "ContentType"
            - "SizeInBytes"
            - "LastFileModificationMoment"
            - "HashValue"
            - "Content"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            Characterset:
              type: "string"
            ContentType:
              type: "string"
            SizeInBytes:
              type: "integer"
            LastFileModificationMoment:
              type: "string"
              format: "date-time"
            HashValue:
              type: "string"
            Content:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "Hinweis.txt"
            Characterset: "UTF-8"
            ContentType: "Txt"
            SizeInBytes: 123
            LastFileModificationMoment: "2021-02-02T10:36:10.172"
            HashValue: "ebb89e898d25809e7814c53b686ae164"
            Content: "some binary content..."
        DmsFile:
          type: "object"
          required: 
            - "Guid"
            - "TableName"
            - "GuidOfTableName"
            - "ProgramIdentifier"
            - "ProgramIdentifierDesignation"
            - "Type"
          properties:
            Guid:
              type: "string"
            TableName:
              type: "string"
              enum:
                - "Customer"
                - "CustomerStorage"
                - "CustomerVehicle"
                - "Document"
                - "SchedulerAppointment"
                - "DmsFile"
            GuidOfTableName:
              type: "string"
            ProgramIdentifier:
              type: "string"
              enum:
                - "Billing"
                - "Cub"
                - "Direct"
                - "Etirehotel"
                - "GlMesstechnik"
                - "GudatSolutions"
                - "MacsDia"
                - "OnlineServices"
                - "Printout"
                - "PurchaseSource"
                - "SalesInterchange"
                - "Somplatzki"
                - "Zollhof"
            ProgramIdentifierDesignation:
              type: "string"
            Type:
              type: "string"
              enum:
                - "Directory"
                - "File"
            Designation:
              type: "string"
            GuidDbBlob:
              type: "string"
            Description:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            TableName: "DmsFile"
            GuidOfTableName: "ebb89e89-8d25-809e-7814-c53b686ae164"
            ProgramIdentifier: "Direct"
            ProgramIdentifierDesignation: "Manuell hinzugefügte Dateien"
            Type: "File"
            GuidDbBlob: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: null
            Description: null   
        Document:
          type: "object"
          required: 
            - "Guid"
            - "IsActive"
            - "Type"
            - "Date"
            - "Number"
            - "GuidBranch"
            - "GuidCustomer"
            - "CreationMoment"
            - "LastModificationMoment"
            - "Address"
          properties:
            Guid:
              type: "string"
            IsActive:
              type: "boolean"
            Type:
              type: "string"
              enum: 
                - "Offer"
                - "Order"
                - "DeliveryNote"
                - "Invoice"
                - "CreditNote"
            Date:
              type: "string"
              format: "date"
            Number:
              type: "number"
            GuidBranch:
              type: "string"
            GuidCustomer:
              type: "string"
            GuidCustomerVehicle:
              type: "string"
            CreationMoment:
              type: "string"
              format: "date-time"
            LastModificationMoment:
              type: "string"
              format: "date-time"
            Address:
              $ref: "#/components/schemas/PostalAddress"
            DeliveryAddress:
              $ref: "#/components/schemas/PostalAddress"
            InvoiceAddress:
              $ref: "#/components/schemas/PostalAddress"
            GuidDocumentOfOffer:
              type: "string"
            GuidDocumentOfOrder:
              type: "string"
            GuidDocumentOfDeliveryNote:
              type: "string"
            GuidDocumentOfInvoice:
              type: "string"
            GuidDocumentOfCreditNote:
              type: "string"
            GuidEmployeeOfSeller:
              type: "string"
            SalesPriceNet:
              type: "number"
            SalesPriceGross:
              type: "number"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            IsActive: true
            Type: "Order"   
            Date: "2021-02-02"   
            Number: 123456
            Guidbranch: "ebb89e89-8d25-809e-7814-c53b686ae164"   
            GuidCustomer: "ebb89e89-8d25-809e-7814-c53b686ae164"   
            CreationMoment: "2021-02-02T10:36:10.172"
            LastModificationMoment: "2021-02-02T10:36:10.172"
            Address: null
            DeliveryAddress: null
            InvoiceAddress: null
            SalesPriceNet: 42.12 
            SalesPriceGross: 50.12
        DocumentPosition:
          type: "object"
          required:
            - "Guid"
            - "GuidDocument"
            - "Number"
            - "Type"
          properties:
            Guid:
              type: "string"
            GuidDocument:
              type: "string"
            Number:
              type: "number"
            Type:
              type: "string"
              enum: 
                - "Article"
                - "Text"
                - "Sum"
                - "Set"
            GuidArticle:
              type: "string"
            Amount:
              type: "number"
            SalesPriceNetSingle:
              type: "number"
            SalesPriceGrossSingle:
              type: "number"
            SalesPriceNetTotal:
              type: "number"
            SalesPriceGrossTotal:
              type: "number"
            Designation:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidDocument: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Number: 1
            Type: "Article"   
            GuidArticle: "ebb89e89-8d25-809e-7814-c53b686ae164"   
            Amount: 4   
            SalesPriceNetSingle: 42.12
            SalesPriceGrossSingle: 50.12   
            SalesPriceNetTotal: 168.48   
            SalesPriceGrossTotal: 200.48   
        Employee:
          type: "object"
          required:
            - "Guid"
            - "IsActive"
            - "Number"
            - "Name"
            - "GuidBranch"
          properties:
            Guid:
              type: "string"
            IsActive:
              type: "boolean"
            Number:
              type: "number"
            Name:
              type: "string"
            GuidBranch:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            IsActive: true
            Number: 1
            Name: "Max Mustermann"   
            GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"   
        Exception:
          type: "object"
          required: 
            - "Guid"
          properties:
            Guid:
              type: "string"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
        MaterialGroup:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "Sommerreifen"
        MaterialSubGroup:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "RFT-Seal-Sommer-PKW-Reifen"
        MaterialType:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "Reifen"
        OnlineSchedulerAppointmentDate:
          type: "object"
          required: 
            - "Guid"
            - "Date"
            - "IsAvailable"
          properties:
            Guid:
              type: "string"
            Date:
              type: "string"
              format: "date"
            IsAvailable:
              type: "boolean"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Date: "2021-02-02"
            IsAvailable: true
        OnlineSchedulerAppointmentJob:
          type: "object"
          required: 
            - "Guid"
            - "GuidSchedulerResourceGroupJob"
            - "LengthInMinutes"
          properties:
            Guid:
              type: "string"
            GuidSchedulerResourceGroupJob:
              type: "string"
            LengthInMinutes:
              type: "integer"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidSchedulerResourceGroupJob: "ebb89e89-8d25-809e-7814-c53b686ae164"
            LengthInMinutes: 30
        OnlineSchedulerAppointmentTime:
          type: "object"
          required: 
            - "Guid"
            - "Moment"
            - "IsAvailable"
          properties:
            Guid:
              type: "string"
            Moment:
              type: "string"
              format: "date-time"
            IsAvailable:
              type: "boolean"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Moment: "2021-02-02T10:36:10.172"
            IsAvailable: true
        OnlineSchedulerBranch:
          type: "object"
          required: 
            - "Guid"
            - "GuidOnlineSchedulerService"
            - "GuidBranch"
            - "IsDefault"
          properties:
            Guid:
              type: "string"
            GuidOnlineSchedulerService:
              type: "string"
            GuidBranch:
              type: "string"
            IsDefault:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidOnlineSchedulerService: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
            IsDefault: true
        OnlineSchedulerContactField:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
            - "Type"
            - "Behaviour"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            Type:
              type: "string"
              description: "The definition follows https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete . If you can not find the specific type off is used."
              enum:
                - "honorific-prefix"
                - "given-name"
                - "additional-name"
                - "street-address"
                - "country"
                - "postal-code"
                - "address-level2"
                - "address-level3"
                - "email"
                - "tel"
                - "off"
            Behaviour:
              type: "string"
              enum:
                - "Optional"
                - "Mandatory"
                - "HiddenExceptNoCustomerIsAvailableThenOptional"
                - "HiddenExceptNoCustomerIsAvailableThenMandatory"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "E-Mail-Adresse"
            Type: "EMail"
            IsRequired: "Optional"
        OnlineSchedulerService:
          type: "object"
          required: 
            - "Guid"
            - "GuidOnlineService"
            - "Designation"
            - "IsDefault"
            - "CalendarType"
            - "UsersHaveToEnterALicenceTag"
            - "UsersMayEnterANewLicenceTag"
            - "IsConnectedWithATyreStorage"
            - "DeadlineTimeInSecondsSinceMidnight"
          properties:
            Guid:
              type: "string"
            GuidOnlineService:
              type: "string"
            Designation:
              type: "string"
            IsVisible:
              type: "boolean"
            IsDefault:
              type: "boolean"
            CalendarType:
              type: "string"
              enum:
                - "Date"
                - "DateAndTime"
            UsersHaveToEnterALicenceTag:
              type: "boolean"
            UsersMayEnterANewLicenceTag:
              type: "boolean"
            IsConnectedWithATyreStorage:
              type: "boolean"
            DeadlineTimeInSecondsSinceMidnight:
              type: "integer"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidOnlineService: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "Termin für eine Einlagerung."
            IsVisible: true
            IsDefault: true
            CalendarType: "Date"
            UsersHaveToEnterALicenceTag: true
            UsersMayEnterANewLicenceTag: false
            IsConnectedWithATyreStorage: true
            DeadlineTimeInSecondsSinceMidnight: 43200
        OnlineServiceDomainFooterModule:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
            - "IsLegalNotice"
            - "ContentType"
            - "Content"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            IsLegalNotice:
              type: "boolean"
            ContentType:
              type: "string"
              enum:
                - "Link"
                - "Text"
            Content:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "Facebook"
            ContentType: "Link"
            Content: "https://example.domain/foo?bar=true"
        OnlineServiceDomain:
          type: "object"
          required: 
            - "Guid"
            - "Domain"
          properties:
            Guid:
              type: "string"
            CompanyName:
              type: "string"
            Domain:
              type: "string"
            GuidDbBlobHeaderLogo:
              type: "string"
            GuidDbBlobFooterLogo:
              type: "string"
            BodyBackgroundColor:
              type: "string"
            FormBackgroundColor:
              type: "string"
            PrimaryColor:
              type: "string"
            SecondaryColor:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "9acea90b-f0d9-2d95-7814-c53b28d87980"
            Domain: "musterreifen.com"
            GuidDbBlobHeaderLogo: "9acea90b-f0d9-2d95-7814-c53b28d87980"
            GuidDbBlobFooterLogo: null
            BodyBackgroundColor: null
            FormBackgroundColor: "rgb(255,0,0)"
            PrimaryColor: null
            SecondaryColor: null
        OnlineService:
          type: "object"
          required: 
            - "Guid"
            - "GuidOnlineServiceDomain"
            - "Designation"
            - "IsVisible"
            - "IsDefault"
            - "Type"
          properties:
            Guid:
              type: "string"
            GuidOnlineServiceDomain:
              type: "string"
            GuidOnlineServiceOfScheduler:
              type: "string"
            Designation:
              type: "string"
            IsVisible:
              type: "boolean"
            IsDefault:
              type: "boolean"
            Type:
              type: "string"
              enum:
                - "CustomerInformation"
                - "Scheduler"
                - "Shop"
            UrlExtension:
              type: "string"
            NewUsersMayRegister:
              type: "boolean"
            OneClickPurchaseIsAllowed:
              type: "boolean"
            TyreProArticleColorsShallBeUsed:
              type: "boolean"
            DefaultArticleAmount:
              type: "number"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidOnlineServiceDomain: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "B2B-Shop"
            IsVisible: true
            IsDefault: true
            Type: "Shop"
            UrlExtension: "Shop"
            NewUsersMayRegister: false
            OneClickPurchaseIsAllowed: true
            TyreProArticleColorsShallBeUsed: true
            DefaultArticleAmount: 4
        OnlineUser:
          type: "object"
          required: 
            - "Guid"
            - "Username"
            - "IsActive"
            - "GuidCustomer"
            - "MayChangeTheMainAddress"
            - "FullTaxPercentage"
            - "ReducedTaxPercentage"
          properties:
            Guid:
              type: "string"
            Username:
              type: "string"
            IsActive:
              type: "boolean"
            GuidCustomer:
              type: "string"
            MayChangeTheMainAddress:
              type: "boolean"
            FullTaxPercentage:
              type: "number"
            ReducedTaxPercentage:
              type: "number"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Username: "Mustermann"
            IsActive: true
            GuidCustomer: "ebb89e89-8d25-809e-7814-c53b686ae164"
            MayChangeTheMainAddress: true
            FullTaxPercentage: 19
            ReducedTaxPercentage: 7
        PostalAddress:
          type: "object"
          properties:
            Salutation:
              type: "string"
            Name1:
              type: "string"
            Name2:
              type: "string"
            Name3:
              type: "string"
            Street:
              type: "string"
            Postalcode:
              type: "string"
            Town:
              type: "string"
            Township:
              type: "string"
            GuidAddressState:
              type: "string"
          example: 
            Salutation: "Herr"
            Name1: "Max Mustermann"
            Name2: null
            Name3: null
            Street: "Musterstra�e 123"
            Postalcode: "01234"
            Town: "Musterhausen"
            Township: "Musterviertel"
            GuidAddressState: "ebb89e89-8d25-809e-7814-c53b686ae164"
        SchedulerAppointment:
          type: "object"
          required: 
            - "Guid"
            - "Designation"
            - "StartMoment"
            - "EndMoment"
            - "WasCreatedByOnlineScheduler"
          properties:
            Guid:
              type: "string"
            Designation:
              type: "string"
            LicenceTagNumber:
              type: "string"
            StartMoment:
              type: "string"
              format: "date-time"
            EndMoment:
              type: "string"
              format: "date-time"
            Comment:
              type: "string"
            WasCreatedByOnlineScheduler:
              type: "boolean"
            OnlineSchedulerText:
              type: "string"
            AppointmentMakerEmailAddress:
              type: "string"
            GuidBranch:
              type: "string"
            GuidOnlineSchedulerBranch:
              type: "string"
            GuidCustomerVehicle:
              type: "string"
            GuidCustomerStorage:
              type: "string"
            GuidDocument:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            Designation: "Max Müller, A-BC 1234"
            LicenceTagNumber: "A-BC 1234"
            StartMoment: "2021-02-02T10:36:10.172"
            EndMoment: "2021-02-02T10:36:10.172"
            Comment: null
            WasCreatedByOnlineScheduler: true
            OnlineSchedulerText: "Service: Ich möchte einen Termin für eine Einlagerung haben."
            AppointmentMakerEmailAddress: "info@prm-ag.de"
            GuidBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidOnlineSchedulerBranch: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidCustomerVehicle: "ebb89e89-8d25-809e-7814-c53b686ae164"
            GuidCustomerStorage: "ebb89e89-8d25-809e-7814-c53b686ae164"
        SchedulerResourceGroupJob:
          type: "object"
          required: 
            - "Guid"
            - "GuidSchedulerResourceGroup"
            - "ExternalDesignation"
            - "InternalDesignation"
          properties:
            Guid:
              type: "string"
            GuidSchedulerResourceGroup:
              type: "string"
            ExternalDesignation:
              type: "string"
            InternalDesignation:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "9acea90b-f0d9-2d95-7814-c53b28d87980"
            GuidSchedulerResourceGroup: "9acea90b-f0d9-2d95-7814-c53b28d87980"
            ExternalDesignation: "Radwechsel 19 Zoll"
            InternalDesignation: "RW19"
        Session:
          type: "object"
          required: 
            - "Guid"
            - "TableName"
            - "GuidOfTableName"
            - "ExpirationMoment"
            - "ClientDescription"
            - "CreationIpAddress"
          properties:
            Guid:
              type: "string"
            TableName:
              type: "string"
              enum:
                - "OnlineServiceDomain"
                - "OnlineUser"
                - "User"
            GuidOfTableName:
              type: "string"
            ExpirationMoment:
              type: "string"
              format: "date-time"
            ClientDescription:
              type: "string"
            CreationIpAddress:
              type: "string"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "9acea90b-f0d9-2d95-7814-c53b28d87980"
            TableName: "OnlineServiceDomain"
            GuidOfTableName: "9acea90b-f0d9-2d95-7814-c53b28d87980"
            ExpirationMoment: "2021-02-02T10:36:10.172"
            ClientDescription: "Windows 10, Chrome"
            CreationIpAddress: "12.34.56.78"
        Storage:
          type: "object"
          required: 
            - "Guid"
            - "IsActive"
            - "Designation"
            - "Number"
          properties:
            Guid:
              type: "string"
            IsActive:
              type: "boolean"
            Designation:
              type: "string"
            Number:
              type: "integer"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            IsActive: true
            Designation: "Reifen"
            Number: 1
        StorageLocation:
          type: "object"
          required: 
            - "Guid"
            - "IsActive"
            - "Designation"
            - "Number"
          properties:
            Guid:
              type: "string"
            GuidStorage:
              type: "string"
            IsActive:
              type: "boolean"
            Designation:
              type: "string"
            Number:
              type: "integer"
            _HashValue:
              $ref: "#/components/schemas/_HashValue"
          example: 
            Guid: "ebb89e89-8d25-809e-7814-c53b686ae164"
            IsActive: true
            Designation: "Reifen"
            Number: 1
    securitySchemes:
        SessionScheme:
            type: http
            scheme: bearer
    parameters:
      _HashValueParameter:
        name: "_HashValue"
        in: "query"
        description: "If you want to process a write operation you shall provide the hashvalue of the current view of the object you want to write to. If someone else has written something before you'll get a 412 response code."
        required: true
        schema:
          type: "string"
          default: null
          example: "f50df554352ac91635f900026860e3371a71999d"
      AppointmentDurationTokenParameter:
        name: "AppointmentDurationToken"
        in: "query"
        description: "An token which describes the duration. You can calculate it of a new context or get it of an existing SchedulerAppointment."
        required: false
        schema:
          type: "string"
          default: null
          example: "eyJTb21lVGFnIjoiYmE1MWU3ZmUtODAzYy0wNGE1LTc4MTQtYzUzYjE4YjU1MzI1IiwiU29tZURhdGUiOiIyMDIxLTAyLTAxIiwiU29tZVZhbHVlIjp0cnVlfQ.0e2a55756bde97a5d592914c702893cf23a47cdd"
      BinaryResponseParameter:
        name: "BinaryResponse"
        in: "query"
        description: "When true the response will be delivered as binary data stream."
        required: false
        schema:
          type: "boolean"
          default: false
          example: true
      ConfirmationEMailShallBeSendParameter:
        name: "ConfirmationEMailShallBeSend"
        in: "query"
        description: "When true and an mail address is in the context avaiable an email will be sent."
        required: false
        schema:
          type: "boolean"
          default: true
          example: true
      ContentDispositionParameter:
        name: "ContentDisposition"
        in: "query"
        description: "How the file is deliverd. Inline is inside the same browser tab i.e.. This parameter takes only effect if parameter BinaryResponse=true."
        required: false
        schema:
          type: "string"
          enum:
            - "Inline"
            - "Attachment"
          default: "Inline"
          example: "Inline"
      ContentShallBeIncludedParameter:
        name: "ContentShallBeIncluded"
        in: "query"
        description: "When true the response contains the content."
        required: false
        schema:
          type: "boolean"
          default: false
          example: true
      DmsFilesTableNameParameter:
        name: "TableName"
        in: "query"
        required: true
        schema:
          type: "string"
          enum:
            - "Customer"
            - "CustomerStorage"
            - "CustomerVehicle"
            - "DmsFile"
            - "Document"
            - "SchedulerAppointment"
          example: "DmsFile"
      DmsFilesTypeParameter:
        name: "Type"
        in: "query"
        description: "Filter by type."
        required: false
        schema:
          type: "string"
          enum:
            - "Directory"
            - "File"
          example: "File"
      GuidOfTableNameParameter:
        name: "GuidOfTableName"
        in: "query"
        required: true
        schema:
          type: "string"
          default: null
      GuidPathParameter:
        name: "Guid"
        in: "path"
        description: "The primary identifier of the entry (in the database)."
        required: true
        schema:
          type: "string"
          default: null
          example: "ebb89e89-8d25-809e-7814-c53b686ae164"
      IsActiveParameter:
        name: "IsActive"
        in: "query"
        description: "Only active elements shall be returned. If null both will get returned."
        required: false
        schema:
          type: "boolean"
          default: null
          example: true
      LimitParameter:
        name: "Limit"
        in: "query"
        description: "Limits the number of result entries."
        required: false
        schema:
          type: "integer"
          default: null
          minimum: 1
          maximum: 2147483647
          example: 20
      OffsetParameter:
        name: "Offset"
        in: "query"
        description: "Skip the first number of entries."
        required: false
        schema:
          type: "integer"
          default: null
          minimum: 0
          maximum: 2147483647
          example: 0
      OnlineSchedulerContactFieldsParameter:
        name: "OnlineSchedulerContactFields"
        in: "query"
        description: "The data of the contact fields."
        required: false
        style: "deepObject"
        explode: true
        schema:
          type: "array"
          items:
            type: "object"
            required: 
              - "Guid"
              - "Content"
            properties:
              Guid:
                type: "string"
              Content:
                type: "string"
            example: 
              Guid: "9acea90b-f0d9-2d95-7814-c53b28d87980"
              Content: "Test"
      OnlyBookableEntriesShallBeReturnedParameter:
        name: "OnlyBookableEntriesShallBeReturned"
        in: "query"
        required: false
        description: "Only inactive subentries (like Branches, OnlineSchedulerBranches without Ressources...) shall be returned."
        schema:
          type: "boolean"
          default: false
          example: true
      PasswordHashValueParameter:
        name: "PasswordHashValue"
        in: "query"
        description: "The SHA-1-value of the password. The hash should be formatted as a hex-encoded string."
        required: false
        schema:
          type: "string"
          default: null
          example: "e099b5c2aef873f5e2612da35056bd2287a3c404"
      RecursiveParamter:
        name: "Recursive"
        in: "query"
        required: true
        schema:
          type: "boolean"
          default: null
      ResponseResolutionDepthParameter:
        name: "ResponseResolutionDepth"
        in: "query"
        description: "If your response object has a field with GuidSomething, this last object will be resolved. Instead of the field GuidSomething you'll get a json object of type Something with it's content. The depth determines how deep this operation shall be. The deeper, the slower your operation will be in general."
        required: false
        schema:
          type: "integer"
          default: 0
          minimum: 0
          maximum: 3
          example: 1
      SearchTermParameter:
        name: "SearchTerm"
        in: "query"
        description: "Searches the entries and it's content."
        required: false
        schema:
          type: "string"
          default: null
          example: "mc*onald"
      UserAgentParameter:
        name: "User-Agent"
        in: "header"
        required: true
        schema:
          type: "string"
          default: null
      UsernameParameter:
        name: "Username"
        in: "query"
        required: false
        schema:
          type: "string"
          default: null
    responses:
      SessionOfOnlineUserOrHigherRequired:
        description: "You need a session of type OnlineUser or TyreProUser."
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GenericError"
      SessionOfTyreProUserOrHigherRequired:
        description: "You need a session of type TyreProUser."
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GenericError"
      GenericError:
        description: "Unexpected error like 4XX or 5XX http errors."
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GenericError"








































