{ "swagger": "2.0", "info": { "description": "Swagger API for VXControl SOLDR backend product.", "title": "SOLDR Swagger API", "termsOfService": "http://swagger.io/terms/", "contact": { "name": "Dmitry Nagibin", "url": "https://vxcontrol.com", "email": "admin@vxcontrol.com" }, "license": { "name": "Proprietary License", "url": "https://raw.githubusercontent.com/vxcontrol/soldr/master/LICENSE" }, "version": "1.0" }, "basePath": "/api/v1", "paths": { "/agents/": { "get": { "produces": [ "application/json" ], "tags": [ "Agents" ], "summary": "Retrieve agents list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "agents list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.agents" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting agents not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting agents", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Agents" ], "summary": "Update agents public info by action", "parameters": [ { "description": "action on agents as JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.AgentsAction" } } ], "responses": { "200": { "description": "agents updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.agentsActionResult" } } } ] } }, "400": { "description": "invalid agents action", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating agents not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating agents", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Agents" ], "summary": "Create new agent in service", "parameters": [ { "description": "agent info to create one", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.agentInfo" } } ], "responses": { "201": { "description": "agent created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Agent" } } } ] } }, "400": { "description": "invalid agent info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating agent not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating agent", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/agents/count": { "get": { "produces": [ "application/json" ], "tags": [ "Agents" ], "summary": "Retrieve groups of counted agents", "responses": { "200": { "description": "groups of counted agents retrieved successfully", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.agentCount" } } } ] } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/agents/{hash}": { "get": { "produces": [ "application/json" ], "tags": [ "Agents" ], "summary": "Retrieve agent info by agent hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "agent hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "agent info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.agent" } } } ] } }, "403": { "description": "getting agent info not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "agent not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting agent", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Agents" ], "summary": "Update agent info by agent hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "agent hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "description": "agent info as JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.patchAgentAction" } } ], "responses": { "200": { "description": "agent info updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Agent" } } } ] } }, "400": { "description": "invalid agent info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating agent info not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "agent not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating agent", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Agents" ], "summary": "Delete agent from instance DB", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "agent hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "agent deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting agent not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "agent not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting agent", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/agents/{hash}/modules": { "get": { "produces": [ "application/json" ], "tags": [ "Agents", "Modules" ], "summary": "Retrieve agent modules by agent hash and by filters", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "agent hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "agent modules received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.agentModules" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting agent modules not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "agent or modules not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting agent modules", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/agents/{hash}/modules/{module_name}": { "get": { "produces": [ "application/json" ], "tags": [ "Agents", "Modules" ], "summary": "Retrieve agent module data by agent hash and module name", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "agent hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true } ], "responses": { "200": { "description": "agent module data received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ModuleA" } } } ] } }, "403": { "description": "getting agent module data not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "agent or module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting agent module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/agents/{hash}/modules/{module_name}/bmodule.vue": { "get": { "produces": [ "text/javascript", "application/javascript", "application/json" ], "tags": [ "Agents", "Modules" ], "summary": "Retrieve browser module vue code by agent hash and module name", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "agent hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "main.vue", "description": "path to the browser module file", "name": "file", "in": "query" } ], "responses": { "200": { "description": "browser module vue code as a file", "schema": { "type": "file" } }, "403": { "description": "getting agent module data not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/auth/login": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Login user into system", "parameters": [ { "description": "Login form JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Login" } } ], "responses": { "200": { "description": "login successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "400": { "description": "invalid login data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "401": { "description": "invalid login or password", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "login not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on login", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/auth/logout": { "get": { "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Logout current user via HTTP redirect", "parameters": [ { "type": "string", "default": "/", "description": "URI to redirect user there after logout", "name": "return_uri", "in": "query" } ], "responses": { "307": { "description": "redirect to input return_uri path" } } } }, "/auth/switch-service": { "post": { "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Switch current agent server for all next requiest", "parameters": [ { "type": "string", "description": "New service hash to change current one and return new cookie", "name": "service", "in": "formData", "required": true } ], "responses": { "200": { "description": "switch successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Service" } } } ] } }, "400": { "description": "invalid service data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "switch service not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on switch service", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/binaries/vxagent": { "get": { "produces": [ "application/json" ], "tags": [ "Binaries" ], "summary": "Retrieve agent binaries list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "agent binaries list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.binaries" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting agent binaries not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting agent binaries", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/binaries/vxagent/{os}/{arch}/{version}": { "get": { "produces": [ "application/octet-stream", "application/json" ], "tags": [ "Binaries" ], "summary": "Retrieve agent binary file by OS and arch", "parameters": [ { "enum": [ "windows", "linux", "darwin" ], "type": "string", "default": "linux", "description": "agent info OS", "name": "os", "in": "path", "required": true }, { "enum": [ "386", "amd64" ], "type": "string", "default": "amd64", "description": "agent info arch", "name": "arch", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "agent version string according semantic version format", "name": "version", "in": "path", "required": true } ], "responses": { "200": { "description": "agent binary as a file", "schema": { "type": "file" } }, "400": { "description": "invalid agent info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting agent binary file not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "agent binary file not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting agent binary file", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/events/": { "get": { "produces": [ "application/json" ], "tags": [ "Events" ], "summary": "Retrieve events list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "events list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.events" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting events not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting events", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/export/modules/{module_name}/versions/{version}": { "post": { "produces": [ "application/octet-stream", "application/json" ], "tags": [ "Modules", "Export" ], "summary": "Export of zip archive which contains selected system module and versions", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format or 'latest' or 'all'", "name": "version", "in": "path", "required": true } ], "responses": { "200": { "description": "system module archive file", "schema": { "type": "file" } }, "403": { "description": "exporting system module content not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module or version not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on exporting system module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/groups/": { "get": { "produces": [ "application/json" ], "tags": [ "Groups" ], "summary": "Retrieve groups list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "groups list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.groups" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting groups not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "groups not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting groups", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Groups" ], "summary": "Create new group in service", "parameters": [ { "description": "group info to create one", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.groupInfo" } } ], "responses": { "201": { "description": "group created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Group" } } } ] } }, "400": { "description": "invalid group info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating group not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating group", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/groups/{hash}": { "get": { "produces": [ "application/json" ], "tags": [ "Groups" ], "summary": "Retrieve group info by group hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "group hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "group info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.group" } } } ] } }, "403": { "description": "getting group info not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "group not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting group", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Groups" ], "summary": "Update group info by group hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "group hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "description": "group info as JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Group" } } ], "responses": { "200": { "description": "group info updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Group" } } } ] } }, "400": { "description": "invalid group info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating group info not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "group not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating group", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Groups" ], "summary": "Delete group from instance DB", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "group hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "group deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting group not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "group not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting group", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/groups/{hash}/modules": { "get": { "produces": [ "application/json" ], "tags": [ "Groups", "Modules" ], "summary": "Retrieve group modules by group hash and by filters", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "group hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "group modules received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.groupModules" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting group modules not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "group or modules not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting group modules", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/groups/{hash}/modules/{module_name}": { "get": { "produces": [ "application/json" ], "tags": [ "Groups", "Modules" ], "summary": "Retrieve group module data by group hash and module name", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "group hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true } ], "responses": { "200": { "description": "group module data received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ModuleA" } } } ] } }, "403": { "description": "getting group module data not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "group or module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting group", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/groups/{hash}/modules/{module_name}/bmodule.vue": { "get": { "produces": [ "text/javascript", "application/javascript", "application/json" ], "tags": [ "Groups", "Modules" ], "summary": "Retrieve browser module vue code by group hash and module name", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "group hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "main.vue", "description": "path to the browser module file", "name": "file", "in": "query" } ], "responses": { "200": { "description": "browser module vue code as a file", "schema": { "type": "file" } }, "403": { "description": "getting group module data not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/groups/{hash}/policies": { "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Groups", "Policies" ], "summary": "Update or patch group policy by group hash and policy object", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "group hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "description": "action on group policy as JSON data (activate, deactivate)", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.groupPolicyPatch" } } ], "responses": { "200": { "description": "group policy patched successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "400": { "description": "invalid patch request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating group policy not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "group or policy not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting updating group policy", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/import/modules/{module_name}/versions/{version}": { "post": { "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Modules", "Import" ], "summary": "Import from zip archive which contains selected system module and versions", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "all", "description": "module version string according semantic version format or 'all'", "name": "version", "in": "path", "required": true }, { "type": "boolean", "default": true, "description": "override system module files and records in global DB", "name": "rewrite", "in": "query", "required": true }, { "type": "file", "description": "system module archive file", "name": "archive", "in": "formData", "required": true } ], "responses": { "200": { "description": "system module archive uploaded successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "400": { "description": "bad format input system module archive", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "importing system module content not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module or version in archive not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on importing system module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/info": { "get": { "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Retrieve current user and system settings", "parameters": [ { "type": "boolean", "description": "boolean arg to refresh current cookie, use explicit false", "name": "refresh_cookie", "in": "query" } ], "responses": { "200": { "description": "info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/public.info" } } } ] } }, "403": { "description": "getting info not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting information about system and config", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/modules/": { "get": { "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Retrieve system modules by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "system modules received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.systemModules" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting system modules not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting system modules", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Create new system module from template", "parameters": [ { "description": "module info to create one", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.ModuleInfo" } } ], "responses": { "201": { "description": "system module created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ModuleS" } } } ] } }, "400": { "description": "invalid system module info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating system module not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating system module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/modules/{module_name}": { "delete": { "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Delete system module from all DBs and S3 storage", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true } ], "responses": { "200": { "description": "system module deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting system module not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module or services not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting system module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/modules/{module_name}/versions/": { "get": { "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Retrieve all version for system module by filters and module name", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "system modules received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.systemShortModules" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting system modules not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting system modules", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/modules/{module_name}/versions/{version}": { "get": { "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Retrieve system module data by module name and version", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true } ], "responses": { "200": { "description": "system module data received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ModuleS" } } } ] } }, "403": { "description": "getting system module data not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting system module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Update the version of system module to global DB and global S3 storage", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true }, { "description": "module info to create one", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.moduleVersionPatch" } } ], "responses": { "200": { "description": "system module updated successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "updating system module not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module or services not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating system module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Create new system module version from latest released version", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true }, { "description": "module changelog to add to created module", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.ChangelogVersion" } } ], "responses": { "201": { "description": "system module created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ModuleS" } } } ] } }, "400": { "description": "invalid system module info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating system module not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating system module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Delete the version system module from global DB and global S3 storage", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true } ], "responses": { "200": { "description": "system module deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting system module not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting system module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/modules/{module_name}/versions/{version}/files": { "get": { "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Retrieve system module files (relative path) by module name and version", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true } ], "responses": { "200": { "description": "system module files received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "string" } } } } ] } }, "403": { "description": "getting system module files not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting system module files", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/modules/{module_name}/versions/{version}/files/file": { "get": { "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Retrieve system module file content (in base64) by module name, version and relative path", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true }, { "type": "string", "description": "relative path to module file", "name": "path", "in": "query", "required": true } ], "responses": { "200": { "description": "system module file content received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.systemModuleFile" } } } ] } }, "403": { "description": "getting system module file content not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting system module file", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Patch system module file and content (in base64) by module name, version and relative path", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true }, { "description": "action, relative path and file content for module file", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.systemModuleFilePatch" } } ], "responses": { "200": { "description": "action on system module file did successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "making action on system module file not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on making action system module file", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/modules/{module_name}/versions/{version}/options/{option_name}": { "get": { "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Retrieve rendered Event Config Schema of system module data by module name and version", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true }, { "enum": [ "id", "tenant_id", "service_type", "state", "config_schema", "default_config", "static_dependencies", "fields_schema", "action_config_schema", "default_action_config", "event_config_schema", "default_event_config", "changelog", "locale", "info", "last_update", "event_config_schema_definitions", "action_config_schema_definitions" ], "type": "string", "description": "module option without spaces", "name": "option_name", "in": "path", "required": true } ], "responses": { "200": { "description": "module option received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "403": { "description": "getting module option not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting module option", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/modules/{module_name}/versions/{version}/updates": { "get": { "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Retrieve policy modules list ready to update by system module name and version", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true } ], "responses": { "200": { "description": "policy modules list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.policyModulesUpdates" } } } ] } }, "403": { "description": "getting policy modules list not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting policy modules list to update", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Modules" ], "summary": "Run policy modules update by system module name and version", "parameters": [ { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "latest", "description": "module version string according semantic version format", "name": "version", "in": "path", "required": true } ], "responses": { "201": { "description": "policy modules update run successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "running policy modules updates not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "system module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on running policy modules updates", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/notifications/subscribe/": { "get": { "produces": [ "application/json" ], "tags": [ "Notifications" ], "summary": "Retrieve events via websocket connections on changing or creating or deleting instance entities by filter", "parameters": [ { "enum": [ "all", "create-agent", "update-agent", "delete-agent", "create-group", "update-group", "delete-group", "create-policy", "update-policy", "delete-policy", "create-module", "update-module", "delete-module", "create-group-to-policy", "delete-group-to-policy" ], "type": "string", "default": "all", "description": "list of events type to get from notification service (support of multiple choices)", "name": "list", "in": "query", "required": true } ], "responses": { "200": { "description": "fake response because here will be upgrade to websocket", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "500": { "description": "internal error on upgraging to websocket", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/options/actions": { "get": { "produces": [ "application/json" ], "tags": [ "Modules", "Options" ], "summary": "Retrieve global action list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "global action list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.optionsActions" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting global action list not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting global action list", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/options/events": { "get": { "produces": [ "application/json" ], "tags": [ "Modules", "Options" ], "summary": "Retrieve global event list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "global event list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.optionsEvents" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting global event list not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting global event list", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/options/fields": { "get": { "produces": [ "application/json" ], "tags": [ "Modules", "Options" ], "summary": "Retrieve global field list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "global field list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.optionsFields" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting global field list not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting global field list", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/options/tags": { "get": { "produces": [ "application/json" ], "tags": [ "Modules", "Options" ], "summary": "Retrieve global tag list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "global tag list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.optionsTags" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting global tag list not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting global tag list", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/options/versions": { "get": { "produces": [ "application/json" ], "tags": [ "Modules", "Options" ], "summary": "Retrieve global version list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "global version list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.optionsVersions" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting global version list not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting global version list", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/policies/": { "get": { "produces": [ "application/json" ], "tags": [ "Policies" ], "summary": "Retrieve policies list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "policies list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.policies" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting policies not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policies not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting policies", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Policies" ], "summary": "Create new policy in service", "parameters": [ { "description": "policy info to create one", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.policyInfo" } } ], "responses": { "201": { "description": "policy created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Policy" } } } ] } }, "400": { "description": "invalid policy info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating policy not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating policy", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/policies/count": { "get": { "produces": [ "application/json" ], "tags": [ "Policies" ], "summary": "Retrieve groups of counted policies", "responses": { "200": { "description": "groups of counted agents policies successfully", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.policyCount" } } } ] } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/policies/{hash}": { "get": { "produces": [ "application/json" ], "tags": [ "Policies" ], "summary": "Retrieve policy info by policy hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "policy info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.policy" } } } ] } }, "403": { "description": "getting policy info not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting policy", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Policies" ], "summary": "Update policy info by policy hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "description": "policy info as JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Policy" } } ], "responses": { "200": { "description": "policy info updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Policy" } } } ] } }, "400": { "description": "invalid policy info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating policy info not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating policy", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Policies" ], "summary": "Delete policy from instance DB", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "policy deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting policy not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting policy", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/policies/{hash}/groups": { "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Policies", "Groups" ], "summary": "Update or patch policy group by policy hash and group object", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "description": "action on policy group as JSON data (activate, deactivate)", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.policyGroupPatch" } } ], "responses": { "200": { "description": "policy group patched successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "400": { "description": "invalid patch request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating policy group not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy or group not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating policy group", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/policies/{hash}/modules": { "get": { "produces": [ "application/json" ], "tags": [ "Policies", "Modules" ], "summary": "Retrieve policy modules by policy hash and by filters", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "policy modules received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.policyModules" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting policy modules not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy or modules not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting policy modules", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/policies/{hash}/modules/{module_name}": { "get": { "produces": [ "application/json" ], "tags": [ "Policies", "Modules" ], "summary": "Retrieve policy module data by policy hash and module name", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true } ], "responses": { "200": { "description": "policy module data received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ModuleA" } } } ] } }, "403": { "description": "getting policy module data not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy or module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting policy module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Policies", "Modules" ], "summary": "Update or patch policy module data by policy hash and module name", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "description": "action on policy module as JSON data (activate, deactivate, store, update)", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.policyModulePatch" } } ], "responses": { "200": { "description": "policy module patched successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "updating policy module not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy or module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating policy module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Policies", "Modules" ], "summary": "Delete module instance by policy hash and module name", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true } ], "responses": { "200": { "description": "policy module deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting policy module not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy or module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting policy module", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/policies/{hash}/modules/{module_name}/bmodule.vue": { "get": { "produces": [ "text/javascript", "application/javascript", "application/json" ], "tags": [ "Policies", "Modules" ], "summary": "Retrieve browser module vue code by policy hash and module name", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "default": "main.vue", "description": "path to the browser module file", "name": "file", "in": "query" } ], "responses": { "200": { "description": "browser module vue code as a file", "schema": { "type": "file" } }, "403": { "description": "getting policy module data not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/policies/{hash}/modules/{module_name}/secure_config": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Policies", "Modules" ], "summary": "Set parameter value in secured current config for a module", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "description": "param name and value to be set", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.ModuleConfig" } } ], "responses": { "200": { "description": "parameter updated successfully", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating parameter not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy or module not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating secured parameter", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/policies/{hash}/modules/{module_name}/secure_config/{param_name}": { "get": { "produces": [ "application/json" ], "tags": [ "Policies", "Modules" ], "summary": "Get parameter value in secured current config for a module", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "policy hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "type": "string", "description": "module name without spaces", "name": "module_name", "in": "path", "required": true }, { "type": "string", "description": "parameter name without spaces", "name": "param_name", "in": "path", "required": true } ], "responses": { "200": { "description": "secured param value received successfully", "schema": { "$ref": "#/definitions/models.ModuleConfig" } }, "403": { "description": "get secured parameter not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "policy, module or parameter not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting module secured parameter", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/roles/": { "get": { "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Retrieve roles list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "roles list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.roles" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting roles not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting roles", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/services/": { "get": { "produces": [ "application/json" ], "tags": [ "Services" ], "summary": "Retrieve services list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "services list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.services" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting services not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting services", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Services" ], "summary": "Create new service", "parameters": [ { "description": "service model to create from", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Service" } } ], "responses": { "201": { "description": "service created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Service" } } } ] } }, "400": { "description": "invalid service request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating service not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating service", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/services/{hash}": { "get": { "produces": [ "application/json" ], "tags": [ "Services" ], "summary": "Retrieve service by hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "service received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Service" } } } ] } }, "403": { "description": "getting service not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "service not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting service", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "produces": [ "application/json" ], "tags": [ "Services" ], "summary": "Update service", "parameters": [ { "description": "service model to update", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Service" } }, { "maxLength": 32, "minLength": 32, "type": "string", "description": "service hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "service updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Service" } } } ] } }, "400": { "description": "invalid service request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating service not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "service not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating service", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Services" ], "summary": "Delete service by hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "service deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting service not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "service not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting service", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/tags/": { "get": { "produces": [ "application/json" ], "tags": [ "Tags" ], "summary": "Retrieve tags list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "tags list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.tags" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting tags not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting tags", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/tenant/{hash}": { "put": { "produces": [ "application/json" ], "tags": [ "Tenants" ], "summary": "Update tenant", "parameters": [ { "description": "tenant model to update", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Tenant" } }, { "maxLength": 32, "minLength": 32, "type": "string", "description": "tenant hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "tenant updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Tenant" } } } ] } }, "400": { "description": "invalid tenant request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating tenant not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "tenant not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating tenant", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/tenants/": { "get": { "produces": [ "application/json" ], "tags": [ "Tenants" ], "summary": "Retrieve tenants list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "tenants list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.tenants" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting tenants not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting tenants", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Tenants" ], "summary": "Create new tenant", "parameters": [ { "description": "tenant model to create from", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Tenant" } } ], "responses": { "201": { "description": "tenant created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Tenant" } } } ] } }, "400": { "description": "invalid tenant request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating tenant not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating tenant", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/tenants/{hash}": { "get": { "produces": [ "application/json" ], "tags": [ "Tenants" ], "summary": "Retrieve tenant by hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "tenant received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Tenant" } } } ] } }, "403": { "description": "getting tenant not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "tenant not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting tenant", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Tenants" ], "summary": "Delete tenant by hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "tenant deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting tenant not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "tenant not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting tenant", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/token/vxproto": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Proto" ], "summary": "Create new JWT token to use it into vxproto connections", "parameters": [ { "description": "Proto auth token request JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.ProtoAuthTokenRequest" } } ], "responses": { "201": { "description": "token created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ProtoAuthToken" } } } ] } }, "400": { "description": "invalid requested token info", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating token not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating token", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/upgrades/agents": { "get": { "produces": [ "application/json" ], "tags": [ "Upgrades", "Agents" ], "summary": "Retrieve agents upgrades list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "agents upgrades list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.upgradesAgents" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting agents upgrades not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting agents upgrades", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Upgrades", "Agents" ], "summary": "Upgrade agents to a specific version", "parameters": [ { "description": "action on agents as JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/private.upgradesAgentsAction" } } ], "responses": { "201": { "description": "agents upgrade requested succesful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.upgradesAgentsActionResult" } } } ] } }, "400": { "description": "invalid agents upgrade request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "upgrading agents not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "agent binary file not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on requesting agents to upgrade", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/upgrades/agents/{hash}/last": { "get": { "produces": [ "application/json" ], "tags": [ "Upgrades", "Agents" ], "summary": "Retrieve last agent upgrade information", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "agent hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "last agent upgrade information received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.upgradeAgent" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting last agent upgrade information not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "agent or group or task not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting last agent upgrade information", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Upgrades", "Agents" ], "summary": "Update last agent upgrade information", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "agent hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "description": "agent info as JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.AgentUpgradeTask" } } ], "responses": { "200": { "description": "last agent upgrade information updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.AgentUpgradeTask" } } } ] } }, "400": { "description": "invalid last agent upgrade information", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating last agent upgrade information not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "agent or group or task not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating last agent upgrade information", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/user/": { "get": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Retrieve current user information", "responses": { "200": { "description": "user info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.UserRoleTenant" } } } ] } }, "403": { "description": "getting current user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "current user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting current user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/user/password": { "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Update password for current user (account)", "parameters": [ { "description": "container to validate and update account password", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Password" } } ], "responses": { "200": { "description": "account password updated successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "400": { "description": "invalid account password form data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating account password not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "current user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating account password", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/users/": { "get": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Retrieve users list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "users list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.users" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting users not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting users", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Create new user", "parameters": [ { "description": "user model to create from", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UserPassword" } } ], "responses": { "201": { "description": "user created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.UserRoleTenant" } } } ] } }, "400": { "description": "invalid user request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/users/{hash}": { "get": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Retrieve user by hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "user received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.UserRoleTenant" } } } ] } }, "403": { "description": "getting user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Update user", "parameters": [ { "description": "user model to update", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UserPassword" } }, { "maxLength": 32, "minLength": 32, "type": "string", "description": "user hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "user updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.UserRoleTenant" } } } ] } }, "400": { "description": "invalid user request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Delete user by hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "user deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/versions/": { "get": { "produces": [ "application/json" ], "tags": [ "Versions" ], "summary": "Retrieve versions list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\"}\n field value should be integer or string or array type", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "enum": [ "en", "ru" ], "type": "string", "default": "en", "description": "Language of result data", "name": "lang", "in": "query", "required": true }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 100, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 100, -1 means unlimited)", "name": "pageSize", "in": "query", "required": true }, { "type": "string", "default": "{}", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value", "name": "sort", "in": "query", "required": true }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "versions list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/private.versions" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting versions not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting versions", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } } }, "definitions": { "ErrorResponse": { "type": "object", "properties": { "code": { "type": "string", "example": "Internal" }, "error": { "type": "string", "example": "original server error message" }, "msg": { "type": "string", "example": "internal server error" }, "status": { "type": "string", "example": "error" }, "trace_id": { "type": "string", "example": "1234567890abcdef1234567890abcdef" } } }, "SuccessResponse": { "type": "object", "properties": { "data": { "type": "object" }, "status": { "type": "string", "example": "success" } } }, "models.ActionConfig": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ActionConfigItem" } }, "models.ActionConfigItem": { "type": "object", "required": [ "priority" ], "properties": { "fields": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "priority": { "type": "integer", "maximum": 100, "minimum": 1 } } }, "models.Agent": { "type": "object", "required": [ "auth_status", "description", "hash", "info", "ip", "status", "version" ], "properties": { "auth_status": { "type": "string", "enum": [ "authorized", "unauthorized", "blocked" ] }, "connected_date": { "type": "string" }, "created_date": { "type": "string" }, "deleted_at": { "type": "string" }, "description": { "type": "string", "maxLength": 255 }, "group_id": { "type": "integer", "minimum": 0 }, "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.AgentInfo" }, "ip": { "type": "string", "maxLength": 50 }, "status": { "type": "string", "enum": [ "connected", "disconnected" ] }, "updated_at": { "type": "string" }, "version": { "type": "string", "maxLength": 20 } } }, "models.AgentDependency": { "type": "object", "required": [ "source_module_name", "type" ], "properties": { "min_agent_version": { "type": "string" }, "min_module_version": { "type": "string" }, "module_name": { "type": "string" }, "policy_id": { "type": "integer", "minimum": 0 }, "source_module_name": { "type": "string" }, "status": { "type": "boolean" }, "type": { "type": "string", "enum": [ "to_receive_data", "to_send_data", "to_make_action", "agent_version" ] } } }, "models.AgentInfo": { "type": "object", "required": [ "net", "os", "tags", "users" ], "properties": { "net": { "$ref": "#/definitions/models.AgentNet" }, "os": { "$ref": "#/definitions/models.AgentOS" }, "tags": { "type": "array", "maxItems": 20, "uniqueItems": true, "items": { "type": "string" } }, "users": { "type": "array", "items": { "$ref": "#/definitions/models.AgentUser" } } } }, "models.AgentNet": { "type": "object", "required": [ "hostname", "ips" ], "properties": { "hostname": { "type": "string" }, "ips": { "type": "array", "items": { "type": "string" } } } }, "models.AgentOS": { "type": "object", "required": [ "arch", "name", "type" ], "properties": { "arch": { "type": "string", "enum": [ "386", "amd64" ] }, "name": { "type": "string", "maxLength": 255 }, "type": { "type": "string", "enum": [ "windows", "linux", "darwin" ] } } }, "models.AgentUpgradeTask": { "type": "object", "required": [ "batch", "status", "version" ], "properties": { "agent_id": { "type": "integer", "minimum": 1 }, "batch": { "type": "string" }, "created": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "last_update": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string", "enum": [ "new", "running", "ready", "failed" ] }, "version": { "type": "string", "maxLength": 20 } } }, "models.AgentUser": { "type": "object", "required": [ "groups", "name" ], "properties": { "groups": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" } } }, "models.Binary": { "type": "object", "required": [ "info", "type", "version" ], "properties": { "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.BinaryInfo" }, "tenant_id": { "type": "integer", "minimum": 0 }, "type": { "type": "string", "enum": [ "vxagent" ] }, "upload_date": { "type": "string" }, "version": { "type": "string", "maxLength": 25 } } }, "models.BinaryChksum": { "type": "object", "required": [ "md5", "sha256" ], "properties": { "md5": { "type": "string" }, "sha256": { "type": "string" } } }, "models.BinaryInfo": { "type": "object", "required": [ "chksums", "files", "version" ], "properties": { "chksums": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.BinaryChksum" } }, "files": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, "version": { "$ref": "#/definitions/models.BinaryVersion" } } }, "models.BinaryVersion": { "type": "object", "properties": { "build": { "type": "integer", "maximum": 10000, "minimum": 0 }, "major": { "type": "integer", "maximum": 100, "minimum": 0 }, "minor": { "type": "integer", "maximum": 100, "minimum": 0 }, "patch": { "type": "integer", "maximum": 100, "minimum": 0 }, "rev": { "type": "string" } } }, "models.Changelog": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ChangelogVersion" } }, "models.ChangelogDesc": { "type": "object", "required": [ "date", "description", "title" ], "properties": { "date": { "type": "string" }, "description": { "type": "string", "maxLength": 10000 }, "title": { "type": "string", "maxLength": 300 } } }, "models.ChangelogVersion": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ChangelogDesc" } }, "models.DependencyItem": { "type": "object", "required": [ "type" ], "properties": { "min_agent_version": { "type": "string" }, "min_module_version": { "type": "string" }, "module_name": { "type": "string" }, "type": { "type": "string", "enum": [ "to_receive_data", "to_send_data", "to_make_action", "agent_version" ] } } }, "models.Event": { "type": "object", "required": [ "info" ], "properties": { "agent_id": { "type": "integer", "minimum": 0 }, "date": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.EventInfo" }, "module_id": { "type": "integer", "minimum": 0 } } }, "models.EventConfig": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.EventConfigItem" } }, "models.EventConfigAction": { "type": "object", "required": [ "module_name", "name", "priority" ], "properties": { "fields": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "module_name": { "type": "string" }, "name": { "type": "string" }, "priority": { "type": "integer", "maximum": 100, "minimum": 1 } } }, "models.EventConfigItem": { "type": "object", "required": [ "actions", "seq", "type" ], "properties": { "actions": { "type": "array", "items": { "$ref": "#/definitions/models.EventConfigAction" } }, "fields": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "group_by": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "max_count": { "type": "integer", "maximum": 10000000, "minimum": 0 }, "max_time": { "type": "integer", "maximum": 10000000, "minimum": 0 }, "seq": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/definitions/models.EventConfigSeq" } }, "type": { "type": "string", "enum": [ "atomic", "aggregation", "correlation" ] } } }, "models.EventConfigSeq": { "type": "object", "required": [ "min_count", "name" ], "properties": { "min_count": { "type": "integer", "minimum": 1 }, "name": { "type": "string" } } }, "models.EventInfo": { "type": "object", "required": [ "data", "name", "uniq" ], "properties": { "actions": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "data": { "type": "object", "additionalProperties": true }, "name": { "type": "string", "maxLength": 100 }, "time": { "type": "integer", "minimum": 0 }, "uniq": { "type": "string", "maxLength": 255 } } }, "models.Group": { "type": "object", "required": [ "hash", "info" ], "properties": { "created_date": { "type": "string" }, "deleted_at": { "type": "string" }, "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.GroupInfo" }, "updated_at": { "type": "string" } } }, "models.GroupDependency": { "type": "object", "required": [ "source_module_name", "type" ], "properties": { "min_agent_version": { "type": "string" }, "min_module_version": { "type": "string" }, "module_name": { "type": "string" }, "policy_id": { "type": "integer", "minimum": 0 }, "source_module_name": { "type": "string" }, "status": { "type": "boolean" }, "type": { "type": "string", "enum": [ "to_receive_data", "to_send_data", "to_make_action", "agent_version" ] } } }, "models.GroupInfo": { "type": "object", "required": [ "name", "tags" ], "properties": { "name": { "$ref": "#/definitions/models.GroupItemLocale" }, "system": { "type": "boolean" }, "tags": { "type": "array", "maxItems": 20, "uniqueItems": true, "items": { "type": "string" } } } }, "models.GroupItemLocale": { "type": "object", "required": [ "en", "ru" ], "properties": { "en": { "type": "string", "maxLength": 4096 }, "ru": { "type": "string", "maxLength": 4096 } } }, "models.Locale": { "type": "object", "required": [ "action_config", "actions", "config", "event_config", "events", "fields", "module", "tags" ], "properties": { "action_config": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ModuleLocaleDesc" } } }, "actions": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ModuleLocaleDesc" } }, "config": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ModuleLocaleDesc" } }, "event_config": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ModuleLocaleDesc" } } }, "events": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ModuleLocaleDesc" } }, "fields": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ModuleLocaleDesc" } }, "module": { "$ref": "#/definitions/models.ModuleLocaleDesc" }, "secure_config": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ModuleLocaleDesc" } }, "tags": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ModuleLocaleDesc" } } } }, "models.LocaleDesc": { "type": "object", "required": [ "title" ], "properties": { "description": { "type": "string", "maxLength": 10000 }, "title": { "type": "string", "maxLength": 300 } } }, "models.Login": { "type": "object", "required": [ "mail", "password" ], "properties": { "mail": { "type": "string", "maxLength": 50 }, "password": { "type": "string", "maxLength": 100, "minLength": 4 }, "service": { "type": "string" } } }, "models.ModuleA": { "type": "object", "required": [ "action_config_schema", "changelog", "config_schema", "current_action_config", "current_config", "current_event_config", "default_action_config", "default_config", "default_event_config", "dynamic_dependencies", "event_config_schema", "fields_schema", "info", "last_module_update", "locale", "static_dependencies", "status" ], "properties": { "action_config_schema": { "type": "object" }, "changelog": { "$ref": "#/definitions/models.Changelog" }, "config_schema": { "type": "object" }, "current_action_config": { "$ref": "#/definitions/models.ActionConfig" }, "current_config": { "$ref": "#/definitions/models.ModuleConfig" }, "current_event_config": { "$ref": "#/definitions/models.EventConfig" }, "default_action_config": { "$ref": "#/definitions/models.ActionConfig" }, "default_config": { "$ref": "#/definitions/models.ModuleConfig" }, "default_event_config": { "$ref": "#/definitions/models.EventConfig" }, "deleted_at": { "type": "string" }, "dynamic_dependencies": { "type": "array", "items": { "$ref": "#/definitions/models.DependencyItem" } }, "event_config_schema": { "type": "object" }, "fields_schema": { "type": "object" }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.ModuleInfo" }, "join_date": { "type": "string" }, "last_module_update": { "type": "string" }, "last_update": { "type": "string" }, "locale": { "$ref": "#/definitions/models.Locale" }, "policy_id": { "type": "integer", "minimum": 0 }, "secure_config_schema": { "type": "object" }, "secure_current_config": { "$ref": "#/definitions/models.ModuleSecureConfig" }, "secure_default_config": { "$ref": "#/definitions/models.ModuleSecureConfig" }, "state": { "type": "string", "enum": [ "draft", "release" ] }, "static_dependencies": { "type": "array", "items": { "$ref": "#/definitions/models.DependencyItem" } }, "status": { "type": "string", "enum": [ "joined", "inactive" ] } } }, "models.ModuleAShort": { "type": "object", "required": [ "dynamic_dependencies", "info", "last_module_update", "locale", "static_dependencies" ], "properties": { "deleted_at": { "type": "string" }, "dynamic_dependencies": { "type": "array", "items": { "$ref": "#/definitions/models.DependencyItem" } }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.ModuleInfo" }, "last_module_update": { "type": "string" }, "last_update": { "type": "string" }, "locale": { "$ref": "#/definitions/models.Locale" }, "policy_id": { "type": "integer", "minimum": 0 }, "state": { "type": "string", "enum": [ "draft", "release" ] }, "static_dependencies": { "type": "array", "items": { "$ref": "#/definitions/models.DependencyItem" } } } }, "models.ModuleConfig": { "type": "object", "additionalProperties": true }, "models.ModuleInfo": { "type": "object", "required": [ "actions", "events", "fields", "name", "os", "tags", "template", "version" ], "properties": { "actions": { "type": "array", "maxItems": 50, "uniqueItems": true, "items": { "type": "string" } }, "events": { "type": "array", "maxItems": 500, "uniqueItems": true, "items": { "type": "string" } }, "fields": { "type": "array", "maxItems": 300, "uniqueItems": true, "items": { "type": "string" } }, "name": { "type": "string", "maxLength": 255 }, "os": { "$ref": "#/definitions/models.ModuleInfoOS" }, "system": { "type": "boolean" }, "tags": { "type": "array", "maxItems": 20, "uniqueItems": true, "items": { "type": "string" } }, "template": { "type": "string", "enum": [ "generic", "empty", "collector", "detector", "responder", "custom" ] }, "version": { "$ref": "#/definitions/models.SemVersion" } } }, "models.ModuleInfoOS": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "models.ModuleLocaleDesc": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.LocaleDesc" } }, "models.ModuleS": { "type": "object", "required": [ "action_config_schema", "changelog", "config_schema", "default_action_config", "default_config", "default_event_config", "event_config_schema", "fields_schema", "info", "locale", "static_dependencies" ], "properties": { "action_config_schema": { "type": "object" }, "changelog": { "$ref": "#/definitions/models.Changelog" }, "config_schema": { "type": "object" }, "default_action_config": { "$ref": "#/definitions/models.ActionConfig" }, "default_config": { "$ref": "#/definitions/models.ModuleConfig" }, "default_event_config": { "$ref": "#/definitions/models.EventConfig" }, "event_config_schema": { "type": "object" }, "fields_schema": { "type": "object" }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.ModuleInfo" }, "last_update": { "type": "string" }, "locale": { "$ref": "#/definitions/models.Locale" }, "secure_config_schema": { "type": "object" }, "secure_default_config": { "$ref": "#/definitions/models.ModuleSecureConfig" }, "service_type": { "type": "string", "enum": [ "vxmonitor" ] }, "state": { "type": "string", "enum": [ "draft", "release" ] }, "static_dependencies": { "type": "array", "items": { "$ref": "#/definitions/models.DependencyItem" } }, "tenant_id": { "type": "integer", "minimum": 0 } } }, "models.ModuleSShort": { "type": "object", "required": [ "changelog", "info", "locale" ], "properties": { "changelog": { "$ref": "#/definitions/models.Changelog" }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.ModuleInfo" }, "last_update": { "type": "string" }, "locale": { "$ref": "#/definitions/models.Locale" }, "state": { "type": "string", "enum": [ "draft", "release" ] } } }, "models.ModuleSecureConfig": { "type": "object", "additionalProperties": { "$ref": "#/definitions/models.ModuleSecureParameter" } }, "models.ModuleSecureParameter": { "type": "object", "required": [ "server_only", "value" ], "properties": { "server_only": { "type": "boolean" }, "value": {} } }, "models.OptionsActions": { "type": "object", "required": [ "config", "locale", "module_name", "module_os", "name" ], "properties": { "config": { "$ref": "#/definitions/models.ActionConfigItem" }, "locale": { "$ref": "#/definitions/models.ModuleLocaleDesc" }, "module_name": { "type": "string" }, "module_os": { "$ref": "#/definitions/models.ModuleInfoOS" }, "name": { "type": "string" } } }, "models.OptionsEvents": { "type": "object", "required": [ "config", "locale", "module_name", "module_os", "name" ], "properties": { "config": { "$ref": "#/definitions/models.EventConfigItem" }, "locale": { "$ref": "#/definitions/models.ModuleLocaleDesc" }, "module_name": { "type": "string" }, "module_os": { "$ref": "#/definitions/models.ModuleInfoOS" }, "name": { "type": "string" } } }, "models.OptionsFields": { "type": "object", "required": [ "locale", "module_name", "module_os", "name" ], "properties": { "locale": { "$ref": "#/definitions/models.ModuleLocaleDesc" }, "module_name": { "type": "string" }, "module_os": { "$ref": "#/definitions/models.ModuleInfoOS" }, "name": { "type": "string" } } }, "models.OptionsTags": { "type": "object", "required": [ "locale", "module_name", "module_os", "name" ], "properties": { "locale": { "$ref": "#/definitions/models.ModuleLocaleDesc" }, "module_name": { "type": "string" }, "module_os": { "$ref": "#/definitions/models.ModuleInfoOS" }, "name": { "type": "string" } } }, "models.OptionsVersions": { "type": "object", "required": [ "module_name", "module_os", "name" ], "properties": { "module_name": { "type": "string" }, "module_os": { "$ref": "#/definitions/models.ModuleInfoOS" }, "name": { "type": "string" } } }, "models.Password": { "type": "object", "required": [ "current_password", "password" ], "properties": { "confirm_password": { "type": "string" }, "current_password": { "type": "string", "maxLength": 100, "minLength": 5 }, "password": { "type": "string", "maxLength": 100 } } }, "models.Policy": { "type": "object", "required": [ "hash", "info" ], "properties": { "created_date": { "type": "string" }, "deleted_at": { "type": "string" }, "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.PolicyInfo" }, "updated_at": { "type": "string" } } }, "models.PolicyDependency": { "type": "object", "required": [ "source_module_name", "type" ], "properties": { "min_agent_version": { "type": "string" }, "min_module_version": { "type": "string" }, "module_name": { "type": "string" }, "source_module_name": { "type": "string" }, "status": { "type": "boolean" }, "type": { "type": "string", "enum": [ "to_receive_data", "to_send_data", "to_make_action", "agent_version" ] } } }, "models.PolicyInfo": { "type": "object", "required": [ "name", "tags" ], "properties": { "name": { "$ref": "#/definitions/models.PolicyItemLocale" }, "system": { "type": "boolean" }, "tags": { "type": "array", "maxItems": 20, "uniqueItems": true, "items": { "type": "string" } } } }, "models.PolicyItemLocale": { "type": "object", "required": [ "en", "ru" ], "properties": { "en": { "type": "string", "maxLength": 4096 }, "ru": { "type": "string", "maxLength": 4096 } } }, "models.ProtoAuthToken": { "type": "object", "required": [ "token", "ttl" ], "properties": { "created_date": { "type": "string" }, "token": { "type": "string" }, "ttl": { "type": "integer", "maximum": 94608000, "minimum": 1 } } }, "models.ProtoAuthTokenRequest": { "type": "object", "required": [ "ttl", "type" ], "properties": { "ttl": { "type": "integer", "default": 31536000, "maximum": 94608000, "minimum": 1 }, "type": { "type": "string", "default": "browser", "enum": [ "aggregate", "browser", "external" ] } } }, "models.Role": { "type": "object", "required": [ "name" ], "properties": { "id": { "type": "integer", "minimum": 0 }, "name": { "type": "string", "maxLength": 50 } } }, "models.SemVersion": { "type": "object", "properties": { "major": { "type": "integer", "minimum": 0 }, "minor": { "type": "integer", "minimum": 0 }, "patch": { "type": "integer", "minimum": 0 } } }, "models.Service": { "type": "object", "required": [ "hash", "name", "status", "type" ], "properties": { "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "info": { "$ref": "#/definitions/models.ServiceInfo" }, "name": { "type": "string", "maxLength": 50 }, "status": { "type": "string", "enum": [ "created", "active", "blocked", "removed" ] }, "tenant_id": { "type": "integer", "minimum": 0 }, "type": { "type": "string", "enum": [ "vxmonitor" ] } } }, "models.ServiceInfo": { "type": "object", "required": [ "db", "s3", "server" ], "properties": { "db": { "$ref": "#/definitions/models.ServiceInfoDB" }, "s3": { "$ref": "#/definitions/models.ServiceInfoS3" }, "server": { "$ref": "#/definitions/models.ServiceInfoServer" } } }, "models.ServiceInfoDB": { "type": "object", "required": [ "host", "name", "pass", "port", "user" ], "properties": { "host": { "type": "string", "maxLength": 50 }, "name": { "type": "string", "maxLength": 50 }, "pass": { "type": "string", "maxLength": 50 }, "port": { "type": "integer", "maximum": 65535, "minimum": 1 }, "user": { "type": "string", "maxLength": 50 } } }, "models.ServiceInfoS3": { "type": "object", "required": [ "access_key", "bucket_name", "endpoint", "secret_key" ], "properties": { "access_key": { "type": "string", "maxLength": 50 }, "bucket_name": { "type": "string", "maxLength": 30 }, "endpoint": { "type": "string", "maxLength": 100 }, "secret_key": { "type": "string", "maxLength": 50 } } }, "models.ServiceInfoServer": { "type": "object", "required": [ "host", "port", "proto" ], "properties": { "host": { "type": "string", "maxLength": 50 }, "port": { "type": "integer", "maximum": 65535, "minimum": 1 }, "proto": { "type": "string", "enum": [ "ws", "wss" ] } } }, "models.Tenant": { "type": "object", "required": [ "hash", "status" ], "properties": { "description": { "type": "string", "maxLength": 255 }, "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "status": { "type": "string", "enum": [ "active", "blocked" ] } } }, "models.User": { "type": "object", "required": [ "mail", "name", "status", "type" ], "properties": { "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "mail": { "type": "string", "maxLength": 50 }, "name": { "type": "string", "maxLength": 70 }, "password_change_required": { "type": "boolean" }, "role_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string", "enum": [ "created", "active", "blocked" ] }, "tenant_id": { "type": "integer", "minimum": 0 }, "type": { "type": "string", "enum": [ "local", "oauth" ] } } }, "models.UserPassword": { "type": "object", "required": [ "mail", "name", "password", "status", "type" ], "properties": { "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "mail": { "type": "string", "maxLength": 50 }, "name": { "type": "string", "maxLength": 70 }, "password": { "type": "string", "maxLength": 100 }, "password_change_required": { "type": "boolean" }, "role_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string", "enum": [ "created", "active", "blocked" ] }, "tenant_id": { "type": "integer", "minimum": 0 }, "type": { "type": "string", "enum": [ "local", "oauth" ] } } }, "models.UserRoleTenant": { "type": "object", "required": [ "mail", "name", "status", "type" ], "properties": { "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "mail": { "type": "string", "maxLength": 50 }, "name": { "type": "string", "maxLength": 70 }, "password_change_required": { "type": "boolean" }, "role": { "$ref": "#/definitions/models.Role" }, "role_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string", "enum": [ "created", "active", "blocked" ] }, "tenant": { "$ref": "#/definitions/models.Tenant" }, "tenant_id": { "type": "integer", "minimum": 0 }, "type": { "type": "string", "enum": [ "local", "oauth" ] } } }, "private.AgentsAction": { "type": "object", "required": [ "action" ], "properties": { "action": { "type": "string", "enum": [ "authorize", "block", "delete", "unauthorize", "move" ] }, "filters": { "type": "array", "items": { "$ref": "#/definitions/utils.TableFilter" } }, "to": { "type": "integer", "minimum": 0 } } }, "private.agent": { "type": "object", "properties": { "agent": { "$ref": "#/definitions/models.Agent" }, "details": { "$ref": "#/definitions/private.agentDetails" } } }, "private.agentCount": { "type": "object", "properties": { "all": { "type": "integer" }, "authorized": { "type": "integer" }, "blocked": { "type": "integer" }, "unauthorized": { "type": "integer" }, "without_groups": { "type": "integer" } } }, "private.agentDetails": { "type": "object", "properties": { "active_modules": { "type": "integer" }, "consistency": { "type": "boolean" }, "dependencies": { "type": "array", "items": { "$ref": "#/definitions/models.AgentDependency" } }, "group": { "$ref": "#/definitions/models.Group" }, "hash": { "type": "string" }, "joined_modules": { "type": "string" }, "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleAShort" } }, "policies": { "type": "array", "items": { "$ref": "#/definitions/models.Policy" } }, "upgrade_task": { "$ref": "#/definitions/models.AgentUpgradeTask" } } }, "private.agentInfo": { "type": "object", "required": [ "arch", "name", "os" ], "properties": { "arch": { "type": "string", "default": "amd64", "enum": [ "386", "amd64" ] }, "name": { "type": "string", "maxLength": 255 }, "os": { "type": "string", "default": "linux", "enum": [ "windows", "linux", "darwin" ] } } }, "private.agentModuleDetails": { "type": "object", "properties": { "name": { "type": "string" }, "policy": { "$ref": "#/definitions/models.Policy" }, "update": { "type": "boolean" } } }, "private.agentModules": { "type": "object", "properties": { "details": { "type": "array", "items": { "$ref": "#/definitions/private.agentModuleDetails" } }, "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleA" } }, "total": { "type": "integer" } } }, "private.agents": { "type": "object", "properties": { "agents": { "type": "array", "items": { "$ref": "#/definitions/models.Agent" } }, "details": { "type": "array", "items": { "$ref": "#/definitions/private.agentDetails" } }, "total": { "type": "integer" } } }, "private.agentsActionResult": { "type": "object", "properties": { "total": { "type": "integer" } } }, "private.binaries": { "type": "object", "properties": { "binaries": { "type": "array", "items": { "$ref": "#/definitions/models.Binary" } }, "total": { "type": "integer" } } }, "private.events": { "type": "object", "properties": { "agents": { "type": "array", "items": { "$ref": "#/definitions/models.Agent" } }, "events": { "type": "array", "items": { "$ref": "#/definitions/models.Event" } }, "groups": { "type": "array", "items": { "$ref": "#/definitions/models.Group" } }, "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleAShort" } }, "policies": { "type": "array", "items": { "$ref": "#/definitions/models.Policy" } }, "total": { "type": "integer" } } }, "private.group": { "type": "object", "properties": { "details": { "$ref": "#/definitions/private.groupDetails" }, "group": { "$ref": "#/definitions/models.Group" } } }, "private.groupDetails": { "type": "object", "properties": { "active_modules": { "type": "integer" }, "agents": { "type": "integer" }, "consistency": { "type": "boolean" }, "dependencies": { "type": "array", "items": { "$ref": "#/definitions/models.GroupDependency" } }, "hash": { "type": "string" }, "joined_modules": { "type": "string" }, "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleAShort" } }, "policies": { "type": "array", "items": { "$ref": "#/definitions/models.Policy" } } } }, "private.groupInfo": { "type": "object", "properties": { "from": { "type": "integer", "minimum": 0 }, "name": { "type": "string", "maxLength": 255 }, "tags": { "type": "array", "items": { "type": "string" } } } }, "private.groupModuleDetails": { "type": "object", "properties": { "name": { "type": "string" }, "policy": { "$ref": "#/definitions/models.Policy" }, "update": { "type": "boolean" } } }, "private.groupModules": { "type": "object", "properties": { "details": { "type": "array", "items": { "$ref": "#/definitions/private.groupModuleDetails" } }, "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleA" } }, "total": { "type": "integer" } } }, "private.groupPolicyPatch": { "type": "object", "required": [ "action", "policy" ], "properties": { "action": { "description": "Action on group policy must be one of activate, deactivate", "type": "string", "default": "activate", "enum": [ "activate", "deactivate" ] }, "policy": { "$ref": "#/definitions/models.Policy" } } }, "private.groups": { "type": "object", "properties": { "details": { "type": "array", "items": { "$ref": "#/definitions/private.groupDetails" } }, "groups": { "type": "array", "items": { "$ref": "#/definitions/models.Group" } }, "total": { "type": "integer" } } }, "private.moduleVersionPatch": { "type": "object", "required": [ "action", "module" ], "properties": { "action": { "description": "Action on group module must be one of store, release", "type": "string", "default": "store", "enum": [ "store", "release" ] }, "module": { "$ref": "#/definitions/models.ModuleS" } } }, "private.optionsActions": { "type": "object", "properties": { "actions": { "type": "array", "items": { "$ref": "#/definitions/models.OptionsActions" } }, "total": { "type": "integer" } } }, "private.optionsEvents": { "type": "object", "properties": { "events": { "type": "array", "items": { "$ref": "#/definitions/models.OptionsEvents" } }, "total": { "type": "integer" } } }, "private.optionsFields": { "type": "object", "properties": { "fields": { "type": "array", "items": { "$ref": "#/definitions/models.OptionsFields" } }, "total": { "type": "integer" } } }, "private.optionsTags": { "type": "object", "properties": { "tags": { "type": "array", "items": { "$ref": "#/definitions/models.OptionsTags" } }, "total": { "type": "integer" } } }, "private.optionsVersions": { "type": "object", "properties": { "total": { "type": "integer" }, "versions": { "type": "array", "items": { "$ref": "#/definitions/models.OptionsVersions" } } } }, "private.patchAgentAction": { "type": "object", "required": [ "action", "agent" ], "properties": { "action": { "type": "string", "enum": [ "authorize", "block", "delete", "unauthorize", "move", "edit" ] }, "agent": { "$ref": "#/definitions/models.Agent" } } }, "private.policies": { "type": "object", "properties": { "details": { "type": "array", "items": { "$ref": "#/definitions/private.policyDetails" } }, "policies": { "type": "array", "items": { "$ref": "#/definitions/models.Policy" } }, "total": { "type": "integer" } } }, "private.policy": { "type": "object", "properties": { "details": { "$ref": "#/definitions/private.policyDetails" }, "policy": { "$ref": "#/definitions/models.Policy" } } }, "private.policyCount": { "type": "object", "properties": { "all": { "type": "integer" }, "without_groups": { "type": "integer" } } }, "private.policyDetails": { "type": "object", "properties": { "active_modules": { "type": "integer" }, "agents": { "type": "integer" }, "consistency": { "type": "boolean" }, "dependencies": { "type": "array", "items": { "$ref": "#/definitions/models.PolicyDependency" } }, "groups": { "type": "array", "items": { "$ref": "#/definitions/models.Group" } }, "hash": { "type": "string" }, "joined_modules": { "type": "string" }, "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleAShort" } }, "update_modules": { "type": "boolean" } } }, "private.policyGroupPatch": { "type": "object", "required": [ "action", "group" ], "properties": { "action": { "description": "Action on policy group must be one of activate, deactivate", "type": "string", "default": "activate", "enum": [ "activate", "deactivate" ] }, "group": { "$ref": "#/definitions/models.Group" } } }, "private.policyInfo": { "type": "object", "properties": { "from": { "type": "integer", "minimum": 0 }, "name": { "type": "string", "maxLength": 255 }, "tags": { "type": "array", "items": { "type": "string" } } } }, "private.policyModuleDetails": { "type": "object", "properties": { "active": { "type": "boolean" }, "duplicate": { "type": "boolean" }, "exists": { "type": "boolean" }, "name": { "type": "string" }, "update": { "type": "boolean" } } }, "private.policyModulePatch": { "type": "object", "required": [ "action" ], "properties": { "action": { "description": "Action on group module must be one of activate, deactivate, update, store", "type": "string", "default": "update", "enum": [ "activate", "deactivate", "store", "update" ] }, "module": { "$ref": "#/definitions/models.ModuleA" }, "version": { "type": "string" } } }, "private.policyModules": { "type": "object", "properties": { "details": { "type": "array", "items": { "$ref": "#/definitions/private.policyModuleDetails" } }, "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleA" } }, "total": { "type": "integer" } } }, "private.policyModulesUpdates": { "type": "object", "properties": { "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleA" } }, "policies": { "type": "array", "items": { "$ref": "#/definitions/models.Policy" } } } }, "private.roles": { "type": "object", "properties": { "roles": { "type": "array", "items": { "$ref": "#/definitions/models.Role" } }, "total": { "type": "integer" } } }, "private.services": { "type": "object", "properties": { "services": { "type": "array", "items": { "$ref": "#/definitions/models.Service" } }, "total": { "type": "integer" } } }, "private.systemModuleFile": { "type": "object", "required": [ "data", "path" ], "properties": { "data": { "type": "string", "default": "base64" }, "path": { "type": "string" } } }, "private.systemModuleFilePatch": { "type": "object", "required": [ "action", "path" ], "properties": { "action": { "type": "string", "default": "save", "enum": [ "move", "remove", "save" ] }, "data": { "type": "string", "default": "base64" }, "newpath": { "type": "string" }, "path": { "type": "string" } } }, "private.systemModules": { "type": "object", "properties": { "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleS" } }, "total": { "type": "integer" } } }, "private.systemShortModules": { "type": "object", "properties": { "modules": { "type": "array", "items": { "$ref": "#/definitions/models.ModuleSShort" } }, "total": { "type": "integer" } } }, "private.tags": { "type": "object", "properties": { "tags": { "type": "array", "items": { "type": "string" } }, "total": { "type": "integer" } } }, "private.tenants": { "type": "object", "properties": { "tenants": { "type": "array", "items": { "$ref": "#/definitions/models.Tenant" } }, "total": { "type": "integer" } } }, "private.upgradeAgent": { "type": "object", "properties": { "details": { "$ref": "#/definitions/private.upgradeAgentDetails" }, "task": { "$ref": "#/definitions/models.AgentUpgradeTask" } } }, "private.upgradeAgentDetails": { "type": "object", "properties": { "agent": { "$ref": "#/definitions/models.Agent" }, "group": { "$ref": "#/definitions/models.Group" } } }, "private.upgradesAgents": { "type": "object", "properties": { "tasks": { "type": "array", "items": { "$ref": "#/definitions/models.AgentUpgradeTask" } }, "total": { "type": "integer" } } }, "private.upgradesAgentsAction": { "type": "object", "required": [ "version" ], "properties": { "filters": { "type": "array", "items": { "$ref": "#/definitions/utils.TableFilter" } }, "version": { "type": "string" } } }, "private.upgradesAgentsActionResult": { "type": "object", "properties": { "batch": { "type": "string" }, "total": { "type": "integer" } } }, "private.users": { "type": "object", "properties": { "total": { "type": "integer" }, "users": { "type": "array", "items": { "$ref": "#/definitions/models.UserRoleTenant" } } } }, "private.versions": { "type": "object", "properties": { "total": { "type": "integer" }, "versions": { "type": "array", "items": { "type": "string" } } } }, "public.info": { "type": "object", "properties": { "develop": { "type": "boolean" }, "privileges": { "type": "array", "items": { "type": "string" } }, "role": { "$ref": "#/definitions/models.Role" }, "service": { "$ref": "#/definitions/models.Service" }, "services": { "type": "array", "items": { "$ref": "#/definitions/models.Service" } }, "tenant": { "$ref": "#/definitions/models.Tenant" }, "type": { "type": "string" }, "user": { "$ref": "#/definitions/models.User" } } }, "utils.TableFilter": { "type": "object", "required": [ "field", "value" ], "properties": { "field": { "type": "string" }, "value": { "type": "object" } } } } }