swagger: '2.0' info: title: Automile ClientApi ResourceOwnerTrip3V2 API version: v1 tags: - name: ResourceOwnerTrip3V2 paths: /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: [] definitions: 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 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 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 RPM2Model: type: object properties: RPMValue: format: double type: number RecordTimeStamp: format: date-time type: string additionalProperties: false TripConcatenationStartEndPoint: type: object properties: Latitude: format: double type: number Longitude: format: double type: number additionalProperties: false EngineCoolantTemperature2Model: type: object properties: TemperatureInCelsius: format: double type: number RecordTimeStamp: format: date-time type: string 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 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 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 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 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 FuelLevelInput2Model: type: object properties: FuelLevelInPercentage: format: double type: number RecordTimeStamp: format: date-time type: string 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 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 VehicleSpeed2Model: type: object properties: SpeedKmPerHour: format: double type: number RecordTimeStamp: format: date-time type: string additionalProperties: false PID2Model: type: object properties: Data: format: byte type: string RecordTimeStamp: format: date-time type: string Value: format: double type: number 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 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 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 TripConcatenationData: type: object properties: RecordTimeStamp: format: date-time type: string RecordTimeStampEpochMs: format: int64 type: integer readOnly: true Value: format: double type: number 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 AmbientAirTemperatureModel: description: PID70 type: object properties: TemperatureInCelsius: format: double type: number RecordTimeStamp: format: date-time type: string 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