{ "consumes": [ "application/json" ], "produces": [ "application/json" ], "schemes": [ "https" ], "swagger": "2.0", "info": { "title": "JNX Robot Control Manager API Documentation.", "version": "1.0.0" }, "host": "jannex", "basePath": "/v1", "paths": { "/api/v1/robots": { "get": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "robots" ], "summary": "Get all robots", "operationId": "getRobots", "parameters": [ { "description": "Page number", "name": "page", "in": "query" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/RobotsResponse" } } } } }, "/api/v1/urobots": { "get": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "robots" ], "summary": "Get all unauthorized robots", "operationId": "getUnauthorizedRobots", "parameters": [ { "description": "Page number", "name": "page", "in": "query" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/UnauthorizedRobotsResponse" } } } } }, "/control/1": { "post": { "description": "This is used to control Rex.\n", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "control" ], "summary": "Control Rex.", "operationId": "controlRex", "parameters": [ { "description": "Control Rex body.", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ControlBody" } } ], "responses": { "200": { "description": "Control Rex" }, "400": { "description": "Invalid request body" }, "422": { "description": "Robot not found" } } } }, "/control/1/finish": { "post": { "description": "This is used to finish control Rex.\n", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "control" ], "summary": "Finish control Rex.", "operationId": "finishControlRex", "responses": { "200": { "description": "Finish control Rex" }, "400": { "description": "Invalid robot name" }, "422": { "description": "Robot not found" } } } }, "/permitjoin": { "get": { "description": "This is used to get the current permit join status.\n", "produces": [ "application/json" ], "tags": [ "permitjoin" ], "summary": "Get permit join.", "operationId": "getPermitJoin", "responses": { "200": { "description": "Permit join status", "schema": { "$ref": "#/definitions/PermitJoinResponse" } } } } }, "/permitjoin/{enabled}": { "post": { "description": "This is used to enable or disable permit join.\n", "tags": [ "permitjoin" ], "summary": "Set permit join.", "operationId": "setPermitJoin", "parameters": [ { "description": "Enable or disable permit join. 0 = disable, 1 = enable.", "name": "enabled", "in": "params", "required": true, "schema": { "type": "integer", "enum": [ 0, 1 ] } } ], "responses": { "200": { "description": "Permit join set" }, "400": { "description": "Invalid request body" } } } }, "/robot": { "post": { "description": "This is the first request from the robot. It will be used to identify the robot.\n", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "robot" ], "summary": "First request from robot.", "operationId": "robotFirstRequest", "parameters": [ { "description": "First request body.", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/FirstRequestBody" } } ], "responses": { "200": { "description": "Robot identified", "schema": { "$ref": "#/definitions/StatusResponse" } }, "400": { "description": "Invalid request body" }, "403": { "description": "Permit join is enabled" } } }, "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "robot" ], "summary": "Update robot.", "operationId": "robotUpdate", "parameters": [ { "description": "Update robot body.", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Robot" } } ], "responses": { "200": { "description": "Robot updated" }, "400": { "description": "Invalid request body" }, "422": { "description": "Robot not found" } } } }, "/robot/authorize/{robotId}": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "robot" ], "summary": "Authorize robot.", "operationId": "robotAuthorize", "parameters": [ { "description": "Robot id.", "name": "robotId", "in": "params", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Robot authorized" }, "400": { "description": "Invalid robot id" }, "422": { "description": "Robot not found" } } } }, "/robot/deny/{robotId}": { "delete": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "robot" ], "summary": "Deny unauthorized robot.", "operationId": "robotDenyUnauthorizedRobot", "parameters": [ { "description": "Robot id.", "name": "robotId", "in": "params", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Robot denied" }, "400": { "description": "Invalid robot id" } } } }, "/robot/fuj/{robotId}": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "robot" ], "summary": "Free up job from robot.", "operationId": "robotFreeUpJob", "parameters": [ { "description": "Robot id.", "name": "robotId", "in": "params", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Job freed up" }, "400": { "description": "Invalid request body" }, "422": { "description": "Invalid robot id or robot is not running or waiting" } } } }, "/robot/{robotId}": { "delete": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "robot" ], "summary": "Delete robot.", "operationId": "robotDelete", "parameters": [ { "description": "Robot id.", "name": "robotId", "in": "params", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Robot deleted" }, "400": { "description": "Invalid robot id" } } } } }, "definitions": { "APIRobot": { "type": "object", "properties": { "Address": { "type": "string" }, "ConnectedAt": { "type": "string", "format": "date-time" }, "CreatedAt": { "type": "string", "format": "date-time" }, "CurrentJobName": { "type": "string" }, "FirmwareVersion": { "type": "string" }, "Id": { "type": "string" }, "JobsWaitingCount": { "type": "integer", "format": "int64" }, "JobsWaitingNameList": { "type": "array", "items": { "type": "string" } }, "Name": { "type": "string" }, "Status": { "type": "integer", "format": "uint8" }, "Type": { "type": "integer", "format": "uint8" } }, "x-go-package": "jannex/robot-control-manager/modules/structs" }, "ControlBody": { "type": "object", "properties": { "JobId": { "type": "string" }, "JobName": { "type": "string" }, "RobotName": { "type": "string" }, "Task": {} }, "x-go-package": "jannex/robot-control-manager/modules/structs" }, "FirstRequestBody": { "type": "object", "properties": { "FirmwareVersion": { "description": "used firmware version of the robot", "type": "string" }, "Id": { "description": "robot id", "type": "string" }, "Type": { "description": "robot type", "type": "integer", "format": "uint8" } }, "x-go-package": "jannex/robot-control-manager/modules/structs" }, "PermitJoinResponse": { "type": "object", "properties": { "Enabled": { "type": "boolean" } }, "x-go-package": "jannex/robot-control-manager/modules/structs" }, "RobotsResponse": { "type": "object", "properties": { "Robots": { "type": "array", "items": { "$ref": "#/definitions/APIRobot" } }, "TotalPages": { "type": "integer", "format": "int64" } }, "x-go-package": "jannex/robot-control-manager/modules/structs" }, "StatusResponse": { "type": "object", "properties": { "Status": { "type": "integer", "format": "int64" } }, "x-go-package": "jannex/robot-control-manager/modules/structs" }, "UnauthorizedRobot": { "type": "object", "properties": { "Address": { "type": "string" }, "ConnectedAt": { "type": "string", "format": "date-time" }, "CreatedAt": { "type": "string", "format": "date-time" }, "FirmwareVersion": { "type": "string" }, "Id": { "type": "string" }, "Type": { "type": "integer", "format": "uint8" } }, "x-go-package": "jannex/robot-control-manager/modules/structs" }, "UnauthorizedRobotsResponse": { "type": "object", "properties": { "TotalPages": { "type": "integer", "format": "int64" }, "UnauthorizedRobots": { "type": "array", "items": { "$ref": "#/definitions/UnauthorizedRobot" } } }, "x-go-package": "jannex/robot-control-manager/modules/structs" } } }