{ "openapi": "3.0.0", "info": { "title": "IPMI Proxy service 6 API", "description": "IPMI Proxy service 6 API", "version": "3.0.0" }, "servers": [ { "url": "https://example.com/api/ipmiproxy/v3" } ], "security": [ { "cookieAuth": [], "headerHost": [] } ], "paths": { "/ipmi/{ipmi_id}/proxy": { "get": { "operationId": "ipmi_id_proxy_get", "parameters": [ { "$ref": "#/components/parameters/IpmiId" } ], "responses": { "200": { "$ref": "#/components/responses/200ProxyConnection" }, "default": { "description": "Error proxy session closing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } } }, "delete": { "operationId": "ipmi_proxy_closing_by_id_delete", "parameters": [ { "description": "The IPMI unique identifier", "in": "path", "name": "ipmi_id", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmptySchema" } } } }, "responses": { "200": { "description": "Successful proxy session closing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessTaskOnlySchema" } } } }, "default": { "description": "Error returning proxy connection", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Proxy session closing by ipmi id", "tags": [ "proxy" ] } }, "/intel_amt/{intel_amt_id}/proxy": { "get": { "operationId": "intel_amt_id_proxy_get", "parameters": [ { "$ref": "#/components/parameters/IntelAmtId" } ], "responses": { "200": { "$ref": "#/components/responses/200ProxyConnection" }, "404": { "$ref": "#/components/responses/404NotFound" }, "default": { "description": "Error returning proxy connection", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } } }, "delete": { "operationId": "intel_amt_proxy_closing_by_id_delete", "parameters": [ { "description": "The Intel AMT unique identifier", "in": "path", "name": "intel_amt_id", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmptySchema" } } } }, "responses": { "200": { "description": "Successful proxy session closing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessTaskOnlySchema" } } } }, "default": { "description": "Error proxy session closing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Proxy session closing by Intel AMT id", "tags": [ "proxy" ] } }, "/ipmi/{ipmi_id}/proxy/{proxy_type}": { "post": { "operationId": "ipmi_id_proxy_post", "parameters": [ { "description": "The IPMI unique identifier", "in": "path", "name": "ipmi_id", "required": true, "schema": { "type": "integer" } }, { "description": "Proxy type: web - Proxy to the IPMI WEB-interface, console - Proxy to the IPMI console", "in": "path", "name": "proxy_type", "required": true, "schema": { "type": "string", "enum": [ "web", "console" ] } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProxyPostParams" } } } }, "responses": { "200": { "description": "Start the IPMI proxy session", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/SuccessTaskAndPortSchema" }, { "$ref": "#/components/schemas/SuccessPortSchema" } ] } } } }, "default": { "description": "Error starting the IPMI proxy session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Start the IPMI proxy session", "tags": [ "proxy" ] } }, "/intel_amt/{intel_amt_id}/proxy/{proxy_type}": { "post": { "operationId": "intel_amt_id_proxy_post", "parameters": [ { "description": "The IntelAMT unique identifier", "in": "path", "name": "intel_amt_id", "required": true, "schema": { "type": "integer" } }, { "description": "Proxy type: web - Proxy to the IntelAMT WEB-interface, console - Proxy to the IntelAMT console", "in": "path", "name": "proxy_type", "required": true, "schema": { "type": "string", "enum": [ "web", "console" ] } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProxyPostParams" } } } }, "responses": { "200": { "description": "Start the IntelAMT proxy session", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/SuccessTaskAndPortSchema" }, { "$ref": "#/components/schemas/SuccessPortSchema" } ] } } } }, "default": { "description": "Error starting the IntelAMT proxy session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Start the IntelAMT proxy session", "tags": [ "proxy" ] } }, "/proxy/access": { "post": { "operationId": "proxy_access_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProxyAccessParams" } } } }, "responses": { "200": { "description": "Check user access permissions to the session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmptySchema" } } } }, "default": { "description": "Error checking user access permissions to the session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Check user access permissions to the session", "tags": [ "proxy" ] } }, "/proxy/close": { "post": { "operationId": "proxy_close_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProxyCloseParams" } } } }, "responses": { "200": { "description": "Close the IPMI proxy session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessTaskOnlySchema" } } } }, "default": { "description": "Error closing the IPMI proxy session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Close the IPMI proxy session", "tags": [ "proxy" ] } }, "/setup": { "post": { "operationId": "setup_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetupPostParams" } } } }, "responses": { "200": { "description": "IPMI proxy server has been successfully installed on the locations", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/SuccessTaskArraySchema" }, { "$ref": "#/components/schemas/EmptySchema" } ] } } } }, "default": { "description": "Error installing IPMI proxy server", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "IPMI proxy server setting up", "tags": [ "setup" ] } }, "/update": { "post": { "operationId": "update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePostParams" } } } }, "responses": { "200": { "description": "IPMI proxy server has been successfully updated on the locations", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/SuccessTaskArraySchema" }, { "$ref": "#/components/schemas/EmptySchema" } ] } } } }, "default": { "description": "Error updating IPMI proxy server", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "IPMI proxy server updating", "tags": [ "setup" ] } }, "/location": { "get": { "operationId": "location_get", "responses": { "200": { "description": "Locations list has been received", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LocationListResponse" } } } }, "default": { "description": "Error receiving the locations list", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Receive the locations list", "tags": [ "location" ] } }, "/location/drop_sessions": { "post": { "operationId": "location_drop_sessions_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmptySchema" } } } }, "responses": { "200": { "description": "Sessions is dropped successfuly", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessTaskArraySchema" } } } }, "default": { "description": "Error dropping ipmi proxy sessions", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Drop all session on server side of the service", "tags": [ "location" ] } }, "/location/{location_id}": { "delete": { "operationId": "location_id_delete", "parameters": [ { "description": "The Unique identifier of the location", "in": "path", "name": "location_id", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmptySchema" } } } }, "responses": { "200": { "description": "Successful BMC module deleting from location", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessSchema" } } } }, "default": { "description": "Error BMC module deleting from location", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Delete BMC module from location", "tags": [ "location" ] } }, "/location/{location_id}/patch": { "post": { "operationId": "location_id_patch", "parameters": [ { "description": "The Unique identifier of the location", "in": "path", "name": "location_id", "required": true, "schema": { "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LocationPatchParams" } } } }, "responses": { "200": { "description": "The patch has been added to the location", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuccessSchema" } } } }, "default": { "description": "Failed to add the patch", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Add a patch for the location docker-compose file", "tags": [ "location" ] } }, "/plugin/enable": { "post": { "operationId": "plugin_enable_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmptySchema" } } } }, "responses": { "200": { "description": "Activate the plugin on the specified instance", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Id" } } } }, "default": { "description": "Error activating the plugin", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Activate the plugin for the instance", "tags": [ "plugin" ] } }, "/plugin/disable": { "post": { "operationId": "plugin_disable_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmptySchema" } } } }, "responses": { "200": { "description": "Deactivate the plugin on the specified instance", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Id" } } } }, "default": { "description": "Error deactivating the plugin", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Deactivate the plugin for the instance", "tags": [ "plugin" ] } }, "/plugin/status": { "get": { "operationId": "plugin_status_get", "responses": { "200": { "description": "Plugin status has been received", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PluginStatusResponse" } } } }, "default": { "description": "Error receiving the plugin status", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "Receive the plugin status", "tags": [ "plugin" ] } }, "/resetup": { "post": { "operationId": "resetup_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReSetupPostParams" } } } }, "responses": { "200": { "description": "IPMI proxy server has been successfully reinstalled on the location", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/SuccessTaskSchema" } ] } } } }, "default": { "description": "Error installing IPMI proxy server", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "summary": "IPMI proxy server resetting up", "tags": [ "setup" ] } } }, "components": { "parameters": { "IpmiId": { "description": "The IPMI unique identifier", "in": "path", "name": "ipmi_id", "required": true, "schema": { "type": "integer" }, "example": 13 }, "IntelAmtId": { "description": "The Intel AMT unique identifier", "in": "path", "name": "intel_amt_id", "required": true, "schema": { "type": "integer" }, "example": 13 } }, "responses": { "200ProxyConnection": { "description": "Returns list of proxy connections", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProxyConnection" } } } }, "404NotFound": { "description": "Requested object does not exists", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorSchema" } } } } }, "securitySchemes": { "cookieAuth": { "type": "apiKey", "in": "cookie", "name": "ses6" }, "headerHost": { "type": "apiKey", "in": "header", "name": "host" } }, "requestBodies": { "EmptyRequest": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmptySchema" } } } } }, "schemas": { "ProxyConnection": { "description": "Proxy connection information", "type": "object", "properties": { "id": { "description": "ID of proxy connection", "type": "integer", "example": 13 }, "listen_web_port": { "description": "Port number that proxy is listening on", "type": "integer", "example": 10003 }, "proxy_type": { "description": "Type of proxy connection", "type": "string", "enum": [ "console", "web" ], "example": "web" } } }, "SetupPostParams": { "additionalProperties": false, "properties": { "locations": { "description": "List of locations where proxy should be activated", "type": "array", "items": { "type": "integer" } }, "java_agree": { "description": "Consent to Java Oracle", "type": "boolean" }, "iso_mount": { "description": "ISO mount for ipmi proxy session's user", "type": "boolean" } }, "required": [ "locations", "java_agree" ], "type": "object" }, "ReSetupPostParams": { "additionalProperties": false, "properties": { "location_id": { "description": "Location unique identifier", "type": "integer" } }, "required": [ "location_id" ], "type": "object" }, "UpdatePostParams": { "additionalProperties": false, "properties": { "locations": { "description": "List of locations where the proxy module should be updated", "type": "array", "items": { "type": "integer" } } }, "required": [ "locations" ], "type": "object" }, "EmptySchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "ErrorSchema": { "properties": { "error": { "properties": { "code": { "type": "integer" }, "msg": { "type": "string" }, "value": { "type": "string" } }, "type": "object" } }, "type": "object" }, "Id": { "properties": { "id": { "type": "integer" } }, "type": "object" }, "SuccessSchema": { "$ref": "#/components/schemas/Id" }, "SuccessTaskArraySchema": { "properties": { "task": { "items": { "type": "integer" }, "type": "array" } }, "type": "object" }, "SuccessTaskOnlySchema": { "properties": { "task": { "type": "integer" } }, "type": "object" }, "SuccessTaskSchema": { "properties": { "id": { "type": "integer" }, "task": { "type": "integer" } }, "type": "object" }, "ProxyAccessParams": { "additionalProperties": false, "required": [ "listen_web_port" ], "type": "object", "properties": { "listen_web_port": { "description": "The port that the user is trying to connect to", "type": "integer" } } }, "ProxyPostParams": { "additionalProperties": false, "type": "object", "properties": { "reconnect": { "description": "Need to reconnect to current session", "type": "boolean", "default": false, "example": false } } }, "ProxyCloseParams": { "additionalProperties": false, "required": [ "listen_web_port" ], "type": "object", "properties": { "listen_web_port": { "description": "The port that can no longer be connected to", "type": "integer" } } }, "SuccessTaskAndPortSchema": { "properties": { "task": { "type": "integer" }, "listen_web_port": { "type": "integer" } }, "type": "object" }, "SuccessPortSchema": { "properties": { "listen_web_port": { "type": "integer" } }, "type": "object" }, "PluginStatusResponse": { "properties": { "is_enabled": { "type": "boolean", "description": "The plugin status" } }, "type": "object" }, "LocationGetResponse": { "properties": { "location": { "type": "integer", "description": "The location identifier" }, "instance": { "type": "integer", "description": "The instance identifier" }, "status": { "enum": [ "ok", "fail", "setting_up" ], "type": "string" }, "docker_compose": { "description": "Base64-encoded docker-compose file of IPMI proxy server", "type": "string" }, "supported_ipmi_consoles": { "type": "array", "items": { "type": "string" } }, "patches": { "type": "array", "items": { "$ref": "#/components/schemas/PatchSchema" } } }, "type": "object" }, "LocationListResponse": { "properties": { "list": { "items": { "$ref": "#/components/schemas/LocationGetResponse" }, "type": "array" } }, "type": "object" }, "LocationPatchParams": { "properties": { "patches": { "type": "array", "items": { "$ref": "#/components/schemas/PatchSchema" } } }, "type": "object" }, "PatchSchema": { "properties": { "name": { "type": "string", "description": "The patch name" }, "patch": { "type": "string", "description": "The base64-encoded patch" } }, "type": "object" } } } }