--- swagger: "2.0" info: description: "Users rest endpoints" version: "v1" title: "Users API" license: name: "Apache 2.0" url: "http://www.apache.org/licenses/LICENSE-2.0.html" host: "localhost:8081" basePath: "/ims-users/resources" tags: - name: "users" schemes: - "http" paths: /users: get: tags: - "users" summary: "Get all users" description: "" operationId: "getAll" parameters: - name: "names" in: "query" required: false type: "string" responses: default: description: "successful operation" post: tags: - "users" summary: "Create user" description: "This can only be done by the logged in user." operationId: "add" parameters: - in: "body" name: "body" description: "User that needs to be added" required: true schema: $ref: "#/definitions/User" responses: 201: description: "User added" 400: description: "Invalid user input" /users/authenticate: post: tags: - "users" summary: "Authenticate user" description: "Validate and issue token to user." operationId: "authenticate" parameters: - in: "body" name: "body" description: "User that needs to be authenticated" required: true schema: $ref: "#/definitions/Credential" responses: 200: description: "Token issued" 400: description: "Invalid credentials input" /users/{id}: get: tags: - "users" summary: "Get user by user id" description: "" operationId: "get" parameters: - name: "id" in: "path" description: "ID of user that needs to be fetched" required: true type: "integer" format: "int64" responses: 200: description: "successful operation" schema: $ref: "#/definitions/User" 400: description: "Invalid input" 404: description: "User not found" put: tags: - "users" summary: "Update user" description: "" operationId: "update" parameters: - name: "id" in: "path" description: "ID of user that needs to be updated" required: true type: "integer" format: "int64" - in: "body" name: "body" description: "User that needs to be updated" required: true schema: $ref: "#/definitions/User" responses: 200: description: "User updated" schema: $ref: "#/definitions/User" 400: description: "Invalid user input" 404: description: "User not found" delete: tags: - "users" summary: "Remove the user" description: "" operationId: "remove" parameters: - name: "id" in: "path" description: "ID of user that needs to be removed" required: true type: "integer" format: "int64" responses: default: description: "successful operation" definitions: Credential: type: "object" properties: username: type: "string" password: type: "string" User: type: "object" required: - "email" - "name" properties: id: type: "integer" format: "int64" name: type: "string" minLength: 2 maxLength: 20 email: type: "string" credential: $ref: "#/definitions/Credential"