swagger: '2.0'
info:
  title: Automile API
  version: v1
paths:
  /v1/client/api:
    get:
      tags:
        - ClientApi
      summary: Get the current API client that access the API
      description: Returns the given API Client that the token is valid for
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The APIClient is returned
          schema:
            $ref: '#/definitions/APIClientModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/apiauthorizations:
    get:
      tags:
        - ClientApiAuthorizations
      summary: Get a list of user that has authorized the logged in API client for access
      description: Only users that has given authorization to the given API client will be returned
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The users are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/APIAuthorizationModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/client/apiauthorizations/{apiAuthorizationId}':
    get:
      tags:
        - ClientApiAuthorizations
      summary: Get the details about a specific user authorization
      operationId: GetByAPIAuthorizationId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: apiAuthorizationId
          description: The id of the authorization
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The user details are returned
          schema:
            $ref: '#/definitions/APIAuthorizationModel'
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this authorization'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/contracts:
    get:
      tags:
        - ClientContracts
      summary: ''
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/contracts/journeys:
    get:
      tags:
        - ClientContracts
      summary: ''
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: contractId
          type: integer
          format: int32
        - in: query
          name: fromDate
          type: string
          format: date-time
        - in: query
          name: toDate
          type: string
          format: date-time
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/contracts/confirmjourneys:
    post:
      tags:
        - ClientContracts
      summary: ''
      parameters:
        - in: query
          name: ids
          type: array
          items:
            format: int32
            type: integer
          collectionFormat: multi
      responses:
        '200':
          description: ''
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/custom/createuser:
    post:
      tags:
        - ClientCustom
      summary: Creates Client Custom User
      operationId: CreateClientCustomUser
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The custom user model
          schema:
            $ref: '#/definitions/CustomUserCreateModel'
      responses:
        '200':
          description: Client Custom user created
          schema:
            $ref: '#/definitions/CreatedAtRoute'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/custom/resetpassword:
    post:
      tags:
        - ClientCustom
      summary: Reset User password
      operationId: ResetPasswordClientCustom
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The reset password model
          schema:
            $ref: '#/definitions/ResetPasswordUserModel'
      responses:
        '200':
          description: Password reset sent
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/custom/createuserwithoutpassword:
    post:
      tags:
        - ClientCustom
      summary: Create User without password
      operationId: CreateClientCustomUserWithoutPassword
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The reset password model
          schema:
            $ref: '#/definitions/CustomUserCreateWithoutPasswordModel'
      responses:
        '200':
          description: Create User without password
          schema:
            $ref: '#/definitions/UserCreatedPasswordModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/custom/usernametaken:
    get:
      tags:
        - ClientCustom
      summary: Get UserName takenmodel
      operationId: UsernameTaken
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: username
          description: The username
          type: string
      responses:
        '200':
          description: The UserNametaken returned
          schema:
            $ref: '#/definitions/UsernameTakenModel'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/UsernameTakenModel'
      security:
        - oauth2: [ ]
  /v1/client/custom/userphonenumber:
    get:
      tags:
        - ClientCustom
      summary: Get User assoicated to phonenumber or username
      operationId: UserPhoneNumber
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: identifier
          description: username or phonenumber
          type: string
        - in: query
          name: region
          description: Region for phonenumber
          type: string
      responses:
        '200':
          description: The user returned
          schema:
            type: array
            items:
              $ref: '#/definitions/UserPhoneNumberModel'
        '400':
          description: 'Bad request, can happen when you supply values that are unacceptable'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '409':
          description: Multiple users assoicated to the account
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/custom/usersphonenumber:
    get:
      tags:
        - ClientCustom
      summary: Get user guids from phonenumber
      operationId: UsernamesPhoneNumber
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: mobilePhoneNumber
          description: ''
          type: string
        - in: query
          name: region
          description: Region for phonenumber
          type: string
      responses:
        '200':
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/UsernamesPhoneNumberModel'
      security:
        - oauth2: [ ]
  /v1/client/custom/existingusers:
    get:
      tags:
        - ClientCustom
      summary: Get user guids from identifier
      operationId: ExistingUsersAccounts
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: identifier
          description: ''
          type: string
        - in: query
          name: region
          description: Region for phonenumber
          type: string
      responses:
        '200':
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/UsernamesPhoneNumberModel'
      security:
        - oauth2: [ ]
  /v1/client/custom/validatephonenumber:
    get:
      tags:
        - ClientCustom
      summary: Check if user has the phonenumber
      operationId: ValidatePhoneNumber
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: username
          description: ''
          type: string
        - in: query
          name: mobilePhoneNumber
          description: ''
          type: string
      responses:
        '200':
          description: Success
          schema:
            type: boolean
      security:
        - oauth2: [ ]
  /v1/client/custom/deviceregistered:
    get:
      tags:
        - ClientCustom
      summary: Get DeviceRegistered
      operationId: DeviceRegistered
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: imei
          description: The Imei
          type: string
      responses:
        '200':
          description: The DeviceRegistered returned
          schema:
            $ref: '#/definitions/DeviceRegisteredModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/custom/reversegeocoding:
    get:
      tags:
        - ClientCustom
      summary: Get DeviceRegistered
      operationId: ReverseGeocoding
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: latitude
          description: The latitude
          type: number
          format: double
        - in: query
          name: longitude
          description: The longitude
          type: number
          format: double
      responses:
        '200':
          description: The DeviceRegistered returned
          schema:
            $ref: '#/definitions/ReverseGeocodingResult'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/onboarding/vehiclemakes:
    get:
      tags:
        - ClientOnboarding
      summary: Get vehicle makes
      operationId: VehicleMakes
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: region
          type: integer
          format: int32
          enum:
            - 0
            - 1
      responses:
        '200':
          description: List of makes returned
          schema:
            $ref: '#/definitions/VehickeMakesModel'
      security:
        - oauth2: [ ]
  /v1/client/onboarding/vehiclemodels:
    get:
      tags:
        - ClientOnboarding
      summary: Get vehicle models
      operationId: VehicleModels
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: make
          type: string
      responses:
        '200':
          description: List of models returned
          schema:
            $ref: '#/definitions/VehicleModelsModel'
      security:
        - oauth2: [ ]
  /v1/client/order/pro:
    post:
      tags:
        - ClientOrder
      summary: Creates a pro order
      operationId: CreateClientOrder
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The pro order model
          schema:
            $ref: '#/definitions/ProOrderModel'
      responses:
        '200':
          description: A pro order is created
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/order/propricing:
    get:
      tags:
        - ClientOrder
      summary: Get Pro PriceModel
      operationId: GetProPricingClientCustom
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: countryCode
          type: string
        - in: query
          name: numberOfUnits
          type: integer
          format: int32
      responses:
        '200':
          description: The pro price details returned
          schema:
            $ref: '#/definitions/ApiPriceModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/client/textmessages/createpin:
    post:
      tags:
        - ClientTextMessage
      summary: Create and send pin code to login with
      operationId: CreatePinCode
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: ''
          schema:
            $ref: '#/definitions/CreatePinModel'
      responses:
        '200':
          description: The Pin code have been sent
        '400':
          description: 'Format error on phonenumber, To many SMS or no match on phonenumber'
          schema:
            $ref: '#/definitions/ProblemDetails'
      security:
        - oauth2: [ ]
  /v1/client/textmessages/validatepin:
    post:
      tags:
        - ClientTextMessage
      summary: Validate Pin Code
      operationId: ValidatePinCode
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: ''
          schema:
            $ref: '#/definitions/ValidatePinModel'
      responses:
        '200':
          description: User logged in/User created and a user token returned in response
          schema:
            $ref: '#/definitions/TokenResponse'
        '400':
          description: Can't assoicate given username to a user
          schema:
            $ref: '#/definitions/ProblemDetails'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: Too many password attempts
          schema:
            $ref: '#/definitions/ProblemDetails'
      security:
        - oauth2: [ ]
  /v1/client/users:
    get:
      tags:
        - ClientUsers
      summary: Get the users that belongs to contacts that the current user is associated with
      description: Get the users that the current user is associated through companies
      operationId: GetClientUsers
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The Users are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/UserModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ClientUsers
      summary: Creates a new user including a contact with basic information
      operationId: CreateClientUser
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The create user model
          schema:
            $ref: '#/definitions/UserCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created users
        '400':
          description: 'Bad request, can happen when you supply values that are unacceptable'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/client/users/{userId}':
    get:
      tags:
        - ClientUsers
      summary: Get the specific user
      operationId: GetClientUserByUserId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: userId
          description: The user id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The Users are returned
          schema:
            $ref: '#/definitions/UserModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this user'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/echo/validatetoken:
    get:
      tags:
        - Echo
      summary: Validates a given token
      description: Simple operation to test that a valid OAuth2 Bearer token has been supplied
      responses:
        '200':
          description: Success
      security:
        - oauth2: [ ]
  /:
    get:
      tags:
        - Home
      parameters:
        - in: query
          name: token
          type: string
      responses:
        '200':
          description: Success
  /o2c:
    get:
      tags:
        - Home
      parameters:
        - in: query
          name: token
          type: string
      responses:
        '200':
          description: Success
  /login:
    get:
      tags:
        - Login
      parameters:
        - in: query
          name: client_id
          type: string
        - in: query
          name: scope
          type: string
        - in: query
          name: redirect_uri
          type: string
        - in: query
          name: state
          type: string
        - in: query
          name: response_type
          type: string
          default: token
      responses:
        '200':
          description: Success
    post:
      tags:
        - Login
      parameters:
        - in: query
          name: UserName
          required: true
          type: string
        - in: query
          name: Password
          required: true
          type: string
        - in: query
          name: ClientId
          type: string
        - in: query
          name: Scopes
          type: string
        - in: query
          name: RedirectUri
          type: string
        - in: query
          name: State
          type: string
        - in: query
          name: ResponseType
          type: string
      responses:
        '200':
          description: Success
  /OAuth2/Token:
    post:
      tags:
        - OAuth
      consumes:
        - multipart/form-data
      parameters:
        - in: formData
          name: grant_type
          required: true
          type: string
        - in: formData
          name: client_id
          type: string
        - in: formData
          name: client_secret
          type: string
        - in: formData
          name: username
          type: string
        - in: formData
          name: password
          type: string
        - in: formData
          name: scope
          type: string
        - in: formData
          name: refresh_token
          type: string
        - in: formData
          name: azure_access_token
          type: string
        - in: formData
          name: azure_tenant_id
          type: string
      responses:
        '200':
          description: Success
  /v1/integration/order:
    post:
      tags:
        - Order
      summary: Creates a new order
      operationId: CreateOrder
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The CreateOrderModel
          schema:
            $ref: '#/definitions/CreateOrderModel'
      responses:
        '200':
          description: Creates new order
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /maskedphonenumber/inboundvoice:
    get:
      tags:
        - Phone
      parameters:
        - in: query
          name: from
          type: string
        - in: query
          name: to
          type: string
      responses:
        '200':
          description: Success
  /maskedphonenumber/inboundtext:
    get:
      tags:
        - Phone
      parameters:
        - in: query
          name: from
          type: string
        - in: query
          name: to
          type: string
        - in: query
          name: body
          type: string
      responses:
        '200':
          description: Success
  /v1/resourceowner/companies:
    get:
      tags:
        - ResourceOwnerCompany
      summary: Get a list of all companies that user is associated with
      description: Only companies that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerCompanies
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The companies are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/CompanyModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerCompany
      summary: Creates a new company and associates it with the user
      operationId: CreateResourceOwnerCompany
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/CompanyCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created company
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/companies/{companyId}':
    get:
      tags:
        - ResourceOwnerCompany
      summary: Get a company by id
      description: The user only has access to contacts that it is associated with through the company
      operationId: GetByCompanyId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: companyId
          description: The Id of the company
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The company details are returned
          schema:
            $ref: '#/definitions/CompanyDetailModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerCompany
      summary: Updates the given company id
      description: This will update the company contact with the new model.
      operationId: EditResourceOwnerCompany
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: companyId
          description: The company id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/CompanyEditModel'
      responses:
        '200':
          description: The company was saved
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerCompany
      summary: Removes the given company
      description: This will delete the given company contact.
      operationId: DeleteResourceOwnerCompany
      parameters:
        - in: path
          name: companyId
          description: The company id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The company has been deleted
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/companycontact:
    get:
      tags:
        - ResourceOwnerCompanyContacts
      summary: Get a list of all company contacts that user is associated with
      description: Only company contacts that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerCompanyContacts
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The company contacts are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/CompanyContactDetailModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerCompanyContacts
      summary: Creates a new company contact and associates it with user
      description: The user only has access to contacts that it is associated with through the company
      operationId: CreateResourceOwnerCompanyContact
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The company contact model
          schema:
            $ref: '#/definitions/CompanyContactCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created company contact
        '403':
          description: 'Request is forbidden, this could occur if you try to associate to companies you are not associated with'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/companycontact/{companyContactId}':
    get:
      tags:
        - ResourceOwnerCompanyContacts
      summary: Get the company contact relationship
      description: Only company contcats that the user has access to are accessible.
      operationId: GetResourceOwnerCompanyContact
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: companyContactId
          description: The company contact id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The company contact model is returned
          schema:
            $ref: '#/definitions/CompanyContactDetailModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this company vehicle relationship'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/companycontact/{companyContactIdToEdit}':
    put:
      tags:
        - ResourceOwnerCompanyContacts
      summary: Updates the given companycontact id
      description: This will update the company contact with the new model.
      operationId: EditResourceOwnerCompanyContact
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: companyContactIdToEdit
          description: The company contact that should be updated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new company contact model
          schema:
            $ref: '#/definitions/CompanyContactEditModel'
      responses:
        '200':
          description: The company contact was saved
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the company contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/companycontact/{companyContactIdToDelete}':
    delete:
      tags:
        - ResourceOwnerCompanyContacts
      summary: Removes the given company contact
      description: This will delete the given company contact.
      operationId: DeleteResourceOwnerCompanyContact
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: companyContactIdToDelete
          description: The company contact id to remove
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The company contact has been deleted
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the company contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: The company contact that you tried to remove doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/companyvehicle:
    get:
      tags:
        - ResourceOwnerCompanyVehicles
      summary: Get a list of all company vehicles that user is associated with
      description: Only company vehicles that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerCompanyVehicles
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: companyId
          description: Filter on company id
          type: integer
          format: int32
      responses:
        '200':
          description: The company vehicles are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/CompanyVehicleModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerCompanyVehicles
      summary: Creates a new company vehicle and associates it with user through the company
      description: The user only has access to contacts that it is associated with through the company
      operationId: CreateResourceOwnerCompanyVehicle
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The company contact model
          schema:
            $ref: '#/definitions/CompanyVehicleCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created company vehicle
        '403':
          description: 'Request is forbidden, this could occur if you try to associate to companies you are not associated with'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: The company that you tried to use doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/companyvehicle/{companyVehicleId}':
    get:
      tags:
        - ResourceOwnerCompanyVehicles
      summary: Get the company vehicle relationship
      description: Only company vehicle that the user has access to are accessible.
      operationId: GetResourceOwnerCompanyVehicle
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: companyVehicleId
          description: The company vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The company vehicle model is returned
          schema:
            $ref: '#/definitions/CompanyVehicleModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this company vehicle relationship'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/companyvehicle/{companyVehicleIdToEdit}':
    put:
      tags:
        - ResourceOwnerCompanyVehicles
      summary: Updates the given company vehicle id
      description: This will update the company vehicle with the new model.
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: companyVehicleIdToEdit
          description: The vehicle contact that should be updated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new company vehicle model
          schema:
            $ref: '#/definitions/CompanyVehicleEditModel'
      responses:
        '200':
          description: The company vehicle was saved
        '403':
          description: 'Request is forbidden, this could occur if you try to associate to companies you are not associated with'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'The company, the vehicle or the company vehicle that you tried to update doesn''t exist'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/companyvehicle/{companyVehicleIdToDelete}':
    delete:
      tags:
        - ResourceOwnerCompanyVehicles
      summary: Removes the given company vehicle
      description: This will delete the given company contact.
      operationId: DeleteResourceOwnerCompanyVehicle
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: companyVehicleIdToDelete
          description: The company vehicle id to remove
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The company vehicle was saved
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the company vehicle'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: The company vehicle that you tried to remove doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts:
    get:
      tags:
        - ResourceOwnerContact
      summary: Get a list of all contacts that user is associated with
      description: Only contacts that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerContacts
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The contacts are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ContactModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerContact
      summary: Creates a new contact
      operationId: CreateResourceOwnerContact
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The contact model
          schema:
            $ref: '#/definitions/ContactCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created company
        '403':
          description: 'Request is forbidden, this could occur if you try to associate the contact you are not associated with'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts/{contactId}':
    get:
      tags:
        - ResourceOwnerContact
      summary: Get a contact by id
      operationId: GetResourceOwnerContact
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The contact id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The contact are returned
          schema:
            $ref: '#/definitions/ContactDetailModel'
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this contact'
          schema:
            $ref: '#/definitions/ContactDetailModel'
        '404':
          description: Contact does not exist
          schema:
            $ref: '#/definitions/ContactDetailModel'
        '500':
          description: Internal server error
          schema:
            $ref: '#/definitions/ContactDetailModel'
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerContact
      summary: Updates the given contact id
      operationId: EditResourceOwnerContact
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The contact id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The contact model
          schema:
            $ref: '#/definitions/ContactEditModel'
      responses:
        '200':
          description: The contact was saved
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
        '404':
          description: The contact that you tried to update doesn't exist
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerContact
      summary: Removes the given contact
      operationId: DeleteResourceOwnerContact
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The contact id to remove
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The contact has been deleted
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: The contact that you tried to remove doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
        '400':
          description: 'Request is bad, You can''t delete a contact that is bound to a user'
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts/me:
    get:
      tags:
        - ResourceOwnerContact
      summary: Get the contact representing myself
      operationId: GetResourceOwnerContactMe
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The contact are returned
          schema:
            $ref: '#/definitions/ContactDetailModel'
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: Contact does not exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts/me/updatedefaultvehicle/{vehicleId}':
    put:
      tags:
        - ResourceOwnerContact
      summary: Updates the default vehicle
      description: This will update the default vehicle
      operationId: MeUpdateDefaultVehicle
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: the default vehicle on contact saved
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts/updatedefaultvehicle/{vehicleId}':
    put:
      tags:
        - ResourceOwnerContact
      summary: Updates the default vehicle
      description: This will update the default vehicle
      operationId: UpdateResourceOwnerContactDefaultVehicle
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Tthe default vehicle on contact saved
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts2:
    get:
      tags:
        - ResourceOwnerContact2
      summary: Get a list of all contacts that user is associated with
      description: Only companies that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerContacts2
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The contacts are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/Contact2Model'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerContact2
      summary: Creates a new contact
      operationId: CreateResourceOwnerContact2
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The contact model
          schema:
            $ref: '#/definitions/Contact2CreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created contact
        '403':
          description: 'Request is forbidden, this could occur if you try to associate the contact you are not associated with'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts2/{contactId}':
    get:
      tags:
        - ResourceOwnerContact2
      summary: Get a contact by id
      description: The user only has access to companies that it is associated with
      operationId: GetResourceOwnerContact2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The contact id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The contact is returned
          schema:
            $ref: '#/definitions/Contact2DetailModel'
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: Contact does not exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerContact2
      summary: Updates the given contact id
      description: This will update the contact with the new model.
      operationId: EditResourceOwnerContact2
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The contact that should be updated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new contact model
          schema:
            $ref: '#/definitions/Contact2EditModel'
      responses:
        '200':
          description: The contact was saved
        '404':
          description: The contact that you tried to update doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerContact2
      summary: Removes the given contact
      operationId: DeleteResourceOwnerContact2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The company id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The contact has been deleted
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: The contact that you tried to remove doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
        '400':
          description: 'Request is bad, You can''t delete a contact that is bound to a user'
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts2/me:
    get:
      tags:
        - ResourceOwnerContact2
      summary: Get the contact representing myself
      operationId: GetResourceOwnerContactMe2
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The contact is returned
          schema:
            $ref: '#/definitions/Contact2DetailModel'
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: Contact does not exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts2/me/image:
    get:
      tags:
        - ResourceOwnerContact2
      summary: Get contact profile image
      description: 'This will get the contact profile image, image data is returned in the response content'
      operationId: GetImage
      parameters:
        - in: query
          name: imageType
          description: enum ApiImageType
          type: integer
          format: int32
          enum:
            - 0
            - 1
      responses:
        '200':
          description: Success
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts2/me/uploadimage:
    post:
      tags:
        - ResourceOwnerContact2
      summary: Upload contact profile image
      description: This updates the contact profile image
      operationId: MeUploadImage
      consumes:
        - multipart/form-data
      parameters:
        - in: formData
          name: ContentType
          type: string
        - in: formData
          name: ContentDisposition
          type: string
        - in: formData
          name: Headers
          type: string
        - in: formData
          name: Length
          type: integer
          format: int64
        - in: formData
          name: Name
          type: string
        - in: formData
          name: FileName
          type: string
      responses:
        '200':
          description: Profile image was saved
        '500':
          description: Internal server error
        '406':
          description: Request is not properly formatted
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts2/me/removeimage:
    put:
      tags:
        - ResourceOwnerContact2
      summary: Removes the users profile image"
      description: This removes the contact profile image
      operationId: MeRemoveImage
      responses:
        '200':
          description: The profile image has been deleted
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts2/update-rfid:
    post:
      tags:
        - ResourceOwnerContact2
      operationId: UpdateRfidResourceOwnerContact2
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/Contact2UpdateRfidModel'
      responses:
        '200':
          description: Success
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts2/me/updatedefaultvehicle/{vehicleId}':
    put:
      tags:
        - ResourceOwnerContact2
      summary: Updates the default vehicle
      description: This will update the default vehicle
      operationId: MeUpdateDefaultVehicle2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The default vehicle on contact was saved
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts2/updatedefaultvehicle/{vehicleId}':
    put:
      tags:
        - ResourceOwnerContact2
      summary: Updates the default vehicle
      description: This will update the default vehicle
      operationId: UpdateResourceOwnerContactDefaultVehicle2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The default vehicle on contact was saved
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts2/customcategory:
    post:
      tags:
        - ResourceOwnerContact2
      summary: Add and remove custom categories
      operationId: ResourceOwnerContact2CustomCategory
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The contact model
          schema:
            $ref: '#/definitions/CustomCategoryPostModel'
      responses:
        '200':
          description: ''
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts2/{contactId}/customcategories/{customCategoryId}':
    get:
      tags:
        - ResourceOwnerContact2
      summary: Get a custom category
      description: ''
      operationId: GetCustomCategoryResourceOwnerContacts2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          required: true
          type: integer
          format: int32
        - in: path
          name: customCategoryId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/CustomCategoryModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts2/{contactId}/customcategories':
    get:
      tags:
        - ResourceOwnerContact2
      summary: Get a all custom categories
      description: ''
      operationId: GetCustomCategoriesResourceOwnerContacts2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/CustomCategoryModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts3:
    get:
      tags:
        - ResourceOwnerContact3
      summary: Get a list of all contacts that user is associated with
      description: Only companies that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerContacts3
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The contacts are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/Contact3Model'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerContact3
      summary: Creates a new contact
      operationId: CreateResourceOwnerContact3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The contact model
          schema:
            $ref: '#/definitions/Contact3CreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created contact
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you try to associate the contact you are not associated with'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts3/{contactId}':
    get:
      tags:
        - ResourceOwnerContact3
      summary: Get a contact by id
      description: The user only has access to companies that it is associated with
      operationId: GetResourceOwnerContact3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The contact id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The contact is returned
          schema:
            $ref: '#/definitions/Contact3DetailModel'
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: Contact does not exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerContact3
      summary: Updates the given contact id
      description: This will update the contact with the new model.
      operationId: EditResourceOwnerContact3
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The contact that should be updated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new contact model
          schema:
            $ref: '#/definitions/Contact3EditModel'
      responses:
        '200':
          description: The contact was saved
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: The contact that you tried to update doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerContact3
      summary: Removes the given contact
      operationId: DeleteResourceOwnerContact3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The company id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The contact has been deleted
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
        '400':
          description: 'Request is bad, You can''t delete a contact that is bound to a user'
        '404':
          description: The contact that you tried to remove doesn't exist
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts3/me:
    get:
      tags:
        - ResourceOwnerContact3
      summary: Get the contact representing myself
      operationId: GetResourceOwnerContactMe3
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The contact is returned
          schema:
            $ref: '#/definitions/Contact3DetailModel'
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: Contact does not exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts3/me/image:
    get:
      tags:
        - ResourceOwnerContact3
      summary: Get contact profile image
      description: 'This will get the contact profile image, image data is returned in the response content'
      operationId: GetImage3
      parameters:
        - in: query
          name: imageType
          description: enum ApiImageType
          type: integer
          format: int32
          enum:
            - 0
            - 1
      responses:
        '200':
          description: Success
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts3/me/uploadimage:
    post:
      tags:
        - ResourceOwnerContact3
      summary: Upload contact profile image
      description: This updates the contact profile image
      operationId: MeUploadImage3
      consumes:
        - multipart/form-data
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: formData
          name: image
          type: file
      responses:
        '200':
          description: Profile image was saved
        '406':
          description: Request is not properly formatted
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts3/me/removeimage:
    put:
      tags:
        - ResourceOwnerContact3
      summary: Removes the users profile image
      description: This removes the contact profile image
      operationId: MeRemoveImage3
      responses:
        '200':
          description: The profile image has been deleted
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts3/me/updatedefaultvehicle/{vehicleId}':
    put:
      tags:
        - ResourceOwnerContact3
      summary: Updates the default vehicle
      description: This will update the default vehicle
      operationId: MeUpdateDefaultVehicle3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The default vehicle on contact was saved
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts3/updatedefaultvehicle/{vehicleId}':
    put:
      tags:
        - ResourceOwnerContact3
      summary: Updates the default vehicle
      description: This will update the default vehicle
      operationId: UpdateResourceOwnerContactDefaultVehicle3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The default vehicle on contact was saved
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts3/customcategory:
    post:
      tags:
        - ResourceOwnerContact3
      summary: Add and remove custom categories
      operationId: ResourceOwnerContact3CustomCategory
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The contact model
          schema:
            $ref: '#/definitions/CustomCategoryPostModel'
      responses:
        '200':
          description: ''
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts3/{contactId}/customcategories/{customCategoryId}':
    get:
      tags:
        - ResourceOwnerContact3
      summary: Get a custom category
      description: ''
      operationId: GetCustomCategoryResourceOwnerContacts3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          required: true
          type: integer
          format: int32
        - in: path
          name: customCategoryId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/CustomCategoryModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contacts3/{contactId}/customcategories':
    get:
      tags:
        - ResourceOwnerContact3
      summary: Get a all custom categories
      description: ''
      operationId: GetCustomCategoriesResourceOwnerContacts3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/CustomCategoryModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contacts3/getwebsocketauthenticationtoken:
    get:
      tags:
        - ResourceOwnerContact3
      summary: "Get an encrypted token to be used for header authentication to Web Socket API. The response\r\nwill also contain for how long the token is valid."
      operationId: GetWebSocketAuthenticationToken
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/ContactWebSocketAuthenticationTokenModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contactsetting/{contactId}':
    get:
      tags:
        - ResourceOwnerContactSetting
      summary: Get a list of all settings available for a contact
      operationId: contactsetting_GetSettingList
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactId
          description: The contact id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The contacts are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ContactSettingModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerContactSetting
      summary: Edit a setting for the user
      operationId: contactsetting_EditSetting
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: contactId
          description: The contact id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The setting to edit and its new value (null = remove)
          schema:
            $ref: '#/definitions/ContactSettingModelPUT'
      responses:
        '200':
          description: The setting was saved
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the contact'
      security:
        - oauth2: [ ]
  /v1/resourceowner/contactsetting/settingkeylist:
    get:
      tags:
        - ResourceOwnerContactSetting
      summary: Get a list of all settings available to set on a contact
      operationId: contactsetting_GetSettingKeyList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The contacts are returned
          schema:
            type: array
            items:
              type: string
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/contactvehicle:
    get:
      tags:
        - ResourceOwnerContactVehicle
      summary: Get all vehicles that the logged in user has access to
      description: Only vehicles that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerContactVehicles
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The vehicelse are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ContactVehicleDetailModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerContactVehicle
      summary: Creates a new vehicle contact and associates it with user
      operationId: CreateResourceOwnerContactVehicle
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The vehicle contact model
          schema:
            $ref: '#/definitions/ContactVehicleCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created vehicle contact
        '403':
          description: 'Request is forbidden, this could occur if you try to associate to companies you are not associated with'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contactvehicle/{vehicleId}':
    get:
      tags:
        - ResourceOwnerContactVehicle
      summary: Get contacts by vehicle id
      description: The user only has access to contacts that it is associated with through the company
      operationId: GetResourceOwnerContactVehicleContactsBasedOnVehicleId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicles are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ContactModel'
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this vehicle'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: The vehicle that you tried to update doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contactvehicle/{contactVehicleIdToEdit}':
    put:
      tags:
        - ResourceOwnerContactVehicle
      summary: Updates the given contact vehicle id
      operationId: EditResourceOwnerContactVehicle
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactVehicleIdToEdit
          description: The contact vehicle that should be updated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new contact vehicle model
          schema:
            $ref: '#/definitions/ContactVehicleEditModel'
      responses:
        '200':
          description: ContactVehicle saved
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the contact vehicle'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: The contact vehicle that you tried to update doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/contactvehicle/{contactVehicleIdToDelete}':
    delete:
      tags:
        - ResourceOwnerContactVehicle
      summary: Removes the given vehicle contact
      description: This will delete the given vehicle contact.
      operationId: DeleteResourceOwnerContactVehicle
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: contactVehicleIdToDelete
          description: The vehicle contact id to remove
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle contact has been deleted
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the vehicle contact'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: The vehicle contact that you tried to remove doesn't exist
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/content/upload:
    post:
      tags:
        - ResourceOwnerContent
      summary: Upload binary file
      description: Upload attachment image and returns url
      operationId: ResourceOwnerContentController_Upload
      consumes:
        - multipart/form-data
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: formData
          name: ContentType
          type: string
        - in: formData
          name: ContentDisposition
          type: string
        - in: formData
          name: Headers
          type: string
        - in: formData
          name: Length
          type: integer
          format: int64
        - in: formData
          name: Name
          type: string
        - in: formData
          name: FileName
          type: string
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/ContentUploadResponseModel'
        '400':
          description: Missing or invalid data
          schema:
            $ref: '#/definitions/ProblemDetails'
        '406':
          description: Request is not properly formatted
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
        '201':
          description: Successfully uploaded
      security:
        - oauth2: [ ]
  '/v1/resourceowner/content/download/{guid}':
    get:
      tags:
        - ResourceOwnerContent
      summary: Get a binary file content
      operationId: ResourceOwnerContentController_Get
      parameters:
        - in: path
          name: guid
          required: true
          type: string
      responses:
        '200':
          description: The binary file is returned
      security:
        - oauth2: [ ]
  /v1/resourceowner/expensereport3:
    get:
      tags:
        - ResourceOwnerExpenseReport3V2
      summary: Get a list of expense reports
      description: Only expense reports that the user has access to are accessible.
      operationId: GetResourceExpenseReport3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: tripId
          type: integer
          format: int32
        - in: query
          name: vehicleId
          type: integer
          format: int32
      responses:
        '200':
          description: The expense reports are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ExpenseReportModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerExpenseReport3V2
      summary: Create an expense reports
      description: This will create expense report
      operationId: CreateExpenseReport3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/ExpenseReportCreateModel'
      responses:
        '200':
          description: A header link containing the URL to the newly created resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereport3/{expenseReportId}':
    get:
      tags:
        - ResourceOwnerExpenseReport3V2
      summary: Get an expense reports
      description: Only expense reports that the user has access to are accessible.
      operationId: GetResourceOwnerExpenseReportId3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report is returned
          schema:
            $ref: '#/definitions/ExpenseReportModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerExpenseReport3V2
      summary: Updates the given expense report
      description: This will update the given expense report id with a new model.
      operationId: EditResourceOwnerExpenseReport3
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportId
          description: The expense report id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new expense report model
          schema:
            $ref: '#/definitions/ExpenseReportEditModel'
      responses:
        '200':
          description: The expense report was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report you tried to update can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerExpenseReport3V2
      summary: Removes the given expense report
      operationId: DeleteResourceOwnerExpenseReport3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportId
          description: The expense report id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report has been deleted
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
        '404':
          description: 'Not found, the expense report you tried to remove can''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereport3/export/{expenseReportId}':
    post:
      tags:
        - ResourceOwnerExpenseReport3V2
      summary: Export an expense report in pdf format
      description: Only expense reports that the user has access to are accessible.
      operationId: CreateExpenseReportEmailExport3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: expenseReportId
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          schema:
            $ref: '#/definitions/EmailExpenseReportModel'
      responses:
        '200':
          description: The expense report is created and sent to the email address
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/expensereport3/export:
    post:
      tags:
        - ResourceOwnerExpenseReport3V2
      summary: Export an expense report in pdf format
      description: Only expense reports that the user has access to are accessible.
      operationId: CreateExpenseReportsEmailExport35
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/EmailExpenseReportsModel'
      responses:
        '200':
          description: The expense report is created and sent to the email address
        '404':
          description: No expense reports could be found with the given parameter values and access rights
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereport3/{expenseReportId}/expenseReportItems':
    delete:
      tags:
        - ResourceOwnerExpenseReport3V2
      summary: Removes the given expense report rows
      operationId: DeleteResourceOwnerExpenseReportRows3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportId
          description: The expense report id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: All expense report rows have been deleted
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
        '404':
          description: 'Not found, the expense report you tried to remove can''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereportrow3/{expenseReportRowId}':
    get:
      tags:
        - ResourceOwnerExpenseReportRow3V2
      summary: Get expense report row
      description: Only expense report row that the user has access to are accessible.
      operationId: GetResourceExpenseReportRow3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report row is returned
          schema:
            $ref: '#/definitions/ExpenseReportRowModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerExpenseReportRow3V2
      summary: Updates the given expense report row
      description: This will update the given expense report row id with a new model.
      operationId: EditResourceOwnerExpenseReportRow3
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowId
          description: The expense report row id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new expense report row model
          schema:
            $ref: '#/definitions/ExpenseReportRowEditModel'
      responses:
        '200':
          description: The expense report row was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report row you tried to update can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerExpenseReportRow3V2
      summary: Removes the given expense report row
      operationId: DeleteResourceOwnerExpenseReportRow3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowId
          description: The expense report row id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report row has been deleted
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report row you tried to remove can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/expensereportrow3:
    post:
      tags:
        - ResourceOwnerExpenseReportRow3V2
      summary: Create an expense report row
      description: ''
      operationId: CreateExpenseReportRow3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/ExpenseReportRowCreateModel'
      responses:
        '200':
          description: A header link containing the URL to the newly created resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereportrowcontent3/{expenseReportRowContentId}':
    get:
      tags:
        - ResourceOwnerExpenseReportRowContent3V2
      summary: Get expense report row content
      description: Only expense report row content that the user has access to are accessible.
      operationId: GetResourceExpenseReportRowContent3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowContentId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report row content is returned
          schema:
            $ref: '#/definitions/ExpenseReportRowContentModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerExpenseReportRowContent3V2
      summary: Updates the given expense report row content
      description: This will update the given expense report row content id with a new model.
      operationId: EditResourceOwnerExpenseReportRowContent3
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowContentId
          description: The expense report row id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new expense report row model
          schema:
            $ref: '#/definitions/ExpenseReportRowContentEditModel'
      responses:
        '200':
          description: The expense report row content was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report row you tried to update can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerExpenseReportRowContent3V2
      summary: Removes the given expense report row content
      operationId: DeleteResourceOwnerExpenseReportRowContent3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowContentId
          description: The expense report row id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report row has been deleted
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report row you tried to remove can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
      security:
        - oauth2: [ ]
  /v1/resourceowner/expensereportrowcontent3:
    get:
      tags:
        - ResourceOwnerExpenseReportRowContent3V2
      summary: Get all expense report row content belonging to a expense report row
      description: Only expense report row content that the user has access to are accessible.
      operationId: GetResourceExpenseReportRowContentById3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: expenseReportRowId
          type: integer
          format: int32
      responses:
        '200':
          description: A list of expense report row content is returned
          schema:
            $ref: '#/definitions/ExpenseReportRowContentModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerExpenseReportRowContent3V2
      summary: Create an expense report row
      description: ''
      operationId: CreateExpenseReportRowContent3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/ExpenseReportRowContentCreateModel'
      responses:
        '200':
          description: A header link containing the URL to the newly created resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereportrowcontent/{expenseReportRowContentId}':
    get:
      tags:
        - ResourceOwnerExpenseReportRowContentV2
      summary: Get expense report row content
      description: Only expense report row content that the user has access to are accessible.
      operationId: GetResourceExpenseReportRowContent
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowContentId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report row content is returned
          schema:
            $ref: '#/definitions/ExpenseReportRowContentModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerExpenseReportRowContentV2
      summary: Updates the given expense report row content
      description: This will update the given expense report row content id with a new model.
      operationId: EditResourceOwnerExpenseReportRowContent
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowContentId
          description: The expense report row id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new expense report row model
          schema:
            $ref: '#/definitions/ExpenseReportRowContentEditModel'
      responses:
        '200':
          description: The expense report row content was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report row you tried to update can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerExpenseReportRowContentV2
      summary: Removes the given expense report row content
      operationId: DeleteResourceOwnerExpenseReportRowContent
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowContentId
          description: The expense report row id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report row has been deleted
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report row you tried to remove can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
      security:
        - oauth2: [ ]
  /v1/resourceowner/expensereportrowcontent:
    get:
      tags:
        - ResourceOwnerExpenseReportRowContentV2
      summary: Get all expense report row content belonging to a expense report row
      description: Only expense report row content that the user has access to are accessible.
      operationId: GetResourceExpenseReportRowContentById
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: expenseReportRowId
          type: integer
          format: int32
      responses:
        '200':
          description: A list of expense report row content is returned
          schema:
            $ref: '#/definitions/ExpenseReportRowContentModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerExpenseReportRowContentV2
      summary: Create an expense report row
      description: ''
      operationId: CreateExpenseReportRowContent
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/ExpenseReportRowContentCreateModel'
      responses:
        '200':
          description: A header link containing the URL to the newly created resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereportrow/{expenseReportRowId}':
    get:
      tags:
        - ResourceOwnerExpenseReportRowV2
      summary: Get expense report row
      description: Only expense report row that the user has access to are accessible.
      operationId: GetResourceExpenseReportRow
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report row is returned
          schema:
            $ref: '#/definitions/ExpenseReportRowModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerExpenseReportRowV2
      summary: Updates the given expense report row
      description: This will update the given expense report row id with a new model.
      operationId: EditResourceOwnerExpenseReportRow
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowId
          description: The expense report row id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new expense report row model
          schema:
            $ref: '#/definitions/ExpenseReportRowEditModel'
      responses:
        '200':
          description: The expense report row was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report row you tried to update can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerExpenseReportRowV2
      summary: Removes the given expense report row
      operationId: DeleteResourceOwnerExpenseReportRow
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportRowId
          description: The expense report row id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report row has been deleted
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report row you tried to remove can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/expensereportrow:
    post:
      tags:
        - ResourceOwnerExpenseReportRowV2
      summary: Create an expense report row
      description: ''
      operationId: CreateExpenseReportRow
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/ExpenseReportRowCreateModel'
      responses:
        '200':
          description: A header link containing the URL to the newly created resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/expensereport:
    get:
      tags:
        - ResourceOwnerExpenseReportV2
      summary: Get a list of expense reports
      description: Only expense reports that the user has access to are accessible.
      operationId: GetResourceExpenseReport
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: tripId
          type: integer
          format: int32
        - in: query
          name: vehicleId
          type: integer
          format: int32
      responses:
        '200':
          description: The expense reports are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ExpenseReportModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerExpenseReportV2
      summary: Create an expense reports
      description: This will create expense report
      operationId: CreateExpenseReport
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/ExpenseReportCreateModel'
      responses:
        '200':
          description: A header link containing the URL to the newly created resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereport/{expenseReportId}':
    get:
      tags:
        - ResourceOwnerExpenseReportV2
      summary: Get an expense reports
      description: Only expense reports that the user has access to are accessible.
      operationId: GetResourceOwnerExpenseReportId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: expenseReportId
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report is returned
          schema:
            $ref: '#/definitions/ExpenseReportModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerExpenseReportV2
      summary: Updates the given expense report
      description: This will update the given expense report id with a new model.
      operationId: EditResourceOwnerExpenseReport
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportId
          description: The expense report id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new expense report model
          schema:
            $ref: '#/definitions/ExpenseReportEditModel'
      responses:
        '200':
          description: The expense report was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report you tried to update can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerExpenseReportV2
      summary: Removes the given expense report
      operationId: DeleteResourceOwnerExpenseReport
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportId
          description: The expense report id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The expense report has been deleted
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report you tried to remove can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereport/export/{expenseReportId}':
    post:
      tags:
        - ResourceOwnerExpenseReportV2
      summary: Export an expense report in pdf format
      description: Only expense reports that the user has access to are accessible.
      operationId: CreateExpenseReportEmailExport
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: expenseReportId
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          schema:
            $ref: '#/definitions/EmailExpenseReportModel'
      responses:
        '200':
          description: The expense report is created and sent to the email address
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/expensereport/export:
    post:
      tags:
        - ResourceOwnerExpenseReportV2
      summary: Export an expense report in pdf format
      description: Only expense reports that the user has access to are accessible.
      operationId: CreateExpenseReportsEmailExport
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/EmailExpenseReportsModel'
      responses:
        '200':
          description: The expense report is created and sent to the email address
        '404':
          description: No expense reports could be found with the given parameter values and access rights
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/expensereport/{expenseReportId}/expenseReportItems':
    delete:
      tags:
        - ResourceOwnerExpenseReportV2
      summary: Removes the given expense report rows
      operationId: DeleteResourceOwnerExpenseReportRows
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: expenseReportId
          description: The expense report id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: All expense report rows have been deleted
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the expense report you tried to remove can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/geofence:
    get:
      tags:
        - ResourceOwnerGeofence
      summary: Get a list of geofencese user is associated with
      description: Only geofences that the user has access to are accessible.
      operationId: GetResourceOwnerGeofences
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The geofences are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/GeofenceModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerGeofence
      summary: Creates a new geofence
      description: This will create a new geofence and associate it with a vehicle.
      operationId: CreateResourceOwnerGeofence
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The geofence model
          schema:
            $ref: '#/definitions/GeofenceCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created geofence
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/geofence/{geofenceId}':
    get:
      tags:
        - ResourceOwnerGeofence
      summary: Get geofence
      description: Only geofences that the user has access to are accessible.
      operationId: GetResourceOwnerGeofence
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: geofenceId
          description: The geofence id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The geofences are returned
          schema:
            $ref: '#/definitions/GeofenceModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this geofence'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerGeofence
      summary: Updates the given geofence with new model
      description: This will update the given geofence id with a new model.
      operationId: EditResourceOwnerGeofence
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: geofenceId
          description: The geofence id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new geofence model
          schema:
            $ref: '#/definitions/GeofenceEditModel'
      responses:
        '200':
          description: The geofence was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the geofence you tried to update can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerGeofence
      summary: Removes the given geofence
      operationId: DeleteResourceOwnerGeofence
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: geofenceId
          description: The geofence id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The geofence has been deleted
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the geofence you tried to remove can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/geofence2:
    get:
      tags:
        - ResourceOwnerGeofence2
      summary: Get a list of geofencese user is associated with
      description: Only geofences that the user has access to are accessible.
      operationId: GetResourceOwnerGeofences2
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The geofences are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/Geofence2Model'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerGeofence2
      summary: Creates a new geofence
      description: This will create a new geofence and associate it with  vehicles.
      operationId: CreateResourceOwnerGeofence2
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The geofence model
          schema:
            $ref: '#/definitions/Geofence2CreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created geofence
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/geofence2/{geofenceId}':
    get:
      tags:
        - ResourceOwnerGeofence2
      summary: Get geofence
      description: Only geofences that the user has access to are accessible.
      operationId: GetResourceOwnerGeofence2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: geofenceId
          description: The geofence id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The geofences are returned
          schema:
            $ref: '#/definitions/Geofence2Model'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this geofence'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerGeofence2
      summary: Updates the given geofence with new model
      description: This will update the given geofence id with a new model.
      operationId: EditResourceOwnerGeofence2
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: geofenceId
          description: The geofence id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new geofence model
          schema:
            $ref: '#/definitions/Geofence2EditModel'
      responses:
        '200':
          description: The geofence was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the geofence you tried to update can''t be found'
      security:
        - oauth2: [ ]
  /v1/resourceowner/geofence3:
    get:
      tags:
        - ResourceOwnerGeofence3
      summary: Get a list of geofencese organization is associated with
      description: Only geofences that the user has access to are accessible.
      operationId: GetResourceOwnerGeofences3
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The geofences are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/GeofenceModel3'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerGeofence3
      summary: Creates a new geofence
      description: This will create a new geofence and associate it with a vehicle.
      operationId: CreateResourceOwnerGeofence3
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The geofence model
          schema:
            $ref: '#/definitions/Geofence3CreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created geofence
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/geofence3/{geofenceId}':
    get:
      tags:
        - ResourceOwnerGeofence3
      summary: Get geofence
      description: Only geofences that the user has access to are accessible.
      operationId: GetResourceOwnerGeofence3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: geofenceId
          description: The geofence id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The geofences are returned
          schema:
            $ref: '#/definitions/GeofenceModel3'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this geofence'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerGeofence3
      summary: Updates the given geofence with new model
      description: This will update the given geofence id with a new model.
      operationId: EditResourceOwnerGeofence3
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: geofenceId
          description: The geofence id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new geofence model
          schema:
            $ref: '#/definitions/Geofence3EditModel'
      responses:
        '200':
          description: The geofence was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the geofence you tried to update can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerGeofence3
      summary: Removes the given geofence
      operationId: DeleteResourceOwnerGeofence3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: geofenceId
          description: The geofence id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The geofence has been deleted
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '404':
          description: 'Not found, the geofence you tried to remove can''t be found'
          schema:
            $ref: '#/definitions/ProblemDetails'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/hoursofservice:
    delete:
      tags:
        - ResourceOwnerHoursOfService
      operationId: HoursOfServiceDeleteCycles
      responses:
        '200':
          description: Success
      security:
        - oauth2: [ ]
  /v1/resourceowner/hoursofservice/cycles:
    get:
      tags:
        - ResourceOwnerHoursOfService
      summary: "Parse Hours Of Service duty statuses to cycles and work shiftsS \r\nor ended in the date interval"
      operationId: HoursOfServiceGetCycles
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: fromDate
          description: Query on from date
          type: string
          format: date-time
        - in: query
          name: toDate
          description: Query on to date
          type: string
          format: date-time
      responses:
        '200':
          description: 'The settings is returned, null if no settings exist'
          schema:
            $ref: '#/definitions/HoursOfServiceCycles'
      security:
        - oauth2: [ ]
  /v1/resourceowner/hoursofservice/statuses:
    get:
      tags:
        - ResourceOwnerHoursOfService
      summary: "Get the Hours of Service statuses that started in the date interval \r\nor ended in the date interval"
      operationId: HoursOfServiceGetStatuses
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: fromDate
          description: Query on from date
          type: string
          format: date-time
        - in: query
          name: toDate
          description: Query on to date
          type: string
          format: date-time
        - in: query
          name: hoursOfServiceLogId
          description: Query on id
          type: integer
          format: int32
        - in: query
          name: contactId
          description: Get statuses for a contact
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: Get statuses for a vehicle
          type: integer
          format: int32
        - in: query
          name: notes
          description: Query on notes
          type: string
      responses:
        '200':
          description: 'The settings is returned, null if no settings exist'
          schema:
            $ref: '#/definitions/HoursOfServiceDutyStatusesModel'
      security:
        - oauth2: [ ]
  /v1/resourceowner/hoursofservice/synch:
    get:
      tags:
        - ResourceOwnerHoursOfService
      summary: 'Get the Hours of Service statuses that have beend added, updated or deleted'
      operationId: HoursOfServiceGetSynch
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: lastSynchDate
          description: 'Query on status that have been created, modified or deleted'
          type: string
          format: date-time
        - in: query
          name: contactId
          description: Get statuses for a contact
          type: integer
          format: int32
      responses:
        '200':
          description: 'The settings is returned, null if no settings exist'
          schema:
            $ref: '#/definitions/HoursOfServiceStatusSynchModel'
      security:
        - oauth2: [ ]
  /v1/resourceowner/hoursofservice/status:
    post:
      tags:
        - ResourceOwnerHoursOfService
      summary: Creates Hours Of Service duty status entry
      operationId: HoursOfSerivceCreateStatus
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The settings model
          schema:
            $ref: '#/definitions/HoursOfServiceStatusPostModel'
      responses:
        '200':
          description: A link in the header is returned to the newly resource
      security:
        - oauth2: [ ]
  /v1/resourceowner/hoursofservice/settings:
    get:
      tags:
        - ResourceOwnerHoursOfService
      summary: Get the current user Hours of Service settings
      operationId: HoursOfServiceGetSettings
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: contactHoursOfServiceSettingsId
          description: ''
          type: integer
          format: int32
      responses:
        '200':
          description: 'The settings is returned, null if no settings exist'
          schema:
            $ref: '#/definitions/HoursOfServiceSettingsModel'
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerHoursOfService
      summary: Creates Hours Of Service Settings
      operationId: HoursOfSerivceCreateSettings
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The settings model
          schema:
            $ref: '#/definitions/HoursOfServiceSettingsCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly resource
      security:
        - oauth2: [ ]
  /v1/resourceowner/hoursofservice/export:
    post:
      tags:
        - ResourceOwnerHoursOfService
      summary: Export Hours Of Service Log
      operationId: HoursOfSerivceExport
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The export model
          schema:
            $ref: '#/definitions/HoursOfServiceExportModel'
      responses:
        '200':
          description: A mail is sent to the email address
      security:
        - oauth2: [ ]
  /v1/resourceowner/hoursofservice/exportpdf:
    post:
      tags:
        - ResourceOwnerHoursOfService
      summary: Export Hours Of Service Log as a PDF
      operationId: HoursOfSerivceExportExportPDF
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The export model
          schema:
            $ref: '#/definitions/HoursOfServiceExportModel'
      responses:
        '200':
          description: A mail is sent to the email address
      security:
        - oauth2: [ ]
  /v1/resourceowner/hoursofserviceviolations:
    get:
      tags:
        - ResourceOwnerHoursOfServiceViolations
      summary: Get the Hours of Service Violations
      operationId: HoursOfServiceGetViolations
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: fromDate
          description: Query on from date
          type: string
          format: date-time
        - in: query
          name: toDate
          description: Query on to date
          type: string
          format: date-time
        - in: query
          name: hourOfServiceViolationId
          description: Query on to id
          type: integer
          format: int32
        - in: query
          name: contactId
          description: Get statuses for a contact
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: Get statuses for a vehicle
          type: integer
          format: int32
        - in: query
          name: notes
          description: Query on notes
          type: string
      responses:
        '200':
          description: 'The settings is returned, null if no settings exist'
          schema:
            type: array
            items:
              $ref: '#/definitions/HoursOfServiceDutyStatusModel'
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerHoursOfServiceViolations
      summary: Creates Hours Of Service Violation
      operationId: HoursOfSerivceCreateViolation
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The settings model
          schema:
            $ref: '#/definitions/HoursOfServiceViolationCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly resource
      security:
        - oauth2: [ ]
  /v1/resourceowner/imeiconfigs:
    get:
      tags:
        - ResourceOwnerIMEIConfig
      summary: Get all imeis(devices) that the logged in user has access to
      description: Only vehicles that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerImeiConfigs
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: includeDeviceType
          type: boolean
          default: false
      responses:
        '200':
          description: The Imeis are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/IMEIConfigModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerIMEIConfig
      summary: Creates a new IMEIConfig and associates it with vehicle
      operationId: CreateResourceOwnerIMEIConfig
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The IMEI Config model
          schema:
            $ref: '#/definitions/IMEIConfigCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created ImeiConfig
        '403':
          description: 'Request is forbidden, this could occur if you try to add an IMEI that already exists or if it is not available in our systems. In addition, if the serialnumber to the IMEI device is incorrect'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/imeiconfigs/{imeiConfigId}':
    get:
      tags:
        - ResourceOwnerIMEIConfig
      summary: Get IMEIconfig by IMEIconfigId
      description: The user only has access to IMEIconfig that it is associated with through the companies or directly thorugh vehicles
      operationId: GetResourceOwnerIMEIConfigsBasedOnVehicleId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: imeiConfigId
          description: The IMEIconfig id
          required: true
          type: integer
          format: int32
        - in: query
          name: includeDeviceType
          description: ''
          type: boolean
          default: false
      responses:
        '200':
          description: The Imeis are returned
          schema:
            $ref: '#/definitions/IMEIConfigDetailModel'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this IMEIconfig'
        '404':
          description: The IMEIconfig that you tried to get doesn't exist
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerIMEIConfig
      summary: Updates the given IMEIConfig id
      operationId: EditResourceOwnerIMEIConfig
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: imeiConfigId
          description: The IMEIConfig id that should be updated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The IMEIConfig model
          schema:
            $ref: '#/definitions/IMEIConfigEditModel'
      responses:
        '200':
          description: The IMEIConfig was saved
        '500':
          description: Internal server error
        '404':
          description: The IMEIConfig that you tried to update doesn't exist
        '403':
          description: 'Request is forbidden, this could occur if you try to add an IMEI that already exists or if it is not available in our systems. In addition, if the serialnumber to the IMEI device is incorrect'
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerIMEIConfig
      summary: Removes the given IMEI config
      description: This will delete the given IMEIConfig.
      operationId: DeleteResourceOwnerIMEIConfig
      parameters:
        - in: path
          name: imeiConfigId
          description: The imeiConfigId id to remove
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The IMEI config has been deleted
        '500':
          description: Internal server error
        '404':
          description: The IMEIConfig that you tried to remove doesn't exist
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the IMEIConfig'
      security:
        - oauth2: [ ]
  /v1/resourceowner/imeiconfigs3:
    get:
      tags:
        - ResourceOwnerIMEIConfig3
      summary: Get all imeis(devices) that the logged in user has access to
      description: Only vehicles that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerImeiConfigs3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: includeDeviceType
          type: boolean
          default: false
      responses:
        '200':
          description: The Imeis are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/IMEIConfig3Model'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerIMEIConfig3
      summary: Creates a new IMEIConfig and associates it with vehicle
      operationId: CreateResourceOwnerIMEIConfig3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The IMEI Config model
          schema:
            $ref: '#/definitions/IMEIConfigCreate3Model'
      responses:
        '200':
          description: A link in the header is returned to the newly created ImeiConfig
        '403':
          description: 'Request is forbidden, this could occur if you try to add an IMEI that already exists or if it is not available in our systems. In addition, if the serialnumber to the IMEI device is incorrect'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/imeiconfigs3/{imeiConfigId}':
    get:
      tags:
        - ResourceOwnerIMEIConfig3
      summary: Get IMEIconfig by IMEIconfigId
      description: The user only has access to IMEIconfig that it is associated with through the companies or directly thorugh vehicles
      operationId: GetResourceOwnerIMEIConfigsBasedOnVehicleId3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: imeiConfigId
          description: The IMEIconfig id
          required: true
          type: integer
          format: int32
        - in: query
          name: includeDeviceType
          description: ''
          type: boolean
          default: false
      responses:
        '200':
          description: The Imeis are returned
          schema:
            $ref: '#/definitions/IMEIConfigDetail3Model'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this IMEIconfig'
        '404':
          description: The IMEIconfig that you tried to get doesn't exist
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerIMEIConfig3
      summary: Updates the given IMEIConfig id
      operationId: EditResourceOwnerIMEIConfig3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: imeiConfigId
          description: The IMEIConfig id that should be updated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The IMEIConfig model
          schema:
            $ref: '#/definitions/IMEIConfigEdit3Model'
      responses:
        '200':
          description: The IMEIConfig was saved
        '500':
          description: Internal server error
        '404':
          description: The IMEIConfig that you tried to update doesn't exist
        '403':
          description: 'Request is forbidden, this could occur if you try to add an IMEI that already exists or if it is not available in our systems. In addition, if the serialnumber to the IMEI device is incorrect'
      security:
        - oauth2: [ ]
  /v1/resourceowner/imeievents:
    get:
      tags:
        - ResourceOwnerIMEIEvent
      summary: Get a list of all IMEIEvents that user is associated with
      description: Only IMEIEvents that the user is associated with will be returned by this operation.
      operationId: GetResourceOwnerImeiEvents
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The IMEIEvents are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/IMEIEventModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/imeievents/mil/{imeiEventId}':
    get:
      tags:
        - ResourceOwnerIMEIEvent
      summary: Gets MILIMEIevent for given imeiEventId
      description: The user only has access to IMEIEvents that it is associated with
      operationId: GetResourceOwnerMilEvent
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: imeiEventId
          description: The id to IMEIevent
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The IMEIEventMILs are returned
          schema:
            $ref: '#/definitions/IMEIEventMILModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, you are using the wrong URI to retrieve this EMEIEvent'
        '403':
          description: '>Request is forbidden, this could occur if you are not associated with the IMEIEvent'
        '404':
          description: The IMEIEvent that you tried to get doesn't exist
      security:
        - oauth2: [ ]
  '/v1/resourceowner/imeievents/dtc/{imeiEventId}':
    get:
      tags:
        - ResourceOwnerIMEIEvent
      summary: Gets DTCIMEIevent for given imeiEventId
      description: The user only has access to IMEIEvents that it is associated with
      operationId: GetResourceOwnerDTCEvent
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: imeiEventId
          description: The id to IMEIevent
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The DTCIMEIevents are returned
          schema:
            $ref: '#/definitions/IMEIEventDTCModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, you are using the wrong URI to retrieve this EMEIEvent'
        '403':
          description: '>Request is forbidden, this could occur if you are not associated with the IMEIEvent'
        '404':
          description: The IMEIEvent that you tried to get doesn't exist
      security:
        - oauth2: [ ]
  '/v1/resourceowner/imeievents/status/{imeiEventId}':
    get:
      tags:
        - ResourceOwnerIMEIEvent
      summary: Gets StatusIMEIevent for given imeiEventId
      description: The user only has access to IMEIEvents that it is associated with
      operationId: GetResourceOwnerStatusEvent
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: imeiEventId
          description: The id to IMEIevent
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The StatusIMEIevents are returned
          schema:
            $ref: '#/definitions/IMEIEventStatusModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, you are using the wrong URI to retrieve this EMEIEvent'
        '403':
          description: '>Request is forbidden, this could occur if you are not associated with the IMEIEvent'
        '404':
          description: The IMEIEvent that you tried to get doesn't exist
      security:
        - oauth2: [ ]
  /v1/resourceowner/integration:
    get:
      tags:
        - ResourceOwnerIntegration
      summary: Integration Configuration
      description: ''
      operationId: ResourceOwnerIntegrationController_GetIntegrationConfiguration
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: Successful retrieval of integration settings
          schema:
            $ref: '#/definitions/IntegrationConfigurationModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerIntegration
      summary: Update integration configuration
      description: If you want to update one integration but not the rest you can exclude them from the model.
      operationId: ResourceOwnerIntegrationController_UpdateIntegrationSettings
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/IntegrationConfigurationModel'
      responses:
        '200':
          description: Integration configuration successfully retrieved
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '403':
          description: User have no organization or is not authorized to this organization
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/integration/alphabet:
    get:
      tags:
        - ResourceOwnerIntegration
      summary: Information
      description: Run this once before running Alphabet login. The flag LoginRequired will say if login to Alphabet is required to run (e.g. user has changed password in Alphabet) then this method should be run again after login.
      operationId: ResourceOwnerIntegrationController_GetAlphabetInformation
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: List with active vehicles and available month to send in mileagelog report for is returned
          schema:
            $ref: '#/definitions/AlphabetInformationModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/integration/alphabet/login:
    post:
      tags:
        - ResourceOwnerIntegration
      summary: Alphabet login
      description: This is only needed if Alphabet information returned the required login flag set to true. User credentials are stored for future requests.
      operationId: ResourceOwnerIntegrationController_AlphabetLogin
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: username
          type: string
        - in: query
          name: password
          type: string
      responses:
        '200':
          description: Login succeeded
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '400':
          description: 'Alphabet returned an error, this will usually be caused by entering wrong username or password'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/integration/alphabet/mileagelog/{vehicleId}/{year}/{month}':
    get:
      tags:
        - ResourceOwnerIntegration
      summary: Get Alphabet mileage log
      description: Run this with vehicle id and period returned from Alphabet information. Data model contains odometer values and business km from the first day to the last day of sent in month.
      operationId: ResourceOwnerIntegrationController_GetAlphabetMileageLog
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: path
          name: year
          description: Year of from date in period
          required: true
          type: integer
          format: int32
        - in: path
          name: month
          description: Month of from date in period
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Mileage log data for previewing purpose is returned
          schema:
            $ref: '#/definitions/AlphabetMileageLogModel'
        '400':
          description: Invalid parameter values
        '403':
          description: You are not authorized to this vehicle
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerIntegration
      summary: Send Alphabet mileage log
      description: GET must be run before POST
      operationId: ResourceOwnerIntegrationController_SendAlphabetMileageLog
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: path
          name: year
          description: Year of from date in period
          required: true
          type: integer
          format: int32
        - in: path
          name: month
          description: Month of from date in period
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Model received from GET
          schema:
            $ref: '#/definitions/AlphabetMileageLogModel'
      responses:
        '200':
          description: Mileage log report was sent
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '400':
          description: Invalid parameter values
        '403':
          description: You are not authorized to this vehicle
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/integration/autoplan:
    get:
      tags:
        - ResourceOwnerIntegration
      summary: "AutoPlan Information (Legacy)\r\nThis endpoint uses the old AutoPlan API which requires username/password authentication. Please migrate to the new /autoplan/v2/information endpoint which uses certificate-based authentication."
      description: Run this once before running AutoPlan login. The flag LoginRequired will say if login to AutoPlan is required to run (e.g. user has changed password in AutoPlan) then this method should be run again after login.
      operationId: ResourceOwnerIntegrationController_GetAutoplanInformation
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: List with active vehicles and available month to send in mileagelog report for is returned
          schema:
            $ref: '#/definitions/AutoplanInformationModel'
        '500':
          description: Internal server error
      deprecated: true
      security:
        - oauth2: [ ]
  /v1/resourceowner/integration/autoplan/v2/information:
    post:
      tags:
        - ResourceOwnerIntegration
      summary: Get AutoPlan V2 Information
      description: Personal identity number must be provided in the request body.
      operationId: ResourceOwnerIntegrationController_GetAutoPlanV2Information
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: Request containing personal identity number (12 digits in format YYYYMMDDNNNN)
          schema:
            $ref: '#/definitions/AutoPlanV2InformationRequestModel'
      responses:
        '200':
          description: List of vehicles with available periods for driving journal and odometer readings
          schema:
            $ref: '#/definitions/AutoPlanV2InformationModel'
        '400':
          description: Invalid personal identity number
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/integration/autoplan/login:
    post:
      tags:
        - ResourceOwnerIntegration
      summary: "AutoPlan login (Legacy)\r\nThis endpoint uses the old AutoPlan API which requires username/password authentication."
      description: This is only needed if AutoPlan wizard returned the required login flag set to true. User credentials are stored for future requests.
      operationId: ResourceOwnerIntegrationController_AutoplanLogin
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: username
          type: string
        - in: query
          name: password
          type: string
      responses:
        '200':
          description: Login succeeded
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '400':
          description: 'Autoplan returned an error, this will usually be caused by entering wrong username or password'
        '500':
          description: Internal server error
      deprecated: true
      security:
        - oauth2: [ ]
  '/v1/resourceowner/integration/autoplan/mileagelog/{vehicleId}/{year}/{month}':
    get:
      tags:
        - ResourceOwnerIntegration
      summary: Get AutoPlan mileage log (Legacy)
      description: Run this with vehicle id and period returned from Autoplan wizard. Data model contains odometer values and business km from the first day to the last day of sent in month.
      operationId: ResourceOwnerIntegrationController_GetAutoplanMileageLog
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: path
          name: year
          description: Year of from date in period
          required: true
          type: integer
          format: int32
        - in: path
          name: month
          description: Month of from date in period
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Mileage log data for previewing purpose is returned
          schema:
            $ref: '#/definitions/AutoplanMileageLogModel'
        '400':
          description: Invalid parameter values
        '403':
          description: You are not authorized to this vehicle
        '500':
          description: Internal server error
      deprecated: true
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerIntegration
      summary: Send AutoPlan mileage log (Legacy)
      description: GET must be run before POST
      operationId: ResourceOwnerIntegrationController_SendAutoplanMileageLog
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: path
          name: year
          description: Year of from date in period
          required: true
          type: integer
          format: int32
        - in: path
          name: month
          description: Month of from date in period
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Model received from GET
          schema:
            $ref: '#/definitions/AutoplanMileageLogModel'
      responses:
        '200':
          description: Mileage log report was sent
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '400':
          description: Invalid parameter values
        '403':
          description: You are not authorized to this vehicle
        '500':
          description: Internal server error
      deprecated: true
      security:
        - oauth2: [ ]
  '/v1/resourceowner/integration/autoplan/v2/drivingjournal/{vehicleId}/{year}/{month}':
    get:
      tags:
        - ResourceOwnerIntegration
      summary: Get AutoPlan V2 Driving Journal Preview
      description: Get driving journal data for preview before sending. Contains odometer values and business km for the specified period. This is the NEW API endpoint that replaces GET /autoplan/mileagelog (legacy).
      operationId: ResourceOwnerIntegrationController_GetAutoPlanV2DrivingJournal
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: path
          name: year
          description: Year of the period
          required: true
          type: integer
          format: int32
        - in: path
          name: month
          description: Month of the period
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Driving journal data for preview
          schema:
            $ref: '#/definitions/AutoPlanV2DrivingJournalModel'
        '400':
          description: Invalid parameters
        '403':
          description: You are not authorized to this vehicle
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerIntegration
      summary: Send AutoPlan V2 Driving Journal
      description: 'Send driving journal to AutoPlan V2 API. GET endpoint must be called first to retrieve the data to send. Note: Incoming odometer is automatically calculated from previous period''s outgoing value per API specification. This is the NEW API endpoint that replaces POST /autoplan/mileagelog (legacy).'
      operationId: ResourceOwnerIntegrationController_SendAutoPlanV2DrivingJournal
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: path
          name: year
          description: Year of the period
          required: true
          type: integer
          format: int32
        - in: path
          name: month
          description: Month of the period
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Request containing Personal identity number (12 digits YYYYMMDDNNNN format) and Driving journal data from GET endpoint
          schema:
            $ref: '#/definitions/AutoPlanV2SendDrivingJournalRequestModel'
      responses:
        '200':
          description: Driving journal successfully sent
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '400':
          description: Invalid parameters or data mismatch
        '401':
          description: Not all trips in period are approved
        '403':
          description: You are not authorized to this vehicle
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/integration/bilreda:
    get:
      tags:
        - ResourceOwnerIntegration
      summary: Bilreda Information
      description: Currently in the period list the month previous to today will always have the selected flag set to true.
      operationId: ResourceOwnerIntegrationController_GetBilredaInformation
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: Active vehicle with a list of available months to send in mileagelog report for is returned
          schema:
            $ref: '#/definitions/BilredaInformationModel'
        '400':
          description: User may not have activated any Bilreda integration
        '403':
          description: You are not authorized to this vehicle
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/integration/bilreda/mileagelog/{vehicleId}/{year}/{month}':
    get:
      tags:
        - ResourceOwnerIntegration
      summary: Get Bilreda mileage log
      description: Run this with vehicle id and period returned from Bilreda wizard. Data model contains odometer values and business km from the first day to the last day of sent in month.
      operationId: ResourceOwnerIntegrationController_GetBilredaMileageLog
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: path
          name: year
          description: Year of from date in period
          required: true
          type: integer
          format: int32
        - in: path
          name: month
          description: Month of from date in period
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Mileage log data for previewing purpose is returned
          schema:
            $ref: '#/definitions/BilredaMileageLogModel'
        '400':
          description: Invalid parameter values
        '403':
          description: You are not authorized to this vehicle
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerIntegration
      summary: Send Bilreda mileage log
      description: GET must be run before POST
      operationId: ResourceOwnerIntegrationController_SendBilredaMileageLog
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: path
          name: year
          description: Year of from date in period
          required: true
          type: integer
          format: int32
        - in: path
          name: month
          description: Month of from date in period
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Model received from GET
          schema:
            $ref: '#/definitions/BilredaMileageLogModel'
      responses:
        '200':
          description: Mileage log report was sent
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '400':
          description: Invalid parameter values
        '403':
          description: You are not authorized to this vehicle
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/lead:
    post:
      tags:
        - ResourceOwnerLead
      summary: Creates or updates lead
      operationId: ResourceOwnerLeadController_CreateLead
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Lead information
          schema:
            $ref: '#/definitions/CreateLeadModel'
      responses:
        '200':
          description: Ok
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/organization:
    get:
      tags:
        - ResourceOwnerOrganization
      summary: Get a the details of the organizationt he user is assoicates with
      operationId: GetResourceOwnerOrganization
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The organization model is returned
          schema:
            $ref: '#/definitions/OrganizationModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerOrganization
      summary: Updates the organization
      description: This will update the organization with the new model.
      operationId: EditResourceOwnerOrganization
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: The organization model containing the changes
          schema:
            $ref: '#/definitions/OrganizationEditModel'
      responses:
        '200':
          description: The organization was saved
          schema:
            $ref: '#/definitions/HttpResponseMessage'
        '500':
          description: Internal server error
        '404':
          description: You are not authorized to edit the organization
      security:
        - oauth2: [ ]
  /v1/resourceowner/organization/hierarchy:
    get:
      tags:
        - ResourceOwnerOrganization
      summary: Get the organization hierarchy
      operationId: GetResourceOrganizationHierarchy
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The organization hierarchy is returned
          schema:
            type: array
            items:
              $ref: '#/definitions/OrganizationNodeModel'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this contact'
        '404':
          description: Contact does not exist
      security:
        - oauth2: [ ]
  /v1/resourceowner/place:
    get:
      tags:
        - ResourceOwnerPlace
      summary: Get places
      description: Only places that the user has access to are accessible.
      operationId: GetResourceOwnerPlaces
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The places are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/PlaceModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerPlace
      summary: Creates a new place
      description: This will create a new place and associate it with a vehicle.
      operationId: CreateResourceOwnerPlace
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The place model
          schema:
            $ref: '#/definitions/PlaceCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created place
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/place/{placeId}':
    get:
      tags:
        - ResourceOwnerPlace
      summary: Get place
      description: Only places that the user has access to are accessible.
      operationId: GetResourceOwnerPlace
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: placeId
          description: The places id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The place details are returned
          schema:
            $ref: '#/definitions/PlaceModel'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this places'
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerPlace
      summary: Updates the given place with new model
      description: This will update the given place id with a new model.
      operationId: EditResourceOwnerPlace
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: placeId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new place model
          schema:
            $ref: '#/definitions/PlaceEditModel'
      responses:
        '200':
          description: The given place was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerPlace
      summary: Removes the given company
      description: Removes the given place.
      operationId: DeleteResourceOwnerPlace
      parameters:
        - in: path
          name: placeId
          description: The place id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The place has been deleted
        '500':
          description: Internal server error
        '404':
          description: 'Not found, the place you tried to remove can''t be found'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
      security:
        - oauth2: [ ]
  /v1/resourceowner/place2:
    post:
      tags:
        - ResourceOwnerPlace2
      summary: Creates a new place
      description: "This will create a new place and associate it with a number of vehicles.\r\n            Only vehicles authorized for edit will be added to the place."
      operationId: CreateResourceOwnerPlace2
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The place model
          schema:
            $ref: '#/definitions/Place2CreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created place
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/place2/{placeId}':
    put:
      tags:
        - ResourceOwnerPlace2
      summary: Updates the given place with new model
      description: "This will update information on an already existing place, as well as its vehicle connections.\r\n            Vehicle connections to the place will be updated/added from the VehicleIds list if user has edit authorization to the vehicles.\r\n            Already existing vehicle connections be removed if excluded in the VehicleIds list (if authorized to be edited).\r\n            This will update the given place id with a new model."
      operationId: EditResourceOwnerPlace2
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: placeId
          description: The place id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The place model
          schema:
            $ref: '#/definitions/Place2EditModel'
      responses:
        '200':
          description: The given place was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
      security:
        - oauth2: [ ]
  /v1/resourceowner/place3:
    get:
      tags:
        - ResourceOwnerPlace3
      summary: Gets all places for organization
      operationId: GetResourceOwnerPlaces3
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/PlaceModel3'
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerPlace3
      summary: Creates a new place for organization
      description: "This will create a new place and associate it with a number of vehicles.\r\n            Only vehicles authorized for edit will be added to the place."
      operationId: CreateResourceOwnerPlace3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The place model
          schema:
            $ref: '#/definitions/Place3CreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created place
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/place3/{placeId}':
    get:
      tags:
        - ResourceOwnerPlace3
      summary: Gets place by placeid
      operationId: GetResourceOwnerPlace3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: placeId
          description: The Id of the place
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The place details are returned
          schema:
            $ref: '#/definitions/PlaceModel3'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this place'
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerPlace3
      summary: Updates the given place with new model
      description: "This will update information on an already existing place, as well as its vehicle connections.\r\n            Vehicle connections to the place will be updated/added from the VehicleIds list if user has edit authorization to the vehicles.\r\n            Already existing vehicle connections be removed if excluded in the VehicleIds list (if authorized to be edited).\r\n            This will update the given place id with a new model."
      operationId: EditResourceOwnerPlace3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: placeId
          description: The place id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The place model
          schema:
            $ref: '#/definitions/Place3EditModel'
      responses:
        '200':
          description: The given place was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerPlace3
      summary: Removes the given place
      description: This will remove the given trigger including all historic message belonging to this trigger.
      operationId: DeleteResourceOwnerPlace3
      parameters:
        - in: path
          name: placeId
          description: The company id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The place has been deleted
        '403':
          description: 'Request is forbidden, this could occur if the user is not associated with the place'
        '404':
          description: The place that you tried to remove doesn't exist
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/publishsubscribe:
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Get all publish subscribe records the user has created
      description: Only publish subscribe records that the user has access to are accessible.
      operationId: GetPublishSubscribe
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The publish subscribe records is returned
          schema:
            type: array
            items:
              $ref: '#/definitions/PublishSubscribeModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Create an a publish subscribe record
      description: ''
      operationId: CreatePublishSubscribe
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/PublishSubscribeCreateModel'
      responses:
        '200':
          description: A header link containing the URL to the newly created resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/publishsubscribe/{publishSubscribeId}':
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Get the publish subscribe by record id
      description: Only publis subscribe records that the user has access to are accessible.
      operationId: GetPublishSubscribeById
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: publishSubscribeId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The publish subscribe details is returned
          schema:
            $ref: '#/definitions/PublishSubscribeModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Updates the given publish subscribe record
      description: This will update the given publish subscribe record id with a new model.
      operationId: EditPublishSubscribe
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new publish subscribe model
          schema:
            $ref: '#/definitions/PublishSubscribeEditModel'
      responses:
        '200':
          description: The publish subscribe record was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe record you tried to update can''t be found'
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Removes the given publish subscribe record
      operationId: DeletePublishSubscribeRecord
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The publish subscribe record been deleted
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe records you tried to remove can''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/publishsubscribe/{publishSubscribeId}/testtripstart':
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Publishes a test trip start to the publish subscribe endpoint
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: 'The vehicle id that has existing trip, last trip will be fetched'
          type: integer
          format: int32
      responses:
        '200':
          description: The trip start was published to your publish subscribe record endpoint
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe record you tried couldn''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/publishsubscribe/{publishSubscribeId}/testtripend':
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Publishes a test trip end to the publish subscribe endpoint
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: 'The vehicle id that has existing trip, last trip will be fetched'
          type: integer
          format: int32
      responses:
        '200':
          description: The trip end was published to your publish subscribe record endpoint
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe record you tried couldn''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/publishsubscribe/{publishSubscribeId}/testvehiclecreated':
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Publishes a created vehicled to the publish subscribe endpoint
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: 'The vehicle id that has existing trip, last trip will be fetched'
          type: integer
          format: int32
      responses:
        '200':
          description: The trip end was published to your publish subscribe record endpoint
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe record you tried couldn''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/publishsubscribe/{publishSubscribeId}/testvehiclemodified':
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Publishes a modified vehicled to the publish subscribe endpoint
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: 'The vehicle id that has existing trip, last trip will be fetched'
          type: integer
          format: int32
      responses:
        '200':
          description: The trip end was published to your publish subscribe record endpoint
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe record you tried couldn''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/publishsubscribe/{publishSubscribeId}/testcontactcreated':
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Publishes a created driver / contact to the publish subscribe endpoint
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
        - in: query
          name: contactId
          description: 'The vehicle id that has existing trip, last trip will be fetched'
          type: integer
          format: int32
      responses:
        '200':
          description: The contact end was published to your publish subscribe record endpoint
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe record you tried couldn''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/publishsubscribe/{publishSubscribeId}/testcontactmodified':
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Publishes a modified contact to the publish subscribe endpoint
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
        - in: query
          name: contactId
          description: 'The vehicle id that has existing trip, last trip will be fetched'
          type: integer
          format: int32
      responses:
        '200':
          description: The contact end was published to your publish subscribe record endpoint
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe record you tried couldn''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/publishsubscribe/{publishSubscribeId}/testdeviceconnected':
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Publishes vehicle information similar to when a device is connected to the publish subscribe endpoint
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: The vehicle id
          type: integer
          format: int32
      responses:
        '200':
          description: The contact end was published to your publish subscribe record endpoint
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe record you tried couldn''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/publishsubscribe/{publishSubscribeId}/testdevicedisconnected':
    get:
      tags:
        - ResourceOwnerPublishSubscribe
      summary: Publishes vehicle information similar to when a device is disconnected to the publish subscribe endpoint
      parameters:
        - in: path
          name: publishSubscribeId
          description: The publish subscribe record id
          required: true
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: The vehicle id
          type: integer
          format: int32
      responses:
        '200':
          description: The contact end was published to your publish subscribe record endpoint
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the publish subscribe record you tried couldn''t be found'
      security:
        - oauth2: [ ]
  /v1/resourceowner/quotes:
    get:
      tags:
        - ResourceOwnerQuote
      summary: 'Retrieve a list of quotes and their containing attachments, items and notes'
      description: 'If no time is set on the "to" parameter, then it''s assumed all entries on the date should be included, and the time part will be set to 11:59:59 PM'
      operationId: ResourceOwnerQuote_ListQuotes
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: from
          description: Filter on Created to be on or after from date (default is 30 days prior to todays date)
          type: string
          format: date-time
        - in: query
          name: to
          description: Filter on Created to be on or after to date (default is todays date)
          type: string
          format: date-time
        - in: query
          name: quoteStatus
          description: 'Status on quote (Incomplete = 0, Created = 1, SentToCustomerForApproval = 2, Approved = 3, ConvertedToWorkOrder = 4, Declined = 5) (default is all)'
          type: integer
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
        - in: query
          name: includeDeleted
          description: Include deleted quote (default is false)
          type: boolean
          default: false
      responses:
        '200':
          description: Successful request
          schema:
            type: array
            items:
              $ref: '#/definitions/QuoteModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerQuote
      summary: Create a new Quote
      operationId: ResourceOwnerQuote_CreateQuote
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Quote model
          schema:
            $ref: '#/definitions/QuoteModelPOST'
      responses:
        '200':
          description: A link in the header is returned to the newly created quote.
        '500':
          description: Internal server error.
        '400':
          description: 'Bad request, could occur for various cases, see returned message.'
        '403':
          description: 'Request is forbidden, could occur for various reasons, see returned message.'
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerQuote
      summary: Update or create one or many quotes
      description: "For quotes, items, attachments and notes with an id is updated. When id is not provided new objects is created. If an \r\n            item, attachment or note is missing on an existing quote that item, attachment or note is removed."
      operationId: ResourceOwnerWorkOrder_SaveQuoteList
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: List of quotes
          schema:
            type: array
            items:
              $ref: '#/definitions/QuoteModelSyncPUT'
      responses:
        '200':
          description: Successful update
          schema:
            type: array
            items:
              $ref: '#/definitions/QuoteModelGET'
        '500':
          description: Internal server error.
      security:
        - oauth2: [ ]
  '/v1/resourceowner/quotes/{quoteId}':
    get:
      tags:
        - ResourceOwnerQuote
      summary: Get a Quote
      operationId: ResourceOwnerQuote_GetQuote
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: quoteId
          description: Quote Id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/QuoteModelGET'
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerQuote
      summary: Updates a quote
      operationId: ResourceOwnerQuote_UpdateQuote
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: quoteId
          description: Quote Id that needs to be udpated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Quote edit model
          schema:
            $ref: '#/definitions/QuoteModelPUT'
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/HttpResponseMessage'
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerQuote
      summary: Soft deletes the Quote
      operationId: ResourceOwnerQuote_DeleteQuote
      parameters:
        - in: path
          name: quoteId
          description: Quote Id that needs to be deleted
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Success
      security:
        - oauth2: [ ]
  '/v1/resourceowner/quotes/{quoteId}/status':
    put:
      tags:
        - ResourceOwnerQuote
      summary: Update status of a quote
      operationId: ResourceOwnerQuote_UpdateStatus
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: quoteId
          description: The quote which the satus should be updated on
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Quote status
          schema:
            $ref: '#/definitions/QuoteStatusModelPUT'
      responses:
        '200':
          description: Successful update
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/quotes/referenceId:
    get:
      tags:
        - ResourceOwnerQuote
      summary: Get a new reference id for a quote (not unique)
      operationId: ResourceOwnerQuote_GetNextQuoteId
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: Successful request
          schema:
            type: string
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/registeredtoll:
    get:
      tags:
        - ResourceOwnerRegisteredTollV2
      summary: Get list of registered tolls
      operationId: ResourceOwnerRegisteredTollController_GetRegisteredTollList
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: from
          description: 'Registered tolls from this timestamp (default: 60 days back)'
          type: string
          format: date-time
        - in: query
          name: to
          description: 'Registered tolls until this timestamp (default: current timestamp)'
          type: string
          format: date-time
        - in: query
          name: vehicleId
          description: 'If set, only list tolls registered for this specific vehicle (default: all accessible vehicles)'
          type: integer
          format: int32
        - in: query
          name: driverContactId
          description: 'If set, only list tolls registered for this specific driver (default: all drivers)'
          type: integer
          format: int32
      responses:
        '200':
          description: Registered toll list successfully fetched
          schema:
            type: array
            items:
              $ref: '#/definitions/RegisteredTollModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerRegisteredTollV2
      summary: Register a toll passage
      operationId: ResourceOwnerRegisteredTollController_SaveRegisteredToll
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Toll fee to register
          schema:
            $ref: '#/definitions/RegisteredTollModelPOST'
      responses:
        '200':
          description: Success
        '201':
          description: Successfully created
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/registeredtoll/multi-update:
    put:
      tags:
        - ResourceOwnerRegisteredTollV2
      summary: Update multiple toll passage registrations
      operationId: ResourceOwnerRegisteredTollController_UpdateRegisteredTollList
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Toll fee registration list
          schema:
            $ref: '#/definitions/RegisteredTollBatchUpdateModelPUT'
      responses:
        '200':
          description: Successfully updated
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/registeredtoll/{registeredTollId}':
    put:
      tags:
        - ResourceOwnerRegisteredTollV2
      summary: Update a toll passage
      operationId: ResourceOwnerRegisteredTollController_UpdateRegisteredToll
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: registeredTollId
          description: Which toll fee to edit
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Toll fee information
          schema:
            $ref: '#/definitions/RegisteredTollModelPUT'
      responses:
        '200':
          description: Successfully updated
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    get:
      tags:
        - ResourceOwnerRegisteredTollV2
      summary: Get registered toll
      operationId: ResourceOwnerRegisteredTollController_GetRegisteredToll
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: registeredTollId
          description: Id of registered toll
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Registered toll list successfully fetched
          schema:
            $ref: '#/definitions/RegisteredTollModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerRegisteredTollV2
      summary: Delete registered toll fee
      operationId: ResourceOwnerRegisteredTollController_DeleteRegisteredToll
      parameters:
        - in: path
          name: registeredTollId
          description: The id for the registered toll to delete
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Registered toll list successfully deleted
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/registeredtoll/tollzone:
    get:
      tags:
        - ResourceOwnerRegisteredTollV2
      summary: Get the list of toll zones
      operationId: ResourceOwnerRegisteredTollController_GetTollZoneList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: Toll zone list successfully fetched
          schema:
            type: array
            items:
              $ref: '#/definitions/TollZoneModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/reports/trips-report:
    post:
      tags:
        - ResourceOwnerReports
      summary: Trips report
      description: Max date interval is 16 days
      operationId: GetTripReport
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/TripsReportRequestModel'
      responses:
        '200':
          description: The vehicle summary report is returned
          schema:
            $ref: '#/definitions/TripsReportResponse'
        '400':
          description: Exceeded date range allowed
        '401':
          description: Not authorized to all supplied vehicles
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/reports/vehicle-summary:
    get:
      tags:
        - ResourceOwnerReports
      summary: Vehicle summary report
      description: "Only vehicles that the user is associated with will be returned by this operation.\r\n            400 bad request is returned if the date period parameter is not in a correct format"
      operationId: GetVehicleSummary
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: fromDate
          description: Period from date
          type: string
          format: date-time
        - in: query
          name: toDate
          description: Period to date
          type: string
          format: date-time
        - in: query
          name: page
          description: 'First page = 1, page size 20'
          type: integer
          format: int32
          default: 1
        - in: query
          name: vehicleId
          description: Filter on vehicleId
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle summary report is returned
          schema:
            $ref: '#/definitions/VehiclesSummaryReportModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/reports/tripsummary/{dateperiod}':
    get:
      tags:
        - ResourceOwnerReports
      summary: Get a trip summary report
      description: Only vehicles that the user is associated with will be returned by this operation. 400 bad request is returend if the date period parameter is not in a correct format
      operationId: GetTripSummaryReport
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
      responses:
        '200':
          description: The trip summary report are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TripSummaryReportModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, date period is not in a correct format'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/reports/tripsummary/{dateperiod}/{vehicleId}':
    get:
      tags:
        - ResourceOwnerReports
      summary: Get a trip summary report filtered by vehicle
      description: Only vehicles that the user is associated with will be returned by this operation. 400 bad request is returend if the date period parameter is not in a correct format
      operationId: GetTripSummaryReporByVehicleId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
        - in: path
          name: vehicleId
          description: Report will be filtered on vehicle Id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trip summary report are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TripSummaryReportModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, date period is not in a correct format'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/reports/vehiclesummary/{dateperiod}/{vehicleId}':
    get:
      tags:
        - ResourceOwnerReports
      summary: Get a vehicle summary report
      description: Only vehicles that the user is associated with will be returned by this operation. 400 bad request is returend if the date period parameter is not in a correct format
      operationId: GetVehicleSummaryReportByVehicleId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
        - in: path
          name: vehicleId
          description: Report will be filtered on vehicle Id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle summary report returned
          schema:
            $ref: '#/definitions/VehicleSummaryModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, date period is not in a correct format'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/reports/vehiclessummary/{dateperiod}':
    get:
      tags:
        - ResourceOwnerReports
      summary: Get vehicles summary report
      description: Only vehicles that the user is associated with will be returned by this operation. 400 bad request is returend if the date period parameter is not in a correct format
      operationId: GetVehiclesSummaryReport
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
      responses:
        '200':
          description: The vehicles summary report is returned
          schema:
            $ref: '#/definitions/VehiclesSummaryModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, date period is not in a correct format'
      security:
        - oauth2: [ ]
  /v1/resourceowner/reports/emailtripreport:
    post:
      tags:
        - ResourceOwnerReports
      summary: Email a trip journal report to a desired email address
      description: Only vehicles that the user is associated will be allowed
      operationId: EmailTripReport
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/EmailTripReportModel'
      responses:
        '200':
          description: Email with trip journal has been sent
        '500':
          description: Internal server error
        '404':
          description: ISO 639 language code does not exist
        '403':
          description: Not allowed to vehicle
      security:
        - oauth2: [ ]
  /v1/resourceowner/reports/emailtripreport/periods:
    get:
      tags:
        - ResourceOwnerReports
      summary: Get available vehicles and periods for an email trip journal
      operationId: EmailTripReportPeriods
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: List with active vehicles and available month to send in email trip journal for is returned
          schema:
            $ref: '#/definitions/EmailTripReportPeriodListModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/reports/geofencelog:
    get:
      tags:
        - ResourceOwnerReports
      summary: ''
      operationId: GetGeofenceLog
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: vehicleId
          description: ''
          type: integer
          format: int32
        - in: query
          name: geofenceId
          description: ''
          type: integer
          format: int32
        - in: query
          name: fromDate
          description: ''
          type: string
          format: date-time
        - in: query
          name: toDate
          description: ''
          type: string
          format: date-time
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/GeofenceReportModel'
      security:
        - oauth2: [ ]
  /v1/resourceowner/reports/exporttrips:
    get:
      tags:
        - ResourceOwnerReports
      summary: Export trips to Excel or PDF
      description: Only trips that the user is associated with will be returned by this operation.
      operationId: ExportTrips
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: fromDate
          description: From date
          type: string
          format: date-time
        - in: query
          name: toDate
          description: To date
          type: string
          format: date-time
        - in: query
          name: reportType
          description: Excel or PDF
          type: integer
          format: int32
          enum:
            - 0
            - 1
            - 2
        - in: query
          name: apiTripType
          description: Filter on trip type
          type: integer
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
        - in: query
          name: vehicleId
          description: Filter on vehicle
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/HttpResponseMessage'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/reports3/tripsummary/{dateperiod}':
    get:
      tags:
        - ResourceOwnerReports3
      summary: Get a trip summary report
      description: Only vehicles that the user is associated with will be returned by this operation. 400 bad request is returend if the date period parameter is not in a correct format
      operationId: GetTripSummaryReport3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
      responses:
        '200':
          description: The trip summary report are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TripSummaryReportModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, date period is not in a correct format'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/reports3/tripsummary/{dateperiod}/{vehicleId}':
    get:
      tags:
        - ResourceOwnerReports3
      summary: Get a trip summary report filtered by vehicle
      description: Only vehicles that the user is associated with will be returned by this operation. 400 bad request is returend if the date period parameter is not in a correct format
      operationId: GetTripSummaryReporByVehicleId3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
        - in: path
          name: vehicleId
          description: Report will be filtered on vehicle Id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trip summary report are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TripSummaryReportModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, date period is not in a correct format'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/reports3/vehiclesummary/{dateperiod}/{vehicleId}':
    get:
      tags:
        - ResourceOwnerReports3
      summary: Get a vehicle summary report
      description: Only vehicles that the user is associated with will be returned by this operation. 400 bad request is returend if the date period parameter is not in a correct format
      operationId: GetVehicleSummaryReportByVehicleId3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
        - in: path
          name: vehicleId
          description: Report will be filtered on vehicle Id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle summary report returned
          schema:
            $ref: '#/definitions/VehicleSummaryModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, date period is not in a correct format'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/reports3/vehiclessummary/{dateperiod}':
    get:
      tags:
        - ResourceOwnerReports3
      summary: Get vehicles summary report
      description: Only vehicles that the user is associated with will be returned by this operation. 400 bad request is returend if the date period parameter is not in a correct format
      operationId: GetVehiclesSummaryReport3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
      responses:
        '200':
          description: The vehicles summary report is returned
          schema:
            $ref: '#/definitions/VehiclesSummaryModel'
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, date period is not in a correct format'
      security:
        - oauth2: [ ]
  /v1/resourceowner/reports3/emailtripreport:
    post:
      tags:
        - ResourceOwnerReports3
      summary: Email a trip journal report to a desired email address
      description: Only vehicles that the user is associated will be allowed
      operationId: EmailTripReport3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/EmailTripReportModel'
      responses:
        '200':
          description: Email with trip journal has been sent
        '500':
          description: Internal server error
        '404':
          description: ISO 639 language code does not exist
        '403':
          description: Not allowed to vehicle
      security:
        - oauth2: [ ]
  /v1/resourceowner/reports3/geofencelog:
    get:
      tags:
        - ResourceOwnerReports3
      summary: ''
      operationId: GetGeofenceLog3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: vehicleId
          description: ''
          type: integer
          format: int32
        - in: query
          name: geofenceId
          description: ''
          type: integer
          format: int32
        - in: query
          name: fromDate
          description: ''
          type: string
          format: date-time
        - in: query
          name: toDate
          description: ''
          type: string
          format: date-time
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/GeofenceReportModel'
      security:
        - oauth2: [ ]
  /v1/resourceowner/routeplanner/routes:
    get:
      tags:
        - ResourceOwnerRoutePlanner
      summary: Get routes associated with the user
      description: "Only routes that is either shared with the user or owned by the calling user is returned.\r\n            <br /><br />\r\n            Location Status enum values:<br />\r\n            *NotStarted = 0*<br />\r\n            *Done = 1*<br />\r\n            *Cancelled = 3*<br /><br />\r\n            MissionStatus enum values: <br />\r\n            *Not Started = 0 (All route locations NotStarted)*<br />\r\n            *Ongoing = 1 (Any route location Done OR route mission started)*<br />\r\n            *Done = 2 (All route locations Done)*<br />\r\n            *Cancelled = 3 (Route mission Cancelled)*"
      operationId: ResourceOwnerRoutePlanner_GetRouteMissionsByDriverId
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The routes associated with the user is returned.
          schema:
            type: array
            items:
              $ref: '#/definitions/RoutePlannerMissionModel'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/routeplanner/route/shorturlid/{shortUrlId}':
    get:
      tags:
        - ResourceOwnerRoutePlanner
      operationId: ResourceOwnerRoutePlanner_GetMissionByShortUrlId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: shortUrlId
          required: true
          type: string
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/RoutePlannerMissionModel'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/routeplanner/route/{routeId}':
    get:
      tags:
        - ResourceOwnerRoutePlanner
      operationId: ResourceOwnerRoutePlanner_GetMissionByRouteAndDriverId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: routeId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/RoutePlannerMissionModel'
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerRoutePlanner
      summary: Update a route state
      description: Only tasks that belongs to the user has access to will be returned.
      operationId: ResourceOwnerRoutePlanner_UpdateMission
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: routeId
          description: The routeId to update
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The stop location update model
          schema:
            type: array
            items:
              $ref: '#/definitions/UpdateStopModel'
      responses:
        '200':
          description: The stop was updated
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task
      security:
        - oauth2: [ ]
  /v1/resourceowner/routeplanner/routes/routeandsave:
    post:
      tags:
        - ResourceOwnerRoutePlanner
      operationId: ResourceOwnerRoutePlanner_routeandsave
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/RouteRequest'
      responses:
        '200':
          description: Success
          schema: { }
      security:
        - oauth2: [ ]
  '/v1/resourceowner/routeplanner/route/{routeId}/cancel':
    put:
      tags:
        - ResourceOwnerRoutePlanner
      summary: Set Route Status to Cancelled.
      description: If a cancelled trip later gets 'uncancelled' the cancelling notes will be cleared
      operationId: ResourceOwnerRoutePlanner_CancelMission
      parameters:
        - in: path
          name: routeId
          description: The routeId to update
          required: true
          type: integer
          format: int32
        - in: query
          name: notes
          description: Reason for cancelling
          type: string
      responses:
        '200':
          description: Success
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task
      security:
        - oauth2: [ ]
  '/v1/resourceowner/routeplanner/route/{routeId}/start':
    put:
      tags:
        - ResourceOwnerRoutePlanner
      summary: Set Route Status to Started.
      operationId: ResourceOwnerRoutePlanner_StartMission
      parameters:
        - in: path
          name: routeId
          description: The routeId to update
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Success
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task
      security:
        - oauth2: [ ]
  /v1/resourceowner/routeplanner:
    get:
      tags:
        - ResourceOwnerRoutePlanner
      summary: Get routes associated with the user
      description: '*OBSOLETE* Only routes that is either shared with the user or owned by the calling user is returned.'
      operationId: ResourceOwnerRoutePlanner_GetRouteMissions
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The routes associated with the user is returned.
          schema:
            type: array
            items:
              $ref: '#/definitions/RoutePlannerMissionModel'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/routeplanner/{routeId}':
    get:
      tags:
        - ResourceOwnerRoutePlanner
      summary: ''
      description: '*OBSOLETE*'
      operationId: ResourceOwnerRoutePlanner_GetRouteMission
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: routeId
          description: ''
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/RoutePlannerMissionModel'
      security:
        - oauth2: [ ]
  /v1/resourceowner/task/contacts:
    get:
      tags:
        - ResourceOwnerTask
      summary: Get all contacts to message with
      operationId: GetResourceOwnerTaskContact
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The contacts are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TaskContactModel'
      security:
        - oauth2: [ ]
  /v1/resourceowner/task:
    get:
      tags:
        - ResourceOwnerTask
      summary: Get all tasks open and closed
      description: Only tasks that belongs to the user has access to will be returned.
      operationId: GetResourceOwnerTask
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The tasks are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TaskModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerTask
      summary: Create a task
      description: Creates a task
      operationId: CreateResourceOwnerTaskDetails
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/TaskCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created task
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTask
      summary: Update a task
      description: Only tasks that belongs to the user has access to will be returned.
      operationId: EditResourceOwnerTaskOld
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: query
          name: taskId
          description: The task id
          type: integer
          format: int32
        - in: body
          name: body
          description: The task model
          schema:
            $ref: '#/definitions/TaskEditModel'
      responses:
        '200':
          description: The task was saved
        '500':
          description: Internal server error
        '403':
          description: '>Not authorized to task'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/task/{taskId}':
    get:
      tags:
        - ResourceOwnerTask
      summary: Get task details
      operationId: GetResourceOwnerTaskDetails
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: taskId
          description: The Id of the company
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The tasks are returned
          schema:
            $ref: '#/definitions/TaskDetailModel'
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTask
      summary: Update a task
      description: Only tasks that belongs to the user has access to will be returned.
      operationId: EditResourceOwnerTask
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: taskId
          description: The task id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The task model
          schema:
            $ref: '#/definitions/TaskEditModel'
      responses:
        '200':
          description: The task was saved
        '500':
          description: Internal server error
        '403':
          description: '>Not authorized to task'
      security:
        - oauth2: [ ]
  /v1/resourceowner/task3/contacts:
    get:
      tags:
        - ResourceOwnerTask3
      summary: Get all contacts to message with
      operationId: GetResourceOwnerTaskContact3
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The contacts are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TaskContactModel'
      security:
        - oauth2: [ ]
  /v1/resourceowner/task3:
    get:
      tags:
        - ResourceOwnerTask3
      summary: Get all tasks open and closed
      description: Only tasks that belongs to the user has access to will be returned.
      operationId: GetResourceOwnerTask3
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The tasks are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TaskModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerTask3
      summary: Create a task
      description: Creates a task
      operationId: CreateResourceOwnerTaskDetails3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/TaskCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created task
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task
      security:
        - oauth2: [ ]
  '/v1/resourceowner/task3/{taskId}':
    get:
      tags:
        - ResourceOwnerTask3
      summary: Get task details
      operationId: GetResourceOwnerTaskDetails3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: taskId
          description: The Id of the company
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The tasks are returned
          schema:
            $ref: '#/definitions/TaskDetailModel'
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTask3
      summary: Update a task
      description: Only tasks that belongs to the user has access to will be returned.
      operationId: EditResourceOwnerTask3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: taskId
          description: The task id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The task model
          schema:
            $ref: '#/definitions/TaskEditModel'
      responses:
        '200':
          description: The task was saved
        '500':
          description: Internal server error
        '403':
          description: '>Not authorized to task'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/taskmessage/{taskMessageId}':
    get:
      tags:
        - ResourceOwnerTaskMessage
      summary: Get a task message
      operationId: GetResourceOwnerTaskMessage
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: taskMessageId
          description: The Id of the task message
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The task message details are returned
          schema:
            $ref: '#/definitions/TaskMessageModel'
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task message
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTaskMessage
      summary: Update a task message
      description: Only tasks that belongs to the user has access can be updated.
      operationId: UpdateResourceOwnerTaskMessage
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: taskMessageId
          description: The task id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The task model
          schema:
            $ref: '#/definitions/TaskMessageEditModel'
      responses:
        '200':
          description: The task was saved
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task message
      security:
        - oauth2: [ ]
  /v1/resourceowner/taskmessage:
    post:
      tags:
        - ResourceOwnerTaskMessage
      summary: Create a task message
      operationId: CreateResourceOwnerTaskMessage
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The TaskMessageCreateModel
          schema:
            $ref: '#/definitions/TaskMessageCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created task message
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task message
      security:
        - oauth2: [ ]
  '/v1/resourceowner/taskmessage3/{taskMessageId}':
    get:
      tags:
        - ResourceOwnerTaskMessage3
      summary: Get a task message
      operationId: GetResourceOwnerTaskMessage3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: taskMessageId
          description: The Id of the task message
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The task message details are returned
          schema:
            $ref: '#/definitions/TaskMessageModel'
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task message
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTaskMessage3
      summary: Update a task message
      description: Only tasks that belongs to the user has access can be updated.
      operationId: UpdateResourceOwnerTaskMessage3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: taskMessageId
          description: The task id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The task model
          schema:
            $ref: '#/definitions/TaskMessageEditModel'
      responses:
        '200':
          description: The task was saved
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task message
      security:
        - oauth2: [ ]
  /v1/resourceowner/taskmessage3:
    post:
      tags:
        - ResourceOwnerTaskMessage3
      summary: Create a task message
      operationId: CreateResourceOwnerTaskMessage3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The TaskMessageCreateModel
          schema:
            $ref: '#/definitions/TaskMessageCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created task message
        '500':
          description: Internal server error
        '403':
          description: Not authorized to task message
      security:
        - oauth2: [ ]
  /v1/resourceowner/trackedasset:
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: List all tracked assets that the user has access to
      description: Only returns tracked assets that the user have access to
      operationId: TrackedAsset_GetTrackedAssetList
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: filterAssetType
          description: "The asset type to list (All types = null, Vehicle = 0, Trailer = 1, ATV = 2, \r\n            Boat = 3, Excavator = 4, Cargo = 5). Default is all types."
          type: integer
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 255
      responses:
        '200':
          description: The tracked assets are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TrackedAssetModelGet'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trackedasset/{trackedAssetId}':
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: Get a tracked asset
      operationId: TrackedAsset_GetTrackedAsset
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: trackedAssetId
          description: The tracked asset id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The tracked asset is returned
          schema:
            $ref: '#/definitions/TrackedAssetModelGet'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTrackedAsset
      summary: Update a tracked asset
      operationId: TrackedAsset_UpdateTrackedAsset
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: trackedAssetId
          description: The tracked asset id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Tracked asset model
          schema:
            $ref: '#/definitions/TrackedAssetModelEdit'
      responses:
        '200':
          description: Successfully updated
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trackedasset/{trackedAssetId}/sleep':
    put:
      tags:
        - ResourceOwnerTrackedAsset
      summary: Put a tracked asset to  sleep
      operationId: TrackedAsset_SleepAsset
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: trackedAssetId
          description: The tracked asset id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Model describing sleep configuration
          schema:
            $ref: '#/definitions/TrackedAssetSleepConfigurationModelPUT'
      responses:
        '200':
          description: Successfully put to sleep
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trackedasset/{trackedAssetId}/track':
    put:
      tags:
        - ResourceOwnerTrackedAsset
      summary: Start tracking a asset
      operationId: TrackedAsset_TrackAsset
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: trackedAssetId
          description: The tracked asset id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Model describing tracking configuration
          schema:
            $ref: '#/definitions/TrackedAssetTrackConfigurationModelPUT'
      responses:
        '200':
          description: Successfully started tracking
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trackedasset/{trackedAssetId}/shutdown':
    put:
      tags:
        - ResourceOwnerTrackedAsset
      summary: Shutdown a device that is tracking a asset
      operationId: TrackedAsset_Shutdown
      parameters:
        - in: path
          name: trackedAssetId
          description: The tracked asset id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successfully shut down device
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trackedasset/{trackedAssetId}/history':
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: List tracked asset history
      operationId: TrackedAsset_ListHistory
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: trackedAssetId
          description: Id of tracked asset
          required: true
          type: integer
          format: int32
        - in: query
          name: lastNumberOfDays
          description: Last number of days to get trips for (default = 60)
          type: integer
          format: int32
          default: 10
        - in: query
          name: historyType
          description: "Bitmask to filter and only list specific history types. 1 = Move Alert, 2 = Temperature, \r\n            4 = Battery Alert, 8 = Heartbeat, 16 = Battery Level, 32 = External Power Voltage, 64 = Operating Time, 128 = Shutdown Pending, 256 = Shutdown, 512 = Offline, 1024 = Humidity (default = all types) \r\n            [Example: 7 = Move alert, temperature and battery alerts]"
          type: integer
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 4
            - 8
            - 16
            - 32
            - 64
            - 128
            - 256
            - 512
            - 1024
      responses:
        '200':
          description: The history list returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TrackedAssetHistoryModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trackedasset/{trackedAssetId}/externaldevices':
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: List external devices by asset
      operationId: GetExternalDeviceListByAsset
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: trackedAssetId
          description: Id of tracked asset
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The external device list is returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ExternalDeviceModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trackedasset/externaldevices:
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: List external devices
      operationId: GetExternalDeviceList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The external device list is returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ExternalDeviceModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trackedasset/externaldevice/{externalDeviceId}':
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: External device
      operationId: GetExternalDevice
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: externalDeviceId
          description: Id of external device
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The external device is returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ExternalDeviceModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTrackedAsset
      summary: Update an external device asset
      operationId: UpdateExternalDevice
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: externalDeviceId
          description: The external device id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: External device model
          schema:
            $ref: '#/definitions/ExternalDeviceModelPUT'
      responses:
        '200':
          description: Successfully updated
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trackedasset/externaldevice/{externalDeviceId}/history':
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: List external device history
      operationId: GetExternalDeviceHistoryList
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: externalDeviceId
          description: Id of tracked asset
          required: true
          type: integer
          format: int32
        - in: query
          name: lastNumberOfDays
          description: Last number of days to get history for (default = 10)
          type: integer
          format: int32
          default: 10
        - in: query
          name: groupHistory
          description: Group history items on the same day into one item (default = false)
          type: boolean
          default: false
      responses:
        '200':
          description: The history list returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ExternalDeviceHistoryModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trackedasset/externaldevices/updateintervals:
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: List available update intervals in seconds
      operationId: GetAvailableUpdateIntervalList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The update interval list is returned
          schema:
            type: array
            items:
              $ref: '#/definitions/ExternalDeviceUpdateIntervalModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trackedasset/sleepinterval:
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: Lists available sleep intervals in minutes
      operationId: TrackedAsset_GetAvailableSleepIntervalList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The sleep intervals in minutes
          schema:
            $ref: '#/definitions/TrackedAssetSleepIntervalModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trackedasset/updateinterval:
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: Lists available update intervals in seconds
      operationId: TrackedAsset_GetAvailableAssetUpdateIntervalList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The sleep intervals in minutes
          schema:
            $ref: '#/definitions/TrackedAssetUpdateIntervalModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trackedasset/enum:
    get:
      tags:
        - ResourceOwnerTrackedAsset
      summary: List all enumerations used on this endpoint
      operationId: TrackedAsset_GetEnumList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The notifications are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/EnumTypeModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/triggermessageshistory:
    get:
      tags:
        - ResourceOwnerTriggerMessages
      summary: Get all trigger messages that the logged in user has access to
      description: Only trigger messages that belongs to vehicles that the user has access to will be returned.
      operationId: GetResourceOwnerTriggerMessagesHistory
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The trigger messages are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TriggerMessageHistoryModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/triggermessageshistory/{triggerId}':
    get:
      tags:
        - ResourceOwnerTriggerMessages
      summary: Get trigger messages by trigger id
      description: Only trigger messages that belongs to vehicles that the user has access to will be returned.
      operationId: GetResourceOwnerTriggerMessageHistory
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: triggerId
          description: The Id of the company
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trigger messages are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TriggerMessageHistoryModel'
        '404':
          description: The trigger message that you tried to get doesn't exist
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/triggers:
    get:
      tags:
        - ResourceOwnerTriggers
      summary: Get all triggers
      description: Only triggers that the user has access to will be returned by this operation.
      operationId: GetResourceOwnerTriggers
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The triggers are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TriggerModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerTriggers
      summary: Creates a new trigger
      operationId: CreateResourceOwnerTrigger
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/TriggerCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created trigger
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you try to associate to other users than yourself'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/triggers/{triggerId}':
    get:
      tags:
        - ResourceOwnerTriggers
      summary: Get a trigger by id
      description: Will only return the trigger if the user has access to it
      operationId: GetResourceOwnerTrigger
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: triggerId
          description: The Id of the company
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trigger details are returned
          schema:
            $ref: '#/definitions/TriggerDetailModel'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this notification config'
        '404':
          description: The notification config that you tried to update doesn't exist
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTriggers
      summary: Updates the given trigger
      description: This will update the trigger with the new model.
      operationId: EditResourceOwnerTrigger
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: triggerId
          description: The  trigger hat should be updated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new  notification config model
          schema:
            $ref: '#/definitions/TriggerEditModel'
      responses:
        '200':
          description: The trigger was saved
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the notification config'
        '404':
          description: The  notification config that you tried to update doesn't exist
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerTriggers
      summary: Removes the given trigger
      description: This will remove the given trigger including all historic message belonging to this trigger.
      operationId: DeleteResourceOwnerTrigger
      parameters:
        - in: path
          name: triggerId
          description: The company id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trigger has been deleted
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the notification config'
        '404':
          description: The  notification config that you tried to remove doesn't exist
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/triggers/batch:
    post:
      tags:
        - ResourceOwnerTriggers
      summary: Creates a new triggers
      operationId: CreateResourceOwnerTriggerBatch
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/TriggerCreateBatchModel'
      responses:
        '200':
          description: ''
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you try to associate to other users than yourself'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/triggers/mute/{triggerId}':
    put:
      tags:
        - ResourceOwnerTriggers
      summary: Updates how long the trigger should be muted
      description: This will update how long the trigger should be muted
      operationId: EditResourceOwnerTriggerMute
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: triggerId
          description: The trigger that should be muted
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: How long the trigger should be muted in seconds from now
          schema:
            $ref: '#/definitions/TriggerEditMutedUntilModel'
      responses:
        '200':
          description: The trigger was saved
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the notification config'
        '404':
          description: The  notification config that you tried to update doesn't exist
      security:
        - oauth2: [ ]
  '/v1/resourceowner/triggers/unmute/{triggerId}':
    put:
      tags:
        - ResourceOwnerTriggers
      summary: Unmutes a trigger
      description: This will unmute a trigger
      operationId: EditResourceOwnerTriggerUnMute
      parameters:
        - in: path
          name: triggerId
          description: The trigger to unmute
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trigger was saved
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the notification config'
        '404':
          description: The  notification config that you tried to update doesn't exist
      security:
        - oauth2: [ ]
  /v1/resourceowner/triggers/movepush:
    post:
      tags:
        - ResourceOwnerTriggers
      summary: Move all users push triggers to userdevice
      operationId: ResourceOwnerTriggerMovePush
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: ''
          schema:
            $ref: '#/definitions/MovePushTriggers'
      responses:
        '200':
          description: All push triggers moved
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you try to associate to other users than yourself'
      security:
        - oauth2: [ ]
  /v1/resourceowner/triggers3:
    get:
      tags:
        - ResourceOwnerTriggers3
      summary: Get all triggers
      description: Only triggers that the user has access to will be returned by this operation.
      operationId: GetResourceOwnerTriggers3
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The triggers are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/Trigger3Model'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerTriggers3
      summary: Creates a new trigger
      operationId: CreateResourceOwnerTrigger3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/Trigger3CreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created trigger
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you try to associate to other users than yourself'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/triggers3/{triggerId}':
    get:
      tags:
        - ResourceOwnerTriggers3
      summary: Get a trigger by id
      description: Will only return the trigger if the user has access to it
      operationId: GetResourceOwnerTrigger3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: triggerId
          description: The Id of the trigger
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trigger details are returned
          schema:
            $ref: '#/definitions/Trigger3DetailModel'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you dont'' have access to this notification config'
        '404':
          description: The notification config that you tried to update doesn't exist
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTriggers3
      summary: Updates the given trigger
      description: This will update the trigger with the new model.
      operationId: EditResourceOwnerTrigger3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: triggerId
          description: The  trigger hat should be updated
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new  notification config model
          schema:
            $ref: '#/definitions/Trigger3EditModel'
      responses:
        '200':
          description: The trigger was saved
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the notification config'
        '404':
          description: The  notification config that you tried to update doesn't exist
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerTriggers3
      summary: Removes the given trigger
      description: This will remove the given trigger including all historic message belonging to this trigger.
      operationId: DeleteResourceOwnerTrigger3
      parameters:
        - in: path
          name: triggerId
          description: The company id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trigger has been deleted
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the notification config'
        '404':
          description: The  notification config that you tried to remove doesn't exist
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/triggers3/mute/{triggerId}':
    put:
      tags:
        - ResourceOwnerTriggers3
      summary: Updates how long the trigger should be muted
      description: This will update how long the trigger should be muted
      operationId: EditResourceOwnerTriggerMute3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: triggerId
          description: The trigger that should be muted
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: How long the trigger should be muted in seconds from now
          schema:
            $ref: '#/definitions/TriggerEditMutedUntilModel'
      responses:
        '200':
          description: The trigger was saved
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the notification config'
        '404':
          description: The  notification config that you tried to update doesn't exist
      security:
        - oauth2: [ ]
  '/v1/resourceowner/triggers3/unmute/{triggerId}':
    put:
      tags:
        - ResourceOwnerTriggers3
      summary: Unmutes a trigger
      description: This will unmute a trigger
      operationId: EditResourceOwnerTriggerUnMute3
      parameters:
        - in: path
          name: triggerId
          description: The trigger to unmute
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trigger was saved
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you are not associated with the notification config'
        '404':
          description: The  notification config that you tried to update doesn't exist
      security:
        - oauth2: [ ]
  /v1/resourceowner/triggers3/movepush:
    post:
      tags:
        - ResourceOwnerTriggers3
      summary: Move all users push triggers to userdevice
      operationId: ResourceOwnerTriggerMovePush3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: ''
          schema:
            $ref: '#/definitions/MovePushTriggers'
      responses:
        '200':
          description: All push triggers moved
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, this could occur if you try to associate to other users than yourself'
      security:
        - oauth2: [ ]
  /v1/resourceowner/trips3:
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: Get all trips that the user has access to
      description: Only returns trips that the user have access to
      operationId: GetResourceOwnerTrips2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: lastNumberOfDays
          description: Optional enter last number of days to get trips for
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: Optional vehicle id to get trips for
          type: integer
          format: int32
        - in: query
          name: synchronized
          description: Optional include synchronized trips (defaults to true)
          type: boolean
          default: true
        - in: query
          name: fromUtc
          description: Retrieve trips from this date. (Can't be used if lastNumberOfDays is specified)
          type: string
          format: date-time
        - in: query
          name: toUtc
          description: Retrieve trips to this date. (Can't be used if lastNumberOfDays is specified)
          type: string
          format: date-time
      responses:
        '200':
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/Trip2Model'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: Get the details about the trip
      description: Only trips that are associated with the vehicles that user has relationships with are allowed.
      operationId: GetResourceOwnerTripDetail2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trip details are returned
          schema:
            $ref: '#/definitions/Trip2DetailModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this trip'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTrip3V2
      summary: Updates the given trip with a trip type (category) and trip tags
      description: This operation would only update the trip type and trip tags if authorized for this trip.
      operationId: EditResourceOwnerTrip2
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: tripId
          description: The trip id to update
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The triptype and triptags to update
          schema:
            $ref: '#/definitions/Trip2EditModel'
      responses:
        '200':
          description: The trip was saved
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/geostartend':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: Get the trip start and stop geo locations
      description: Only trips that are associated with the vehicles that user has relationships with are allowed.
      operationId: GetResourceOwnerGeoStartStop2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The Start and stop geo locations details are returned
          schema:
            $ref: '#/definitions/Trip2StartEndGeoModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this trip'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/speed':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: Get the vehicle speed if it's reported by the vehicle
      description: 'This is a quick method, instead of retrieving raw data with the pid operation. Is reported in km/h.'
      operationId: GetResourceOwnerTripSpeed2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle speeds are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleSpeed2Model'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/rpm':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: Get the vehicle engine rpm if it's reported by the vehicle
      description: 'This is a quick method, instead of retrieving raw data with the pid operation.'
      operationId: GetResourceOwnerTripRPM2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle engine rpm are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/RPM2Model'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/ambienttemperature':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: Get the vehicle ambient (outside) temperature if it's reported by the vehiclee
      description: 'This is a quick method, instead of retrieving raw data with the pid operation. The result is in celsius.'
      operationId: GetResourceOwnerTripAmbientTemperature2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Te list of all ambient temperatures are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/AmbientAirTemperatureModel'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/fuellevelinput':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: Get the vehicle current fuel level if it's reported by the vehicle
      description: 'This is a quick method, instead of retrieving raw data with the pid operation. The result is in percentage of total 100'
      operationId: GetResourceOwnerTripFuelLevelInput2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The recorded fuel level details are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/FuelLevelInput2Model'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/enginecoolanttemperature':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: Get the engine coolant temperature if it's reported by the vehicle
      description: 'This is a quick method, instead of retrieving raw data with the pid operation'
      operationId: GetResourceOwnerTripEngineCoolantTemperature2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The engine coolant temperature are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/EngineCoolantTemperature2Model'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/pid/{pidId}':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: This will get the raw PID data if the vehicle has reported that it is being recorded
      description: The data array will contain a sub-array of integers representing the raw data
      operationId: GetResourceOwnerTripPid2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
        - in: path
          name: pidId
          description: The PID id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: ThePID data are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/PID2Model'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/geo':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: 'Get the gps locations for the vehicle, includes position and heading'
      description: This operation would require compression enabled by the client.
      operationId: GetResourceOwnerTripGeo2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
        - in: query
          name: everyNthRecord
          description: Optional if you wish to limit to n:th number of records
          type: integer
          format: int32
          default: 1
        - in: query
          name: snapToRoad
          description: ''
          type: boolean
          default: true
      responses:
        '200':
          description: The Geo data are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/Trip2GeoModel'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/googleurltostaticmapencodedpolyline':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: Gets Google static map URL with the trip route as a polyline
      operationId: GetGoogleurlToStaticMapEncodedPolyline2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
        - in: query
          name: height
          description: Height of the map
          type: integer
          format: int32
        - in: query
          name: width
          description: Width of the map
          type: integer
          format: int32
      responses:
        '200':
          description: The Google Map Url are returned
          schema:
            type: string
        '400':
          description: 'Bad request, this operation explicitly require gzip compression by the client'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trips3/setdriverontrip:
    put:
      tags:
        - ResourceOwnerTrip3V2
      summary: Updates the given trip with given contactid
      description: This operation would only update the driver if authorized for this trip.
      operationId: SetDriverOnTrip2
      parameters:
        - in: query
          name: tripId
          description: The trip to update
          type: integer
          format: int32
        - in: query
          name: contactId
          description: The contact id for the driver
          type: integer
          format: int32
      responses:
        '200':
          description: The trip was saved
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/details':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: 'Get the details about the trip including driving events, speeding and idling'
      description: Only trips that are associated with the vehicles that user has relationships with are allowed.
      operationId: GetResourceOwnerTripDetailConcat2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trip details are returned
          schema:
            $ref: '#/definitions/TripConcatenationModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this trip'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips3/{tripId}/advanced':
    get:
      tags:
        - ResourceOwnerTrip3V2
      summary: 'Get the advanced details about the trip including driving events, speeding, idling, speed and rpm data series'
      description: Only trips that are associated with the vehicles that user has relationships with are allowed.
      operationId: GetResourceOwnerTripAdvanced2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trip advanced data are returned
          schema:
            $ref: '#/definitions/TripConcatenationModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this trip'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trips3/batch/triptype:
    put:
      tags:
        - ResourceOwnerTrip3V2
      summary: Updates a list of trip id's with the provided trip type
      description: This operation only updates the trip types if authorized to all trips in list.
      operationId: ResourceOwnerTrip3Controller_TripTypeBatchUpdate
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The trip type and trips to update
          schema:
            $ref: '#/definitions/TripTypeBatchUpdateModel'
      responses:
        '200':
          description: The trips was saved
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripapproval/unsubmitted/{vehicleId}':
    get:
      tags:
        - ResourceOwnerTripApprovalV2
      summary: List all trips which you as a user may submit for approval
      description: Only returns tracked assets that the user have access to
      operationId: ResourceOwnerTripApprovalController_GetUnsubmittedTripList
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: Show only trips for this vehicleId
          required: true
          type: integer
          format: int32
        - in: query
          name: from
          description: Show only trips from this date (default = 30 days back)
          type: string
          format: date-time
        - in: query
          name: to
          description: 'Show only trips to this date, including the date (default = today)'
          type: string
          format: date-time
        - in: query
          name: tripType
          description: 'Show only trips with this category. 0 = Business, 2 = Other. (default = any type)'
          type: integer
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
      responses:
        '200':
          description: The list of trips is returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TripModelGET'
        '403':
          description: Missing permission to access vehicle
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/tripapproval/submit:
    post:
      tags:
        - ResourceOwnerTripApprovalV2
      summary: Submit trips for approval
      operationId: ResourceOwnerTripApprovalController_SubmitTripList
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: Trip approval request information
          schema:
            $ref: '#/definitions/TripApprovalSubmitModelPOST'
      responses:
        '200':
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/TripModelGET'
        '201':
          description: Request successfully created
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripapproval/request/{tripApprovalRequestId}':
    get:
      tags:
        - ResourceOwnerTripApprovalV2
      summary: Get a trip approval request
      operationId: ResourceOwnerTripApprovalController_GetTripApprovalRequest
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripApprovalRequestId
          description: Trip approval request id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trip approval request is returned
          schema:
            $ref: '#/definitions/TripApprovalRequestModelGET'
        '403':
          description: No access to request
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/tripapproval/request:
    get:
      tags:
        - ResourceOwnerTripApprovalV2
      summary: List all requests for trip approval which is submitted
      operationId: ResourceOwnerTripApprovalController_GetSubmittedTripApprovalRequestList
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: from
          description: Show only requests submited from this date (default = 30 days back)
          type: string
          format: date-time
        - in: query
          name: to
          description: Show only requests submited to this date (default = today)
          type: string
          format: date-time
        - in: query
          name: vehicleId
          description: Show only trips for this vehicleId (default = all vehicles submitted for)
          type: integer
          format: int32
        - in: query
          name: statusType
          description: 'Status on request, SentForApproval = 0, Declined = 1, Approved = 2 (default = any status)'
          type: integer
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
      responses:
        '200':
          description: The submitted requests are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TripApprovalRequestModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripapproval/{tripApprovalRequestId}/response':
    put:
      tags:
        - ResourceOwnerTripApprovalV2
      summary: Approve or decline a trip approval request
      operationId: ResourceOwnerTripApprovalController_Response
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: tripApprovalRequestId
          description: Trip approval request id to approve
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Approval information
          schema:
            $ref: '#/definitions/TripApprovalResponseModel'
      responses:
        '200':
          description: The response has been successfully stored
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripapproval/{tripApprovalRequestId}/revoke':
    put:
      tags:
        - ResourceOwnerTripApprovalV2
      summary: Revoke a trip approval request
      description: Only allowed by the user who requested the approval and if no one has approved/declined the request
      operationId: ResourceOwnerTripApprovalController_RevokeRequest
      parameters:
        - in: path
          name: tripApprovalRequestId
          description: Trip approval request id to decline
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The request has been successfully revoked
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/tripmerge:
    post:
      tags:
        - ResourceOwnerTripMergeV2
      summary: Merge trips
      description: Url is returned as location in header
      operationId: ResourceOwnerTripMergeController_MergeTrips
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Model containing which and how trips should be mereged
          schema:
            $ref: '#/definitions/TripMergeModelPOST'
      responses:
        '200':
          description: Success
        '201':
          description: Trips successfully merged
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripmerge/{tripId}/unmerge':
    put:
      tags:
        - ResourceOwnerTripMergeV2
      summary: Unmerge trips
      operationId: ResourceOwnerTripMergeController_UnmergeTrips
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: Trip id of merged trip
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/TripModel'
        '201':
          description: Trips successfully unmerged
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripmerge/{tripId}':
    get:
      tags:
        - ResourceOwnerTripMergeV2
      summary: Get all trips within a merged trip
      operationId: ResourceOwnerTripMergeController_GetTripList
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: Trip id on merged trip
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: List containing all trips within the merged trip
          schema:
            type: array
            items:
              $ref: '#/definitions/TripModel'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripscore/drivingscore/{driverContactId}':
    get:
      tags:
        - ResourceOwnerTripScore
      summary: Get latest driving score for a driver
      description: "This is a BETA feature, under development and may change. <br /> \r\n            Reduction types are \"HarshAcceleration\", \"HarshBrake\", \"HarshTurn\", \"Idling\" or \"Speeding\". <br />\r\n            Returns latest driving score with points lost, weaknesses and strengths"
      operationId: GetResourceOwnerLatestDrivingScore
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: driverContactId
          description: Contact id to get driving score for
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/DrivingScoreModel'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripscore/summary/{driverContactId}':
    get:
      tags:
        - ResourceOwnerTripScore
      summary: Get trip score summary for a driver
      description: "This is a BETA feature, under development and may change. <br /> \r\n            Reduction types are \"HarshAcceleration\", \"HarshBrake\", \"HarshTurn\", \"Idling\" or \"Speeding\". <br />\r\n            Returns summary for previous month and current month."
      operationId: GetResourceOwnerTripScoreSummary
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: driverContactId
          description: Contact id to get trip score for
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/TripScoreSummaryModel'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripscore/chartdata/{driverContactId}':
    get:
      tags:
        - ResourceOwnerTripScore
      summary: Get trip score chart data for a driver
      description: 'This is a BETA feature, under development and may change.'
      operationId: GetResourceOwnerTripScoreChartData
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: driverContactId
          description: Contact id to get chart for
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/TripScoreChartDataListModel'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/tripscore/triplist/{driverContactId}':
    get:
      tags:
        - ResourceOwnerTripScore
      summary: Get list of trips with trip score for a driver
      description: "This is a BETA feature, under development and may change. <br /> \r\n            Max return count is 100 trips."
      operationId: GetResourceOwnerTripScoreTripList
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: driverContactId
          description: Contact id to get trip score for
          required: true
          type: integer
          format: int32
        - in: query
          name: skip
          description: Optional skip number of trips
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/TripScoreTripModel'
      security:
        - oauth2: [ ]
  /v1/resourceowner/trips:
    get:
      tags:
        - ResourceOwnerTripV2
      summary: Get all trips that the user has access to
      description: Only returns trips that the user have access to. If more then 60 days are requested it defaults to 30 days.
      operationId: GetResourceOwnerTrips
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: lastNumberOfDays
          description: Optional enter last number of days to get trips for. Only supports up to 60 days back. If not speficied or more then 60 days are entered it searches 30 days back.
          type: integer
          format: int32
        - in: query
          name: vehicleId
          description: Optional vehicle id to get trips for
          type: integer
          format: int32
        - in: query
          name: synchronized
          description: Optional include synchronized trips (defaults to true)
          type: boolean
          default: true
        - in: query
          name: fromUtc
          description: Retrieve trips from this date. (Can't be used if lastNumberOfDays is specified)
          type: string
          format: date-time
        - in: query
          name: toUtc
          description: Retrieve trips to this date. (Can't be used if lastNumberOfDays is specified)
          type: string
          format: date-time
      responses:
        '200':
          description: Success
          schema:
            type: array
            items:
              $ref: '#/definitions/TripModel'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: Get the details about the trip
      description: Only trips that are associated with the vehicles that user has relationships with are allowed.
      operationId: GetResourceOwnerTrip
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trip details are returned
          schema:
            $ref: '#/definitions/TripDetailModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this trip'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerTripV2
      summary: Updates the given trip with a trip type (category) and trip tags
      description: This operation would only update the trip type and trip tags if authorized for this trip.
      operationId: EditResourceOwnerTrip
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: tripId
          description: The trip id to update
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The triptype and triptags to update
          schema:
            $ref: '#/definitions/TripEditModel'
      responses:
        '200':
          description: The trip was saved
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/geostartend':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: Get the trip start and stop geo locations
      description: Only trips that are associated with the vehicles that user has relationships with are allowed.
      operationId: GetResourceOwnerGeoStartStop
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The Start and stop geo locations details are returned
          schema:
            $ref: '#/definitions/TripStartEndGeoModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this trip'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/speed':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: Get the vehicle speed if it's reported by the vehicle
      description: 'This is a quick method, instead of retrieving raw data with the pid operation. Is reported in km/h.'
      operationId: GetResourceOwnerTripSpeed
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle speeds are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleSpeedModel'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/rpm':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: Get the vehicle engine rpm if it's reported by the vehicle
      description: 'This is a quick method, instead of retrieving raw data with the pid operation.'
      operationId: GetResourceOwnerTripRPM
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle engine rpm are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/RPMModel'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/ambienttemperature':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: Get the vehicle ambient (outside) temperature if it's reported by the vehiclee
      description: 'This is a quick method, instead of retrieving raw data with the pid operation. The result is in celsius.'
      operationId: GetResourceOwnerTripAmbientTemperature
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Te list of all ambient temperatures are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/AmbientAirTemperatureModel'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/fuellevelinput':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: Get the vehicle current fuel level if it's reported by the vehicle
      description: 'This is a quick method, instead of retrieving raw data with the pid operation. The result is in percentage of total 100'
      operationId: GetResourceOwnerTripFuelLevelInput
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The recorded fuel level details are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/FuelLevelInputModel'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/enginecoolanttemperature':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: Get the engine coolant temperature if it's reported by the vehicle
      description: 'This is a quick method, instead of retrieving raw data with the pid operation'
      operationId: GetResourceOwnerTripEngineCoolantTemperature
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The engine coolant temperature are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/EngineCoolantTemperatureModel'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/pid/{pidId}':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: This will get the raw PID data if the vehicle has reported that it is being recorded
      description: The data array will contain a sub-array of integers representing the raw data
      operationId: GetResourceOwnerTripPid
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
        - in: path
          name: pidId
          description: The PID id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: ThePID data are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/PIDModel'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/geo':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: 'Get the gps locations for the vehicle, includes position and heading'
      description: This operation would require compression enabled by the client.
      operationId: GetResourceOwnerTripGeo
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
        - in: query
          name: everyNthRecord
          description: Optional if you wish to limit to n:th number of records
          type: integer
          format: int32
          default: 1
        - in: query
          name: snapToRoad
          description: ''
          type: boolean
          default: true
      responses:
        '200':
          description: The Geo data are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/TripGeoModel'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/googleurltostaticmapencodedpolyline':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: Gets Google static map URL with the trip route as a polyline
      operationId: GetGoogleurlToStaticMapEncodedPolyline
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
        - in: query
          name: height
          description: Height of the map
          type: integer
          format: int32
        - in: query
          name: width
          description: Width of the map
          type: integer
          format: int32
      responses:
        '200':
          description: The Google Map Url are returned
          schema:
            type: string
        '400':
          description: 'Bad request, this operation explicitly require gzip compression by the client'
        '501':
          description: 'Not implemented, meaning the PID is not supported or is not recorded by the vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trips/addnotestolasttrip:
    put:
      tags:
        - ResourceOwnerTripV2
      summary: Updates the last trip with trip notes
      description: This operation would only update the trip tags if authorized for this trip.
      operationId: EditResourceOwnerTripAddNoteToLastTrip
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The triptags to update
          schema:
            $ref: '#/definitions/TripAddNoteModel'
      responses:
        '200':
          description: The trip was saved
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trips/batch/triptype:
    put:
      tags:
        - ResourceOwnerTripV2
      summary: Updates a list of trip id's with the provided trip type
      description: This operation only updates the trip types if authorized to all trips in list.
      operationId: ResourceOwnerTripController_TripTypeBatchUpdate
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The trip type and trips to update
          schema:
            $ref: '#/definitions/TripTypeBatchUpdateModel'
      responses:
        '200':
          description: The trips was saved
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trips/setdriverontrip:
    put:
      tags:
        - ResourceOwnerTripV2
      summary: Updates the given trip with given contactid
      description: This operation would only update the driver if authorized for this trip.
      operationId: SetDriverOnTrip
      parameters:
        - in: query
          name: tripId
          description: The trip to update
          type: integer
          format: int32
        - in: query
          name: contactId
          description: The contact id for the driver
          type: integer
          format: int32
      responses:
        '200':
          description: The trip was saved
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/trips/synchronized:
    post:
      tags:
        - ResourceOwnerTripV2
      summary: 'Mark trips as synchronized, synchronized trips will not be returned when fetching trips'
      description: This operation only updates the synchronized state if authorized to all trips in list.
      operationId: Synchronized
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Trips to mark as synchronized
          schema:
            $ref: '#/definitions/TripSynchronized'
      responses:
        '200':
          description: Success
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/details':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: 'Get the details about the trip including driving events, speeding and idling'
      description: Only trips that are associated with the vehicles that user has relationships with are allowed.
      operationId: GetResourceOwnerTrip2
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trip details are returned
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this trip'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/trips/{tripId}/advanced':
    get:
      tags:
        - ResourceOwnerTripV2
      summary: 'Get the advanced details about the trip including driving events, speeding, idling, speed and rpm data series'
      description: Only trips that are associated with the vehicles that user has relationships with are allowed.
      operationId: GetResourceOwnerTripAdvanced
      parameters:
        - in: path
          name: tripId
          description: The trip id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The trip advanced data are returned
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this trip'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/user:
    get:
      tags:
        - ResourceOwnerUser
      summary: This get's the details of the current user that you are logged in as
      description: This will return the details of the current user.
      operationId: GetResourceOwnerUser
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The User is returned
          schema:
            $ref: '#/definitions/UserModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/user/changepassword:
    put:
      tags:
        - ResourceOwnerUser
      summary: Change the password of the current user that you are logged in as
      description: This will change the password.
      operationId: ChangePasswordResourceOwnerUser
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The change password model
          schema:
            $ref: '#/definitions/ChangePasswordModel'
      responses:
        '200':
          description: The password was saved
        '400':
          description: 'Request is bad, the password is too short or doesn''t contains at least one uppercase character, one lowercase character, one number and one complex characte that you tried to update doesn''t exist'
        '403':
          description: 'Request is forbidden, meaning that the password entered is invalid'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/user/userexistingpassword:
    get:
      tags:
        - ResourceOwnerUser
      summary: Check if the user has a password set
      description: This will get info if user has existing password.
      operationId: UserExistingPassword
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The info is returned
          schema:
            $ref: '#/definitions/UserExistingPasswordModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/user/changeusername:
    put:
      tags:
        - ResourceOwnerUser
      summary: Change the username of the current user that you are logged in as
      description: This will change the username.
      operationId: ChangeUserNameResourceOwnerUser
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The change  username model
          schema:
            $ref: '#/definitions/ChangeUserNameModel'
      responses:
        '200':
          description: The username was saved
        '400':
          description: 'Request is bad, This username is already used'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/user/resetpassword:
    post:
      tags:
        - ResourceOwnerUser
      summary: Reset the password by SMS for the current user logged in
      operationId: ResetPasswordResourceOwnerUser
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The reset password model
          schema:
            $ref: '#/definitions/ResetPasswordUserModel'
      responses:
        '200':
          description: A reset password sms was sent
        '400':
          description: 'Request is bad, password reset type does not exist'
        '404':
          description: Phone number is missing
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/user/logout:
    post:
      tags:
        - ResourceOwnerUser
      summary: Logs out the user
      description: Logs out the user and the users client device id will be removed from the users available client devices. A new user client device id will be created on login.
      operationId: ResourceOwnerUserController_Logout
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Model containing the users client device id
          schema:
            $ref: '#/definitions/LogoutModel'
      responses:
        '200':
          description: Successful log out
        '403':
          description: No access to the client device
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/userdevice:
    get:
      tags:
        - ResourceOwnerUserDevice
      summary: Get a list of all user devices that the user is associated with
      description: This will return the details of the user devices.
      operationId: GetResourceOwnerUserDevices
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The devices are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/UserDeviceModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerUserDevice
      summary: Creates a new user device
      operationId: CreateResourceOwnerUserDevice
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The User Device Model
          schema:
            $ref: '#/definitions/UserDeviceCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created company
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/userdevice/{userDeviceId}':
    get:
      tags:
        - ResourceOwnerUserDevice
      summary: Get a list of all user devices that the user is associated with
      description: Only user devices that are associated with the user are allowed.
      operationId: GetResourceOwnerUserDevice
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: userDeviceId
          description: The user device id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The devices are returned
          schema:
            $ref: '#/definitions/UserDeviceModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this user device'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerUserDevice
      summary: Updates the given user device with the new model
      operationId: EditResourceOwnerUserDevice
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: userDeviceId
          description: The user device id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new user device model
          schema:
            $ref: '#/definitions/UserDeviceEditModel'
      responses:
        '200':
          description: The device was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerUserDevice
      summary: Removes the given user device
      operationId: DeleteResourceOwnerUserDevice
      parameters:
        - in: path
          name: userDeviceId
          description: The user device id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The device has been deleted
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle you tried to remove can''t be found'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/userdevice/adduserdeviceifnewanddefaulttriggers:
    put:
      tags:
        - ResourceOwnerUserDevice
      summary: 'Add the user deivce if it isn''t already exist, also adds default mobile push triggers'
      operationId: AddUserDeviceIfNewAndDefaultTriggers
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The user device model
          schema:
            $ref: '#/definitions/UserDeviceCreateModel'
      responses:
        '200':
          description: The device was added
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/userdevice/adduserdeviceifnew:
    put:
      tags:
        - ResourceOwnerUserDevice
      summary: Add the user deivce if it isn't already exist
      operationId: AddUserDeviceIfNew
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The user device model
          schema:
            $ref: '#/definitions/UserDeviceCreateModel2'
      responses:
        '200':
          description: The device was added
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles2:
    get:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Get all vehicles that the user has access to
      description: Only returns vehicles that the user have access to
      operationId: GetResourceOwnerVehicles2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: companyId
          description: Filter on companyId
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicles are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/Vehicle2Model'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Creates a new vehicle
      description: This will create a new vehicle and make the association you set.
      operationId: CreateResourceOwnerVehicle2
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The vehicle model
          schema:
            $ref: '#/definitions/Vehicle2CreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created vehicle
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicles2/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Get the details about the vehicle
      description: Only vehicles that the user has relationships with are allowed.
      operationId: GetResourceOwnerVehicle2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicles are returned
          schema:
            $ref: '#/definitions/Vehicle2DetailModel'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Updates the given vehicle with new model
      description: This will update the given vehicle id with a new model.
      operationId: EditResourceOwnerVehicle2
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new vehicle model
          schema:
            $ref: '#/definitions/Vehicle2EditModel'
      responses:
        '200':
          description: The vehicle was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Removes the given vehicle
      description: 'Removes the given vehicle. If the vehicle is assoicated with a device, first move the device to another vehicle'
      operationId: DeleteResourceOwnerVehicle2
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle has been deleted
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles2/VehicleInformation:
    get:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Returns the external information we have on the vehicle
      operationId: GetVehicleInformation
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: identifier
          description: Numberplate or Vin
          type: string
        - in: query
          name: identifierType
          description: 'NumberPlate = 0, VehicleInformationNumber = 1'
          type: integer
          format: int32
          enum:
            - 0
            - 1
      responses:
        '200':
          description: The vehicles are returned
          schema:
            $ref: '#/definitions/TransportstyrelsenInfoModel'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles2/status:
    get:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Get position and status of all vehicles that the user has access to
      description: 'Only returns vehicles that the user have access to. LastKnownFormattedAddress, LastKnownStreetAddress, LastKnownCity is only returned if vehicle is parked.'
      operationId: GetResourceOwnerVehiclesStatus2
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The vehicles are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleStatusModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicles2/status/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Get position and status of specific vehicle
      operationId: ResourceOwnerVehicle2Controller_GetVehicleStatus
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The status is returned
          schema:
            $ref: '#/definitions/VehicleStatusModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles2/checkin:
    post:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Check-in to a vehicle
      description: This will check-in the contact specified and if left empty it will check-in the calling user into a vehicle
      operationId: CheckInResourceOwnerVehicle2
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The vehicle checkin model
          schema:
            $ref: '#/definitions/VehicleCheckInModel'
      responses:
        '200':
          description: The user is checked in to vehicle
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles2/checkout:
    post:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Check-out from a vehicle
      description: This will check-out the calling user from a vehicle
      operationId: CheckOutResourceOwnerVehicle2
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/VehicleCheckOutModel'
      responses:
        '200':
          description: The user is checked out from the vehicle
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicles2/{vehicleId}/lasttrip':
    get:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Returns the last ongoing or ended trip for the vehicle specified
      description: ''
      operationId: GetResourceOwnerVehicleLastTrip2
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: Filter on companyId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicles are returned
          schema:
            $ref: '#/definitions/TripConcatenationModel'
        '404':
          description: Not trip for the vehicle could be found
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles2/move-device:
    post:
      tags:
        - ResourceOwnerVehicle2V2
      summary: Move device to new vehicle
      description: This will update the given vehicle id with a new model.
      operationId: MoveDevice
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/MoveDeviceRequest'
      responses:
        '200':
          description: The vehicle was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles3:
    get:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Get all vehicles that the user has access to
      description: Only returns vehicles that the user have access to
      operationId: GetResourceOwnerVehicles3
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The vehicles are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/Vehicle3Model'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Creates a new vehicle
      description: This will create a new vehicle and make the association you set.
      operationId: CreateResourceOwnerVehicle3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The vehicle model
          schema:
            $ref: '#/definitions/Vehicle3CreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created vehicle
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicles3/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Get the details about the vehicle
      description: Only vehicles that the user has relationships with are allowed.
      operationId: GetResourceOwnerVehicle3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicles are returned
          schema:
            $ref: '#/definitions/Vehicle3DetailModel'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Updates the given vehicle with new model
      description: This will update the given vehicle id with a new model.
      operationId: EditResourceOwnerVehicle3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new vehicle model
          schema:
            $ref: '#/definitions/Vehicle3EditModel'
      responses:
        '200':
          description: The vehicle was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles3/VehicleInformation:
    get:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Returns the external information we have on the vehicle
      operationId: GetVehicleInformation3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: identifier
          description: Numberplate or Vin
          type: string
        - in: query
          name: identifierType
          description: 'NumberPlate = 0, VehicleInformationNumber = 1'
          type: integer
          format: int32
          enum:
            - 0
            - 1
      responses:
        '200':
          description: The vehicles are returned
          schema:
            $ref: '#/definitions/TransportstyrelsenInfoModel'
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles3/status:
    get:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Get position and status of all vehicles that the user has access to
      description: 'Only returns vehicles that the user have access to. LastKnownFormattedAddress, LastKnownStreetAddress, LastKnownCity is only returned if vehicle is parked.'
      operationId: GetResourceOwnerVehiclesStatus3
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The vehicles are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleStatusModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicles3/status/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Get position and status of specific vehicle
      operationId: ResourceOwnerVehicle3Controller_GetVehicleStatus
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The status is returned
          schema:
            $ref: '#/definitions/VehicleStatusModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles3/checkin:
    post:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Check-in to a vehicle
      description: This will check-in the contact specified and if left empty it will check-in the calling user into a vehicle
      operationId: CheckInResourceOwnerVehicle3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The vehicle checkin model
          schema:
            $ref: '#/definitions/Vehicle3CheckInModel'
      responses:
        '200':
          description: The user is checked in to vehicle
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles3/checkout:
    post:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Check-out from a vehicle
      description: This will check-out the calling user from a vehicle
      operationId: CheckOutResourceOwnerVehicle3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          schema:
            $ref: '#/definitions/VehicleCheckOutModel'
      responses:
        '200':
          description: The user is checked out from the vehicle
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicles3/{vehicleId}/lasttrip':
    get:
      tags:
        - ResourceOwnerVehicle3V2
      summary: Returns the last ongoing or ended trip for the vehicle specified
      description: ''
      operationId: GetResourceOwnerVehicleLastTrip3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: Filter on companyId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicles are returned
          schema:
            $ref: '#/definitions/TripConcatenationModel'
        '404':
          description: Not trip for the vehicle could be found
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicledefectcomments/{vehicleDefectCommentId}':
    get:
      tags:
        - ResourceOwnerVehicleDefectComments
      summary: Get all a vehicle defect comment
      description: ''
      operationId: GetResourceOwnerVehicleDefectComment
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleDefectCommentId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle defect comment is returned
          schema:
            $ref: '#/definitions/VehicleDefectCommentsModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerVehicleDefectComments
      summary: Update a vehicle defect comment
      description: This will update the given vehicle id with a new model.
      operationId: EditResourceOwnerVehicleDefectComment
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleDefectCommentId
          description: The vehicle defect comment id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new vehicle inspection model
          schema:
            $ref: '#/definitions/VehicleDefectCommentsEditModel'
      responses:
        '200':
          description: The vehicle defect comment was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle defect comment you tried to update can''t be found'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicledefectcomments:
    get:
      tags:
        - ResourceOwnerVehicleDefectComments
      summary: Get all vehicle defect comments that the user has access to
      description: ''
      operationId: GetResourceOwnerVehicleDefectComments
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: vehicleDefectId
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle defect comments are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleDefectCommentsModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerVehicleDefectComments
      summary: Creates a new vehicle defect comment
      description: This will create a new vehicle defect comment and make the association you set.
      operationId: CreateResourceOwnerVehicleDefectComment
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The vehicle defect comment
          schema:
            $ref: '#/definitions/VehicleDefectCommentsCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created vehicle defect comment
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicledefectcomments3/{vehicleDefectCommentId}':
    get:
      tags:
        - ResourceOwnerVehicleDefectComments3
      summary: Get all a vehicle defect comment
      description: ''
      operationId: GetResourceOwnerVehicleDefectComment3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleDefectCommentId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle defect comment is returned
          schema:
            $ref: '#/definitions/VehicleDefectCommentsModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerVehicleDefectComments3
      summary: Update a vehicle defect comment
      description: This will update the given vehicle id with a new model.
      operationId: EditResourceOwnerVehicleDefectComment3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleDefectCommentId
          description: The vehicle defect comment id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new vehicle inspection model
          schema:
            $ref: '#/definitions/VehicleDefectCommentsEditModel'
      responses:
        '200':
          description: The vehicle defect comment was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle defect comment you tried to update can''t be found'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicledefectcomments3:
    get:
      tags:
        - ResourceOwnerVehicleDefectComments3
      summary: Get all vehicle defect comments that the user has access to
      description: ''
      operationId: GetResourceOwnerVehicleDefectComments3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: vehicleDefectId
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle defect comments are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleDefectCommentsModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerVehicleDefectComments3
      summary: Creates a new vehicle defect comment
      description: This will create a new vehicle defect comment and make the association you set.
      operationId: CreateResourceOwnerVehicleDefectComment3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The vehicle defect comment
          schema:
            $ref: '#/definitions/VehicleDefectCommentsCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created vehicle defect comment
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicledefecttypes:
    get:
      tags:
        - ResourceOwnerVehicleDefectTypes
      summary: Get all vehicle defect types
      description: ''
      operationId: GetResourceOwnerVehicleDefectTypes
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The vehicle inspections are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleDefectTypeModel'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehiclegeofence/{vehicleGeofenceId}':
    get:
      tags:
        - ResourceOwnerVehicleGeofence
      summary: Get vehicle geofence
      description: Only vehicle geofences that the user has access to are accessible.
      operationId: GetResourceOwnerVehicleGeofence
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleGeofenceId
          description: The vehicle geofence id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The geofences are returned
          schema:
            $ref: '#/definitions/VehicleGeofenceModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this geofence'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerVehicleGeofence
      summary: Removes association between a vehicle and geofence
      description: This will remove the association between a geofence and a vehicle.
      operationId: DeleteResourceOwnerVehicleGeofence
      parameters:
        - in: path
          name: vehicleGeofenceId
          description: The vehicleGeofenceId association to remove
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehcilegeofnece has been deleted
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerVehicleGeofence
      summary: Updates a vehicle geofence
      description: This will update the given vehicle geofence id with a new model.
      operationId: EditResourceOwnerVehicleGeofence
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleGeofenceId
          description: The vehicleGeofenceId
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new vehicleGeofence model
          schema:
            $ref: '#/definitions/VehicleGeofenceEditModel'
      responses:
        '200':
          description: The vehiclegeofence was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehiclegeofence:
    get:
      tags:
        - ResourceOwnerVehicleGeofence
      summary: Get vehicle geofence
      description: Only vehicle geofences that the user has access to are accessible.
      operationId: GetResourceOwnerVehicleGeofenceGeofenceId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: geofenceId
          description: The geofence id
          type: integer
          format: int32
      responses:
        '200':
          description: The geofences are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleGeofenceModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this geofence'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerVehicleGeofence
      summary: Associate a vehicle with a geofence
      description: This will create a new association between a geofence and a vehicle.
      operationId: CreateResourceOwnerVehicleGeofence
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The company model
          schema:
            $ref: '#/definitions/VehicleGeofenceCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created geofence
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this geofence'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehiclehealth/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicleHealth
      summary: Get health indicators for a vehicle
      description: Only vehicle that the user has access to can be queried
      operationId: GetResourceOwnerVehicleHealth
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The VehicleHealths are returned
          schema:
            $ref: '#/definitions/VehicleHealth'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehiclehealth/{dateperiod}/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicleHealth
      summary: Get health indicators for a vehicle over a period of time
      description: Only vehicle that the user has access to can be queried
      operationId: GetResourceOwnerVehicleHealthPeriod
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The VehicleHealths are returned
          schema:
            $ref: '#/definitions/VehicleHealth'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '400':
          description: 'Bad request, date period is not in a correct format'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehiclehealth3/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicleHealth3
      summary: Get health indicators for a vehicle
      description: Only vehicle that the user has access to can be queried
      operationId: GetResourceOwnerVehicleHealth3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The VehicleHealths are returned
          schema:
            $ref: '#/definitions/VehicleHealth'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehiclehealth3/{dateperiod}/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicleHealth3
      summary: Get health indicators for a vehicle over a period of time
      description: Only vehicle that the user has access to can be queried
      operationId: GetResourceOwnerVehicleHealthPeriod3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: dateperiod
          description: 'Date period parameter, in the form of only year (2014), year and month (201401), or interval {201301-201401}'
          required: true
          type: string
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The VehicleHealths are returned
          schema:
            $ref: '#/definitions/VehicleHealth'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '400':
          description: 'Bad request, date period is not in a correct format'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicleinspection/{vehicleInspectionId}':
    get:
      tags:
        - ResourceOwnerVehicleInspection
      summary: Get a vehicle inspection
      description: Only returns vehicle inspetions that the user have access to
      operationId: GetResourceOwnerVehicleInspection
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleInspectionId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle inspection is returned
          schema:
            $ref: '#/definitions/VehicleInspectionModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerVehicleInspection
      summary: Updates the given vehicle inspection with new model
      description: This will update the given vehicle id with a new model.
      operationId: EditResourceOwnerVehicleInspection
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleInspectionId
          description: The vehicle inspection id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new vehicle inspection model
          schema:
            $ref: '#/definitions/VehicleInspectionEditModel'
      responses:
        '200':
          description: The vehicle inspection was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle inspection you tried to update can''t be found'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicleinspection:
    get:
      tags:
        - ResourceOwnerVehicleInspection
      summary: Get all vehicle inspections that the user has access to
      description: Only returns vehicle inspetions that the user have access to
      operationId: GetResourceOwnerVehicleInspections
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: vehicleInspectionId
          type: integer
          format: int32
        - in: query
          name: vehicleId
          type: integer
          format: int32
        - in: query
          name: fromDate
          type: string
          format: date-time
        - in: query
          name: toDate
          type: string
          format: date-time
        - in: query
          name: excludeArchived
          type: boolean
          default: true
      responses:
        '200':
          description: The vehicle inspections are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleInspectionModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerVehicleInspection
      summary: Creates a new vehicle inspection
      description: This will create a new vehicle inspection and make the association you set.
      operationId: CreateResourceOwnerVehicleInspection
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The vehicle inspection model
          schema:
            $ref: '#/definitions/VehicleInspectionCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created vehicle inspection
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicleinspection/export/{vehicleInspectionId}':
    post:
      tags:
        - ResourceOwnerVehicleInspection
      summary: Export a vehicle inspection in pdf format via email
      description: Only vehicle inspections that the user has access rights to are accessible.
      operationId: ExportResourceOwnerVehicleInspection
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleInspectionId
          description: The VehicleInspectionId of the Vehicle Inspection to export
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The model containing reciving email address and language of the email
          schema:
            $ref: '#/definitions/VehicleInspectionExportModel'
      responses:
        '200':
          description: Success status if the operation was successfull and an email has been sent
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicleinspection3/{vehicleInspectionId}':
    get:
      tags:
        - ResourceOwnerVehicleInspection3
      summary: Get a vehicle inspection
      description: Only returns vehicle inspetions that the user have access to
      operationId: GetResourceOwnerVehicleInspection3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleInspectionId
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle inspection is returned
          schema:
            $ref: '#/definitions/VehicleInspectionModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerVehicleInspection3
      summary: Updates the given vehicle inspection with new model
      description: This will update the given vehicle id with a new model.
      operationId: EditResourceOwnerVehicleInspection3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleInspectionId
          description: The vehicle inspection id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new vehicle inspection model
          schema:
            $ref: '#/definitions/VehicleInspectionEditModel'
      responses:
        '200':
          description: The vehicle inspection was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '404':
          description: 'Not found, the vehicle inspection you tried to update can''t be found'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicleinspection3:
    get:
      tags:
        - ResourceOwnerVehicleInspection3
      summary: Get all vehicle inspections that the user has access to
      description: Only returns vehicle inspetions that the user have access to
      operationId: GetResourceOwnerVehicleInspections3
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: vehicleInspectionId
          type: integer
          format: int32
        - in: query
          name: vehicleId
          type: integer
          format: int32
        - in: query
          name: fromDate
          type: string
          format: date-time
        - in: query
          name: toDate
          type: string
          format: date-time
        - in: query
          name: excludeArchived
          type: boolean
          default: true
      responses:
        '200':
          description: The vehicle inspections are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleInspectionModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerVehicleInspection3
      summary: Creates a new vehicle inspection
      description: This will create a new vehicle inspection and make the association you set.
      operationId: CreateResourceOwnerVehicleInspection3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The vehicle inspection model
          schema:
            $ref: '#/definitions/VehicleInspectionCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created vehicle inspection
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicleinspection3/export/{vehicleInspectionId}':
    post:
      tags:
        - ResourceOwnerVehicleInspection3
      summary: Export a vehicle inspection in pdf format via email
      description: Only vehicle inspections that the user has access rights to are accessible.
      operationId: ExportResourceOwnerVehicleInspection3
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleInspectionId
          description: The VehicleInspectionId of the Vehicle Inspection to export
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The model containing reciving email address and language of the email
          schema:
            $ref: '#/definitions/VehicleInspectionExportModel'
      responses:
        '200':
          description: Success status if the operation was successfull and an email has been sent
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicles/odometer/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicleOdometerV2
      summary: Get current odometer value
      description: Only vehicles that the user has relationships with are allowed.
      operationId: ResourceOwnerVehicleOdometerController_GetVehicleOdometer
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: Vehicle id
          required: true
          type: integer
          format: int32
        - in: query
          name: fromDateUtc
          description: Period from-date
          type: string
          format: date-time
        - in: query
          name: toDateUtc
          description: Period to-date
          type: string
          format: date-time
      responses:
        '200':
          description: The vehicle odmeter details are returned
          schema:
            $ref: '#/definitions/VehicleOdometerModelGET'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicles/odometer/{vehicleId}/calculate':
    get:
      tags:
        - ResourceOwnerVehicleOdometerV2
      summary: Calculate trips changes if odometer value changes
      description: Only vehicles that the user has relationships with are allowed.
      operationId: ResourceOwnerVehicleOdometerController_CalculateVehicleOdometer
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: Vehicle id
          required: true
          type: integer
          format: int32
        - in: query
          name: fromDateUtc
          description: Optional period from-date defaults to first day och last month
          type: string
          format: date-time
        - in: query
          name: toDateUtc
          description: Optional period from-date defaults to last day of last month
          type: string
          format: date-time
        - in: query
          name: newOdometerValue
          description: For calculating new trip values
          type: number
          format: double
      responses:
        '200':
          description: The vehicle odmeter details are returned
          schema:
            $ref: '#/definitions/CalculatedOdometerModelGET'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles/odometer/updateodometer:
    put:
      tags:
        - ResourceOwnerVehicleOdometerV2
      summary: Updates the given vehicle with new odometer value
      description: 'This will update the odometer value of a vehicle. Max 5 percentage change of odometer value is permitted. Note: 23:59:59 is added to ToDateUtc.'
      operationId: ResourceOwnerVehicleOdometerController_SaveVehicleOdometer
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The new vehicle model
          schema:
            $ref: '#/definitions/VehicleOdometerModelPUT'
      responses:
        '200':
          description: The odometer value was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of reasons, see return message'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicleplace/{vehiclePlaceId}':
    get:
      tags:
        - ResourceOwnerVehiclePlace
      summary: Get vehicle place
      description: Only vehicle places that the user has access to are accessible.
      operationId: GetResourceOwnerVehiclePlace
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehiclePlaceId
          description: The vehicle place id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle places are returned
          schema:
            $ref: '#/definitions/VehiclePlaceModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this place'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerVehiclePlace
      summary: Edit the relationship between the vehicle and the place
      operationId: EditResourceOwnerVehiclePlace
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehiclePlaceId
          description: The vehicle place id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new vehicle place model
          schema:
            $ref: '#/definitions/VehiclePlaceEditModel'
      responses:
        '200':
          description: The vehiclegeofence was saved
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerVehiclePlace
      summary: Removes association between a vehicle and place
      description: This will remove the association between a place and a vehicle.
      operationId: DeleteResourceOwnerVehiclePlace
      parameters:
        - in: path
          name: vehiclePlaceId
          description: The vehiclePlaceId association to remove
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicleplace has been deleted
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicleplace:
    get:
      tags:
        - ResourceOwnerVehiclePlace
      summary: Get vehicle place
      description: Only vehicle places that the user has access to are accessible.
      operationId: GetResourceOwnerVehiclePlaceId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: placeId
          description: The place id
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle places are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehiclePlaceModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this place'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerVehiclePlace
      summary: Associate a vehicle with a place
      operationId: CreateResourceOwnerVehiclePlace
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The model which to create the association between vehicle and place
          schema:
            $ref: '#/definitions/VehiclePlaceCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created Vehicle Place
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, could occur for a number of reasons, see returned message'
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles:
    get:
      tags:
        - ResourceOwnerVehicleV2
      summary: Get all vehicles that the user has access to
      description: Only returns vehicles that the user have access to
      operationId: GetResourceOwnerVehicles
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The vehicles are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerVehicleV2
      summary: Creates a new vehicle
      description: This will create a new vehicle and make the association you set.
      operationId: CreateResourceOwnerVehicle
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: The vehicle model
          schema:
            $ref: '#/definitions/VehicleCreateModel'
      responses:
        '200':
          description: A link in the header is returned to the newly created vehicle
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/vehicles/{vehicleId}':
    get:
      tags:
        - ResourceOwnerVehicleV2
      summary: Get the details about the vehicle
      description: Only vehicles that the user has relationships with are allowed.
      operationId: GetResourceOwnerVehicle
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle details are returned
          schema:
            $ref: '#/definitions/VehicleDetailModel'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerVehicleV2
      summary: Updates the given vehicle with new model
      description: This will update the given vehicle id with a new model.
      operationId: EditResourceOwnerVehicle
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: The new vehicle model
          schema:
            $ref: '#/definitions/VehicleEditModel'
      responses:
        '200':
          description: The vehicle was saved
        '500':
          description: Internal server error
        '400':
          description: 'Bad request, could occur for a number of cases, see returned message'
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerVehicleV2
      summary: Removes the given vehicle
      description: 'Removes the given vehicle. If the vehicle is assoicated with a device, first move the device to another vehicle'
      operationId: DeleteResourceOwnerVehicle
      parameters:
        - in: path
          name: vehicleId
          description: The vehicle id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: The vehicle has been deleted
        '500':
          description: Internal server error
        '403':
          description: 'Request is forbidden, meaning you don''t have access to this vehicle'
        '404':
          description: 'Not found, the vehicle you tried to update can''t be found'
      security:
        - oauth2: [ ]
  /v1/resourceowner/vehicles/status:
    get:
      tags:
        - ResourceOwnerVehicleV2
      summary: Get position and status of all vehicles that the user has access to
      description: 'Only returns vehicles that the user have access to. LastKnownFormattedAddress, LastKnownStreetAddress, LastKnownCity is only returned if vehicle is parked.'
      operationId: GetResourceOwnerVehiclesStatus
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: The vehicle details are returned
          schema:
            type: array
            items:
              $ref: '#/definitions/VehicleStatusModel'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/workorders:
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: 'Retrieve a list of work orders and their containing attachments, items and notes'
      description: 'If no time is set on the "to" parameter, then it''s assumed all entries on the date should be included, and the time part will be set to 11:59:59 PM'
      operationId: ResourceOwnerWorkOrder_GetWorkOrderList
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: query
          name: from
          description: Filter on JobDate to be on or after the specified date and time (default is from now)
          type: string
          format: date-time
        - in: query
          name: to
          description: Filter on JobDate to be before the specified date and time (default is no limitation)
          type: string
          format: date-time
        - in: query
          name: jobStatus
          description: 'Status on job (New = 0, Started = 1, Paused = 2, Completed = 3, Cancelled = 4, Invoiced = 5, Paid = 6) (default is all)'
          type: integer
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
        - in: query
          name: includeUnassigned
          description: Include unassigned jobs (default is true)
          type: boolean
          default: true
        - in: query
          name: includeDeleted
          description: Include deleted jobs (default is false)
          type: boolean
          default: false
      responses:
        '200':
          description: Successful request
          schema:
            type: array
            items:
              $ref: '#/definitions/WorkOrderModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerWorkOrder
      summary: 'Create a work order and containing attachments, items and notes'
      operationId: ResourceOwnerWorkOrder_CreateWorkOrder
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Work order model
          schema:
            $ref: '#/definitions/WorkOrderModelPOST'
      responses:
        '200':
          description: Success
        '201':
          description: Successfully created
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerWorkOrder
      summary: Update or create one or many work orders
      description: "For work orders, items, attachments and notes with an id is updated. When id is not provided new objects is created. If an \r\n            item, attachment or note is missing on an existing work order that item, attachment or note is removed."
      operationId: ResourceOwnerWorkOrder_SaveWorkOrderList
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: body
          name: body
          description: List of Work Orders
          schema:
            type: array
            items:
              $ref: '#/definitions/WorkOrderModelSyncPUT'
      responses:
        '200':
          description: Successful update
          schema:
            type: array
            items:
              $ref: '#/definitions/WorkOrderModelGET'
        '500':
          description: Internal server error.
      security:
        - oauth2: [ ]
  '/v1/resourceowner/workorders/{workOrderId}':
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: Retrieve a work order
      operationId: ResourceOwnerWorkOrder_GetWorkOrder
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: workOrderId
          description: Work order id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successful request
          schema:
            $ref: '#/definitions/WorkOrderModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerWorkOrder
      summary: Update a work order
      operationId: ResourceOwnerWorkOrder_UpdateWorkOrder
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: workOrderId
          description: Work order id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Work order
          schema:
            $ref: '#/definitions/WorkOrderModelPUT'
      responses:
        '200':
          description: Successful update
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerWorkOrder
      summary: Delete work order
      operationId: ResourceOwnerWorkOrder_DeleteWorkOrder
      parameters:
        - in: path
          name: workOrderId
          description: Work order id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successful delete
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/workorders/getwithquoteid/{quoteId}':
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: Retrieve a work order by quote id
      operationId: ResourceOwnerWorkOrder_GetWorkOrderByQuoteId
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: quoteId
          description: Quote id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successful request
          schema:
            $ref: '#/definitions/WorkOrderModelGET'
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/workorders/{workOrderId}/attachments':
    post:
      tags:
        - ResourceOwnerWorkOrder
      summary: Creates an attachment and adds it to an existing work order
      operationId: ResourceOwnerWorkOrder_CreateAttachment
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: workOrderId
          description: The work order which the attachment will be associated with
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Attachment information
          schema:
            $ref: '#/definitions/WorkOrderAttachmentModelPOST'
      responses:
        '200':
          description: Success
        '201':
          description: Successfully created
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/workorders/{workOrderId}/status':
    put:
      tags:
        - ResourceOwnerWorkOrder
      summary: Update status of a work order
      operationId: ResourceOwnerWorkOrder_UpdateWorkOrderStatus
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: workOrderId
          description: The work order which the satus should be updated on
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Job status
          schema:
            $ref: '#/definitions/WorkOrderStatusModelPUT'
      responses:
        '200':
          description: Successful update
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/workorders/articles:
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: Get all articles
      operationId: ResourceOwnerWorkOrder_GetArticleList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: Successful request
          schema:
            type: array
            items:
              $ref: '#/definitions/WorkOrderArticleModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerWorkOrder
      summary: Create a article
      operationId: ResourceOwnerWorkOrder_CreateArticle
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Article information
          schema:
            $ref: '#/definitions/WorkOrderArticleModelPOST'
      responses:
        '200':
          description: Success
        '201':
          description: Successfully created
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/workorders/articles/{workOrderArticleId}':
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: Get a specific article
      operationId: ResourceOwnerWorkOrder_GetArticle
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: workOrderArticleId
          description: Work order article id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successful request
          schema:
            $ref: '#/definitions/WorkOrderArticleModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerWorkOrder
      summary: Update a article
      operationId: ResourceOwnerWorkOrder_UpdateArticle
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: path
          name: workOrderArticleId
          description: Work order article id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Article information
          schema:
            $ref: '#/definitions/WorkOrderArticleModelPUT'
      responses:
        '200':
          description: Successfully updated
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerWorkOrder
      summary: Delete a article
      operationId: ResourceOwnerWorkOrder_DeleteArticle
      parameters:
        - in: path
          name: workOrderArticleId
          description: Work order article id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successfully deleted
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/workorders/categories:
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: Get all categories
      operationId: ResourceOwnerWorkOrder_GetCategoryList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: Successful request
          schema:
            type: array
            items:
              $ref: '#/definitions/WorkOrderCategoryModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerWorkOrder
      summary: Create a category
      operationId: ResourceOwnerWorkOrder_CreateCategory
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Category information
          schema:
            $ref: '#/definitions/WorkOrderCategoryModelPOST'
      responses:
        '200':
          description: Success
        '201':
          description: Successfully created
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/workorders/categories/{workOrderCategoryId}':
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: Get a specific category
      operationId: ResourceOwnerWorkOrder_GetCategory
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: workOrderCategoryId
          description: Work order category id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successful request
          schema:
            $ref: '#/definitions/WorkOrderCategoryModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerWorkOrder
      summary: Delete a category
      operationId: ResourceOwnerWorkOrder_DeleteCategory
      parameters:
        - in: path
          name: workOrderCategoryId
          description: Work order category id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successfully deleted
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/workorders/customers:
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: Get all customers
      operationId: ResourceOwnerWorkOrder_GetCustomerList
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: Successful request
          schema:
            type: array
            items:
              $ref: '#/definitions/WorkOrderCustomerModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    post:
      tags:
        - ResourceOwnerWorkOrder
      summary: Create a customer
      operationId: ResourceOwnerWorkOrder_CreateCustomer
      consumes:
        - application/json
        - text/json
        - application/*+json
      parameters:
        - in: body
          name: body
          description: Customer information
          schema:
            $ref: '#/definitions/WorkOrderCustomerModelPOST'
      responses:
        '200':
          description: Success
        '201':
          description: Successfully created
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  '/v1/resourceowner/workorders/customers/{workOrderCustomerId}':
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: Get a specific customer
      operationId: ResourceOwnerWorkOrder_GetCustomer
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: workOrderCustomerId
          description: Work order customer id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successful request
          schema:
            $ref: '#/definitions/WorkOrderCustomerModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    put:
      tags:
        - ResourceOwnerWorkOrder
      summary: Update a customer
      operationId: ResourceOwnerWorkOrder_UpdateCustomer
      consumes:
        - application/json
        - text/json
        - application/*+json
      produces:
        - text/plain
        - application/json
        - text/json
      parameters:
        - in: path
          name: workOrderCustomerId
          description: Work order customer id
          required: true
          type: integer
          format: int32
        - in: body
          name: body
          description: Customer information
          schema:
            $ref: '#/definitions/WorkOrderCustomerModelPUT'
      responses:
        '200':
          description: Successfully updated
          schema:
            $ref: '#/definitions/WorkOrderCustomerModelGET'
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
    delete:
      tags:
        - ResourceOwnerWorkOrder
      summary: Delete a customer
      operationId: ResourceOwnerWorkOrder_DeleteCustomer
      parameters:
        - in: path
          name: workOrderCustomerId
          description: Work order customer id
          required: true
          type: integer
          format: int32
      responses:
        '200':
          description: Successfully deleted
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
  /v1/resourceowner/workorders/referenceId:
    get:
      tags:
        - ResourceOwnerWorkOrder
      summary: Get a new reference id for a work order (not unique)
      operationId: ResourceOwnerWorkOrder_GetNextWorkOrderId
      produces:
        - text/plain
        - application/json
        - text/json
      responses:
        '200':
          description: Successful request
          schema:
            type: string
        '403':
          description: Forbidden access to resource
        '500':
          description: Internal server error
      security:
        - oauth2: [ ]
definitions:
  APIAuthorizationModel:
    type: object
    properties:
      APIAuthorizationId:
        format: int32
        type: integer
      IssueDate:
        format: date-time
        type: string
      APIClientId:
        format: int32
        type: integer
      UserId:
        format: int32
        type: integer
      ScopesDelimitedBySpaces:
        type: string
      ExpirationDateUtc:
        format: date-time
        type: string
    additionalProperties: false
  APIClientModel:
    type: object
    properties:
      APIClientId:
        format: int32
        type: integer
      APIClientIdentifier:
        type: string
      Name:
        type: string
      ScopesDelimitedBySpaces:
        type: string
      ClientType:
        type: string
    additionalProperties: false
  AccountInformationModel:
    type: object
    properties:
      AccountOutstandingMessage:
        $ref: '#/definitions/AccountOutstandingMessageModel'
    additionalProperties: false
  AccountOutstandingMessageModel:
    type: object
    properties:
      Title:
        type: string
      Message:
        type: string
    additionalProperties: false
  AddressModel:
    required:
      - AddressLine2
      - City
      - ISO3166CountryCode
      - ZipCode
    type: object
    properties:
      AddressId:
        format: int32
        type: integer
      CompanyName:
        type: string
      ContactNameAtAddress:
        type: string
      AddressLine2:
        minLength: 1
        type: string
      AddressLine3:
        type: string
      AddressLine4:
        type: string
      ZipCode:
        minLength: 1
        type: string
      City:
        minLength: 1
        type: string
      StateOrProvince:
        type: string
      ISO3166CountryCode:
        minLength: 1
        type: string
    additionalProperties: false
  AlphabetInformationModel:
    type: object
    properties:
      LoginIsRequired:
        type: boolean
      VehicleList:
        type: array
        items:
          $ref: '#/definitions/IntegrationVehicleModel'
    additionalProperties: false
  AlphabetMileageLogModel:
    type: object
    properties:
      StartOdometerKm:
        format: int32
        type: integer
      EndOdometerKm:
        format: int32
        type: integer
      BusinessKm:
        format: int32
        type: integer
      IsApproved:
        type: boolean
      TotalKm:
        format: int32
        type: integer
        readOnly: true
      OtherAndPrivateKm:
        format: int32
        type: integer
        readOnly: true
    additionalProperties: false
  AmbientAirTemperatureModel:
    description: PID70
    type: object
    properties:
      TemperatureInCelsius:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  ApiPriceModel:
    type: object
    properties:
      ISO4217CurrencyCode:
        type: string
      IsYearlySubscription:
        type: boolean
      SubscriptionFeePerDeviceAndMonth:
        format: double
        type: number
      SubscriptionFeePerDeviceAndYear:
        format: double
        type: number
      NumberOfUnits:
        format: double
        type: number
      UnitFee:
        format: double
        type: number
      UnitTotalFee:
        format: double
        type: number
      SubscriptionFee:
        format: double
        type: number
      SubscriptionTotalFee:
        format: double
        type: number
      ShipmentFee:
        format: double
        type: number
      TotalFee:
        format: double
        type: number
      SubscriptionTotalFeeDescription:
        type: string
      UnitTotalFeeDescription:
        type: string
      ShipmentFeeDescription:
        type: string
      SubscriptionFeePerDeviceAndMonthDescription:
        type: string
      SubscriptionFeePerDeviceAndYearDescription:
        type: string
      FreightForwarderUrl:
        type: string
      FreightForwarderDescription:
        type: string
      ArticlePriceIdMonthlyPlan:
        format: int32
        type: integer
      ArticlePriceIdYearlyPlan:
        format: int32
        type: integer
    additionalProperties: false
  AssetCommandModel:
    type: object
    properties:
      Command:
        format: int32
        enum:
          - 1
          - 2
          - 3
        type: integer
      Endpoint:
        type: string
      AvailableUntil:
        format: date-time
        type: string
      TrackingIntervalList:
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  AutoPlanV2DrivingJournalModel:
    type: object
    properties:
      StartOdometerKm:
        format: int32
        type: integer
      EndOdometerKm:
        format: int32
        type: integer
      BusinessKm:
        format: int32
        type: integer
      IsApproved:
        type: boolean
    additionalProperties: false
  AutoPlanV2InformationModel:
    type: object
    properties:
      VehicleList:
        type: array
        items:
          $ref: '#/definitions/AutoPlanV2VehicleInfo'
    additionalProperties: false
  AutoPlanV2InformationRequestModel:
    type: object
    properties:
      PersonalIdentityNumber:
        type: string
    additionalProperties: false
  AutoPlanV2PeriodInfo:
    type: object
    properties:
      Year:
        format: int32
        type: integer
      Month:
        format: int32
        type: integer
      IsSelected:
        type: boolean
    additionalProperties: false
  AutoPlanV2SendDrivingJournalRequestModel:
    type: object
    properties:
      PersonalIdentityNumber:
        type: string
      JournalData:
        $ref: '#/definitions/AutoPlanV2DrivingJournalModel'
    additionalProperties: false
  AutoPlanV2VehicleInfo:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      FriendlyName:
        type: string
      NumberPlate:
        type: string
      IsVehicleApproved:
        type: boolean
      PeriodList:
        type: array
        items:
          $ref: '#/definitions/AutoPlanV2PeriodInfo'
    additionalProperties: false
  AutoplanInformationModel:
    type: object
    properties:
      LoginIsRequired:
        type: boolean
      VehicleList:
        type: array
        items:
          $ref: '#/definitions/IntegrationVehicleModel'
    additionalProperties: false
  AutoplanMileageLogModel:
    type: object
    properties:
      StartOdometerKm:
        format: int32
        type: integer
      EndOdometerKm:
        format: int32
        type: integer
      BusinessKm:
        format: int32
        type: integer
      IsApproved:
        type: boolean
      TotalKm:
        format: int32
        type: integer
        readOnly: true
      OtherAndPrivateKm:
        format: int32
        type: integer
        readOnly: true
    additionalProperties: false
  BatteryEvent:
    type: object
    properties:
      Occured:
        format: date-time
        type: string
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
      BatteryStatus:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
    additionalProperties: false
  BilredaInformationModel:
    type: object
    properties:
      LoginIsRequired:
        type: boolean
      VehicleList:
        type: array
        items:
          $ref: '#/definitions/IntegrationVehicleModel'
    additionalProperties: false
  BilredaMileageLogModel:
    type: object
    properties:
      StartOdometerKm:
        format: int32
        type: integer
      EndOdometerKm:
        format: int32
        type: integer
      BusinessKm:
        format: int32
        type: integer
      IsApproved:
        type: boolean
      TotalKm:
        format: int32
        type: integer
        readOnly: true
      OtherAndPrivateKm:
        format: int32
        type: integer
        readOnly: true
      TollFeeBusiness:
        format: int32
        type: integer
    additionalProperties: false
  CO2ReportModel:
    type: object
    properties:
      Period:
        format: int32
        type: integer
      BusinessCO2InGrams:
        format: double
        type: number
      PersonalCO2InGrams:
        format: double
        type: number
      OtherCO2InGrams:
        format: double
        type: number
    additionalProperties: false
  CalculatedOdometerModelGET:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      DistanceBusiness:
        format: double
        type: number
      DistancePrivate:
        format: double
        type: number
      DistanceOther:
        format: double
        type: number
      DistanceTotal:
        format: double
        type: number
        readOnly: true
      StartOdometer:
        format: double
        type: number
      EndOdometer:
        format: double
        type: number
      FromDateUtc:
        format: date-time
        type: string
      ToDateUtc:
        format: date-time
        type: string
      NewDistanceBusiness:
        format: double
        type: number
      NewDistancePrivate:
        format: double
        type: number
      NewDistanceOther:
        format: double
        type: number
      NewDistanceTotal:
        format: double
        type: number
        readOnly: true
      NewEndOdometer:
        format: double
        type: number
    additionalProperties: false
  ChangePasswordModel:
    type: object
    properties:
      CurrentPassword:
        type: string
      NewPassword:
        type: string
    additionalProperties: false
  ChangeUserNameModel:
    type: object
    properties:
      NewUserName:
        type: string
    additionalProperties: false
  CompanyContactCreateModel:
    required:
      - CompanyId
      - ContactId
    type: object
    properties:
      CompanyId:
        format: int32
        type: integer
      ContactId:
        format: int32
        type: integer
    additionalProperties: false
  CompanyContactDetailModel:
    type: object
    properties:
      CompanyContactId:
        format: int32
        type: integer
      CompanyId:
        format: int32
        type: integer
      CompanyName:
        type: string
      ContactId:
        format: int32
        type: integer
      ContactName:
        type: string
      Scopes:
        type: array
        items:
          type: string
    additionalProperties: false
  CompanyContactEditModel:
    required:
      - CompanyId
      - ContactId
    type: object
    properties:
      CompanyId:
        format: int32
        type: integer
      ContactId:
        format: int32
        type: integer
    additionalProperties: false
  CompanyCreateModel:
    required:
      - CreateRelationshipToContactId
      - RegisteredCompanyName
    type: object
    properties:
      RegisteredCompanyName:
        maxLength: 255
        minLength: 0
        type: string
      RegistrationNumber:
        type: string
      Description:
        type: string
      CreateRelationshipToContactId:
        format: int32
        type: integer
    additionalProperties: false
  CompanyDetailModel:
    type: object
    properties:
      CompanyId:
        format: int32
        type: integer
      RegisteredCompanyName:
        type: string
      RegistrationNumber:
        type: string
      Description:
        type: string
      LastModified:
        format: date-time
        type: string
      Created:
        format: date-time
        type: string
    additionalProperties: false
  CompanyEditModel:
    required:
      - RegisteredCompanyName
    type: object
    properties:
      RegisteredCompanyName:
        maxLength: 255
        minLength: 0
        type: string
      RegistrationNumber:
        type: string
      Description:
        type: string
    additionalProperties: false
  CompanyModel:
    type: object
    properties:
      CompanyId:
        format: int32
        type: integer
      RegisteredCompanyName:
        type: string
      RegistrationNumber:
        type: string
    additionalProperties: false
  CompanyScopesModel:
    type: object
    properties:
      CompanyId:
        format: int32
        type: integer
      VehicleIds:
        type: array
        items:
          format: int32
          type: integer
      Scopes:
        type: array
        items:
          type: string
    additionalProperties: false
  CompanyVehicleCreateModel:
    required:
      - CompanyId
      - VehicleId
    type: object
    properties:
      CompanyId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
    additionalProperties: false
  CompanyVehicleEditModel:
    required:
      - CompanyId
      - VehicleId
    type: object
    properties:
      CompanyId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
    additionalProperties: false
  CompanyVehicleModel:
    type: object
    properties:
      CompanyVehicleId:
        format: int32
        type: integer
      CompanyId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
    additionalProperties: false
  Contact2CreateModel:
    required:
      - CreateRelationshipToCompanyId
      - FirstName
      - LastName
    type: object
    properties:
      FirstName:
        minLength: 1
        type: string
      LastName:
        minLength: 1
        type: string
      EmailAddress:
        type: string
      Description:
        type: string
      CreateRelationshipToCompanyId:
        format: int32
        type: integer
      CultureName:
        type: string
      CountryCodeIso1366:
        type: string
      DefaultVehicleId:
        format: int32
        type: integer
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      SubscribeToNewsLetter:
        type: boolean
      MobilePhoneNumber:
        type: string
      MapType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      CurrencyCode:
        description: ISO 4217 Currency code
        type: string
    additionalProperties: false
  Contact2DetailModel:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        type: string
      Description:
        type: string
      CultureName:
        type: string
      CountryCodeIso1366:
        type: string
      DefaultVehicleId:
        format: int32
        type: integer
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      SubscribeToNewsLetter:
        type: boolean
      MobilePhoneNumber:
        type: string
      MapType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      CheckedIntoVehicleId:
        format: int32
        type: integer
      CheckedInDateTimeUtc:
        format: date-time
        type: string
      CheckOutDateTimeUtc:
        format: date-time
        type: string
      CheckedInTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckedInCustomTripTypeName:
        type: string
      CompanyRoles:
        type: array
        items:
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
          type: integer
      ProfileImageUrl:
        type: string
      CurrencyCode:
        description: ISO 4217 Currency code
        type: string
      CompaniesScopes:
        type: array
        items:
          $ref: '#/definitions/CompanyScopesModel'
      IsLocked:
        type: boolean
      CustomCategories:
        type: array
        items:
          $ref: '#/definitions/CustomCategoryModel'
      CheckedInVehicleOdometerInKilometers:
        format: double
        type: number
      Organization:
        $ref: '#/definitions/OrganizationModel'
      HoursOfServiceSettingsModel:
        $ref: '#/definitions/HoursOfServiceSettingsModel'
      FieldServiceEnabled:
        type: boolean
      FieldServiceEnabledWithinOrganization:
        type: boolean
      ContactMenuLayout:
        $ref: '#/definitions/ContactMenuLayoutModel'
      CreatedAt:
        format: date-time
        type: string
    additionalProperties: false
  Contact2EditModel:
    type: object
    properties:
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        type: string
      Description:
        type: string
      CultureName:
        type: string
      CountryCodeIso1366:
        type: string
      DefaultVehicleId:
        format: int32
        type: integer
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      SubscribeToNewsLetter:
        type: boolean
      MobilePhoneNumber:
        type: string
      MapType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      CheckOutDateTimeUtc:
        format: date-time
        type: string
      CheckedInTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckedInCustomTripTypeName:
        type: string
      CurrencyCode:
        description: ISO 4217 Currency code
        type: string
    additionalProperties: false
  Contact2Model:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        type: string
      MobilePhoneNumber:
        type: string
      ProfileImageUrl:
        type: string
      CheckedInDateTimeUtc:
        format: date-time
        type: string
      CheckedIntoVehicleId:
        format: int32
        type: integer
      CheckedInVehicleOdometerInKilometers:
        format: double
        type: number
      IsManager:
        type: boolean
      LastCheckedInTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckedInCustomTripTypeName:
        type: string
      CompanyRoles:
        type: array
        items:
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
          type: integer
      CurrencyCode:
        description: ISO 4217 Currency code
        type: string
    additionalProperties: false
  Contact2UpdateRfidModel:
    type: object
    properties:
      Email:
        type: string
      Rfid:
        type: string
    additionalProperties: false
  Contact3CreateModel:
    required:
      - CreateRelationshipToCompanyId
      - FirstName
      - LastName
    type: object
    properties:
      FirstName:
        minLength: 1
        type: string
      LastName:
        minLength: 1
        type: string
      EmailAddress:
        type: string
      Description:
        type: string
      CreateRelationshipToCompanyId:
        format: int32
        type: integer
      CultureName:
        type: string
      CountryCodeIso1366:
        type: string
      DefaultVehicleId:
        format: int32
        type: integer
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      SubscribeToNewsLetter:
        type: boolean
      MobilePhoneNumber:
        type: string
      MapType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      CurrencyCode:
        description: ISO 4217 Currency code
        type: string
      OrganizationNodeId:
        format: int32
        type: integer
      OrganizationPermissions:
        $ref: '#/definitions/OrganizationPermissionBooleans'
    additionalProperties: false
  Contact3DetailModel:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        type: string
      Description:
        type: string
      CultureName:
        type: string
      CountryCodeIso1366:
        type: string
      DefaultVehicleId:
        format: int32
        type: integer
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      SubscribeToNewsLetter:
        type: boolean
      MobilePhoneNumber:
        type: string
      MapType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      CheckedIntoVehicleId:
        format: int32
        type: integer
      CheckedInDateTimeUtc:
        format: date-time
        type: string
      CheckOutDateTimeUtc:
        format: date-time
        type: string
      CheckedInTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckedInCustomTripTypeName:
        type: string
      CompanyRoles:
        type: array
        items:
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
          type: integer
      ProfileImageUrl:
        type: string
      OrganizationPermissions:
        $ref: '#/definitions/OrganizationPermissionBooleans'
      CurrencyCode:
        description: ISO 4217 Currency code
        type: string
      CompaniesScopes:
        type: array
        items:
          $ref: '#/definitions/CompanyScopesModel'
      IsLocked:
        type: boolean
      CustomCategories:
        type: array
        items:
          $ref: '#/definitions/CustomCategoryModel'
      OrganizationNodeId:
        format: int32
        type: integer
      Organization:
        $ref: '#/definitions/OrganizationModel'
      HoursOfServiceSettingsModel:
        $ref: '#/definitions/HoursOfServiceSettingsModel'
      FieldServiceEnabled:
        type: boolean
      FieldServiceEnabledWithinOrganization:
        type: boolean
      ContactMenuLayout:
        $ref: '#/definitions/ContactMenuLayoutModel'
      CreatedAt:
        format: date-time
        type: string
        readOnly: true
      AccountInformation:
        $ref: '#/definitions/AccountInformationModel'
      TripScoreInformation:
        $ref: '#/definitions/TripScoreInformationModel'
      SSO:
        type: boolean
      SSOConfig:
        $ref: '#/definitions/SSOConfigurationModel'
    additionalProperties: false
  Contact3EditModel:
    type: object
    properties:
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        type: string
      Description:
        type: string
      CultureName:
        type: string
      CountryCodeIso1366:
        type: string
      DefaultVehicleId:
        format: int32
        type: integer
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      SubscribeToNewsLetter:
        type: boolean
      MobilePhoneNumber:
        type: string
      MapType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      CheckOutDateTimeUtc:
        format: date-time
        type: string
      CheckedInTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckedInCustomTripTypeName:
        type: string
      CurrencyCode:
        description: ISO 4217 Currency code
        type: string
      OrganizationNodeId:
        format: int32
        type: integer
      OrganizationPermissions:
        $ref: '#/definitions/OrganizationPermissionBooleans'
    additionalProperties: false
  Contact3Model:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        type: string
      MobilePhoneNumber:
        type: string
      ProfileImageUrl:
        type: string
      CheckedInDateTimeUtc:
        format: date-time
        type: string
      CheckedIntoVehicleId:
        format: int32
        type: integer
      IsManager:
        type: boolean
      CompanyRoles:
        type: array
        items:
          format: int32
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
          type: integer
      CurrencyCode:
        description: ISO 4217 Currency code
        type: string
      LastCheckedInTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckedInCustomTripTypeName:
        type: string
      OrganizationNodeId:
        format: int32
        type: integer
      OrganizationPermissions:
        $ref: '#/definitions/OrganizationPermissionBooleans'
      IsEditable:
        type: boolean
    additionalProperties: false
  ContactCreateModel:
    required:
      - CreateRelationshipToCompanyId
      - FirstName
      - LastName
    type: object
    properties:
      FirstName:
        minLength: 1
        type: string
      LastName:
        minLength: 1
        type: string
      EmailAddress:
        type: string
      Description:
        type: string
      CreateRelationshipToCompanyId:
        format: int32
        type: integer
      CultureName:
        type: string
      DefaultVehicleId:
        format: int32
        type: integer
    additionalProperties: false
  ContactDetailModel:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        type: string
      Description:
        type: string
      CultureName:
        type: string
      DefaultVehicleId:
        format: int32
        type: integer
      FieldServiceEnabled:
        type: boolean
      FieldServiceEnabledWithinOrganization:
        type: boolean
    additionalProperties: false
  ContactEditModel:
    required:
      - FirstName
      - LastName
    type: object
    properties:
      FirstName:
        minLength: 1
        type: string
      LastName:
        minLength: 1
        type: string
      EmailAddress:
        type: string
      Description:
        type: string
      CultureName:
        type: string
      DefaultVehicleId:
        format: int32
        type: integer
    additionalProperties: false
  ContactMenuLayoutModel:
    type: object
    properties:
      MenuLayout:
        type: object
        additionalProperties:
          format: int64
          enum:
            - 0
            - 1
            - 2
            - 4
          type: integer
        readOnly: true
      ExpiresAtUtc:
        format: date-time
        description: UTC date time when menu layout cache was refreshed
        type: string
      RefreshedAtUtc:
        format: date-time
        description: UTC date time when menu layout cache was refreshed
        type: string
    additionalProperties: false
  ContactModel:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        type: string
    additionalProperties: false
  ContactSettingModelGET:
    type: object
    properties:
      Name:
        type: string
      Value:
        type: string
    additionalProperties: false
  ContactSettingModelPUT:
    type: object
    properties:
      Name:
        type: string
      Value:
        type: string
    additionalProperties: false
  ContactVehicleCreateModel:
    required:
      - ContactId
      - VehicleId
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      ContactId:
        format: int32
        type: integer
    additionalProperties: false
  ContactVehicleDetailModel:
    type: object
    properties:
      ContactVehicleId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      NumberPlate:
        type: string
      MakeModelName:
        type: string
      ContactId:
        format: int32
        type: integer
      ContactName:
        type: string
      LastModified:
        format: date-time
        type: string
      Created:
        format: date-time
        type: string
      Scopes:
        type: array
        items:
          type: string
    additionalProperties: false
  ContactVehicleEditModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      ContactId:
        format: int32
        type: integer
    additionalProperties: false
  ContactWebSocketAuthenticationTokenModel:
    type: object
    properties:
      ExpiresAtUtc:
        format: date-time
        type: string
      EncryptedToken:
        type: string
      UseHeaderForAuthentication:
        type: string
    additionalProperties: false
  ContentUploadResponseModel:
    type: object
    properties:
      URL:
        type: string
      GUID:
        format: uuid
        type: string
    additionalProperties: false
  CreateLeadModel:
    required:
      - DeviceType
      - Email
      - FirstName
      - LastName
      - NumberOfDevices
      - PhoneNumber
    type: object
    properties:
      DeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 255
        type: integer
      NumberOfDevices:
        format: int32
        type: integer
      FirstName:
        minLength: 1
        type: string
      LastName:
        minLength: 1
        type: string
      Email:
        minLength: 1
        type: string
      CompanyName:
        type: string
      PhoneNumber:
        minLength: 1
        type: string
    additionalProperties: false
  CreateOrderModel:
    required:
      - BillingAddress
      - BillingAddressCountry
      - BillingAddressState
      - BillingAddressZipCode
      - Company
      - Email
      - FirstName
      - LastName
      - MobilePhoneNumber
      - NumberOfDevices
      - OfficePhoneNumber
      - ShippingAddress
      - ShippingAddressCountry
      - ShippingAddressState
      - ShippingAddressZipCode
      - SubscriptionCurrency
    type: object
    properties:
      Company:
        minLength: 1
        type: string
      FirstName:
        minLength: 1
        type: string
      LastName:
        minLength: 1
        type: string
      Email:
        minLength: 1
        type: string
      NumberOfDevices:
        format: int32
        type: integer
      ShippingAddress:
        minLength: 1
        type: string
      ShippingAddressZipCode:
        minLength: 1
        type: string
      ShippingAddressState:
        minLength: 1
        type: string
      ShippingAddressCountry:
        minLength: 1
        type: string
      BillingAddress:
        minLength: 1
        type: string
      BillingAddressZipCode:
        minLength: 1
        type: string
      BillingAddressState:
        minLength: 1
        type: string
      BillingAddressCountry:
        minLength: 1
        type: string
      UseShippingAddressAsBillingAddress:
        type: boolean
      SubscriptionCurrency:
        minLength: 1
        type: string
      MobilePhoneNumber:
        minLength: 1
        type: string
      OfficePhoneNumber:
        minLength: 1
        type: string
      LeadId:
        format: int32
        type: integer
    additionalProperties: false
  CreatePinModel:
    type: object
    properties:
      UserName:
        type: string
      MobilePhoneNumber:
        type: string
      UserGuid:
        format: uuid
        type: string
      Culture:
        type: string
    additionalProperties: false
  CreatedAtRoute:
    type: object
    properties:
      RouteName:
        type: string
        readOnly: true
      RouteValues:
        type: object
        additionalProperties: { }
        readOnly: true
      StatusCode:
        format: int32
        type: integer
        readOnly: true
    additionalProperties: false
  CustomCategoryCreateModel:
    type: object
    properties:
      Value:
        type: string
      CustomCategoryType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
    additionalProperties: false
  CustomCategoryModel:
    type: object
    properties:
      CustomCategoryId:
        format: int32
        type: integer
      Value:
        type: string
      CustomCategoryType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
    additionalProperties: false
  CustomCategoryPostModel:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      Added:
        description: Custom categories to add
        type: array
        items:
          $ref: '#/definitions/CustomCategoryCreateModel'
      Removed:
        description: Custom categories to delete
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  CustomUserCreateModel:
    required:
      - EmailAddress
      - IMEI
      - SerialNumber
      - UserName
    type: object
    properties:
      UserName:
        minLength: 1
        type: string
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        format: email
        minLength: 1
        type: string
      MobilePhoneNumber:
        type: string
      Description:
        type: string
      Password:
        type: string
      IMEI:
        minLength: 1
        type: string
      SerialNumber:
        minLength: 1
        type: string
      Culture:
        type: string
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
    additionalProperties: false
  CustomUserCreateWithoutPasswordModel:
    required:
      - EmailAddress
      - UserName
    type: object
    properties:
      UserName:
        minLength: 1
        type: string
      FirstName:
        type: string
      LastName:
        type: string
      EmailAddress:
        format: email
        minLength: 1
        type: string
      MobilePhoneNumber:
        type: string
      Description:
        type: string
      Culture:
        type: string
      IMEI:
        type: string
      SerialNumber:
        type: string
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
    additionalProperties: false
  CustomerBillingAddressModel:
    type: object
    properties:
      Street:
        type: string
      Apartment:
        type: string
      CareOf:
        type: string
      ZipCode:
        type: string
      City:
        type: string
      StateOrProvince:
        type: string
      ISO3166CountryCode:
        type: string
      Position:
        $ref: '#/definitions/PositionPointModel'
    additionalProperties: false
  CustomerJobAddressModel:
    type: object
    properties:
      Street:
        type: string
      Apartment:
        type: string
      CareOf:
        type: string
      ZipCode:
        type: string
      City:
        type: string
      StateOrProvince:
        type: string
      ISO3166CountryCode:
        type: string
      Position:
        $ref: '#/definitions/PositionPointModel'
    additionalProperties: false
  Cycle:
    type: object
    properties:
      WorkShifts:
        type: array
        items:
          $ref: '#/definitions/WorkShift'
      TotalTime:
        $ref: '#/definitions/TimeSpan'
      OffDutyTime:
        $ref: '#/definitions/TimeSpan'
      OnDutyTime:
        $ref: '#/definitions/TimeSpan'
      DrivingTime:
        $ref: '#/definitions/TimeSpan'
      SleeperBerthTime:
        $ref: '#/definitions/TimeSpan'
      NumberOfDays:
        format: double
        type: number
        readOnly: true
      OnDutyAndDriving:
        format: double
        type: number
        readOnly: true
    additionalProperties: false
  DTC:
    type: object
    properties:
      DTCCode:
        type: string
      FaultLocation:
        type: string
      ProbableCause:
        type: string
    additionalProperties: false
  DTCEvent:
    type: object
    properties:
      Occured:
        format: date-time
        type: string
      DTCEventDetails:
        type: array
        items:
          $ref: '#/definitions/DTCEventDetail'
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
    additionalProperties: false
  DTCEventDetail:
    type: object
    properties:
      DTC:
        type: string
      FaultLocation:
        type: string
      ProbableCause:
        type: string
    additionalProperties: false
  DeviceRegisteredModel:
    type: object
    properties:
      QueriedDeviceIMEI:
        type: string
      IsRegistered:
        type: boolean
    additionalProperties: false
  DistanceReportModel:
    type: object
    properties:
      Period:
        format: int32
        type: integer
      BusinessDistanceInKilometers:
        format: double
        type: number
      PersonalDistanceInKilometers:
        format: double
        type: number
      OtherDistanceInKilometers:
        format: double
        type: number
    additionalProperties: false
  DrivingScoreModel:
    type: object
    properties:
      Date:
        format: date-time
        type: string
      DrivingScore:
        format: int32
        type: integer
      OrganizationScore:
        format: int32
        type: integer
      Reductions:
        type: array
        items:
          $ref: '#/definitions/TripScoreReductionModel'
      Strengths:
        type: array
        items:
          $ref: '#/definitions/TripScoreReductionModel'
    additionalProperties: false
  DutyStatus:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      DutyStatusType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      FromUtc:
        format: date-time
        type: string
      ToUtc:
        format: date-time
        type: string
      Notes:
        type: string
      Locations:
        type: string
      CycleRuleType:
        format: int32
        type: integer
      WorkDayStartTime:
        $ref: '#/definitions/TimeSpan'
      DistanceInKm:
        format: double
        type: number
    additionalProperties: false
  EmailExpenseReportModel:
    type: object
    properties:
      ToEmail:
        type: string
      ISO639LanguageCode:
        type: string
    additionalProperties: false
  EmailExpenseReportsModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      FromDate:
        format: date-time
        type: string
      ToDate:
        format: date-time
        type: string
      ToEmail:
        type: string
      ISO639LanguageCode:
        type: string
    additionalProperties: false
  EmailTripReportModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      Period:
        format: int32
        type: integer
      ToEmail:
        type: string
      ISO639LanguageCode:
        type: string
      ExcludeDetailsForPersonalTrips:
        type: boolean
      ExcludeEnvironmentalAndFuelData:
        type: boolean
    additionalProperties: false
  EmailTripReportPeriodListModel:
    type: object
    properties:
      PeriodList:
        type: array
        items:
          $ref: '#/definitions/EmailTripReportPeriodModel'
    additionalProperties: false
  EmailTripReportPeriodModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      FromDateMonth:
        format: int32
        type: integer
      FromDateYear:
        format: int32
        type: integer
    additionalProperties: false
  EngineCoolantTemperature2Model:
    type: object
    properties:
      TemperatureInCelsius:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  EngineCoolantTemperatureModel:
    description: PID05
    type: object
    properties:
      TemperatureInCelsius:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  EnumTypeModelGET:
    type: object
    properties:
      EnumValueList:
        type: object
        additionalProperties:
          format: int32
          type: integer
    additionalProperties: false
  ExpenseReportCreateModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      ContactId:
        format: int32
        type: integer
      TripId:
        format: int32
        type: integer
      ExpenseReportDateUtc:
        format: date-time
        type: string
      ExpenseReportRows:
        type: array
        items:
          $ref: '#/definitions/ExpenseReportRowCreateModel'
    additionalProperties: false
  ExpenseReportEditModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      ContactId:
        format: int32
        type: integer
      TripId:
        format: int32
        type: integer
      ExpenseReportDateUtc:
        format: date-time
        type: string
    additionalProperties: false
  ExpenseReportModel:
    type: object
    properties:
      ExpenseReportId:
        format: int32
        type: integer
      ContactId:
        format: int32
        type: integer
      ContactName:
        type: string
      ContactImageUrl:
        type: string
      VehicleId:
        format: int32
        type: integer
      TripId:
        format: int32
        type: integer
      ExpenseReportDateUtc:
        format: date-time
        type: string
      ExpenseReportRows:
        type: array
        items:
          $ref: '#/definitions/ExpenseReportRowModel'
      IsEditable:
        type: boolean
    additionalProperties: false
  ExpenseReportRowContentCreateModel:
    type: object
    properties:
      ExpenseReportRowId:
        format: int32
        type: integer
      Data:
        type: string
      ContentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
        type: integer
    additionalProperties: false
  ExpenseReportRowContentEditModel:
    type: object
    properties:
      Data:
        type: string
      ContentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
        type: integer
    additionalProperties: false
  ExpenseReportRowContentModel:
    type: object
    properties:
      ExpenseReportRowContentId:
        format: int32
        type: integer
      ExpenseReportRowId:
        format: int32
        type: integer
      ContentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
        type: integer
      ContentFileName:
        type: string
    additionalProperties: false
  ExpenseReportRowContentUpdateEditModel:
    type: object
    properties:
      ExpenseReportRowContentId:
        format: int32
        type: integer
      ExpenseReportRowId:
        format: int32
        type: integer
      Data:
        type: string
      ContentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
        type: integer
    additionalProperties: false
  ExpenseReportRowCreateModel:
    type: object
    properties:
      ExpenseReportId:
        format: int32
        type: integer
      AmountInCurrency:
        format: double
        type: number
      VATInCurrency:
        format: double
        type: number
      ISO4217CurrencyCode:
        type: string
      Notes:
        type: string
      Category:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
        type: integer
      ExpenseReportRowDateUtc:
        format: date-time
        type: string
      ExpenseReportRowContent:
        type: array
        items:
          $ref: '#/definitions/ExpenseReportRowContentCreateModel'
      CustomCategory:
        type: string
      CategoryValue:
        format: double
        type: number
      Merchant:
        type: string
    additionalProperties: false
  ExpenseReportRowEditModel:
    type: object
    properties:
      AmountInCurrency:
        format: double
        type: number
      VATInCurrency:
        format: double
        type: number
      ISO4217CurrencyCode:
        type: string
      Notes:
        type: string
      ExpenseReportRowDateUtc:
        format: date-time
        type: string
      Category:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
        type: integer
      CustomCategory:
        type: string
      ExpenseReportRowContent:
        type: array
        items:
          $ref: '#/definitions/ExpenseReportRowContentUpdateEditModel'
      CategoryValue:
        format: double
        type: number
      Merchant:
        type: string
    additionalProperties: false
  ExpenseReportRowModel:
    type: object
    properties:
      ExpenseReportRowId:
        format: int32
        type: integer
      ExpenseReportId:
        format: int32
        type: integer
      AmountInCurrency:
        format: double
        type: number
      VATInCurrency:
        format: double
        type: number
      ISO4217CurrencyCode:
        type: string
      Notes:
        type: string
      ExpenseReportRowDateUtc:
        format: date-time
        type: string
      ExpenseReportRowContent:
        type: array
        items:
          $ref: '#/definitions/ExpenseReportRowContentModel'
      Category:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
        type: integer
      CustomCategory:
        type: string
      CategoryValue:
        format: double
        type: number
      Merchant:
        type: string
    additionalProperties: false
  ExternalDeviceHistoryGroupModelGET:
    type: object
    properties:
      OccuredAtUtc:
        format: date-time
        type: string
      Value:
        type: string
    additionalProperties: false
  ExternalDeviceHistoryModelGET:
    type: object
    properties:
      ExternalDeviceHistoryId:
        format: int32
        type: integer
      ExternalDeviceId:
        format: int32
        type: integer
      OccuredAtUtc:
        format: date-time
        type: string
      GroupList:
        type: array
        items:
          $ref: '#/definitions/ExternalDeviceHistoryGroupModelGET'
      HistoryType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
        type: integer
      Position:
        $ref: '#/definitions/PositionPointModel'
      PropertyList:
        type: array
        items:
          $ref: '#/definitions/PropertyModel'
      TrackedAssetId:
        format: int32
        type: integer
      TrackerName:
        type: string
        readOnly: true
    additionalProperties: false
  ExternalDeviceModelGET:
    type: object
    properties:
      ExternalDeviceId:
        format: int32
        type: integer
      Name:
        type: string
      ExternalDeviceType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
        readOnly: true
      SerialNumber:
        type: string
        readOnly: true
      TrackedAssetId:
        format: int32
        type: integer
        readOnly: true
      TrackerName:
        type: string
        readOnly: true
      UpdateIntervalInSeconds:
        format: int32
        type: integer
        readOnly: true
      UpdatedAtUtc:
        format: date-time
        type: string
        readOnly: true
      PropertyList:
        type: array
        items:
          $ref: '#/definitions/PropertyModel'
      IsConnected:
        type: boolean
        readOnly: true
    additionalProperties: false
  ExternalDeviceModelPUT:
    type: object
    properties:
      ExternalDeviceId:
        format: int32
        type: integer
      Name:
        type: string
      UpdateIntervalInSeconds:
        format: int32
        type: integer
    additionalProperties: false
  ExternalDeviceUpdateIntervalModelGET:
    type: object
    properties:
      UpdateIntervalInSecondsList:
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  FuelLevelInput2Model:
    type: object
    properties:
      FuelLevelInPercentage:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  FuelLevelInputModel:
    description: PID012
    type: object
    properties:
      FuelLevelInPercentage:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  FuelReportModel:
    type: object
    properties:
      Period:
        format: int32
        type: integer
      BusinessFuelInLiters:
        format: double
        type: number
      PersonalFuelInLiters:
        format: double
        type: number
      OtherFuelInLiters:
        format: double
        type: number
    additionalProperties: false
  Geofence2CreateModel:
    required:
      - Name
      - VehicleIds
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      Description:
        type: string
      VehicleIds:
        type: array
        items:
          format: int32
          type: integer
      GeofencePolygon:
        $ref: '#/definitions/GeofencePolygon'
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Schedules:
        type: array
        items:
          $ref: '#/definitions/GeofenceScheduleAddModel'
    additionalProperties: false
  Geofence2EditModel:
    required:
      - Name
      - VehicleIds
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      Description:
        type: string
      VehicleIds:
        type: array
        items:
          format: int32
          type: integer
      GeofencePolygon:
        $ref: '#/definitions/GeofencePolygon'
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Schedules:
        type: array
        items:
          $ref: '#/definitions/GeofenceScheduleEditModel'
    additionalProperties: false
  Geofence2Model:
    type: object
    properties:
      GeofenceId:
        format: int32
        type: integer
      Name:
        type: string
      Description:
        type: string
      GeofencePolygon:
        $ref: '#/definitions/GeofencePolygon'
      IsEditable:
        type: boolean
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Schedules:
        type: array
        items:
          $ref: '#/definitions/GeofenceScheduleModel'
      VehicleIds:
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  Geofence3CreateModel:
    required:
      - Name
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      Description:
        type: string
      OrganizationNodeId:
        format: int32
        type: integer
      GeofencePolygon:
        $ref: '#/definitions/GeofencePolygon'
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Schedules:
        type: array
        items:
          $ref: '#/definitions/GeofenceScheduleAddModel'
    additionalProperties: false
  Geofence3EditModel:
    required:
      - Name
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      Description:
        type: string
      GeofencePolygon:
        $ref: '#/definitions/GeofencePolygon'
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
      Schedules:
        type: array
        items:
          $ref: '#/definitions/GeofenceScheduleEditModel'
    additionalProperties: false
  GeofenceCreateModel:
    required:
      - Name
      - VehicleId
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      Description:
        type: string
      VehicleId:
        format: int32
        type: integer
      GeofencePolygon:
        $ref: '#/definitions/GeofencePolygon'
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Schedules:
        type: array
        items:
          $ref: '#/definitions/GeofenceScheduleAddModel'
    additionalProperties: false
  GeofenceEditModel:
    required:
      - Name
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      Description:
        type: string
      GeofencePolygon:
        $ref: '#/definitions/GeofencePolygon'
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Schedules:
        type: array
        items:
          $ref: '#/definitions/GeofenceScheduleEditModel'
    additionalProperties: false
  GeofenceModel:
    type: object
    properties:
      GeofenceId:
        format: int32
        type: integer
      Name:
        type: string
      Description:
        type: string
      GeofencePolygon:
        $ref: '#/definitions/GeofencePolygon'
      IsEditable:
        type: boolean
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Schedules:
        type: array
        items:
          $ref: '#/definitions/GeofenceScheduleModel'
    additionalProperties: false
  GeofenceModel3:
    type: object
    properties:
      GeofenceId:
        format: int32
        type: integer
      Name:
        type: string
      Description:
        type: string
      GeofencePolygon:
        $ref: '#/definitions/GeofencePolygon'
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Schedules:
        type: array
        items:
          $ref: '#/definitions/GeofenceScheduleModel'
      OrganizationNodeId:
        format: int32
        type: integer
      IsEditable:
        type: boolean
    additionalProperties: false
  GeofencePolygon:
    type: object
    properties:
      Coordinates:
        type: array
        items:
          $ref: '#/definitions/GeographicPosition'
    additionalProperties: false
  GeofenceRecordReportModel:
    type: object
    properties:
      TripId:
        format: int32
        type: integer
      GeofenceId:
        format: int32
        type: integer
      GeofenceName:
        type: string
      GeofenceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      IsInside:
        type: boolean
      EventDateTime:
        format: date-time
        type: string
      VehicleTinyModel:
        $ref: '#/definitions/VehicleTinyModel'
    additionalProperties: false
  GeofenceReportModel:
    type: object
    properties:
      FromDate:
        format: date-time
        type: string
      ToDate:
        format: date-time
        type: string
      VehicleId:
        format: int32
        type: integer
      GeofenceId:
        format: int32
        type: integer
      Result:
        type: array
        items:
          $ref: '#/definitions/GeofenceRecordReportModel'
    additionalProperties: false
  GeofenceScheduleAddModel:
    type: object
    properties:
      Monday:
        type: boolean
      Tuesday:
        type: boolean
      Wednesday:
        type: boolean
      Thursday:
        type: boolean
      Friday:
        type: boolean
      Saturday:
        type: boolean
      Sunday:
        type: boolean
      StartTime:
        $ref: '#/definitions/TimeSpan'
      EndTime:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  GeofenceScheduleEditModel:
    type: object
    properties:
      GeofenceScheduleId:
        format: int32
        type: integer
      Monday:
        type: boolean
      Tuesday:
        type: boolean
      Wednesday:
        type: boolean
      Thursday:
        type: boolean
      Friday:
        type: boolean
      Saturday:
        type: boolean
      Sunday:
        type: boolean
      StartTime:
        $ref: '#/definitions/TimeSpan'
      EndTime:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  GeofenceScheduleModel:
    type: object
    properties:
      GeofenceScheduleId:
        format: int32
        type: integer
      Monday:
        type: boolean
      Tuesday:
        type: boolean
      Wednesday:
        type: boolean
      Thursday:
        type: boolean
      Friday:
        type: boolean
      Saturday:
        type: boolean
      Sunday:
        type: boolean
      StartTime:
        $ref: '#/definitions/TimeSpan'
      EndTime:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  GeographicPosition:
    type: object
    properties:
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
    additionalProperties: false
  HoursOfServiceCycles:
    type: object
    properties:
      Cycles:
        type: array
        items:
          $ref: '#/definitions/Cycle'
    additionalProperties: false
  HoursOfServiceDutyStatusCreateModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      DutyStatusType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      FromDateTime:
        format: date-time
        description: From date UTC
        type: string
      ToDateTime:
        format: date-time
        description: To date UTC
        type: string
      Notes:
        type: string
      Location:
        type: string
      ExternalId:
        format: uuid
        type: string
    additionalProperties: false
  HoursOfServiceDutyStatusModel:
    type: object
    properties:
      HoursOfServiceLogId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      DutyStatusType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      FromDateTime:
        format: date-time
        description: From date UTC
        type: string
      ToDateTime:
        format: date-time
        description: To date UTC
        type: string
      Notes:
        type: string
      Location:
        type: string
      CycleRuleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
        type: integer
      WorkDayStartTime:
        $ref: '#/definitions/TimeSpan'
      DistanceInKm:
        format: double
        type: number
      CreatedDateTime:
        format: date-time
        description: Created UTC
        type: string
      ModifiedDateTime:
        format: date-time
        description: Modified UTC
        type: string
      ExternalId:
        format: uuid
        type: string
      IsDeleted:
        type: boolean
    additionalProperties: false
  HoursOfServiceDutyStatusesModel:
    type: object
    properties:
      LastSynchDate:
        format: date-time
        type: string
        readOnly: true
      DutyStatuses:
        type: array
        items:
          $ref: '#/definitions/HoursOfServiceDutyStatusModel'
    additionalProperties: false
  HoursOfServiceExportModel:
    type: object
    properties:
      FromDate:
        format: date-time
        type: string
      ToDate:
        format: date-time
        type: string
      EmailAddress:
        description: Recipient of the report
        type: string
    additionalProperties: false
  HoursOfServiceSettingsCreateModel:
    type: object
    properties:
      TimeZoneType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      WorkDayStartTime:
        $ref: '#/definitions/TimeSpan'
      CycleRuleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
        type: integer
      CargoTypeType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      RestartRuleType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      RestBreakRuleType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      ShortHaulExceptionType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      OdometerUnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      WellSiteRuleType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      CarrierInfo:
        $ref: '#/definitions/AddressModel'
      IsEnabled:
        type: boolean
    additionalProperties: false
  HoursOfServiceSettingsModel:
    type: object
    properties:
      TimeZoneType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      WorkDayStartTime:
        $ref: '#/definitions/TimeSpan'
      CycleRuleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
        type: integer
      CargoTypeType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      RestartRuleType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      RestBreakRuleType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      ShortHaulExceptionType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      OdometerUnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      WellSiteRuleType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      CarrierInfo:
        $ref: '#/definitions/AddressModel'
      IsEnabled:
        type: boolean
    additionalProperties: false
  HoursOfServiceStatusPostModel:
    type: object
    properties:
      Added:
        type: array
        items:
          $ref: '#/definitions/HoursOfServiceDutyStatusCreateModel'
      Updated:
        type: array
        items:
          $ref: '#/definitions/HoursOfServiceDutyStatusModel'
      LastSynchDate:
        format: date-time
        type: string
    additionalProperties: false
  HoursOfServiceStatusSynchModel:
    type: object
    properties:
      LastSynchDate:
        format: date-time
        type: string
        readOnly: true
      Added:
        type: array
        items:
          $ref: '#/definitions/HoursOfServiceDutyStatusModel'
      Updated:
        type: array
        items:
          $ref: '#/definitions/HoursOfServiceDutyStatusModel'
    additionalProperties: false
  HoursOfServiceViolationCreateModel:
    type: object
    properties:
      HoursOfServiceLogId:
        format: int32
        type: integer
      ViolationType:
        format: int32
        type: integer
      RequiredActionType:
        format: int32
        type: integer
      StartDateTime:
        format: date-time
        description: UTC
        type: string
      EndDateTime:
        format: date-time
        description: UTC
        type: string
    additionalProperties: false
  HttpContent:
    type: object
    properties:
      Headers:
        type: array
        items:
          $ref: '#/definitions/StringStringIEnumerableKeyValuePair'
        readOnly: true
    additionalProperties: false
  HttpMethod:
    type: object
    properties:
      Method:
        type: string
    additionalProperties: false
  HttpRequestMessage:
    type: object
    properties:
      Version:
        $ref: '#/definitions/Version'
      VersionPolicy:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Content:
        $ref: '#/definitions/HttpContent'
      Method:
        $ref: '#/definitions/HttpMethod'
      RequestUri:
        format: uri
        type: string
      Headers:
        type: array
        items:
          $ref: '#/definitions/StringStringIEnumerableKeyValuePair'
        readOnly: true
      Properties:
        type: object
        additionalProperties: { }
        readOnly: true
      Options:
        type: object
        additionalProperties: { }
        readOnly: true
    additionalProperties: false
  HttpResponseMessage:
    type: object
    properties:
      Version:
        $ref: '#/definitions/Version'
      Content:
        $ref: '#/definitions/HttpContent'
      StatusCode:
        format: int32
        enum:
          - 100
          - 101
          - 102
          - 103
          - 200
          - 201
          - 202
          - 203
          - 204
          - 205
          - 206
          - 207
          - 208
          - 226
          - 300
          - 301
          - 302
          - 303
          - 304
          - 305
          - 306
          - 307
          - 308
          - 400
          - 401
          - 402
          - 403
          - 404
          - 405
          - 406
          - 407
          - 408
          - 409
          - 410
          - 411
          - 412
          - 413
          - 414
          - 415
          - 416
          - 417
          - 421
          - 422
          - 423
          - 424
          - 426
          - 428
          - 429
          - 431
          - 451
          - 500
          - 501
          - 502
          - 503
          - 504
          - 505
          - 506
          - 507
          - 508
          - 510
          - 511
        type: integer
      ReasonPhrase:
        type: string
      Headers:
        type: array
        items:
          $ref: '#/definitions/StringStringIEnumerableKeyValuePair'
        readOnly: true
      TrailingHeaders:
        type: array
        items:
          $ref: '#/definitions/StringStringIEnumerableKeyValuePair'
        readOnly: true
      RequestMessage:
        $ref: '#/definitions/HttpRequestMessage'
      IsSuccessStatusCode:
        type: boolean
        readOnly: true
    additionalProperties: false
  IMEIConfig3Model:
    type: object
    properties:
      IMEIConfigId:
        format: int32
        type: integer
      IMEI:
        type: string
      VehicleId:
        format: int32
        type: integer
      DeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 255
        type: integer
      OrganizationId:
        format: int32
        type: integer
      IsEditable:
        type: boolean
      OrganizationNodeId:
        format: int32
        type: integer
    additionalProperties: false
  IMEIConfigCreate3Model:
    type: object
    properties:
      IMEI:
        type: string
      VehicleId:
        format: int32
        type: integer
      SerialNumber:
        type: string
      IMEIDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 255
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
    additionalProperties: false
  IMEIConfigCreateModel:
    type: object
    properties:
      IMEI:
        type: string
      VehicleId:
        format: int32
        type: integer
      SerialNumber:
        type: string
      IMEIDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 255
        type: integer
    additionalProperties: false
  IMEIConfigDetail3Model:
    type: object
    properties:
      IMEIConfigId:
        format: int32
        type: integer
      IMEI:
        type: string
      VehicleId:
        format: int32
        type: integer
      DeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 255
        type: integer
    additionalProperties: false
  IMEIConfigDetailModel:
    type: object
    properties:
      IMEIConfigId:
        format: int32
        type: integer
      IMEI:
        type: string
      VehicleId:
        format: int32
        type: integer
      DeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 255
        type: integer
    additionalProperties: false
  IMEIConfigEdit3Model:
    required:
      - VehicleId
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      IMEIDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 255
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
    additionalProperties: false
  IMEIConfigEditModel:
    required:
      - VehicleId
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      IMEIDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 255
        type: integer
    additionalProperties: false
  IMEIConfigModel:
    type: object
    properties:
      IMEIConfigId:
        format: int32
        type: integer
      IMEI:
        type: string
      VehicleId:
        format: int32
        type: integer
      DeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 255
        type: integer
    additionalProperties: false
  IMEIEventDTCModel:
    type: object
    properties:
      Description:
        type: string
      TimeStamp:
        format: date-time
        type: string
      TimeZone:
        format: int32
        type: integer
      EventType:
        type: string
      PositionLongitude:
        format: double
        type: number
      PositionLatitude:
        format: double
        type: number
      PositionFormattedAddress:
        type: string
      CellTower:
        format: int32
        type: integer
      CellTowerTimeZone:
        format: int32
        type: integer
      VehicleIdentificationNumber:
        type: string
      IMEI:
        type: string
      DeviceSerialNumber:
        type: string
      Dtcs:
        type: array
        items:
          $ref: '#/definitions/DTC'
    additionalProperties: false
  IMEIEventMILModel:
    type: object
    properties:
      Description:
        type: string
      TimeStamp:
        format: date-time
        type: string
      TimeZone:
        format: int32
        type: integer
      EventType:
        type: string
      PositionLongitude:
        format: double
        type: number
      PositionLatitude:
        format: double
        type: number
      PositionFormattedAddress:
        type: string
      CellTower:
        format: int32
        type: integer
      CellTowerTimeZone:
        format: int32
        type: integer
      VehicleIdentificationNumber:
        type: string
      IMEI:
        type: string
      DeviceSerialNumber:
        type: string
      MilStatus:
        type: boolean
      NumberOfDTCs:
        format: int32
        type: integer
      MILDistance:
        format: int32
        type: integer
      CLRDistance:
        format: int32
        type: integer
      TripDistance:
        format: int32
        type: integer
      MILTime:
        format: int32
        type: integer
      CLRTime:
        format: int32
        type: integer
      TripTime:
        format: int32
        type: integer
    additionalProperties: false
  IMEIEventModel:
    type: object
    properties:
      IMEIEventId:
        format: int32
        type: integer
      IMEI:
        type: string
      EventType:
        type: string
      TimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  IMEIEventStatusModel:
    type: object
    properties:
      Description:
        type: string
      TimeStamp:
        format: date-time
        type: string
      TimeZone:
        format: int32
        type: integer
      EventType:
        type: string
      PositionLongitude:
        format: double
        type: number
      PositionLatitude:
        format: double
        type: number
      PositionFormattedAddress:
        type: string
      CellTower:
        format: int32
        type: integer
      CellTowerTimeZone:
        format: int32
        type: integer
      VehicleIdentificationNumber:
        type: string
      IMEI:
        type: string
      DeviceSerialNumber:
        type: string
      Status:
        type: string
    additionalProperties: false
  IdleTimeReportModel:
    type: object
    properties:
      Period:
        format: int32
        type: integer
      BusinessIdleTimeInMinutes:
        format: int32
        type: integer
      PersonalIdleTimeInMinutes:
        format: int32
        type: integer
      OtherIdleTimeInMinutes:
        format: int32
        type: integer
    additionalProperties: false
  IntegrationConfigurationModel:
    type: object
    properties:
      AutoPlanActive:
        type: boolean
      AlphabetActive:
        type: boolean
      BilredaActive:
        type: boolean
      BilredaVehicleId:
        format: int32
        type: integer
    additionalProperties: false
  IntegrationPeriodModel:
    type: object
    properties:
      Year:
        format: int32
        type: integer
      Month:
        format: int32
        type: integer
      IsSelected:
        type: boolean
    additionalProperties: false
  IntegrationVehicleModel:
    type: object
    properties:
      FriendlyName:
        type: string
      NumberPlate:
        type: string
      VehicleId:
        format: int32
        type: integer
      IsVehicleApproved:
        type: boolean
      PeriodList:
        type: array
        items:
          $ref: '#/definitions/IntegrationPeriodModel'
    additionalProperties: false
  LogoutModel:
    required:
      - UserDeviceId
    type: object
    properties:
      UserDeviceId:
        format: int32
        type: integer
    additionalProperties: false
  MILEvent:
    type: object
    properties:
      Occured:
        format: date-time
        type: string
      MILStatus:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      MILDistance:
        format: int32
        type: integer
      CLRDistanceUntilToday:
        format: double
        type: number
      NumberOfDTCs:
        format: int32
        type: integer
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
    additionalProperties: false
  MoveDeviceRequest:
    type: object
    properties:
      FromVehicleId:
        format: int32
        type: integer
      LicensePlate:
        type: string
      Nickname:
        type: string
      Odometer:
        format: int32
        type: integer
      OdometerDate:
        format: date-time
        type: string
      DeviceMoveDateUtc:
        format: date-time
        type: string
    additionalProperties: false
  MovePushTriggers:
    type: object
    properties:
      ToUserDeviceId:
        format: int32
        type: integer
    additionalProperties: false
  OrganizationEditModel:
    type: object
    properties:
      OrganizationName:
        type: string
      LegalIdentificationNumber:
        type: string
      VATNumber:
        type: string
      BillingAddress:
        $ref: '#/definitions/AddressModel'
      ShipmentAddress:
        $ref: '#/definitions/AddressModel'
      Culture:
        type: string
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
    additionalProperties: false
  OrganizationModel:
    type: object
    properties:
      OrganizationName:
        type: string
      LegalIdentificationNumber:
        type: string
      VATNumber:
        type: string
      BillingAddress:
        $ref: '#/definitions/AddressModel'
      ShipmentAddress:
        $ref: '#/definitions/AddressModel'
      Culture:
        type: string
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      IsHierarchyEnabled:
        type: boolean
      ISO4217CurrencyCode:
        type: string
      OrganizationId:
        format: int32
        type: integer
    additionalProperties: false
  OrganizationNodeModel:
    type: object
    properties:
      OrganizationNodeId:
        format: int32
        type: integer
      Name:
        type: string
      ParentOrganizationNodeId:
        format: int32
        type: integer
      Children:
        type: array
        items:
          $ref: '#/definitions/OrganizationNodeModel'
      HasChildren:
        type: boolean
        readOnly: true
    additionalProperties: false
  OrganizationPermissionBooleans:
    type: object
    properties:
      OrganizationNodeViewVehicle:
        type: boolean
      OrganizationNodeCreateEditVehicle:
        type: boolean
      OrganizationNodeViewGeofence:
        type: boolean
      OrganizationNodeCreateEditGeofence:
        type: boolean
      OrganizationNodeViewPOI:
        type: boolean
      OrganizationNodeCreateEditPOI:
        type: boolean
      OrganizationNodeViewTrigger:
        type: boolean
      OrganizationNodeCreateEditTrigger:
        type: boolean
      OrganizationNodeViewTrip:
        type: boolean
      OrganizationNodeEditTrip:
        type: boolean
      OrganizationNodeViewTripIfDriver:
        type: boolean
      OrganizationNodeEditTripIfDriver:
        type: boolean
      OrganizationNodeView:
        type: boolean
      OrganizationNodeViewContact:
        type: boolean
      OrganizationNodeCreateEditContact:
        type: boolean
      OrganizationNodeViewSchedule:
        type: boolean
      OrganizationNodeCreateEditSchedule:
        type: boolean
      OrganizationNodeViewExpense:
        type: boolean
      OrganizationNodeCreateEditExpense:
        type: boolean
      OrganizationView:
        type: boolean
      OrganizationCreateEditDelete:
        type: boolean
      OrganizationNodeCreateEditDelete:
        type: boolean
      OrganizationNodeViewExcludePrivateTrips:
        type: boolean
      OrganizationNodeViewLive:
        type: boolean
      OrganizationNodeViewTripSpeed:
        type: boolean
      OrganizationNodeEditOdometer:
        type: boolean
    additionalProperties: false
  PID2Model:
    type: object
    properties:
      Data:
        format: byte
        type: string
      RecordTimeStamp:
        format: date-time
        type: string
      Value:
        format: double
        type: number
    additionalProperties: false
  PIDModel:
    type: object
    properties:
      Data:
        format: byte
        type: string
      RecordTimeStamp:
        format: date-time
        type: string
      Value:
        format: double
        type: number
    additionalProperties: false
  Place2CreateModel:
    required:
      - Name
      - PositionPoint
      - Radius
      - VehicleIds
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      VehicleIds:
        type: array
        items:
          format: int32
          type: integer
      Radius:
        format: int32
        type: integer
      PositionPoint:
        $ref: '#/definitions/PositionPointModel'
      Description:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  Place2EditModel:
    required:
      - Name
      - PositionPoint
      - Radius
      - VehicleIds
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      VehicleIds:
        type: array
        items:
          format: int32
          type: integer
      Radius:
        format: int32
        type: integer
      PositionPoint:
        $ref: '#/definitions/PositionPointModel'
      Description:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  Place3CreateModel:
    required:
      - Name
      - PositionPoint
      - Radius
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      Radius:
        format: int32
        type: integer
      PositionPoint:
        $ref: '#/definitions/PositionPointModel'
      Description:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  Place3EditModel:
    required:
      - Name
      - PositionPoint
      - Radius
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      Radius:
        format: int32
        type: integer
      PositionPoint:
        $ref: '#/definitions/PositionPointModel'
      Description:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  PlaceCreateModel:
    required:
      - Name
      - PositionPoint
      - Radius
      - VehicleId
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      VehicleId:
        format: int32
        type: integer
      Radius:
        format: int32
        type: integer
      PositionPoint:
        $ref: '#/definitions/PositionPointModel'
      Description:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  PlaceEditModel:
    required:
      - Name
      - PositionPoint
    type: object
    properties:
      Name:
        minLength: 1
        type: string
      PositionPoint:
        $ref: '#/definitions/PositionPointModel'
    additionalProperties: false
  PlaceModel:
    type: object
    properties:
      PlaceId:
        format: int32
        type: integer
      Name:
        type: string
      Description:
        type: string
      PositionPoint:
        $ref: '#/definitions/PositionPointModel'
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      Radius:
        format: int32
        type: integer
      IsEditable:
        type: boolean
      VehicleIds:
        type: array
        items:
          format: int32
          type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  PlaceModel3:
    type: object
    properties:
      PlaceId:
        format: int32
        type: integer
      Name:
        type: string
      Description:
        type: string
      PositionPoint:
        $ref: '#/definitions/PositionPointModel'
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      Radius:
        format: int32
        type: integer
      IsEditable:
        type: boolean
      OrganizationNodeId:
        format: int32
        type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  PositionModel:
    type: object
    properties:
      Longitude:
        format: double
        type: number
      Latitude:
        format: double
        type: number
    additionalProperties: false
  PositionPointModel:
    type: object
    properties:
      Longitude:
        format: double
        type: number
      Latitude:
        format: double
        type: number
    additionalProperties: false
  ProOrderModel:
    required:
      - CompanyName
      - Email
      - FirstName
      - LastName
      - MobilePhoneNumber
    type: object
    properties:
      ISO4217CurrencyCode:
        type: string
      NumberOfUnits:
        format: int32
        type: integer
      NonOBDUnits:
        type: boolean
      ExtensionCables:
        type: boolean
      NumberOfExtensionCords:
        format: int32
        type: integer
      CompanyName:
        minLength: 1
        type: string
      FirstName:
        minLength: 1
        type: string
      LastName:
        minLength: 1
        type: string
      Email:
        minLength: 1
        type: string
      MobilePhoneNumber:
        minLength: 1
        type: string
      ShippingAddress:
        $ref: '#/definitions/AddressModel'
      UseShippingAddressForBillingAddress:
        type: boolean
      BillingAddress:
        $ref: '#/definitions/AddressModel'
    additionalProperties: false
  ProblemDetails:
    type: object
    properties:
      type:
        type: string
      title:
        type: string
      status:
        format: int32
        type: integer
      detail:
        type: string
      instance:
        type: string
    additionalProperties: { }
  PropertyModel:
    type: object
    properties:
      PropertyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
        type: integer
      PropertyName:
        type: string
      ValueType:
        type: string
      Value:
        type: string
      Unit:
        type: string
    additionalProperties: false
  PublishSubscribeCreateModel:
    type: object
    properties:
      PublishToUrl:
        type: string
      PublishType:
        format: int32
        enum:
          - 0
        type: integer
      VehicleId:
        format: int32
        type: integer
      AuthenticationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AuthenticationData:
        type: string
    additionalProperties: false
  PublishSubscribeEditModel:
    type: object
    properties:
      PublishToUrl:
        type: string
      PublishType:
        format: int32
        enum:
          - 0
        type: integer
      VehicleId:
        format: int32
        type: integer
      AuthenticationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AuthenticationData:
        type: string
    additionalProperties: false
  PublishSubscribeModel:
    type: object
    properties:
      PublishSubscribeId:
        format: int32
        type: integer
      PublishToUrl:
        type: string
      PublishType:
        format: int32
        enum:
          - 0
        type: integer
      VehicleId:
        format: int32
        type: integer
      AuthenticationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AuthenticationData:
        type: string
    additionalProperties: false
  QuoteAttachmentModelGET:
    required:
      - AttachmentType
      - URL
    type: object
    properties:
      URL:
        minLength: 1
        type: string
      Description:
        type: string
      AttachmentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      QuoteAttachmentId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      Created:
        format: date-time
        type: string
    additionalProperties: false
  QuoteAttachmentModelPOST:
    required:
      - AttachmentType
      - URL
    type: object
    properties:
      URL:
        minLength: 1
        type: string
      Description:
        type: string
      AttachmentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
    additionalProperties: false
  QuoteAttachmentModelPUT:
    required:
      - AttachmentType
      - URL
    type: object
    properties:
      URL:
        minLength: 1
        type: string
      Description:
        type: string
      AttachmentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      QuoteAttachmentId:
        format: int32
        type: integer
    additionalProperties: false
  QuoteItemModelGET:
    required:
      - Quantity
      - WorkOrderArticleId
    type: object
    properties:
      Quantity:
        format: double
        type: number
      PricePerQuantityExclVAT:
        format: double
        type: number
      DiscountInPercentage:
        format: double
        type: number
      DiscountAmount:
        format: double
        type: number
      TaxRate:
        format: double
        type: number
      WorkOrderArticleId:
        format: int32
        type: integer
      ArticleName:
        type: string
      UnitType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
        type: integer
      QuoteItemId:
        format: int32
        type: integer
      ISO4217CurrencyCode:
        type: string
      Created:
        format: date-time
        type: string
    additionalProperties: false
  QuoteItemModelPOST:
    required:
      - Quantity
      - WorkOrderArticleId
    type: object
    properties:
      Quantity:
        format: double
        type: number
      PricePerQuantityExclVAT:
        format: double
        type: number
      DiscountInPercentage:
        format: double
        type: number
      DiscountAmount:
        format: double
        type: number
      TaxRate:
        format: double
        type: number
      WorkOrderArticleId:
        format: int32
        type: integer
      ArticleName:
        type: string
      UnitType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
        type: integer
    additionalProperties: false
  QuoteItemModelPUT:
    required:
      - Quantity
      - WorkOrderArticleId
    type: object
    properties:
      Quantity:
        format: double
        type: number
      PricePerQuantityExclVAT:
        format: double
        type: number
      DiscountInPercentage:
        format: double
        type: number
      DiscountAmount:
        format: double
        type: number
      TaxRate:
        format: double
        type: number
      WorkOrderArticleId:
        format: int32
        type: integer
      ArticleName:
        type: string
      UnitType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
        type: integer
      QuoteItemId:
        format: int32
        type: integer
    additionalProperties: false
  QuoteModelGET:
    required:
      - WorkOrderCustomerId
    type: object
    properties:
      JobDate:
        format: date-time
        type: string
      JobTime:
        $ref: '#/definitions/TimeSpan'
      EstimatedTimeInMinutes:
        format: int32
        type: integer
      JobDescription:
        type: string
      ExternalId:
        type: string
      CustomerContactName:
        type: string
      CustomerEmail:
        type: string
      CustomerName:
        type: string
      CustomerCommunicationLanguageISO639_2:
        type: string
      CustomerPhoneNumber:
        type: string
      CustomerJobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
      CustomerBillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      NotificationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      WorkOrderCategoryId:
        format: int32
        type: integer
      CategoryName:
        type: string
      AssignedToContactId:
        format: int32
        type: integer
      WorkOrderCustomerId:
        format: int32
        type: integer
      EstimatedTotal:
        format: double
        type: number
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
        type: integer
      QuoteId:
        format: int32
        type: integer
      IsDeleted:
        type: boolean
      Created:
        format: date-time
        type: string
      RequestedByContactId:
        format: int32
        type: integer
      StatusHistory:
        type: array
        items:
          $ref: '#/definitions/QuoteStatusHistoryModelGET'
      Notes:
        type: array
        items:
          $ref: '#/definitions/QuoteNoteModelGET'
      Items:
        type: array
        items:
          $ref: '#/definitions/QuoteItemModelGET'
      Attachments:
        type: array
        items:
          $ref: '#/definitions/QuoteAttachmentModelGET'
    additionalProperties: false
  QuoteModelPOST:
    required:
      - WorkOrderCustomerId
    type: object
    properties:
      JobDate:
        format: date-time
        type: string
      JobTime:
        $ref: '#/definitions/TimeSpan'
      EstimatedTimeInMinutes:
        format: int32
        type: integer
      JobDescription:
        type: string
      ExternalId:
        type: string
      CustomerContactName:
        type: string
      CustomerEmail:
        type: string
      CustomerName:
        type: string
      CustomerCommunicationLanguageISO639_2:
        type: string
      CustomerPhoneNumber:
        type: string
      CustomerJobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
      CustomerBillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      NotificationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      WorkOrderCategoryId:
        format: int32
        type: integer
      CategoryName:
        type: string
      AssignedToContactId:
        format: int32
        type: integer
      WorkOrderCustomerId:
        format: int32
        type: integer
      EstimatedTotal:
        format: double
        type: number
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
        type: integer
      Attachments:
        type: array
        items:
          $ref: '#/definitions/QuoteAttachmentModelPOST'
      Notes:
        type: array
        items:
          $ref: '#/definitions/QuoteNoteModelPOST'
      Items:
        type: array
        items:
          $ref: '#/definitions/QuoteItemModelPOST'
    additionalProperties: false
  QuoteModelPUT:
    required:
      - WorkOrderCustomerId
    type: object
    properties:
      JobDate:
        format: date-time
        type: string
      JobTime:
        $ref: '#/definitions/TimeSpan'
      EstimatedTimeInMinutes:
        format: int32
        type: integer
      JobDescription:
        type: string
      ExternalId:
        type: string
      CustomerContactName:
        type: string
      CustomerEmail:
        type: string
      CustomerName:
        type: string
      CustomerCommunicationLanguageISO639_2:
        type: string
      CustomerPhoneNumber:
        type: string
      CustomerJobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
      CustomerBillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      NotificationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      WorkOrderCategoryId:
        format: int32
        type: integer
      CategoryName:
        type: string
      AssignedToContactId:
        format: int32
        type: integer
      WorkOrderCustomerId:
        format: int32
        type: integer
      EstimatedTotal:
        format: double
        type: number
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
        type: integer
      Attachments:
        type: array
        items:
          $ref: '#/definitions/QuoteAttachmentModelPUT'
      Notes:
        type: array
        items:
          $ref: '#/definitions/QuoteNoteModelPUT'
      Items:
        type: array
        items:
          $ref: '#/definitions/QuoteItemModelPUT'
    additionalProperties: false
  QuoteModelSyncPUT:
    required:
      - WorkOrderCustomerId
    type: object
    properties:
      JobDate:
        format: date-time
        type: string
      JobTime:
        $ref: '#/definitions/TimeSpan'
      EstimatedTimeInMinutes:
        format: int32
        type: integer
      JobDescription:
        type: string
      ExternalId:
        type: string
      CustomerContactName:
        type: string
      CustomerEmail:
        type: string
      CustomerName:
        type: string
      CustomerCommunicationLanguageISO639_2:
        type: string
      CustomerPhoneNumber:
        type: string
      CustomerJobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
      CustomerBillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      NotificationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      WorkOrderCategoryId:
        format: int32
        type: integer
      CategoryName:
        type: string
      AssignedToContactId:
        format: int32
        type: integer
      WorkOrderCustomerId:
        format: int32
        type: integer
      EstimatedTotal:
        format: double
        type: number
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
        type: integer
      Attachments:
        type: array
        items:
          $ref: '#/definitions/QuoteAttachmentModelPUT'
      Notes:
        type: array
        items:
          $ref: '#/definitions/QuoteNoteModelPUT'
      Items:
        type: array
        items:
          $ref: '#/definitions/QuoteItemModelPUT'
      QuoteId:
        format: int32
        type: integer
    additionalProperties: false
  QuoteNoteModelGET:
    required:
      - Note
    type: object
    properties:
      Note:
        minLength: 1
        type: string
      QuoteNoteId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      Created:
        format: date-time
        type: string
    additionalProperties: false
  QuoteNoteModelPOST:
    required:
      - Note
    type: object
    properties:
      Note:
        minLength: 1
        type: string
    additionalProperties: false
  QuoteNoteModelPUT:
    required:
      - Note
    type: object
    properties:
      Note:
        minLength: 1
        type: string
      QuoteNoteId:
        format: int32
        type: integer
    additionalProperties: false
  QuoteStatusHistoryModelGET:
    type: object
    properties:
      OccuredAt:
        format: date-time
        type: string
      ContactId:
        format: int32
        type: integer
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
        type: integer
    additionalProperties: false
  QuoteStatusModelPUT:
    type: object
    properties:
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
        type: integer
    additionalProperties: false
  RPM2Model:
    type: object
    properties:
      RPMValue:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  RPMModel:
    description: PID012
    type: object
    properties:
      RPMValue:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  RegisteredTollBatchUpdateModelPUT:
    type: object
    properties:
      RegisteredTollList:
        type: array
        items:
          $ref: '#/definitions/RegisteredTollMultiEditModelPUT'
    additionalProperties: false
  RegisteredTollModelGET:
    type: object
    properties:
      TimestampUtc:
        format: date-time
        type: string
      Fee:
        format: double
        type: number
      TripId:
        format: int32
        type: integer
      GeofenceId:
        format: int32
        type: integer
      TollZoneId:
        format: int32
        type: integer
      PriceAfterDiscount:
        format: double
        type: number
      TollZoneName:
        type: string
      RegisteredTollId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      VehicleUserFriendlyName:
        type: string
      VehicleMake:
        type: string
      VehicleModel:
        type: string
      VehicleNumberPlate:
        type: string
      DriverContactId:
        format: int32
        type: integer
      DriverImageUrl:
        type: string
      DriverName:
        type: string
      CurrencyISO4271:
        type: string
      ReadOnly:
        type: boolean
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
    additionalProperties: false
  RegisteredTollModelPOST:
    type: object
    properties:
      TimestampUtc:
        format: date-time
        type: string
      Fee:
        format: double
        type: number
      TripId:
        format: int32
        type: integer
      GeofenceId:
        format: int32
        type: integer
      TollZoneId:
        format: int32
        type: integer
      PriceAfterDiscount:
        format: double
        type: number
    additionalProperties: false
  RegisteredTollModelPUT:
    type: object
    properties:
      TimestampUtc:
        format: date-time
        type: string
      Fee:
        format: double
        type: number
      TripId:
        format: int32
        type: integer
      GeofenceId:
        format: int32
        type: integer
      TollZoneId:
        format: int32
        type: integer
      PriceAfterDiscount:
        format: double
        type: number
    additionalProperties: false
  RegisteredTollMultiEditModelPUT:
    type: object
    properties:
      TimestampUtc:
        format: date-time
        type: string
      Fee:
        format: double
        type: number
      TripId:
        format: int32
        type: integer
      GeofenceId:
        format: int32
        type: integer
      TollZoneId:
        format: int32
        type: integer
      PriceAfterDiscount:
        format: double
        type: number
      RegisteredTollId:
        format: int32
        type: integer
    additionalProperties: false
  ResetPasswordUserModel:
    type: object
    properties:
      Email:
        type: string
      ResetPasswordType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
    additionalProperties: false
  ReverseGeocodingResult:
    type: object
    properties:
      FormattedAddress:
        type: string
    additionalProperties: false
  RoutePlannerMissionLocationModel:
    type: object
    properties:
      DistanceInKilometers:
        format: double
        type: number
      DurationInSeconds:
        format: double
        type: number
      Address:
        type: string
      Note:
        type: string
      RouteStopId:
        format: int32
        type: integer
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 3
        type: integer
      DriverNotes:
        type: string
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
    additionalProperties: false
  RoutePlannerMissionModel:
    type: object
    properties:
      DistanceInKilometers:
        format: double
        type: number
      DurationInSeconds:
        format: double
        type: number
      RouteId:
        format: int32
        type: integer
      Name:
        type: string
      ContactId:
        format: int32
        type: integer
      IsDeparture:
        type: boolean
      OccuredAt:
        format: date-time
        type: string
      MissionStatus:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      RouteStartedAtUTC:
        format: date-time
        type: string
      RouteStartedByContactId:
        format: int32
        type: integer
      RouteEndedAtUTC:
        format: date-time
        type: string
      Notes:
        type: string
      CreatedUTC:
        format: date-time
        type: string
      Locations:
        type: array
        items:
          $ref: '#/definitions/RoutePlannerMissionLocationModel'
    additionalProperties: false
  RouteRequest:
    type: object
    properties:
      RouteName:
        type: string
      TimeConstraint:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      When:
        format: date-time
        type: string
      UtcOffset:
        format: int64
        type: integer
      UserUnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      FullAddresses:
        type: array
        items:
          type: string
      Strategy:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      AvoidTollRoads:
        type: boolean
      AvoidHighways:
        type: boolean
      AvoidFerries:
        type: boolean
    additionalProperties: false
  SSOConfigurationModel:
    type: object
    properties:
      ClientId:
        type: string
      TenantId:
        type: string
      Scopes:
        type: array
        items:
          type: string
    additionalProperties: false
  StringStringIEnumerableKeyValuePair:
    type: object
    properties:
      Key:
        type: string
      Value:
        type: array
        items:
          type: string
    additionalProperties: false
  TaskContactModel:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      FirstName:
        type: string
      LastName:
        type: string
      ProfileImageUrl:
        type: string
      IsCheckedIn:
        type: boolean
    additionalProperties: false
  TaskCreateModel:
    type: object
    properties:
      TaskType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      ToContactId:
        format: int32
        type: integer
      TaskMessageText:
        type: string
      Position:
        $ref: '#/definitions/PositionModel'
      Title:
        type: string
    additionalProperties: false
  TaskDetailModel:
    type: object
    properties:
      TaskId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      CreatedByContactName:
        type: string
      TaskAcquiredByContactId:
        format: int32
        type: integer
      TaskAcquiredByContactName:
        type: string
      TaskMessages:
        type: array
        items:
          $ref: '#/definitions/TaskMessageModel'
      Title:
        type: string
    additionalProperties: false
  TaskEditModel:
    type: object
    properties:
      TaskStatusType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      Title:
        type: string
    additionalProperties: false
  TaskMessageCreateModel:
    type: object
    properties:
      TaskId:
        format: int32
        type: integer
      MessageText:
        type: string
      Position:
        $ref: '#/definitions/PositionModel'
    additionalProperties: false
  TaskMessageEditModel:
    type: object
    properties:
      IsRead:
        type: boolean
    additionalProperties: false
  TaskMessageModel:
    type: object
    properties:
      TaskMessageId:
        format: int32
        type: integer
      SentByContactId:
        format: int32
        type: integer
      ToContactId:
        format: int32
        type: integer
      MessageText:
        type: string
      MessageSentAtUtc:
        format: date-time
        type: string
      SentByContactName:
        type: string
      ToContactName:
        type: string
      MessageIsRead:
        type: boolean
      Position:
        $ref: '#/definitions/PositionModel'
    additionalProperties: false
  TaskModel:
    type: object
    properties:
      TaskId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      CreatedByContactName:
        type: string
      TaskAcquiredByContactId:
        format: int32
        type: integer
      TaskAcquiredByContactName:
        type: string
      LastMessageSentByContactId:
        format: int32
        type: integer
      LastMessageSentByContactName:
        type: string
      LastMessageShortText:
        type: string
      LastMessageDateUtc:
        format: date-time
        type: string
      LastMessageIsRead:
        type: boolean
      CreatedByContactImageUrl:
        type: string
      TaskAcquiredByContactImageUrl:
        type: string
      TaskStatusType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      TaskType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      UnreadTaskMessages:
        format: int32
        type: integer
      Title:
        type: string
    additionalProperties: false
  TimeSpan:
    type: object
    properties:
      Ticks:
        format: int64
        type: integer
      Days:
        format: int32
        type: integer
        readOnly: true
      Hours:
        format: int32
        type: integer
        readOnly: true
      Milliseconds:
        format: int32
        type: integer
        readOnly: true
      Microseconds:
        format: int32
        type: integer
        readOnly: true
      Nanoseconds:
        format: int32
        type: integer
        readOnly: true
      Minutes:
        format: int32
        type: integer
        readOnly: true
      Seconds:
        format: int32
        type: integer
        readOnly: true
      TotalDays:
        format: double
        type: number
        readOnly: true
      TotalHours:
        format: double
        type: number
        readOnly: true
      TotalMilliseconds:
        format: double
        type: number
        readOnly: true
      TotalMicroseconds:
        format: double
        type: number
        readOnly: true
      TotalNanoseconds:
        format: double
        type: number
        readOnly: true
      TotalMinutes:
        format: double
        type: number
        readOnly: true
      TotalSeconds:
        format: double
        type: number
        readOnly: true
    additionalProperties: false
  TokenResponse:
    description: The token response
    type: object
    properties:
      UserName:
        type: string
      AccessToken:
        type: string
      ExpiresInSeconds:
        format: double
        type: number
      IssuedUtc:
        format: date-time
        type: string
      ExpiresUtc:
        format: date-time
        type: string
      RefreshToken:
        type: string
    additionalProperties: false
  TollGeofenceModelGET:
    type: object
    properties:
      GeofenceId:
        format: int32
        type: integer
      Name:
        type: string
    additionalProperties: false
  TollZoneModelGET:
    type: object
    properties:
      TollZoneId:
        format: int32
        type: integer
      Name:
        type: string
      TollGeofenceList:
        type: array
        items:
          $ref: '#/definitions/TollGeofenceModelGET'
    additionalProperties: false
  TrackedAssetHistoryModelGET:
    type: object
    properties:
      TrackedAssetHistoryId:
        format: int32
        type: integer
      OccuredAt:
        format: date-time
        type: string
      HistoryType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
        type: integer
      Position:
        $ref: '#/definitions/PositionPointModel'
      IsNew:
        type: boolean
      PropertyList:
        type: array
        items:
          $ref: '#/definitions/PropertyModel'
    additionalProperties: false
  TrackedAssetModelEdit:
    required:
      - AssetType
    type: object
    properties:
      Name:
        type: string
      ImageUrl:
        type: string
      DefaultSleepTimeInMinutes:
        format: int32
        type: integer
      AssetType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      UpdateIntervalInSeconds:
        format: int32
        type: integer
      IsBluetoothDiscoverable:
        type: boolean
      IsRegistrationModeOn:
        type: boolean
    additionalProperties: false
  TrackedAssetModelGet:
    required:
      - AssetType
    type: object
    properties:
      Name:
        type: string
      ImageUrl:
        type: string
      DefaultSleepTimeInMinutes:
        format: int32
        type: integer
      AssetType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      UpdateIntervalInSeconds:
        format: int32
        type: integer
      IsBluetoothDiscoverable:
        type: boolean
      IsRegistrationModeOn:
        type: boolean
      TrackedAssetId:
        format: int32
        type: integer
      IMEIDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 255
        type: integer
      IMEI:
        type: string
      IMEIConfigId:
        format: int32
        type: integer
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
        type: integer
      LastLocation:
        $ref: '#/definitions/PositionPointModel'
      LastLocationTimestamp:
        format: date-time
        type: string
      LastContact:
        format: date-time
        type: string
      NumberOfUnreadNotifications:
        format: int32
        type: integer
      PropertyList:
        type: array
        items:
          $ref: '#/definitions/PropertyModel'
      AvailableCommandList:
        type: array
        items:
          $ref: '#/definitions/AssetCommandModel'
      LastKnownFormattedAddress:
        type: string
      IsEditable:
        type: boolean
      ExternalDevices:
        type: array
        items:
          $ref: '#/definitions/ExternalDeviceModelGET'
      MountedInCradle:
        type: boolean
    additionalProperties: false
  TrackedAssetSleepConfigurationModelPUT:
    required:
      - MinutesToSleep
    type: object
    properties:
      MinutesToSleep:
        format: int32
        type: integer
    additionalProperties: false
  TrackedAssetSleepIntervalModelGET:
    type: object
    properties:
      SleepIntervalList:
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  TrackedAssetTrackConfigurationModelPUT:
    required:
      - MinutesToTrack
    type: object
    properties:
      MinutesToTrack:
        format: int32
        type: integer
      OriginalTriggerMessageHistoryId:
        format: int32
        type: integer
    additionalProperties: false
  TrackedAssetUpdateIntervalModelGET:
    type: object
    properties:
      UpdateIntervalInSecondsList:
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  TransportstyrelsenInfoModel:
    type: object
    properties:
      HasInformation:
        type: boolean
      Make:
        type: string
      Model:
        type: string
      MakeImageUrl:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
        type: integer
      TransmissionType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      TrailerHitch:
        type: boolean
    additionalProperties: false
  TravelTimeReportModel:
    type: object
    properties:
      Period:
        format: int32
        type: integer
      BusinessTravelTimeInMinutes:
        format: int32
        type: integer
      PersonalTravelTimeInMinutes:
        format: int32
        type: integer
      OtherTravelTimeInMinutes:
        format: int32
        type: integer
    additionalProperties: false
  Trigger3CreateModel:
    required:
      - DestinationData
    type: object
    properties:
      TriggerType:
        format: int32
        description: "FirmwareConfigurationUpdate = 236, Eventype 236 loggas i [IMEIPing], sättet att detektera en uppdatering är att från föregående rad se om versionen ändrats\r\nHur får vi tag i föregående rad? Första raden måste då hämta senaste inserten i databasen?....inom datatabellen som ska insertas är det inga problem gissar jag....men analysen kan inte ske rad för rad utan hela datatabellen ska med\r\n \r\nMILStatusOnOff = 154, åtefinns i Datalogger message decoder, flik event messages, kolumn f MIL status\r\n \r\nDeviceDisconnect = 136,, åtefinns i Datalogger message decoder, flik event messages\r\nDeviceStillNotConnected = 137,, åtefinns i Datalogger message decoder, flik event messages\r\n\r\n SpeedNotification, återfinns i Pid0013"
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
          - 35
          - 36
          - 37
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
          - 46
          - 47
          - 48
          - 49
          - 52
          - 53
          - 54
          - 55
          - 64
        type: integer
      TriggerTypeData:
        type: string
      TriggerTypeData2:
        type: string
      TriggerTypeData3:
        type: string
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        minLength: 1
        type: string
      DeliveryType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
    additionalProperties: false
  Trigger3DetailModel:
    type: object
    properties:
      TriggerId:
        format: int32
        type: integer
      IMEIConfigId:
        format: int32
        type: integer
      TriggerType:
        format: int32
        description: "FirmwareConfigurationUpdate = 236, Eventype 236 loggas i [IMEIPing], sättet att detektera en uppdatering är att från föregående rad se om versionen ändrats\r\nHur får vi tag i föregående rad? Första raden måste då hämta senaste inserten i databasen?....inom datatabellen som ska insertas är det inga problem gissar jag....men analysen kan inte ske rad för rad utan hela datatabellen ska med\r\n \r\nMILStatusOnOff = 154, åtefinns i Datalogger message decoder, flik event messages, kolumn f MIL status\r\n \r\nDeviceDisconnect = 136,, åtefinns i Datalogger message decoder, flik event messages\r\nDeviceStillNotConnected = 137,, åtefinns i Datalogger message decoder, flik event messages\r\n\r\n SpeedNotification, återfinns i Pid0013"
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
          - 35
          - 36
          - 37
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
          - 46
          - 47
          - 48
          - 49
          - 52
          - 53
          - 54
          - 55
          - 64
        type: integer
      TriggerTypeData:
        type: string
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
      MutedUntilDateTime:
        format: date-time
        type: string
      MutedForAdditionalSeconds:
        format: int32
        type: integer
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        type: string
      DeliveryType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      APIClientId:
        format: int32
        type: integer
      CreatedAt:
        format: date-time
        type: string
      TriggerTypeData2:
        type: string
      OrganizationNodeId:
        format: int32
        type: integer
      TriggerTypeData3:
        type: string
      TriggerDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 255
        type: integer
    additionalProperties: false
  Trigger3EditModel:
    required:
      - DestinationData
    type: object
    properties:
      TriggerType:
        format: int32
        description: "FirmwareConfigurationUpdate = 236, Eventype 236 loggas i [IMEIPing], sättet att detektera en uppdatering är att från föregående rad se om versionen ändrats\r\nHur får vi tag i föregående rad? Första raden måste då hämta senaste inserten i databasen?....inom datatabellen som ska insertas är det inga problem gissar jag....men analysen kan inte ske rad för rad utan hela datatabellen ska med\r\n \r\nMILStatusOnOff = 154, åtefinns i Datalogger message decoder, flik event messages, kolumn f MIL status\r\n \r\nDeviceDisconnect = 136,, åtefinns i Datalogger message decoder, flik event messages\r\nDeviceStillNotConnected = 137,, åtefinns i Datalogger message decoder, flik event messages\r\n\r\n SpeedNotification, återfinns i Pid0013"
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
          - 35
          - 36
          - 37
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
          - 46
          - 47
          - 48
          - 49
          - 52
          - 53
          - 54
          - 55
          - 64
        type: integer
      TriggerTypeData:
        type: string
      TriggerTypeData2:
        type: string
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
      MutedUntilDateTime:
        format: date-time
        type: string
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        minLength: 1
        type: string
      DeliveryType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
      TriggerTypeData3:
        type: string
    additionalProperties: false
  Trigger3Model:
    type: object
    properties:
      TriggerId:
        format: int32
        type: integer
      IMEIConfigId:
        format: int32
        type: integer
      TriggerType:
        format: int32
        description: "FirmwareConfigurationUpdate = 236, Eventype 236 loggas i [IMEIPing], sättet att detektera en uppdatering är att från föregående rad se om versionen ändrats\r\nHur får vi tag i föregående rad? Första raden måste då hämta senaste inserten i databasen?....inom datatabellen som ska insertas är det inga problem gissar jag....men analysen kan inte ske rad för rad utan hela datatabellen ska med\r\n \r\nMILStatusOnOff = 154, åtefinns i Datalogger message decoder, flik event messages, kolumn f MIL status\r\n \r\nDeviceDisconnect = 136,, åtefinns i Datalogger message decoder, flik event messages\r\nDeviceStillNotConnected = 137,, åtefinns i Datalogger message decoder, flik event messages\r\n\r\n SpeedNotification, återfinns i Pid0013"
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
          - 35
          - 36
          - 37
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
          - 46
          - 47
          - 48
          - 49
          - 52
          - 53
          - 54
          - 55
          - 64
        type: integer
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        type: string
      TriggerTypeData:
        type: string
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
      MutedUntilDateTime:
        format: date-time
        type: string
      MutedForAdditionalSeconds:
        format: int32
        type: integer
      CreatedAt:
        format: date-time
        type: string
      TriggerTypeData2:
        type: string
      OrganizationNodeId:
        format: int32
        type: integer
      TriggerTypeData3:
        type: string
      TriggerDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 255
        type: integer
      IsEditable:
        type: boolean
    additionalProperties: false
  TriggerCreateBatchModel:
    required:
      - DestinationData
    type: object
    properties:
      TriggerType:
        format: int32
        description: "FirmwareConfigurationUpdate = 236, Eventype 236 loggas i [IMEIPing], sättet att detektera en uppdatering är att från föregående rad se om versionen ändrats\r\nHur får vi tag i föregående rad? Första raden måste då hämta senaste inserten i databasen?....inom datatabellen som ska insertas är det inga problem gissar jag....men analysen kan inte ske rad för rad utan hela datatabellen ska med\r\n \r\nMILStatusOnOff = 154, åtefinns i Datalogger message decoder, flik event messages, kolumn f MIL status\r\n \r\nDeviceDisconnect = 136,, åtefinns i Datalogger message decoder, flik event messages\r\nDeviceStillNotConnected = 137,, åtefinns i Datalogger message decoder, flik event messages\r\n\r\n SpeedNotification, återfinns i Pid0013"
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
          - 35
          - 36
          - 37
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
          - 46
          - 47
          - 48
          - 49
          - 52
          - 53
          - 54
          - 55
          - 64
        type: integer
      TriggerTypeData:
        type: string
      TriggerTypeData2:
        type: string
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        minLength: 1
        type: string
      DeliveryType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      IMEIConfigIds:
        type: array
        items:
          format: int32
          type: integer
      TriggerTypeData3:
        type: string
    additionalProperties: false
  TriggerCreateModel:
    required:
      - DestinationData
      - IMEIConfigId
    type: object
    properties:
      IMEIConfigId:
        format: int32
        type: integer
      TriggerType:
        format: int32
        description: "FirmwareConfigurationUpdate = 236, Eventype 236 loggas i [IMEIPing], sättet att detektera en uppdatering är att från föregående rad se om versionen ändrats\r\nHur får vi tag i föregående rad? Första raden måste då hämta senaste inserten i databasen?....inom datatabellen som ska insertas är det inga problem gissar jag....men analysen kan inte ske rad för rad utan hela datatabellen ska med\r\n \r\nMILStatusOnOff = 154, åtefinns i Datalogger message decoder, flik event messages, kolumn f MIL status\r\n \r\nDeviceDisconnect = 136,, åtefinns i Datalogger message decoder, flik event messages\r\nDeviceStillNotConnected = 137,, åtefinns i Datalogger message decoder, flik event messages\r\n\r\n SpeedNotification, återfinns i Pid0013"
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
          - 35
          - 36
          - 37
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
          - 46
          - 47
          - 48
          - 49
          - 52
          - 53
          - 54
          - 55
          - 64
        type: integer
      TriggerTypeData:
        type: string
      TriggerTypeData2:
        type: string
      TriggerTypeData3:
        type: string
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        minLength: 1
        type: string
      DeliveryType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
    additionalProperties: false
  TriggerDetailModel:
    type: object
    properties:
      TriggerId:
        format: int32
        type: integer
      IMEIConfigId:
        format: int32
        type: integer
      TriggerType:
        format: int32
        description: "FirmwareConfigurationUpdate = 236, Eventype 236 loggas i [IMEIPing], sättet att detektera en uppdatering är att från föregående rad se om versionen ändrats\r\nHur får vi tag i föregående rad? Första raden måste då hämta senaste inserten i databasen?....inom datatabellen som ska insertas är det inga problem gissar jag....men analysen kan inte ske rad för rad utan hela datatabellen ska med\r\n \r\nMILStatusOnOff = 154, åtefinns i Datalogger message decoder, flik event messages, kolumn f MIL status\r\n \r\nDeviceDisconnect = 136,, åtefinns i Datalogger message decoder, flik event messages\r\nDeviceStillNotConnected = 137,, åtefinns i Datalogger message decoder, flik event messages\r\n\r\n SpeedNotification, återfinns i Pid0013"
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
          - 35
          - 36
          - 37
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
          - 46
          - 47
          - 48
          - 49
          - 52
          - 53
          - 54
          - 55
          - 64
        type: integer
      TriggerTypeData:
        type: string
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
      MutedUntilDateTime:
        format: date-time
        type: string
      MutedForAdditionalSeconds:
        format: int32
        type: integer
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        type: string
      DeliveryType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      APIClientId:
        format: int32
        type: integer
      CreatedAt:
        format: date-time
        type: string
      TriggerTypeData2:
        type: string
      TriggerTypeData3:
        type: string
      TriggerDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 255
        type: integer
    additionalProperties: false
  TriggerEditModel:
    required:
      - DestinationData
      - IMEIConfigId
    type: object
    properties:
      IMEIConfigId:
        format: int32
        type: integer
      TriggerType:
        format: int32
        description: "FirmwareConfigurationUpdate = 236, Eventype 236 loggas i [IMEIPing], sättet att detektera en uppdatering är att från föregående rad se om versionen ändrats\r\nHur får vi tag i föregående rad? Första raden måste då hämta senaste inserten i databasen?....inom datatabellen som ska insertas är det inga problem gissar jag....men analysen kan inte ske rad för rad utan hela datatabellen ska med\r\n \r\nMILStatusOnOff = 154, åtefinns i Datalogger message decoder, flik event messages, kolumn f MIL status\r\n \r\nDeviceDisconnect = 136,, åtefinns i Datalogger message decoder, flik event messages\r\nDeviceStillNotConnected = 137,, åtefinns i Datalogger message decoder, flik event messages\r\n\r\n SpeedNotification, återfinns i Pid0013"
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
          - 35
          - 36
          - 37
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
          - 46
          - 47
          - 48
          - 49
          - 52
          - 53
          - 54
          - 55
          - 64
        type: integer
      TriggerTypeData:
        type: string
      TriggerTypeData2:
        type: string
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
      MutedUntilDateTime:
        format: date-time
        type: string
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        minLength: 1
        type: string
      DeliveryType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TriggerTypeData3:
        type: string
    additionalProperties: false
  TriggerEditMutedUntilModel:
    type: object
    properties:
      SecondsFromNow:
        format: int32
        type: integer
    additionalProperties: false
  TriggerMessageHistoryModel:
    type: object
    properties:
      TriggerMessageHistoryId:
        format: int32
        type: integer
      TriggerId:
        format: int32
        type: integer
      WasSentOn:
        format: date-time
        type: string
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        type: string
      MessageData1:
        type: string
      MessageData2:
        type: string
    additionalProperties: false
  TriggerModel:
    type: object
    properties:
      TriggerId:
        format: int32
        type: integer
      IMEIConfigId:
        format: int32
        type: integer
      TriggerType:
        format: int32
        description: "FirmwareConfigurationUpdate = 236, Eventype 236 loggas i [IMEIPing], sättet att detektera en uppdatering är att från föregående rad se om versionen ändrats\r\nHur får vi tag i föregående rad? Första raden måste då hämta senaste inserten i databasen?....inom datatabellen som ska insertas är det inga problem gissar jag....men analysen kan inte ske rad för rad utan hela datatabellen ska med\r\n \r\nMILStatusOnOff = 154, åtefinns i Datalogger message decoder, flik event messages, kolumn f MIL status\r\n \r\nDeviceDisconnect = 136,, åtefinns i Datalogger message decoder, flik event messages\r\nDeviceStillNotConnected = 137,, åtefinns i Datalogger message decoder, flik event messages\r\n\r\n SpeedNotification, återfinns i Pid0013"
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
          - 35
          - 36
          - 37
          - 38
          - 39
          - 40
          - 41
          - 42
          - 43
          - 44
          - 45
          - 46
          - 47
          - 48
          - 49
          - 52
          - 53
          - 54
          - 55
          - 64
        type: integer
      DestinationType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        type: integer
      DestinationData:
        type: string
      TriggerTypeData:
        type: string
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
      MutedUntilDateTime:
        format: date-time
        type: string
      MutedForAdditionalSeconds:
        format: int32
        type: integer
      CreatedAt:
        format: date-time
        type: string
      TriggerTypeData2:
        type: string
      TriggerTypeData3:
        type: string
      TriggerDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 255
        type: integer
    additionalProperties: false
  Trip2DetailModel:
    type: object
    properties:
      TripId:
        format: int32
        type: integer
      IMEI:
        type: string
      TripStartDateTime:
        format: date-time
        type: string
      TripStartTimeZone:
        format: int32
        type: integer
      TripStartODOMeter:
        format: int32
        type: integer
      TripNumber:
        format: int32
        type: integer
      NumberOfSupportedPIDs:
        format: int32
        type: integer
      VehicleIdentificationNumber:
        type: string
      VechicleProtocol:
        type: string
      TripEndDateTime:
        format: date-time
        type: string
      TripEndTimeZone:
        format: int32
        type: integer
      TripEndODOMeter:
        format: int32
        type: integer
      TripStartFormattedAddress:
        type: string
      TripEndFormattedAddress:
        type: string
      TripStartCustomAddress:
        type: string
      TripEndCustomAddress:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTags:
        type: string
      VehicleId:
        format: int32
        type: integer
      FuelInLiters:
        format: double
        type: number
      TripLengthInKilometers:
        format: double
        type: number
      TripLengthInMinutes:
        format: int32
        type: integer
      IdleTimeInSecondsAllTrip:
        format: int32
        type: integer
      IdleTimeInSecondsFromStart:
        format: int32
        type: integer
      IdleRPMMax:
        format: int32
        type: integer
      MaxSpeed:
        format: int32
        type: integer
      MaxRPM:
        format: int32
        type: integer
      CO2EmissionInGrams:
        format: double
        type: number
      OdometerInKilometersAfterTripEnded:
        format: double
        type: number
      AverageSpeedInKilometersPerHour:
        format: double
        type: number
      TripStartOutsideTemperatureInCelsius:
        format: double
        type: number
      DriverContactId:
        format: int32
        type: integer
      HasDrivingEvents:
        type: boolean
      CustomCategory:
        type: string
      HideStartRoute:
        type: boolean
      HideEndRoute:
        type: boolean
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      TripApprovalStatus:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      IsMerged:
        type: boolean
      IsLocked:
        type: boolean
      HasGermanTaxRules:
        type: boolean
      BusinessContact:
        type: string
      BusinessContactCompany:
        type: string
      TripReason:
        type: string
      LockReason:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 4
        type: integer
    additionalProperties: false
  Trip2EditModel:
    type: object
    properties:
      CustomCategory:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTags:
        type: array
        items:
          type: string
      LastEditedByContactId:
        format: int32
        type: integer
      BusinessContact:
        type: string
      BusinessContactCompany:
        type: string
      TripReason:
        type: string
    additionalProperties: false
  Trip2GeoModel:
    type: object
    properties:
      RecordTimeStamp:
        format: date-time
        type: string
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
      HeadingDegrees:
        format: int32
        type: integer
      NumberOfSatellites:
        format: int32
        type: integer
      HDOP:
        format: int32
        type: integer
    additionalProperties: false
  Trip2Model:
    type: object
    properties:
      TripId:
        format: int32
        type: integer
      TripStartDateTime:
        format: date-time
        type: string
      TripEndDateTime:
        format: date-time
        type: string
      DistanceKilometers:
        format: double
        type: number
      FuelConsumptionInLiters:
        format: double
        type: number
      TripStartFormattedAddress:
        type: string
      TripEndFormattedAddress:
        type: string
      TripStartCustomAddress:
        type: string
      TripEndCustomAddress:
        type: string
      VehicleId:
        format: int32
        type: integer
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      DriverContactId:
        format: int32
        type: integer
      HasSpeedingViolation:
        type: boolean
      HasIdlingEvent:
        type: boolean
      HasAccelerationEvent:
        type: boolean
      HasAccident:
        type: boolean
      HasTurningEvent:
        type: boolean
      HasBrakingEvent:
        type: boolean
      ParkedForMinutesUntilNextTrip:
        format: int32
        type: integer
      HasDrivingEvents:
        type: boolean
      CustomCategory:
        type: string
      TripTags:
        type: string
      HideStartRoute:
        type: boolean
      HideEndRoute:
        type: boolean
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      TripApprovalStatus:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      IsMerged:
        type: boolean
      HasGermanTaxRules:
        type: boolean
      IsLocked:
        type: boolean
      LockReason:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 4
        type: integer
      IsEditable:
        type: boolean
      TripStartCountry:
        type: string
      TripStartPostalCode:
        type: string
      TripEndCountry:
        type: string
      TripEndPostalCode:
        type: string
    additionalProperties: false
  Trip2StartEndGeoModel:
    type: object
    properties:
      StartLatitude:
        format: double
        type: number
      StartLongitude:
        format: double
        type: number
      EndLatitude:
        format: double
        type: number
      EndLongitude:
        format: double
        type: number
    additionalProperties: false
  TripAddNoteModel:
    type: object
    properties:
      TripTags:
        type: array
        items:
          type: string
    additionalProperties: false
  TripApprovalRequestModelGET:
    type: object
    properties:
      TripApprovalRequestId:
        format: int32
        type: integer
      SubmitDateTime:
        format: date-time
        type: string
      SubmitterContactId:
        format: int32
        type: integer
      SubmitterProfileImage:
        type: string
      SubmitterFullName:
        type: string
      FromUtc:
        format: date-time
        type: string
      ToUtc:
        format: date-time
        type: string
      NrOfTrips:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      VehicleName:
        type: string
      TotalDistanceInKilometer:
        format: double
        type: number
      TotalDuration:
        $ref: '#/definitions/TimeSpan'
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      StatusList:
        type: array
        items:
          $ref: '#/definitions/TripApprovalStatusModel'
    additionalProperties: false
  TripApprovalResponseModel:
    type: object
    properties:
      Note:
        type: string
      Approved:
        type: boolean
    additionalProperties: false
  TripApprovalStatusModel:
    type: object
    properties:
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      ApproverFullName:
        type: string
    additionalProperties: false
  TripApprovalSubmitModelPOST:
    type: object
    properties:
      From:
        format: date-time
        type: string
      To:
        format: date-time
        type: string
      TripIdList:
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  TripConcatenationData:
    type: object
    properties:
      RecordTimeStamp:
        format: date-time
        type: string
      RecordTimeStampEpochMs:
        format: int64
        type: integer
        readOnly: true
      Value:
        format: double
        type: number
    additionalProperties: false
  TripConcatenationEvent:
    type: object
    properties:
      TripDrivingEventType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
        type: integer
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
      RecordTimeStampEpochMs:
        format: int64
        type: integer
        readOnly: true
    additionalProperties: false
  TripConcatenationIdling:
    type: object
    properties:
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
      RecordTimeStampEpochMs:
        format: int64
        type: integer
        readOnly: true
      IdleInSeconds:
        format: int32
        type: integer
    additionalProperties: false
  TripConcatenationModel:
    type: object
    properties:
      TripId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      VehicleName:
        type: string
      MergedFromTripIds:
        type: array
        items:
          format: int32
          type: integer
      SpeedGroups:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationSpeedGroup'
      SpeedPoints:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationSpeedPoint'
      RawPoints:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationPoint'
      SnappedToRoadPoints:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationSimplePoint'
      IdlingEvents:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationIdling'
      DrivingEvents:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationEvent'
      SpeedData:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationData'
      SpeedLimitData:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationData'
      RPMData:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationData'
      FuelRateData:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationData'
      StartDateTime:
        format: date-time
        type: string
      EndDateTime:
        format: date-time
        type: string
      TripTimeZone:
        format: int32
        type: integer
      StartFormattedAddress:
        type: string
      EndFormattedAddress:
        type: string
      StartCustomAddress:
        type: string
      EndCustomAddress:
        type: string
      Distance:
        format: double
        type: number
      FuelConsumption:
        format: double
        type: number
      LengthInMinutes:
        format: int32
        type: integer
      DriverContactId:
        format: int32
        type: integer
      DriverName:
        type: string
      IdleRPMAverage:
        format: int32
        type: integer
      IdleTimeInSecondsForAllTrip:
        format: int32
        type: integer
      IdleTimeInSecondsFromStart:
        format: int32
        type: integer
      CO2Emission:
        format: double
        type: number
      MaxSpeed:
        format: double
        type: number
      MaxRPM:
        format: int32
        type: integer
      ParkedForMinutesUntilNextTrip:
        format: int32
        type: integer
      StartPoint:
        $ref: '#/definitions/TripConcatenationStartEndPoint'
      EndPoint:
        $ref: '#/definitions/TripConcatenationStartEndPoint'
      Notes:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      AverageSpeedInKilometersPerHour:
        format: double
        type: number
      CustomCategory:
        type: string
      HideStartRoute:
        type: boolean
      HideEndRoute:
        type: boolean
      IsImperial:
        type: boolean
      UnitType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      TripApprovalStatus:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      RegisteredTollList:
        type: array
        items:
          $ref: '#/definitions/RegisteredTollModelGET'
      HasGermanTaxRules:
        type: boolean
        readOnly: true
      BusinessContact:
        type: string
        readOnly: true
      BusinessContactCompany:
        type: string
        readOnly: true
      TripReason:
        type: string
        readOnly: true
      IsLocked:
        type: boolean
        readOnly: true
      LockReason:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 4
        type: integer
        readOnly: true
    additionalProperties: false
  TripConcatenationPoint:
    type: object
    properties:
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
      RecordTimeStampEpochMs:
        format: int64
        type: integer
        readOnly: true
      Speed:
        format: double
        type: number
      RPM:
        format: double
        type: number
      HeadingDegress:
        format: int32
        type: integer
      Hdop:
        format: int32
        type: integer
      NumberOfSatellites:
        format: int32
        type: integer
    additionalProperties: false
  TripConcatenationSimplePoint:
    type: object
    properties:
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
      RecordTimeStampEpochMs:
        format: int64
        type: integer
        readOnly: true
    additionalProperties: false
  TripConcatenationSpeedGroup:
    type: object
    properties:
      SpeedGroup:
        format: uuid
        type: string
      SpeedingForMoreThan30Seconds:
        type: boolean
      DistanceOfSpeeding:
        format: double
        type: number
      DistanceInSeconds:
        format: int32
        type: integer
      ThresholdType:
        format: int32
        type: integer
      SpeedPoints:
        type: array
        items:
          $ref: '#/definitions/TripConcatenationSpeedPoint'
    additionalProperties: false
  TripConcatenationSpeedPoint:
    type: object
    properties:
      Speed:
        format: double
        type: number
      SpeedLimit:
        format: double
        type: number
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
      RecordTimeStampEpochMs:
        format: int64
        type: integer
        readOnly: true
    additionalProperties: false
  TripConcatenationStartEndPoint:
    type: object
    properties:
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
    additionalProperties: false
  TripDetailModel:
    type: object
    properties:
      TripId:
        format: int32
        type: integer
      IMEI:
        type: string
      TripStartDateTime:
        format: date-time
        type: string
      TripStartTimeZone:
        format: int32
        type: integer
      TripStartODOMeter:
        format: int32
        type: integer
      TripNumber:
        format: int32
        type: integer
      NumberOfSupportedPIDs:
        format: int32
        type: integer
      VehicleIdentificationNumber:
        type: string
      VechicleProtocol:
        type: string
      TripEndDateTime:
        format: date-time
        type: string
      TripEndTimeZone:
        format: int32
        type: integer
      TripEndODOMeter:
        format: int32
        type: integer
      TripStartFormattedAddress:
        type: string
      TripEndFormattedAddress:
        type: string
      TripStartCustomAddress:
        type: string
      TripEndCustomAddress:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTags:
        type: string
      VehicleId:
        format: int32
        type: integer
      FuelInLiters:
        format: double
        type: number
      TripLengthInKilometers:
        format: double
        type: number
      TripLengthInMinutes:
        format: int32
        type: integer
      IdleTimeInSecondsAllTrip:
        format: int32
        type: integer
      IdleTimeInSecondsFromStart:
        format: int32
        type: integer
      IdleRPMMax:
        format: int32
        type: integer
      MaxSpeed:
        format: int32
        type: integer
      MaxRPM:
        format: int32
        type: integer
      CO2EmissionInGrams:
        format: double
        type: number
      OdometerInKilometersAfterTripEnded:
        format: double
        type: number
      AverageSpeedInKilometersPerHour:
        format: double
        type: number
      TripStartOutsideTemperatureInCelsius:
        format: double
        type: number
      DriverContactId:
        format: int32
        type: integer
      HasDrivingEvents:
        type: boolean
      CustomCategory:
        type: string
      HideStartRoute:
        type: boolean
      HideEndRoute:
        type: boolean
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      TripApprovalStatus:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      IsMerged:
        type: boolean
      HasGermanTaxRules:
        type: boolean
      BusinessContact:
        type: string
      BusinessContactCompany:
        type: string
      TripReason:
        type: string
      IsLocked:
        type: boolean
        readOnly: true
      LockReason:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 4
        type: integer
    additionalProperties: false
  TripEditModel:
    type: object
    properties:
      CustomCategory:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTags:
        type: array
        items:
          type: string
      LastEditedByContactId:
        format: int32
        type: integer
      BusinessContact:
        type: string
      BusinessContactCompany:
        type: string
      TripReason:
        type: string
    additionalProperties: false
  TripGeoModel:
    type: object
    properties:
      RecordTimeStamp:
        format: date-time
        type: string
      Latitude:
        format: double
        type: number
      Longitude:
        format: double
        type: number
      HeadingDegrees:
        format: int32
        type: integer
      NumberOfSatellites:
        format: int32
        type: integer
      HDOP:
        format: int32
        type: integer
    additionalProperties: false
  TripMergeModelPOST:
    type: object
    properties:
      TripIdList:
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  TripModel:
    type: object
    properties:
      TripId:
        format: int32
        type: integer
      TripStartDateTime:
        format: date-time
        type: string
      TripEndDateTime:
        format: date-time
        type: string
      DistanceKilometers:
        format: double
        type: number
      FuelConsumptionInLiters:
        format: double
        type: number
      TripStartFormattedAddress:
        type: string
      TripEndFormattedAddress:
        type: string
      TripStartCustomAddress:
        type: string
      TripEndCustomAddress:
        type: string
      VehicleId:
        format: int32
        type: integer
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      DriverContactId:
        format: int32
        type: integer
      HasSpeedingViolation:
        type: boolean
      HasIdlingEvent:
        type: boolean
      HasAccelerationEvent:
        type: boolean
      HasAccident:
        type: boolean
      HasTurningEvent:
        type: boolean
      HasBrakingEvent:
        type: boolean
      ParkedForMinutesUntilNextTrip:
        format: int32
        type: integer
      HasDrivingEvents:
        type: boolean
      CustomCategory:
        type: string
      TripTags:
        type: string
      HideStartRoute:
        type: boolean
      HideEndRoute:
        type: boolean
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      TripApprovalStatus:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      IsMerged:
        type: boolean
      HasGermanTaxRules:
        type: boolean
      IsLocked:
        type: boolean
      LockReason:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 4
        type: integer
      TripStartCountry:
        type: string
      TripStartPostalCode:
        type: string
      TripEndCountry:
        type: string
      TripEndPostalCode:
        type: string
    additionalProperties: false
  TripModelGET:
    type: object
    properties:
      TripId:
        format: int32
        type: integer
      Category:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripStartDateTime:
        format: date-time
        type: string
      TripEndDateTime:
        format: date-time
        type: string
      TripStartAddress:
        type: string
      TripEndAddress:
        type: string
      VehicleName:
        type: string
      DistanceInKilometer:
        format: double
        type: number
      Duration:
        $ref: '#/definitions/TimeSpan'
      Note:
        type: string
    additionalProperties: false
  TripScoreChartDataListModel:
    type: object
    properties:
      ContactChartDataList:
        type: array
        items:
          $ref: '#/definitions/TripScoreChartDataModel'
      OrganizationChartDataList:
        type: array
        items:
          $ref: '#/definitions/TripScoreChartDataModel'
        readOnly: true
    additionalProperties: false
  TripScoreChartDataModel:
    type: object
    properties:
      AverageTripScore:
        format: int32
        type: integer
      DrivingScore:
        format: int32
        type: integer
      Date:
        type: string
    additionalProperties: false
  TripScoreInformationModel:
    type: object
    properties:
      CrownValue:
        format: int32
        type: integer
      EmptyMessage:
        $ref: '#/definitions/TripScoreMessageModel'
      HelpMessage:
        $ref: '#/definitions/TripScoreMessageModel'
      Levels:
        type: array
        items:
          $ref: '#/definitions/TripScoreLevelModel'
    additionalProperties: false
  TripScoreLevelModel:
    type: object
    properties:
      Color:
        type: string
      MinValue:
        format: int32
        type: integer
      Text:
        type: string
    additionalProperties: false
  TripScoreMessageModel:
    type: object
    properties:
      Title:
        type: string
      Message:
        type: string
    additionalProperties: false
  TripScoreReductionModel:
    type: object
    properties:
      Type:
        format: int32
        type: integer
      Value:
        format: double
        type: number
      Text:
        type: string
    additionalProperties: false
  TripScoreSummaryModel:
    type: object
    properties:
      AverageTripScore:
        format: int32
        type: integer
      FromDate:
        type: string
      Reductions:
        type: array
        items:
          $ref: '#/definitions/TripScoreReductionModel'
      Strengths:
        type: array
        items:
          $ref: '#/definitions/TripScoreReductionModel'
      ToDate:
        type: string
    additionalProperties: false
  TripScoreTripModel:
    type: object
    properties:
      AuthorizedToViewTrip:
        type: boolean
      TripId:
        format: int32
        type: integer
      TripEndAddress:
        type: string
      TripEndDateTime:
        format: date-time
        type: string
      TripScore:
        format: int32
        type: integer
      TripStartAddress:
        type: string
      TripStartDateTime:
        format: date-time
        type: string
    additionalProperties: false
  TripStartEndGeoModel:
    type: object
    properties:
      StartLatitude:
        format: double
        type: number
      StartLongitude:
        format: double
        type: number
      EndLatitude:
        format: double
        type: number
      EndLongitude:
        format: double
        type: number
    additionalProperties: false
  TripSummaryReportModel:
    type: object
    properties:
      ReportStartPeriod:
        format: int32
        type: integer
      ReportEndPeriod:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      DistanceInKilometers:
        format: double
        type: number
      TravelTimeInMinutes:
        format: int32
        type: integer
      FuelInLiters:
        format: double
        type: number
      NumberOfTrips:
        format: int32
        type: integer
    additionalProperties: false
  TripSynchronized:
    type: object
    properties:
      Trips:
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  TripTypeBatchUpdateModel:
    type: object
    properties:
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CustomCategory:
        type: string
      TripIdList:
        type: array
        items:
          format: int32
          type: integer
    additionalProperties: false
  TripsReportModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      StartDateTime:
        format: date-time
        description: UTC
        type: string
      StartTimezone:
        format: int32
        type: integer
      EndDateTime:
        format: date-time
        description: UTC
        type: string
      EndTimezone:
        format: int32
        type: integer
      StartOdometer:
        format: int32
        description: Kilometers
        type: integer
      EndOdometer:
        format: int32
        description: Kilometers
        type: integer
      StartAddressName:
        type: string
      EndAddressName:
        type: string
      Distance:
        format: double
        description: Kilometers
        type: number
      ParkedForMinUntilNextTrip:
        format: int32
        type: integer
      FuelConsumption:
        format: double
        description: Liters
        type: number
      Co2Emissions:
        format: double
        description: Grams
        type: number
      IdleTime:
        format: int32
        description: Seconds
        type: integer
      Notes:
        type: string
      TripType:
        format: int32
        type: integer
      TripId:
        format: int64
        type: integer
      Settings:
        format: int64
        type: integer
      DriverContactId:
        format: int32
        type: integer
      LicensePlate:
        type: string
      VehicleName:
        type: string
    additionalProperties: false
  TripsReportRequestModel:
    type: object
    properties:
      VehicleIds:
        description: Optional
        type: array
        items:
          format: int32
          type: integer
      FromDate:
        format: date-time
        description: UTC
        type: string
      ToDate:
        format: date-time
        description: UTC
        type: string
    additionalProperties: false
  TripsReportResponse:
    type: object
    properties:
      Request:
        $ref: '#/definitions/TripsReportRequestModel'
      TripsReport:
        type: array
        items:
          $ref: '#/definitions/TripsReportModel'
    additionalProperties: false
  UpdateStopModel:
    type: object
    properties:
      RouteStopId:
        format: int32
        type: integer
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 3
        type: integer
      DriverNotes:
        type: string
    additionalProperties: false
  UserCreateModel:
    required:
      - EmailAddress
      - FirstName
      - LastName
      - UserName
    type: object
    properties:
      UserName:
        minLength: 1
        type: string
      FirstName:
        minLength: 1
        type: string
      LastName:
        minLength: 1
        type: string
      EmailAddress:
        minLength: 1
        type: string
      MobilePhoneNumber:
        type: string
      Description:
        type: string
      Password:
        type: string
    additionalProperties: false
  UserCreatedPasswordModel:
    type: object
    properties:
      Password:
        type: string
    additionalProperties: false
  UserDeviceCreateModel:
    type: object
    properties:
      DeviceIdentifier:
        type: string
      DeviceToken:
        type: string
      DeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Description:
        type: string
      DeviceName:
        type: string
    additionalProperties: false
  UserDeviceCreateModel2:
    type: object
    properties:
      DeviceIdentifier:
        type: string
      DeviceToken:
        type: string
      DeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      UserDeviceCertType:
        format: int32
        enum:
          - 0
          - 1
          - 3
          - 4
        type: integer
      Description:
        type: string
      DeviceName:
        type: string
    additionalProperties: false
  UserDeviceEditModel:
    type: object
    properties:
      DeviceIdentifier:
        type: string
      DeviceToken:
        type: string
      DeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Description:
        type: string
      DeviceName:
        type: string
    additionalProperties: false
  UserDeviceModel:
    description: User Device Model
    type: object
    properties:
      UserDeviceId:
        format: int32
        type: integer
      DeviceIdentifier:
        type: string
      DeviceToken:
        type: string
      DeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      Description:
        type: string
      DeviceName:
        type: string
    additionalProperties: false
  UserExistingPasswordModel:
    type: object
    properties:
      HasPassword:
        type: boolean
    additionalProperties: false
  UserModel:
    type: object
    properties:
      UserId:
        format: int32
        type: integer
      UserGuid:
        format: uuid
        type: string
      UserName:
        type: string
      ContactId:
        format: int32
        type: integer
    additionalProperties: false
  UserPhoneNumberModel:
    type: object
    properties:
      UserName:
        type: string
      PhoneNumber:
        type: string
      UserGuid:
        format: uuid
        type: string
      OrganizationId:
        format: int32
        type: integer
    additionalProperties: false
  UsernameTakenModel:
    type: object
    properties:
      Username:
        type: string
      Taken:
        type: boolean
    additionalProperties: false
  UsernamesPhoneNumberModel:
    type: object
    properties:
      UserName:
        type: string
      UserGuid:
        format: uuid
        type: string
      MobilePhoneNumber:
        type: string
      SSO:
        type: boolean
      SSOConfig:
        $ref: '#/definitions/SSOConfigurationModel'
    additionalProperties: false
  ValidatePinModel:
    type: object
    properties:
      UserName:
        type: string
      Pin:
        type: string
      UserGuid:
        format: uuid
        type: string
    additionalProperties: false
  VehickeMakesModel:
    type: object
    properties:
      VehicleMakes:
        type: array
        items:
          $ref: '#/definitions/VehicleMakeModel'
    additionalProperties: false
  Vehicle2CreateModel:
    required:
      - CreateRelationshipToId
      - VehicleRelationshipType
    type: object
    properties:
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      OwnerContactId:
        format: int32
        type: integer
      OwnerCompanyId:
        format: int32
        type: integer
      CreateRelationshipToId:
        format: int32
        type: integer
      VehicleRelationshipType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      UserVehicleIdentificationNumber:
        type: string
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AllowAutomaticUpdates:
        type: boolean
      DefaultPrivacyPolicyType:
        format: int32
        enum:
          - 1
        type: integer
      Nickname:
        type: string
      Tags:
        type: string
      CategoryColor:
        format: int32
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  Vehicle2DetailModel:
    type: object
    properties:
      VehicleIdentificationNumber:
        type: string
      VehicleId:
        format: int32
        type: integer
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      OwnerContactId:
        format: int32
        type: integer
      OwnerCompanyId:
        format: int32
        type: integer
      OwnedByName:
        type: string
      NumberOfTrips:
        format: int32
        type: integer
      DistanceTravelledThisYear:
        format: double
        type: number
      DistanceTravelledLastYear:
        format: double
        type: number
      LastKnownLatitude:
        format: double
        type: number
      LastKnownLongitude:
        format: double
        type: number
      LastKnownGeoTimeStamp:
        format: date-time
        type: string
      LastKnownFormattedAddress:
        type: string
      LastKnownCustomAddress:
        type: string
      LastKnownSpeed:
        format: double
        type: number
      LastKnownTemperature:
        format: double
        type: number
      LastKnownTemperatureTimeStamp:
        format: date-time
        type: string
      LastTripEndLatitude:
        format: double
        type: number
      LastTripEndLongitude:
        format: double
        type: number
      LastTripStartGeoTimeStamp:
        format: date-time
        type: string
      LastTripEndGeoTimeStamp:
        format: date-time
        type: string
      ParkedForNumberOfSeconds:
        format: int32
        type: integer
      OngoingTripId:
        format: int32
        type: integer
      LastTripId:
        format: int32
        type: integer
      MakeImageUrl:
        type: string
      CurrentOdometerInKilometers:
        format: double
        type: number
      UserVehicleIdentificationNumber:
        type: string
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AllowAutomaticUpdates:
        type: boolean
      AquiredDate:
        format: date-time
        type: string
      YearlyTax:
        format: double
        type: number
      LastSyncUtcWithVehicleExternalInformation:
        format: date-time
        type: string
      NumberOfOwners:
        format: int32
        type: integer
      Status1:
        type: string
      RegisteredInISO3166CountryCode:
        type: string
      AllowAutomaticVehicleExternalInformationUpdate:
        type: boolean
      CO2Urban:
        format: double
        type: number
      CO2UrbanExtra:
        format: double
        type: number
      CO2Combined:
        format: double
        type: number
      FrontTyre:
        type: string
      RearTyre:
        type: string
      FrontWheelRim:
        type: string
      RearWheelRim:
        type: string
      TrailerHitch:
        type: boolean
      TrailerHitchMaxLoadKgWithoutBreaks:
        format: double
        type: number
      TrailerHitchMaxLoadKgWithDefaultDriversLicence:
        format: double
        type: number
      TrailerHitchMaxLoadKgWithAlternativeDriversLicence:
        format: double
        type: number
      InspectionPeriodStart:
        format: date-time
        type: string
      InspectionPeriodEnd:
        format: date-time
        type: string
      Owner:
        type: string
      OwnerType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      LeaseCompany:
        type: string
      InsuranceCompany:
        type: string
      EngineSizekW:
        format: int32
        type: integer
      DisplacementCm3:
        format: int32
        type: integer
      VehicleMatureTax:
        format: double
        type: number
      VehicleTax:
        format: double
        type: number
      MaxNumberOfPassengers:
        format: int32
        type: integer
      CurbWeightKg:
        format: double
        type: number
      GrossWeightKg:
        format: double
        type: number
      TaxWeightKg:
        format: double
        type: number
      MaxGrossWeightWithTrailerKg:
        format: double
        type: number
      IsImported:
        type: boolean
      FirstDateRegisteredInCurrentCountry:
        format: date-time
        type: string
      VehicleManufacturedDate:
        format: date-time
        type: string
      PaintColor:
        type: string
      AllowTripDrivingEventRecording:
        type: boolean
      InsuranceDate:
        format: date-time
        type: string
      TrailerHitchMaxWeightKg:
        format: double
        type: number
      LastInspectionDate:
        format: date-time
        type: string
      CheckedInContactId:
        format: int32
        type: integer
      CheckedInDateTimeUtc:
        format: date-time
        type: string
      LastTripIdCheckedInContact:
        format: int32
        type: integer
      FuelConsumptionCombinedLiters:
        format: double
        type: number
      TransmissionType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      PriceExcludingEquipmentLocalCurrency:
        format: double
        type: number
      AverageTripDistanceKm:
        format: double
        type: number
      AverigeTripIdleTimeSeconds:
        format: double
        type: number
      AverageFuelConsumptionLiter:
        format: double
        type: number
      IsEditable:
        type: boolean
      IsOdometerEditable:
        type: boolean
      TransferIntervalInSeconds:
        format: int32
        type: integer
      SampleHarshEvents:
        type: boolean
      Features:
        type: array
        items:
          type: string
      AllowSpeedRecording:
        type: boolean
      Nickname:
        type: string
      CategoryColor:
        format: int32
        type: integer
      Tags:
        type: string
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  Vehicle2EditModel:
    type: object
    properties:
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      OwnerContactId:
        format: int32
        type: integer
      OwnerCompanyId:
        format: int32
        type: integer
      UserVehicleIdentificationNumber:
        type: string
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AllowAutomaticUpdates:
        type: boolean
      FrontTyre:
        type: string
      RearTyre:
        type: string
      FrontWheelRim:
        type: string
      RearWheelRim:
        type: string
      TrailerHitch:
        type: boolean
      OdometerInKilometers:
        format: double
        type: number
      DefaultPrivacyPolicyType:
        format: int32
        enum:
          - 1
        type: integer
      UpdateFromTransportstyrelsen:
        type: boolean
      AllowSpeedRecording:
        type: boolean
      Nickname:
        type: string
      Tags:
        type: string
      CategoryColor:
        format: int32
        description: "Supported colors (hex value), \r\n3652794 (#37BCBA),\r\n2591227 (#2789FB),\r\n11430900 (#AE6BF4),\r\n16478657 (#FB71C1),\r\n16735053 (#FF5B4D),\r\n16752644 (#FFA004),\r\n16772393 (#FFED29),\r\n13228106 (#C9D84A),\r\n6597394 (#64AB12),\r\n12096370 (#B89372)"
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  Vehicle2Model:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      VehicleIdentificationNumber:
        type: string
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      OwnerContactId:
        format: int32
        type: integer
      OwnerCompanyId:
        format: int32
        type: integer
      CurrentOdometerInKilometers:
        format: double
        type: number
      UserVehicleIdentificationNumber:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AllowAutomaticUpdates:
        type: boolean
      DefaultPrivacyPolicyType:
        format: int32
        enum:
          - 1
        type: integer
      CheckedInContactId:
        format: int32
        type: integer
      CheckedInDateTimeUtc:
        format: date-time
        type: string
      IsEditable:
        type: boolean
      IsOdometerEditable:
        type: boolean
      MakeImageUrl:
        type: string
      TransferIntervalInSeconds:
        format: int32
        type: integer
      SampleHarshEvents:
        type: boolean
      Features:
        type: array
        items:
          type: string
      AllowSpeedRecording:
        type: boolean
      Nickname:
        type: string
      CategoryColor:
        format: int32
        type: integer
      Tags:
        type: string
      CheckedInTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckedInCustomTripName:
        type: string
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
      LastTripDateTimeUtc:
        format: date-time
        type: string
    additionalProperties: false
  Vehicle3CheckInModel:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckOutAtUtc:
        format: date-time
        type: string
      UserDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      UserDeviceToken:
        type: string
    additionalProperties: false
  Vehicle3CreateModel:
    required:
      - CreateRelationshipToId
      - VehicleRelationshipType
    type: object
    properties:
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      OwnerContactId:
        format: int32
        type: integer
      OwnerCompanyId:
        format: int32
        type: integer
      CreateRelationshipToId:
        format: int32
        type: integer
      VehicleRelationshipType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      UserVehicleIdentificationNumber:
        type: string
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AllowAutomaticUpdates:
        type: boolean
      DefaultPrivacyPolicyType:
        format: int32
        enum:
          - 1
        type: integer
      Nickname:
        type: string
      Tags:
        type: string
      CategoryColor:
        format: int32
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  Vehicle3DetailModel:
    type: object
    properties:
      VehicleIdentificationNumber:
        type: string
      VehicleId:
        format: int32
        type: integer
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      OwnedByName:
        type: string
      NumberOfTrips:
        format: int32
        type: integer
      DistanceTravelledThisYear:
        format: double
        type: number
      DistanceTravelledLastYear:
        format: double
        type: number
      LastKnownLatitude:
        format: double
        type: number
      LastKnownLongitude:
        format: double
        type: number
      LastKnownGeoTimeStamp:
        format: date-time
        type: string
      LastKnownFormattedAddress:
        type: string
      LastKnownCustomAddress:
        type: string
      LastKnownSpeed:
        format: double
        type: number
      LastKnownTemperature:
        format: double
        type: number
      LastKnownTemperatureTimeStamp:
        format: date-time
        type: string
      LastTripEndLatitude:
        format: double
        type: number
      LastTripEndLongitude:
        format: double
        type: number
      LastTripStartGeoTimeStamp:
        format: date-time
        type: string
      LastTripEndGeoTimeStamp:
        format: date-time
        type: string
      ParkedForNumberOfSeconds:
        format: int32
        type: integer
      OngoingTripId:
        format: int32
        type: integer
      LastTripId:
        format: int32
        type: integer
      MakeImageUrl:
        type: string
      CurrentOdometerInKilometers:
        format: double
        type: number
      UserVehicleIdentificationNumber:
        type: string
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AllowAutomaticUpdates:
        type: boolean
      AquiredDate:
        format: date-time
        type: string
      YearlyTax:
        format: double
        type: number
      LastSyncUtcWithVehicleExternalInformation:
        format: date-time
        type: string
      NumberOfOwners:
        format: int32
        type: integer
      Status1:
        type: string
      RegisteredInISO3166CountryCode:
        type: string
      AllowAutomaticVehicleExternalInformationUpdate:
        type: boolean
      CO2Urban:
        format: double
        type: number
      CO2UrbanExtra:
        format: double
        type: number
      CO2Combined:
        format: double
        type: number
      FrontTyre:
        type: string
      RearTyre:
        type: string
      FrontWheelRim:
        type: string
      RearWheelRim:
        type: string
      TrailerHitch:
        type: boolean
      TrailerHitchMaxLoadKgWithoutBreaks:
        format: double
        type: number
      TrailerHitchMaxLoadKgWithDefaultDriversLicence:
        format: double
        type: number
      TrailerHitchMaxLoadKgWithAlternativeDriversLicence:
        format: double
        type: number
      InspectionPeriodStart:
        format: date-time
        type: string
      InspectionPeriodEnd:
        format: date-time
        type: string
      Owner:
        type: string
      OwnerType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      LeaseCompany:
        type: string
      InsuranceCompany:
        type: string
      EngineSizekW:
        format: int32
        type: integer
      DisplacementCm3:
        format: int32
        type: integer
      VehicleMatureTax:
        format: double
        type: number
      VehicleTax:
        format: double
        type: number
      MaxNumberOfPassengers:
        format: int32
        type: integer
      CurbWeightKg:
        format: double
        type: number
      GrossWeightKg:
        format: double
        type: number
      TaxWeightKg:
        format: double
        type: number
      MaxGrossWeightWithTrailerKg:
        format: double
        type: number
      IsImported:
        type: boolean
      FirstDateRegisteredInCurrentCountry:
        format: date-time
        type: string
      VehicleManufacturedDate:
        format: date-time
        type: string
      PaintColor:
        type: string
      AllowTripDrivingEventRecording:
        type: boolean
      InsuranceDate:
        format: date-time
        type: string
      TrailerHitchMaxWeightKg:
        format: double
        type: number
      LastInspectionDate:
        format: date-time
        type: string
      CheckedInContactId:
        format: int32
        type: integer
      CheckedInDateTimeUtc:
        format: date-time
        type: string
      LastTripIdCheckedInContact:
        format: int32
        type: integer
      FuelConsumptionCombinedLiters:
        format: double
        type: number
      TransmissionType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      PriceExcludingEquipmentLocalCurrency:
        format: double
        type: number
      AverageTripDistanceKm:
        format: double
        type: number
      AverigeTripIdleTimeSeconds:
        format: double
        type: number
      AverageFuelConsumptionLiter:
        format: double
        type: number
      TransferIntervalInSeconds:
        format: int32
        type: integer
      SampleHarshEvents:
        type: boolean
      Features:
        type: array
        items:
          type: string
      AllowSpeedRecording:
        type: boolean
      Nickname:
        type: string
      CategoryColor:
        format: int32
        type: integer
      Tags:
        type: string
      OrganizationId:
        format: int32
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  Vehicle3EditModel:
    type: object
    properties:
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      UserVehicleIdentificationNumber:
        type: string
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AllowAutomaticUpdates:
        type: boolean
      FrontTyre:
        type: string
      RearTyre:
        type: string
      FrontWheelRim:
        type: string
      RearWheelRim:
        type: string
      TrailerHitch:
        type: boolean
      OdometerInKilometers:
        format: double
        type: number
      DefaultPrivacyPolicyType:
        format: int32
        enum:
          - 1
        type: integer
      UpdateFromTransportstyrelsen:
        type: boolean
      AllowSpeedRecording:
        type: boolean
      Nickname:
        type: string
      Tags:
        type: string
      CategoryColor:
        format: int32
        description: "Supported colors (hex value), \r\n3652794 (#37BCBA),\r\n2591227 (#2789FB),\r\n11430900 (#AE6BF4),\r\n16478657 (#FB71C1),\r\n16735053 (#FF5B4D),\r\n16752644 (#FFA004),\r\n16772393 (#FFED29),\r\n13228106 (#C9D84A),\r\n6597394 (#64AB12),\r\n12096370 (#B89372)"
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  Vehicle3Model:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      VehicleIdentificationNumber:
        type: string
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      CurrentOdometerInKilometers:
        format: double
        type: number
      UserVehicleIdentificationNumber:
        type: string
      ModelYear:
        format: int32
        type: integer
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AllowAutomaticUpdates:
        type: boolean
      DefaultPrivacyPolicyType:
        format: int32
        enum:
          - 1
        type: integer
      CheckedInContactId:
        format: int32
        type: integer
      CheckedInDateTimeUtc:
        format: date-time
        type: string
      MakeImageUrl:
        type: string
      Features:
        type: array
        items:
          type: string
      AllowSpeedRecording:
        type: boolean
      Nickname:
        type: string
      CategoryColor:
        format: int32
        type: integer
      Tags:
        type: string
      OrganizationId:
        format: int32
        type: integer
      OrganizationNodeId:
        format: int32
        type: integer
      CheckedInTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckedInCustomTripName:
        type: string
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
      IsEditable:
        type: boolean
      IsOdometerEditable:
        type: boolean
    additionalProperties: false
  VehicleCheckInModel:
    type: object
    properties:
      ContactId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      DefaultTripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      CheckOutAtUtc:
        format: date-time
        type: string
      UserDeviceType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      UserDeviceToken:
        type: string
    additionalProperties: false
  VehicleCheckOutModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
    additionalProperties: false
  VehicleCreateModel:
    required:
      - CreateRelationshipToId
      - VehicleRelationshipType
    type: object
    properties:
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      OwnerContactId:
        format: int32
        type: integer
      OwnerCompanyId:
        format: int32
        type: integer
      CreateRelationshipToId:
        format: int32
        type: integer
      VehicleRelationshipType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  VehicleDefectAttachmentCreateModel:
    type: object
    properties:
      AttachmentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      Data:
        type: string
    additionalProperties: false
  VehicleDefectAttachmentEditModel:
    type: object
    properties:
      VehicleDefectAttachmentId:
        format: int32
        type: integer
      AttachmentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      Data:
        type: string
    additionalProperties: false
  VehicleDefectAttachmentModel:
    type: object
    properties:
      VehicleDefectAttachmentId:
        format: int32
        type: integer
      VehicleDefectId:
        format: int32
        type: integer
      AttachmentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      AttachmentLocation:
        type: string
      AttachmentDateUtc:
        format: date-time
        type: string
    additionalProperties: false
  VehicleDefectCommentEditModel:
    type: object
    properties:
      VehicleDefectCommentId:
        format: int32
        type: integer
      Comment:
        type: string
    additionalProperties: false
  VehicleDefectCommentsCreateModel:
    type: object
    properties:
      VehicleDefectId:
        format: int32
        type: integer
      Comment:
        type: string
    additionalProperties: false
  VehicleDefectCommentsEditModel:
    type: object
    properties:
      Comment:
        type: string
    additionalProperties: false
  VehicleDefectCommentsModel:
    type: object
    properties:
      VehicleDefectCommentId:
        format: int32
        type: integer
      VehicleDefectId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      Comment:
        type: string
      CommentDateUtc:
        format: date-time
        type: string
    additionalProperties: false
  VehicleDefectCreateModel:
    type: object
    properties:
      DefectType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
        type: integer
      Notes:
        type: string
      VehicleDefectStatus:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectStatusCreateModel'
      VehicleDefectAttachments:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectAttachmentCreateModel'
      VehicleDefectComments:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectCommentsCreateModel'
    additionalProperties: false
  VehicleDefectEditModel:
    type: object
    properties:
      VehicleDefectId:
        format: int32
        type: integer
      DefectType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
        type: integer
      Notes:
        type: string
      DefectStatusType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      VehicleDefectAttachments:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectAttachmentEditModel'
      VehicleDefectComments:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectCommentEditModel'
    additionalProperties: false
  VehicleDefectModel:
    type: object
    properties:
      VehicleDefectId:
        format: int32
        type: integer
      VehicleInspectionId:
        format: int32
        type: integer
      DefectType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      DefectDateUtc:
        format: date-time
        type: string
      Notes:
        type: string
      DefectStatusType:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      VehicleDefectStatus:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectStatusModel'
      VehicleDefectAttachments:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectAttachmentModel'
      VehicleDefectComments:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectCommentsModel'
    additionalProperties: false
  VehicleDefectStatusCreateModel:
    type: object
    properties:
      DefectStatus:
        format: int32
        enum:
          - 0
          - 1
        type: integer
    additionalProperties: false
  VehicleDefectStatusModel:
    type: object
    properties:
      VehicleDefectStatusId:
        format: int32
        type: integer
      VehicleDefectId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      DefectStatus:
        format: int32
        enum:
          - 0
          - 1
        type: integer
      DefectStatusDateUtc:
        format: date-time
        type: string
    additionalProperties: false
  VehicleDefectTypeModel:
    type: object
    properties:
      DefectType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
        type: integer
      LocalizedName:
        type: object
        additionalProperties:
          type: string
    additionalProperties: false
  VehicleDetailModel:
    type: object
    properties:
      VehicleIdentificationNumber:
        type: string
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      OwnerContactId:
        format: int32
        type: integer
      OwnerCompanyId:
        format: int32
        type: integer
      OwnedByName:
        type: string
      NumberOfTrips:
        format: int32
        type: integer
      DistanceTravelledThisYear:
        format: double
        type: number
      DistanceTravelledLastYear:
        format: double
        type: number
      LastKnownLatitude:
        format: double
        type: number
      LastKnownLongitude:
        format: double
        type: number
      LastKnownGeoTimeStamp:
        format: date-time
        type: string
      LastKnownFormattedAddress:
        type: string
      LastKnownCustomAddress:
        type: string
      LastKnownSpeed:
        format: double
        type: number
      LastKnownTemperature:
        format: double
        type: number
      LastKnownTemperatureTimeStamp:
        format: date-time
        type: string
      LastTripEndLatitude:
        format: double
        type: number
      LastTripEndLongitude:
        format: double
        type: number
      LastTripEndGeoTimeStamp:
        format: date-time
        type: string
      ParkedForNumberOfSeconds:
        format: int32
        type: integer
      OngoingTripId:
        format: int32
        type: integer
      MakeImageUrl:
        type: string
      CurrentOdometerInKilometers:
        format: double
        type: number
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  VehicleEditModel:
    type: object
    properties:
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      BodyStyle:
        type: string
      BodyType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
        type: integer
      OwnerContactId:
        format: int32
        type: integer
      OwnerCompanyId:
        format: int32
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  VehicleGeofenceCreateModel:
    required:
      - GeofenceId
      - VehicleId
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      GeofenceId:
        format: int32
        type: integer
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
    additionalProperties: false
  VehicleGeofenceEditModel:
    type: object
    properties:
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
    additionalProperties: false
  VehicleGeofenceModel:
    type: object
    properties:
      VehicleGeofenceId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      GeofenceId:
        format: int32
        type: integer
      ValidFrom:
        format: date-time
        type: string
      ValidTo:
        format: date-time
        type: string
    additionalProperties: false
  VehicleHealth:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      PeriodFrom:
        format: int32
        type: integer
      PeriodTo:
        format: int32
        type: integer
      LastBatteryStatus:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      LastBatteryWarning:
        $ref: '#/definitions/BatteryEvent'
      BatteryEventsForSelectedPeriod:
        type: array
        items:
          $ref: '#/definitions/BatteryEvent'
      LastMILEvent:
        $ref: '#/definitions/MILEvent'
      MILEventsForSelectedPeriod:
        type: array
        items:
          $ref: '#/definitions/MILEvent'
      LastDTCEvent:
        $ref: '#/definitions/DTCEvent'
      LastPendingDTCEvent:
        $ref: '#/definitions/DTCEvent'
      DTCEventsForSelectedPeriod:
        type: array
        items:
          $ref: '#/definitions/DTCEvent'
      PendingDTCEventsForSelectedPeriod:
        type: array
        items:
          $ref: '#/definitions/DTCEvent'
    additionalProperties: false
  VehicleInspectionCreateModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      InspectionDateUtc:
        format: date-time
        type: string
      VehicleDefects:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectCreateModel'
    additionalProperties: false
  VehicleInspectionEditModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      InspectionStatusType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
        type: integer
      VehicleDefects:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectEditModel'
    additionalProperties: false
  VehicleInspectionExportModel:
    type: object
    properties:
      ToEmail:
        type: string
      ISO639LanguageCode:
        type: string
    additionalProperties: false
  VehicleInspectionModel:
    type: object
    properties:
      VehicleInspectionId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      InspectionStatusType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
        type: integer
      InspectionDateUtc:
        format: date-time
        type: string
      VehicleDefects:
        type: array
        items:
          $ref: '#/definitions/VehicleDefectModel'
      InspectionStatus:
        type: array
        items:
          $ref: '#/definitions/VehicleInspectionStatusModel'
    additionalProperties: false
  VehicleInspectionStatusModel:
    type: object
    properties:
      VehicleInspectionStatusId:
        format: int32
        type: integer
      VehicleInspectionId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      InspectionStatusType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
        type: integer
      StatusDateUtc:
        format: date-time
        type: string
    additionalProperties: false
  VehicleMakeModel:
    type: object
    properties:
      Make:
        type: string
      MakeUrl:
        type: string
    additionalProperties: false
  VehicleModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      VehicleIdentificationNumber:
        type: string
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      OwnerContactId:
        format: int32
        type: integer
      OwnerCompanyId:
        format: int32
        type: integer
      CurrentOdometerInKilometers:
        format: double
        type: number
      VehicleType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 255
        type: integer
      DeleteTripDetailsAfter:
        $ref: '#/definitions/TimeSpan'
      DeleteTripsAfter:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
  VehicleModelModel:
    type: object
    properties:
      Make:
        type: string
      Model:
        type: string
    additionalProperties: false
  VehicleModelsModel:
    type: object
    properties:
      VehicleModels:
        type: array
        items:
          $ref: '#/definitions/VehicleModelModel'
    additionalProperties: false
  VehicleOdometerModelGET:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      DistanceBusiness:
        format: double
        type: number
      DistancePrivate:
        format: double
        type: number
      DistanceOther:
        format: double
        type: number
      DistanceTotal:
        format: double
        type: number
        readOnly: true
      StartOdometer:
        format: double
        type: number
      EndOdometer:
        format: double
        type: number
      FromDateUtc:
        format: date-time
        type: string
      ToDateUtc:
        format: date-time
        type: string
    additionalProperties: false
  VehicleOdometerModelPUT:
    required:
      - VehicleId
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      NewEndOdometer:
        format: double
        maximum: 2147483647
        minimum: 1
        type: number
      FromDateUtc:
        format: date-time
        type: string
      ToDateUtc:
        format: date-time
        type: string
    additionalProperties: false
  VehiclePlaceCreateModel:
    required:
      - PlaceId
      - Radius
      - VehicleId
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      PlaceId:
        format: int32
        type: integer
      Description:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      Radius:
        format: int32
        type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  VehiclePlaceEditModel:
    required:
      - Radius
    type: object
    properties:
      Description:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      Radius:
        format: int32
        type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  VehiclePlaceModel:
    type: object
    properties:
      VehiclePlaceId:
        format: int32
        type: integer
      VehicleId:
        format: int32
        type: integer
      PlaceId:
        format: int32
        type: integer
      Description:
        type: string
      TripType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      TripTypeTrigger:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      Radius:
        format: int32
        type: integer
      DrivesBetweenAnotherPlaceId:
        format: int32
        type: integer
    additionalProperties: false
  VehicleSpeed2Model:
    type: object
    properties:
      SpeedKmPerHour:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  VehicleSpeedModel:
    description: PID013
    type: object
    properties:
      SpeedKmPerHour:
        format: double
        type: number
      RecordTimeStamp:
        format: date-time
        type: string
    additionalProperties: false
  VehicleStatusModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      LastPositionUtc:
        format: date-time
        type: string
      LastKnownLatitude:
        format: double
        type: number
      LastKnownLongitude:
        format: double
        type: number
      IsDriving:
        type: boolean
      MakeImageUrl:
        type: string
      ParkedForNumberOfSeconds:
        format: int32
        type: integer
      DrivingForNumberOfSeconds:
        format: int32
        type: integer
      LastKnownFormattedAddress:
        type: string
      LastKnownStreetAddress:
        type: string
      LastKnownCity:
        type: string
      LastTripId:
        format: int32
        type: integer
      LastLocationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      CategoryColor:
        format: int32
        type: integer
      Heading:
        format: int32
        type: integer
    additionalProperties: false
  VehicleSummaryModel:
    type: object
    properties:
      DistanceReports:
        type: array
        items:
          $ref: '#/definitions/DistanceReportModel'
      FuelReports:
        type: array
        items:
          $ref: '#/definitions/FuelReportModel'
      TravelTimeReports:
        type: array
        items:
          $ref: '#/definitions/TravelTimeReportModel'
      CO2Reports:
        type: array
        items:
          $ref: '#/definitions/CO2ReportModel'
      IdleTimeReports:
        type: array
        items:
          $ref: '#/definitions/IdleTimeReportModel'
      VehicleId:
        format: int32
        type: integer
    additionalProperties: false
  VehicleSummaryReportModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      VehicleIdentificationNumber:
        type: string
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      ModelYear:
        format: int32
        type: integer
      Business:
        format: double
        type: number
      Private:
        format: double
        type: number
      Other:
        format: double
        type: number
      Total:
        format: double
        type: number
      PeriodStartOdometer:
        format: double
        type: number
      PeriodEndOdometer:
        format: double
        type: number
      FuelConsumptionBusiness:
        format: double
        type: number
      FuelConsumptionPrivate:
        format: double
        type: number
      FuelConsumptionTotal:
        format: double
        type: number
      BusinessTolls:
        format: double
        type: number
      PrivateTolls:
        format: double
        type: number
      OtherTolls:
        format: double
        type: number
      NumberOfBusinessTolls:
        format: int32
        type: integer
      NumberOfPrivateTolls:
        format: int32
        type: integer
      NumberOfOtherTolls:
        format: int32
        type: integer
      NumberOfTolls:
        format: int32
        type: integer
    additionalProperties: false
  VehicleTinyModel:
    type: object
    properties:
      VehicleId:
        format: int32
        type: integer
      NumberPlate:
        type: string
      Make:
        type: string
      Model:
        type: string
      FriendlyName:
        type: string
      FuelType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
        type: integer
      ModelYear:
        format: int32
        type: integer
      ImageUrlMake:
        type: string
      UserFriendlyName:
        type: string
    additionalProperties: false
  VehiclesSummaryModel:
    type: object
    properties:
      DistanceReports:
        type: array
        items:
          $ref: '#/definitions/DistanceReportModel'
      FuelReports:
        type: array
        items:
          $ref: '#/definitions/FuelReportModel'
      TravelTimeReports:
        type: array
        items:
          $ref: '#/definitions/TravelTimeReportModel'
      CO2Reports:
        type: array
        items:
          $ref: '#/definitions/CO2ReportModel'
      IdleTimeReports:
        type: array
        items:
          $ref: '#/definitions/IdleTimeReportModel'
    additionalProperties: false
  VehiclesSummaryReportModel:
    type: object
    properties:
      VehiclesSummary:
        type: array
        items:
          $ref: '#/definitions/VehicleSummaryReportModel'
      Page:
        format: int32
        type: integer
      Records:
        format: int32
        type: integer
      TotalRecords:
        format: int32
        type: integer
      PageSize:
        format: int32
        type: integer
    additionalProperties: false
  Version:
    type: object
    properties:
      Major:
        format: int32
        type: integer
        readOnly: true
      Minor:
        format: int32
        type: integer
        readOnly: true
      Build:
        format: int32
        type: integer
        readOnly: true
      Revision:
        format: int32
        type: integer
        readOnly: true
      MajorRevision:
        format: int32
        type: integer
        readOnly: true
      MinorRevision:
        format: int32
        type: integer
        readOnly: true
    additionalProperties: false
  WorkOrderArticleModelGET:
    required:
      - ArticleName
      - PricePerQuantityExclVAT
      - TaxRate
    type: object
    properties:
      UnitType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
        type: integer
      ArticleName:
        minLength: 1
        type: string
      PricePerQuantityExclVAT:
        format: double
        type: number
      TaxRate:
        format: double
        type: number
      ISO4217CurrencyCode:
        type: string
      WorkOrderArticleId:
        format: int32
        type: integer
      Created:
        format: date-time
        type: string
    additionalProperties: false
  WorkOrderArticleModelPOST:
    required:
      - ArticleName
      - PricePerQuantityExclVAT
      - TaxRate
    type: object
    properties:
      UnitType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
        type: integer
      ArticleName:
        minLength: 1
        type: string
      PricePerQuantityExclVAT:
        format: double
        type: number
      TaxRate:
        format: double
        type: number
    additionalProperties: false
  WorkOrderArticleModelPUT:
    required:
      - ArticleName
      - PricePerQuantityExclVAT
      - TaxRate
    type: object
    properties:
      UnitType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
        type: integer
      ArticleName:
        minLength: 1
        type: string
      PricePerQuantityExclVAT:
        format: double
        type: number
      TaxRate:
        format: double
        type: number
    additionalProperties: false
  WorkOrderAttachmentModelGET:
    required:
      - AttachmentType
      - URL
    type: object
    properties:
      URL:
        minLength: 1
        type: string
      Description:
        type: string
      AttachmentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      WorkOrderAttachmentId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      Created:
        format: date-time
        type: string
    additionalProperties: false
  WorkOrderAttachmentModelPOST:
    required:
      - AttachmentType
      - URL
    type: object
    properties:
      URL:
        minLength: 1
        type: string
      Description:
        type: string
      AttachmentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
    additionalProperties: false
  WorkOrderAttachmentModelPUT:
    required:
      - AttachmentType
      - URL
    type: object
    properties:
      URL:
        minLength: 1
        type: string
      Description:
        type: string
      AttachmentType:
        format: int32
        enum:
          - 0
          - 1
          - 2
        type: integer
      WorkOrderAttachmentId:
        format: int32
        type: integer
    additionalProperties: false
  WorkOrderCategoryModelGET:
    required:
      - CategoryName
    type: object
    properties:
      CategoryName:
        minLength: 1
        type: string
      Created:
        format: date-time
        type: string
      WorkOrderCategoryId:
        format: int32
        type: integer
    additionalProperties: false
  WorkOrderCategoryModelPOST:
    required:
      - CategoryName
    type: object
    properties:
      CategoryName:
        minLength: 1
        type: string
    additionalProperties: false
  WorkOrderCustomerModelGET:
    type: object
    properties:
      Name:
        type: string
      ContactName:
        type: string
      CommunicationLanguageISO639_2:
        type: string
      Email:
        type: string
      PhoneNumber:
        type: string
      BillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      JobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
      WorkOrderCustomerId:
        format: int32
        type: integer
      CreatedDate:
        format: date-time
        type: string
    additionalProperties: false
  WorkOrderCustomerModelPOST:
    type: object
    properties:
      Name:
        type: string
      ContactName:
        type: string
      CommunicationLanguageISO639_2:
        type: string
      Email:
        type: string
      PhoneNumber:
        type: string
      BillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      JobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
    additionalProperties: false
  WorkOrderCustomerModelPUT:
    type: object
    properties:
      Name:
        type: string
      ContactName:
        type: string
      CommunicationLanguageISO639_2:
        type: string
      Email:
        type: string
      PhoneNumber:
        type: string
      BillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      JobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
    additionalProperties: false
  WorkOrderItemModelGET:
    required:
      - Quantity
      - WorkOrderArticleId
    type: object
    properties:
      Quantity:
        format: double
        type: number
      PricePerQuantityExclVAT:
        format: double
        type: number
      DiscountInPercentage:
        format: double
        type: number
      DiscountAmount:
        format: double
        type: number
      TaxRate:
        format: double
        type: number
      WorkOrderArticleId:
        format: int32
        type: integer
      ArticleName:
        type: string
      UnitType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
        type: integer
      ISO4217CurrencyCode:
        type: string
      WorkOrderItemId:
        format: int32
        type: integer
      Created:
        format: date-time
        type: string
    additionalProperties: false
  WorkOrderItemModelPOST:
    required:
      - Quantity
      - WorkOrderArticleId
    type: object
    properties:
      Quantity:
        format: double
        type: number
      PricePerQuantityExclVAT:
        format: double
        type: number
      DiscountInPercentage:
        format: double
        type: number
      DiscountAmount:
        format: double
        type: number
      TaxRate:
        format: double
        type: number
      WorkOrderArticleId:
        format: int32
        type: integer
      ArticleName:
        type: string
      UnitType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
        type: integer
    additionalProperties: false
  WorkOrderItemModelPUT:
    required:
      - Quantity
      - WorkOrderArticleId
    type: object
    properties:
      Quantity:
        format: double
        type: number
      PricePerQuantityExclVAT:
        format: double
        type: number
      DiscountInPercentage:
        format: double
        type: number
      DiscountAmount:
        format: double
        type: number
      TaxRate:
        format: double
        type: number
      WorkOrderArticleId:
        format: int32
        type: integer
      ArticleName:
        type: string
      UnitType:
        format: int32
        enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          - 16
          - 17
          - 18
          - 19
          - 20
          - 21
          - 22
          - 23
          - 24
          - 25
          - 26
          - 27
          - 28
          - 29
          - 30
          - 31
          - 32
          - 33
          - 34
        type: integer
      WorkOrderItemId:
        format: int32
        type: integer
    additionalProperties: false
  WorkOrderModelGET:
    type: object
    properties:
      JobDate:
        format: date-time
        type: string
      JobTime:
        $ref: '#/definitions/TimeSpan'
      EstimatedTimeInMinutes:
        format: int32
        type: integer
      JobDescription:
        type: string
      ExternalId:
        type: string
      CustomerContactName:
        type: string
      CustomerEmail:
        type: string
      CustomerName:
        type: string
      CustomerCommunicationLanguageISO639_2:
        type: string
      CustomerPhoneNumber:
        type: string
      CustomerJobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
      CustomerBillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      NotificationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      WorkOrderCategoryId:
        format: int32
        type: integer
      CategoryName:
        type: string
      AssignedToContactId:
        format: int32
        type: integer
      QuoteId:
        format: int32
        type: integer
      WorkOrderCustomerId:
        format: int32
        type: integer
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      WorkOrderId:
        format: int32
        type: integer
      Created:
        format: date-time
        type: string
      IsDeleted:
        type: boolean
      Rating:
        format: double
        type: number
      RequestedByContactId:
        format: int32
        type: integer
      StatusHistory:
        type: array
        items:
          $ref: '#/definitions/WorkOrderStatusHistoryModelGET'
      Notes:
        type: array
        items:
          $ref: '#/definitions/WorkOrderNoteModelGET'
      Items:
        type: array
        items:
          $ref: '#/definitions/WorkOrderItemModelGET'
      Attachments:
        type: array
        items:
          $ref: '#/definitions/WorkOrderAttachmentModelGET'
    additionalProperties: false
  WorkOrderModelPOST:
    type: object
    properties:
      JobDate:
        format: date-time
        type: string
      JobTime:
        $ref: '#/definitions/TimeSpan'
      EstimatedTimeInMinutes:
        format: int32
        type: integer
      JobDescription:
        type: string
      ExternalId:
        type: string
      CustomerContactName:
        type: string
      CustomerEmail:
        type: string
      CustomerName:
        type: string
      CustomerCommunicationLanguageISO639_2:
        type: string
      CustomerPhoneNumber:
        type: string
      CustomerJobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
      CustomerBillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      NotificationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      WorkOrderCategoryId:
        format: int32
        type: integer
      CategoryName:
        type: string
      AssignedToContactId:
        format: int32
        type: integer
      QuoteId:
        format: int32
        type: integer
      WorkOrderCustomerId:
        format: int32
        type: integer
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      Notes:
        type: array
        items:
          $ref: '#/definitions/WorkOrderNoteModelPOST'
      Items:
        type: array
        items:
          $ref: '#/definitions/WorkOrderItemModelPOST'
      Attachments:
        type: array
        items:
          $ref: '#/definitions/WorkOrderAttachmentModelPOST'
    additionalProperties: false
  WorkOrderModelPUT:
    type: object
    properties:
      JobDate:
        format: date-time
        type: string
      JobTime:
        $ref: '#/definitions/TimeSpan'
      EstimatedTimeInMinutes:
        format: int32
        type: integer
      JobDescription:
        type: string
      ExternalId:
        type: string
      CustomerContactName:
        type: string
      CustomerEmail:
        type: string
      CustomerName:
        type: string
      CustomerCommunicationLanguageISO639_2:
        type: string
      CustomerPhoneNumber:
        type: string
      CustomerJobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
      CustomerBillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      NotificationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      WorkOrderCategoryId:
        format: int32
        type: integer
      CategoryName:
        type: string
      AssignedToContactId:
        format: int32
        type: integer
      QuoteId:
        format: int32
        type: integer
      WorkOrderCustomerId:
        format: int32
        type: integer
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      Notes:
        type: array
        items:
          $ref: '#/definitions/WorkOrderNoteModelPUT'
      Items:
        type: array
        items:
          $ref: '#/definitions/WorkOrderItemModelPUT'
      Attachments:
        type: array
        items:
          $ref: '#/definitions/WorkOrderAttachmentModelPUT'
    additionalProperties: false
  WorkOrderModelSyncPUT:
    type: object
    properties:
      JobDate:
        format: date-time
        type: string
      JobTime:
        $ref: '#/definitions/TimeSpan'
      EstimatedTimeInMinutes:
        format: int32
        type: integer
      JobDescription:
        type: string
      ExternalId:
        type: string
      CustomerContactName:
        type: string
      CustomerEmail:
        type: string
      CustomerName:
        type: string
      CustomerCommunicationLanguageISO639_2:
        type: string
      CustomerPhoneNumber:
        type: string
      CustomerJobAddress:
        $ref: '#/definitions/CustomerJobAddressModel'
      CustomerBillingAddress:
        $ref: '#/definitions/CustomerBillingAddressModel'
      NotificationType:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
        type: integer
      WorkOrderCategoryId:
        format: int32
        type: integer
      CategoryName:
        type: string
      AssignedToContactId:
        format: int32
        type: integer
      QuoteId:
        format: int32
        type: integer
      WorkOrderCustomerId:
        format: int32
        type: integer
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
      Notes:
        type: array
        items:
          $ref: '#/definitions/WorkOrderNoteModelPUT'
      Items:
        type: array
        items:
          $ref: '#/definitions/WorkOrderItemModelPUT'
      Attachments:
        type: array
        items:
          $ref: '#/definitions/WorkOrderAttachmentModelPUT'
      WorkOrderId:
        format: int32
        type: integer
    additionalProperties: false
  WorkOrderNoteModelGET:
    required:
      - Note
    type: object
    properties:
      Note:
        minLength: 1
        type: string
      WorkOrderNoteId:
        format: int32
        type: integer
      CreatedByContactId:
        format: int32
        type: integer
      Created:
        format: date-time
        type: string
    additionalProperties: false
  WorkOrderNoteModelPOST:
    required:
      - Note
    type: object
    properties:
      Note:
        minLength: 1
        type: string
    additionalProperties: false
  WorkOrderNoteModelPUT:
    required:
      - Note
    type: object
    properties:
      Note:
        minLength: 1
        type: string
      WorkOrderNoteId:
        format: int32
        type: integer
    additionalProperties: false
  WorkOrderStatusHistoryModelGET:
    type: object
    properties:
      OccuredAt:
        format: date-time
        type: string
      ContactId:
        format: int32
        type: integer
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
    additionalProperties: false
  WorkOrderStatusModelPUT:
    required:
      - Status
    type: object
    properties:
      Status:
        format: int32
        enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        type: integer
    additionalProperties: false
  WorkShift:
    type: object
    properties:
      TotalTime:
        $ref: '#/definitions/TimeSpan'
      OffDutyTime:
        $ref: '#/definitions/TimeSpan'
      OnDutyTime:
        $ref: '#/definitions/TimeSpan'
      DrivingTime:
        $ref: '#/definitions/TimeSpan'
      SleeperBerthTime:
        $ref: '#/definitions/TimeSpan'
      DutyStatuses:
        type: array
        items:
          $ref: '#/definitions/DutyStatus'
      WorkShiftTime:
        $ref: '#/definitions/TimeSpan'
    additionalProperties: false
securityDefinitions:
  oauth2:
    type: oauth2
    flow: implicit
    authorizationUrl: https://api.automile.com/login/
    scopes:
      read: Read access to protected resources
      write: Write access to protected resources
    description: OAuth2 Implicit Grant