openapi: 3.0.0
info:
    title: "TyrePro-API, Common"
    version: "1"
servers:
    - url: "https://musterreifen.com/api"
      description: "Demo server"
    - url: "https://onlineservices.demo.rz2.prm-ag.de/O6J20ZebmghzkNgrdD759A/api"
      description: "Development server"
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: []
  /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: []
  /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: []
  /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"
  /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"
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"
        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
        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   
        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"
        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"
        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"
    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"
      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
      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
      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"








































