--- swagger: "2.0" info: description: "API for the user profile in the My Driving example app. https://github.com/Azure-Samples/openhack-devops-team" version: "0.1.0" title: "My Driving User Profile API" basePath: "/api" schemes: - "http" consumes: - "application/json" produces: - "application/json" paths: /healthcheck/user: 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" /version/user: x-swagger-router-controller: version get: description: "Returns APP_VERSION environment variable to ensure API is running with a specific versionl" responses: 200: description: "BuildVersion" schema: $ref: "#/definitions/Version" default: description: "An error occurred" schema: $ref: "#/definitions/error_response_default" /user: get: description: "List all user profiles" operationId: "getAllUsers" parameters: [] responses: 200: description: "List of all users" schema: type: "array" items: $ref: "#/definitions/Profile" default: description: "An error occurred" schema: $ref: "#/definitions/inline_response_default" x-swagger-router-controller: "user" /user/{userID}: parameters: - name: "userID" in: "path" description: "User's unique ID" type: "string" required: true get: description: "Get a User Profile by ID" operationId: "userGET" responses: 200: description: "List of profiles" schema: type: "array" items: $ref: "#/definitions/Profile" default: description: "An error occurred" schema: $ref: "#/definitions/inline_response_default" x-swagger-router-controller: "user" post: description: "Declares and creates a new profile" operationId: "userPOST" parameters: - in: "body" name: "_profile" description: "Details of the profile" required: true schema: $ref: "#/definitions/Profile" responses: 201: description: "Creation successful" schema: $ref: "#/definitions/Profile" headers: location: type: "string" default: description: "An error occurred" schema: $ref: "#/definitions/inline_response_default" x-swagger-router-controller: "user" patch: description: "Update User" operationId: "updateUser" responses: 200: description: "User Updated" schema: $ref: "#/definitions/Profile" 404: description: "User profile not found" default: description: "Unknown Error" schema: $ref: "#/definitions/error_response_default" delete: description: "Delete User By ID" operationId: "userDELETE" responses: 204: description: "User Deleted" 404: description: "User not found" default: description: "Unknown Error" schema: $ref: "#/definitions/error_response_default" definitions: Healthcheck: type: "object" properties: message: type: "string" description: "" status: type: "string" description: "" Version: type: "string" Profile: type: "object" properties: Id: type: "string" description: "User's unique identity" FirstName: type: "string" minLength: 0 maxLength: 50 pattern: "^[A-Za-z \0-\x7f][a-zA-Z \0-\x7f]*$" LastName: type: "string" minLength: 0 maxLength: 80 pattern: "^[A-Za-z \0-\x7f][a-zA-Z \0-\x7f]*$" UserId: type: "string" description: "User's identity" ProfilePictureUri: type: "string" format: "binary" description: "User's Profile picture" Rating: type: "integer" description: "User's rating" Ranking: type: "integer" description: "User's ranking" TotalDistance: type: "number" format: "float" description: "User's total distance traveled" TotalTrips: type: "integer" format: "long" description: "User's total number of trips" TotalTime: type: "integer" format: "long" description: "User's total driving time" HardStops: type: "integer" format: "long" description: "User's total number of hard stops" HardAccelerations: type: "integer" format: "long" description: "User's total number of hard accelerations" FuelConsumption: type: "number" format: "float" description: "User's amount of fuel consumed" MaxSpeed: type: "number" format: "float" description: "User's maximum speed" CreatedAt: type: "string" format: "date" UpdatedAt: type: "string" format: "date" Deleted: type: "boolean" description: "Whether the user has been deleted or not." error_response_default: type: "object" properties: status: description: "Error code (if available)" type: "integer" format: "int32" message: description: "Error Message" type: "string" inline_response_default: required: - "message" - "status" properties: status: type: "integer" format: "int32" message: type: "string"