640 lines
16 KiB
JSON
640 lines
16 KiB
JSON
|
{
|
||
|
"swagger": "2.0",
|
||
|
"info": {
|
||
|
"version": "0.0.1",
|
||
|
"title": "MyDriving Trips API",
|
||
|
"description": "API for the user in the My Driving example app. https://github.com/Azure-Samples/openhack-devops-team"
|
||
|
},
|
||
|
"basePath": "/api",
|
||
|
"consumes": [
|
||
|
"application/json"
|
||
|
],
|
||
|
"produces": [
|
||
|
"application/json"
|
||
|
],
|
||
|
"paths": {
|
||
|
"/healthcheck/trips": {
|
||
|
"x-swagger-router-controller": "healthcheck",
|
||
|
"get": {
|
||
|
"description": "Returns healthcheck for systems looking to ensure API is up and operational",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Service is healthy",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/Healthcheck"
|
||
|
}
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "An error occurred",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/trips": {
|
||
|
"x-swagger-router-controller": "trips",
|
||
|
"get": {
|
||
|
"description": "Returns all trips",
|
||
|
"operationId": "getAllTrips",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Trips found",
|
||
|
"schema": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/trip"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"post": {
|
||
|
"description": "Create a trip",
|
||
|
"operationId": "createTrip",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "trip",
|
||
|
"in": "body",
|
||
|
"description": "Trip to add",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/trip"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"description": "Trip created",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/trip"
|
||
|
}
|
||
|
},
|
||
|
"404": {
|
||
|
"description": "Trip contains invalid User ID",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
},
|
||
|
"409": {
|
||
|
"description": "Trip already exists",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/trips/user/{userID}": {
|
||
|
"x-swagger-router-controller": "trips",
|
||
|
"get": {
|
||
|
"description": "Returns all trips for a given user",
|
||
|
"operationId": "getAllTripsForUser",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Trips found",
|
||
|
"schema": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/trip"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "userID",
|
||
|
"in": "path",
|
||
|
"description": "User ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"/trips/{tripID}": {
|
||
|
"x-swagger-router-controller": "trips",
|
||
|
"get": {
|
||
|
"description": "Get Trip by ID",
|
||
|
"operationId": "getTripByID",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Trip found",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/trip"
|
||
|
}
|
||
|
},
|
||
|
"404": {
|
||
|
"description": "Trip not found",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "tripID",
|
||
|
"in": "path",
|
||
|
"description": "Trip ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"patch": {
|
||
|
"description": "Update Trip",
|
||
|
"operationId": "updateTrip",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Trip Updated",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/trip"
|
||
|
}
|
||
|
},
|
||
|
"404": {
|
||
|
"description": "Trip not found"
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "tripID",
|
||
|
"in": "path",
|
||
|
"description": "Trip ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
},
|
||
|
{
|
||
|
"name": "trip",
|
||
|
"in": "body",
|
||
|
"description": "Trip to update",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/trip"
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"delete": {
|
||
|
"description": "Delete Trip By ID",
|
||
|
"operationId": "deleteTrip",
|
||
|
"responses": {
|
||
|
"204": {
|
||
|
"description": "Trip Deleted"
|
||
|
},
|
||
|
"404": {
|
||
|
"description": "Trip not found"
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "tripID",
|
||
|
"in": "path",
|
||
|
"description": "Trip ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"/trips/{tripID}/trippoints": {
|
||
|
"x-swagger-router-controller": "trippoints",
|
||
|
"get": {
|
||
|
"description": "Get Trip Points by Trip Id",
|
||
|
"operationId": "getTripPoints",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Trip Points found",
|
||
|
"schema": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/definitions/tripPoint"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "tripID",
|
||
|
"in": "path",
|
||
|
"description": "Trip ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"post": {
|
||
|
"description": "Create Trip Point for Trip",
|
||
|
"operationId": "createTripPoint",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "tripID",
|
||
|
"in": "path",
|
||
|
"description": "Trip ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
},
|
||
|
{
|
||
|
"name": "tripPoint",
|
||
|
"in": "body",
|
||
|
"description": "Trip Point to add",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/tripPoint"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"description": "Trip Point created",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/tripPoint"
|
||
|
}
|
||
|
},
|
||
|
"404": {
|
||
|
"description": "Trip Point contains invalid Trip ID",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
},
|
||
|
"409": {
|
||
|
"description": "Trip Point already exists",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/trips/{tripID}/trippoints/{tripPointID}": {
|
||
|
"x-swagger-router-controller": "trippoints",
|
||
|
"get": {
|
||
|
"description": "Get Trip Point by Trip ID and Trip Point ID",
|
||
|
"operationId": "getTripPointByID",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Trip Point found",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/tripPoint"
|
||
|
}
|
||
|
},
|
||
|
"404": {
|
||
|
"description": "Trip Point not found",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "tripID",
|
||
|
"in": "path",
|
||
|
"description": "Trip ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
},
|
||
|
{
|
||
|
"name": "tripPointID",
|
||
|
"in": "path",
|
||
|
"description": "Trip Point ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"patch": {
|
||
|
"description": "Update Trip Point",
|
||
|
"operationId": "updateTripPoint",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "Trip Point Updated",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/tripPoint"
|
||
|
}
|
||
|
},
|
||
|
"404": {
|
||
|
"description": "Trip Point not found"
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "tripID",
|
||
|
"in": "path",
|
||
|
"description": "Trip ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
},
|
||
|
{
|
||
|
"name": "tripPointID",
|
||
|
"in": "path",
|
||
|
"description": "Trip Point ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
},
|
||
|
{
|
||
|
"name": "tripPoint",
|
||
|
"in": "body",
|
||
|
"description": "Trip Point to update",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/tripPoint"
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"delete": {
|
||
|
"description": "Delete Trip Point By ID",
|
||
|
"operationId": "deleteTripPoint",
|
||
|
"responses": {
|
||
|
"204": {
|
||
|
"description": "Trip Point Deleted"
|
||
|
},
|
||
|
"404": {
|
||
|
"description": "Trip Point not found"
|
||
|
},
|
||
|
"default": {
|
||
|
"description": "Unknown Error",
|
||
|
"schema": {
|
||
|
"$ref": "#/definitions/error_response_default"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"parameters": [
|
||
|
{
|
||
|
"name": "tripID",
|
||
|
"in": "path",
|
||
|
"description": "Trip ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
},
|
||
|
{
|
||
|
"name": "tripPointID",
|
||
|
"in": "path",
|
||
|
"description": "Trip Point ID",
|
||
|
"type": "string",
|
||
|
"required": true
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"/swagger": {
|
||
|
"x-swagger-pipe": "swagger_raw"
|
||
|
}
|
||
|
},
|
||
|
"definitions": {
|
||
|
"Healthcheck": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"message": {
|
||
|
"type": "string",
|
||
|
"description": ""
|
||
|
},
|
||
|
"status": {
|
||
|
"type": "string",
|
||
|
"description": ""
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"error_response_default": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"status": {
|
||
|
"description": "Error code (if available)",
|
||
|
"type": "integer",
|
||
|
"format": "int32"
|
||
|
},
|
||
|
"message": {
|
||
|
"description": "Error Message",
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"trip": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"Id": {
|
||
|
"type": "string",
|
||
|
"description": "Trip ID",
|
||
|
"minLength": 0,
|
||
|
"maxLength": 128
|
||
|
},
|
||
|
"Name": {
|
||
|
"type": "string",
|
||
|
"minLength": 0,
|
||
|
"maxLength": 45,
|
||
|
"pattern": "^[A-Za-z \u0000-\u007f][a-zA-Z \u0000-\u007f]*$"
|
||
|
},
|
||
|
"UserId": {
|
||
|
"type": "string",
|
||
|
"description": "User's unique identity"
|
||
|
},
|
||
|
"RecordedtimeStamp": {
|
||
|
"type": "string",
|
||
|
"format": "date"
|
||
|
},
|
||
|
"EndtimeStamp": {
|
||
|
"type": "string",
|
||
|
"format": "date"
|
||
|
},
|
||
|
"Rating": {
|
||
|
"type": "integer",
|
||
|
"format": "int32"
|
||
|
},
|
||
|
"IsComplete": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"HasSimulatedOBDData": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"AverageSpeed": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"FuelUsed": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"HardStops": {
|
||
|
"type": "integer",
|
||
|
"format": "int64"
|
||
|
},
|
||
|
"HardAccelerations": {
|
||
|
"type": "integer",
|
||
|
"format": "int64"
|
||
|
},
|
||
|
"Distance": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"CreatedAt": {
|
||
|
"type": "string",
|
||
|
"format": "date-time"
|
||
|
},
|
||
|
"UpdatedAt": {
|
||
|
"type": "string",
|
||
|
"format": "date-time"
|
||
|
},
|
||
|
"Deleted": {
|
||
|
"type": "boolean"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"tripPoint": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"Id": {
|
||
|
"type": "string",
|
||
|
"description": "Trip Point ID",
|
||
|
"minLength": 0,
|
||
|
"maxLength": 128
|
||
|
},
|
||
|
"TripId": {
|
||
|
"type": "string",
|
||
|
"description": "Trip ID",
|
||
|
"minLength": 0,
|
||
|
"maxLength": 128
|
||
|
},
|
||
|
"Latitude": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"Longitude": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"Speed": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"RecordedTimeStamp": {
|
||
|
"type": "string",
|
||
|
"format": "date"
|
||
|
},
|
||
|
"Sequence": {
|
||
|
"type": "integer",
|
||
|
"format": "int32"
|
||
|
},
|
||
|
"RPM": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"ShortTermFuelBank": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"LongTermFuelBank": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"ThrottlePosition": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"RelativeThrottlePosition": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"Runtime": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"DistanceWithMalfunctionLight": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"EngineLoad": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"MassFlowRate": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"EngineFuelRate": {
|
||
|
"type": "number",
|
||
|
"format": "float"
|
||
|
},
|
||
|
"VIN": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"HasOBDData": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"HasSimulatedOBDData": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"CreatedAt": {
|
||
|
"type": "string",
|
||
|
"format": "date-time"
|
||
|
},
|
||
|
"UpdatedAt": {
|
||
|
"type": "string",
|
||
|
"format": "date-time"
|
||
|
},
|
||
|
"Deleted": {
|
||
|
"type": "boolean"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|