diff --git a/.spectral.yml b/.spectral.yml
new file mode 100644
index 000000000..705b4fb2e
--- /dev/null
+++ b/.spectral.yml
@@ -0,0 +1,2 @@
+extends:
+ - https://raw.githubusercontent.com/jmlue42/spectral-jsonapi-ruleset/main/.spectral.yml
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 170636658..29e3c0f37 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -15,7 +15,7 @@ const compat = new FlatCompat({
});
export default defineConfig([
- globalIgnores(['projects/**/*']),
+ globalIgnores(['projects/**/*', 'src/generated/**/*']),
{
files: ['**/*.ts'],
diff --git a/openapi-ts.config.mjs b/openapi-ts.config.mjs
new file mode 100644
index 000000000..fcd9d9f3a
--- /dev/null
+++ b/openapi-ts.config.mjs
@@ -0,0 +1,12 @@
+import { defineConfig } from '@hey-api/openapi-ts';
+
+export default defineConfig({
+ input: './openapi.json',
+ output: {
+ path: './src/generated/api',
+ },
+ plugins: [
+ '@hey-api/typescript',
+ 'zod',
+ ],
+});
diff --git a/openapi.json b/openapi.json
new file mode 100644
index 000000000..c10e598de
--- /dev/null
+++ b/openapi.json
@@ -0,0 +1,25561 @@
+{
+ "openapi": "3.1.0",
+ "info": {
+ "title": "Hashtopolis API",
+ "version": "v2",
+ "description": "Hashtopolis REST API",
+ "contact": { "name": "Hashtopolis", "url": "https://github.com/hashtopolis/server" }
+ },
+ "servers": [{ "url": "/" }],
+ "paths": {
+ "/api/v2/ui/accessgroups": {
+ "get": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List AccessGroups",
+ "operationId": "getAccessgroups"
+ },
+ "post": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create AccessGroups",
+ "operationId": "postAccessgroups"
+ },
+ "patch": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update AccessGroups",
+ "operationId": "patchAccessgroups"
+ },
+ "delete": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AccessGroups",
+ "parameters": [],
+ "summary": "Delete AccessGroups",
+ "operationId": "deleteAccessgroups"
+ }
+ },
+ "/api/v2/ui/accessgroups/count": {
+ "get": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count AccessGroups",
+ "operationId": "getAccessgroupsCount"
+ }
+ },
+ "/api/v2/ui/accessgroups/{id}/{relation}": {
+ "get": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/AccessGroupRelationAgentMembersGetResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get AccessGroups",
+ "operationId": "getAccessgroupsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/accessgroups/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get AccessGroups",
+ "operationId": "getAccessgroupsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupRelationAgentMembers" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update AccessGroups",
+ "operationId": "patchAccessgroupsByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add AccessGroups relationship",
+ "operationId": "postAccessgroupsByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove AccessGroups relationship",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupRelationAgentMembers" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove AccessGroups relationship",
+ "operationId": "deleteAccessgroupsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/accessgroups/{id}": {
+ "get": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get AccessGroups",
+ "operationId": "getAccessgroupsById"
+ },
+ "patch": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update AccessGroups",
+ "operationId": "patchAccessgroupsById"
+ },
+ "delete": {
+ "tags": ["AccessGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AccessGroups",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete AccessGroups",
+ "operationId": "deleteAccessgroupsById"
+ }
+ },
+ "/api/v2/ui/agents": {
+ "get": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Agents",
+ "operationId": "getAgents"
+ },
+ "patch": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update Agents",
+ "operationId": "patchAgents"
+ },
+ "delete": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Agents",
+ "parameters": [],
+ "summary": "Delete Agents",
+ "operationId": "deleteAgents"
+ }
+ },
+ "/api/v2/ui/agents/count": {
+ "get": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Agents",
+ "operationId": "getAgentsCount"
+ }
+ },
+ "/api/v2/ui/agents/{id}/{relation}": {
+ "get": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AgentRelationAssignmentsGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Agents",
+ "operationId": "getAgentsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/agents/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Agents",
+ "operationId": "getAgentsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentRelationAssignments" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Agents",
+ "operationId": "patchAgentsByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add Agents relationship",
+ "operationId": "postAgentsByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove Agents relationship",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentRelationAssignments" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove Agents relationship",
+ "operationId": "deleteAgentsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/agents/{id}": {
+ "get": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Agents",
+ "operationId": "getAgentsById"
+ },
+ "patch": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update Agents",
+ "operationId": "patchAgentsById"
+ },
+ "delete": {
+ "tags": ["Agents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Agents",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete Agents",
+ "operationId": "deleteAgentsById"
+ }
+ },
+ "/api/v2/ui/agentassignments": {
+ "get": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssignmentListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List AgentAssignments",
+ "operationId": "getAgentassignments"
+ },
+ "post": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssignmentPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssignmentCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create AgentAssignments",
+ "operationId": "postAgentassignments"
+ },
+ "patch": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update AgentAssignments",
+ "operationId": "patchAgentassignments"
+ },
+ "delete": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AgentAssignments",
+ "parameters": [],
+ "summary": "Delete AgentAssignments",
+ "operationId": "deleteAgentassignments"
+ }
+ },
+ "/api/v2/ui/agentassignments/count": {
+ "get": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssignmentListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count AgentAssignments",
+ "operationId": "getAgentassignmentsCount"
+ }
+ },
+ "/api/v2/ui/agentassignments/{id}/{relation}": {
+ "get": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/AgentAssignmentRelationTaskGetResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get AgentAssignments",
+ "operationId": "getAgentassignmentsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/agentassignments/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssignmentResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get AgentAssignments",
+ "operationId": "getAgentassignmentsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssignmentRelationTask" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update AgentAssignments",
+ "operationId": "patchAgentassignmentsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/agentassignments/{id}": {
+ "get": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssignmentResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get AgentAssignments",
+ "operationId": "getAgentassignmentsById"
+ },
+ "patch": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssignmentPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentAssignmentPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update AgentAssignments",
+ "operationId": "patchAgentassignmentsById"
+ },
+ "delete": {
+ "tags": ["AgentAssignments"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AgentAssignments",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete AgentAssignments",
+ "operationId": "deleteAgentassignmentsById"
+ }
+ },
+ "/api/v2/ui/agentbinaries": {
+ "get": {
+ "tags": ["AgentBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentBinaryListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List AgentBinarys",
+ "operationId": "getAgentbinaries"
+ },
+ "post": {
+ "tags": ["AgentBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AgentBinaryPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentBinaryCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create AgentBinarys",
+ "operationId": "postAgentbinaries"
+ },
+ "patch": {
+ "tags": ["AgentBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update AgentBinarys",
+ "operationId": "patchAgentbinaries"
+ },
+ "delete": {
+ "tags": ["AgentBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AgentBinarys",
+ "parameters": [],
+ "summary": "Delete AgentBinarys",
+ "operationId": "deleteAgentbinaries"
+ }
+ },
+ "/api/v2/ui/agentbinaries/count": {
+ "get": {
+ "tags": ["AgentBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentBinaryListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count AgentBinarys",
+ "operationId": "getAgentbinariesCount"
+ }
+ },
+ "/api/v2/ui/agentbinaries/{id}": {
+ "get": {
+ "tags": ["AgentBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentBinaryResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get AgentBinarys",
+ "operationId": "getAgentbinariesById"
+ },
+ "patch": {
+ "tags": ["AgentBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AgentBinaryPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentBinaryPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update AgentBinarys",
+ "operationId": "patchAgentbinariesById"
+ },
+ "delete": {
+ "tags": ["AgentBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AgentBinarys",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete AgentBinarys",
+ "operationId": "deleteAgentbinariesById"
+ }
+ },
+ "/api/v2/ui/agenterrors": {
+ "get": {
+ "tags": ["AgentErrors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentErrorListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List AgentErrors",
+ "operationId": "getAgenterrors"
+ },
+ "delete": {
+ "tags": ["AgentErrors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AgentErrors",
+ "parameters": [],
+ "summary": "Delete AgentErrors",
+ "operationId": "deleteAgenterrors"
+ }
+ },
+ "/api/v2/ui/agenterrors/count": {
+ "get": {
+ "tags": ["AgentErrors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentErrorListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count AgentErrors",
+ "operationId": "getAgenterrorsCount"
+ }
+ },
+ "/api/v2/ui/agenterrors/{id}/{relation}": {
+ "get": {
+ "tags": ["AgentErrors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AgentErrorRelationTaskGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get AgentErrors",
+ "operationId": "getAgenterrorsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/agenterrors/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["AgentErrors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentErrorResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get AgentErrors",
+ "operationId": "getAgenterrorsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["AgentErrors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentErrorRelationTask" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update AgentErrors",
+ "operationId": "patchAgenterrorsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/agenterrors/{id}": {
+ "get": {
+ "tags": ["AgentErrors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentErrorResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get AgentErrors",
+ "operationId": "getAgenterrorsById"
+ },
+ "delete": {
+ "tags": ["AgentErrors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AgentErrors",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete AgentErrors",
+ "operationId": "deleteAgenterrorsById"
+ }
+ },
+ "/api/v2/ui/agentstats": {
+ "get": {
+ "tags": ["AgentStats"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentStatListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List AgentStats",
+ "operationId": "getAgentstats"
+ },
+ "delete": {
+ "tags": ["AgentStats"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AgentStats",
+ "parameters": [],
+ "summary": "Delete AgentStats",
+ "operationId": "deleteAgentstats"
+ }
+ },
+ "/api/v2/ui/agentstats/count": {
+ "get": {
+ "tags": ["AgentStats"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentStatListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count AgentStats",
+ "operationId": "getAgentstatsCount"
+ }
+ },
+ "/api/v2/ui/agentstats/{id}": {
+ "get": {
+ "tags": ["AgentStats"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentStatResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get AgentStats",
+ "operationId": "getAgentstatsById"
+ },
+ "delete": {
+ "tags": ["AgentStats"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete AgentStats",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete AgentStats",
+ "operationId": "deleteAgentstatsById"
+ }
+ },
+ "/api/v2/ui/apiTokens": {
+ "get": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List ApiTokens",
+ "operationId": "getApiTokens"
+ },
+ "post": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create ApiTokens",
+ "operationId": "postApiTokens"
+ },
+ "patch": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update ApiTokens",
+ "operationId": "patchApiTokens"
+ },
+ "delete": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete ApiTokens",
+ "parameters": [],
+ "summary": "Delete ApiTokens",
+ "operationId": "deleteApiTokens"
+ }
+ },
+ "/api/v2/ui/apiTokens/count": {
+ "get": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count ApiTokens",
+ "operationId": "getApiTokensCount"
+ }
+ },
+ "/api/v2/ui/apiTokens/{id}/{relation}": {
+ "get": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenRelationUserGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get ApiTokens",
+ "operationId": "getApiTokensByIdByRelation"
+ }
+ },
+ "/api/v2/ui/apiTokens/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get ApiTokens",
+ "operationId": "getApiTokensByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenRelationUser" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update ApiTokens",
+ "operationId": "patchApiTokensByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/apiTokens/{id}": {
+ "get": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get ApiTokens",
+ "operationId": "getApiTokensById"
+ },
+ "patch": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update ApiTokens",
+ "operationId": "patchApiTokensById"
+ },
+ "delete": {
+ "tags": ["ApiTokens"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete ApiTokens",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete ApiTokens",
+ "operationId": "deleteApiTokensById"
+ }
+ },
+ "/api/v2/ui/chunks": {
+ "get": {
+ "tags": ["Chunks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChunkListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Chunks",
+ "operationId": "getChunks"
+ }
+ },
+ "/api/v2/ui/chunks/count": {
+ "get": {
+ "tags": ["Chunks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChunkListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Chunks",
+ "operationId": "getChunksCount"
+ }
+ },
+ "/api/v2/ui/chunks/{id}/{relation}": {
+ "get": {
+ "tags": ["Chunks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ChunkRelationTaskGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Chunks",
+ "operationId": "getChunksByIdByRelation"
+ }
+ },
+ "/api/v2/ui/chunks/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Chunks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChunkResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Chunks",
+ "operationId": "getChunksByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Chunks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChunkRelationTask" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Chunks",
+ "operationId": "patchChunksByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/chunks/{id}": {
+ "get": {
+ "tags": ["Chunks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChunkResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Chunks",
+ "operationId": "getChunksById"
+ }
+ },
+ "/api/v2/ui/configs": {
+ "get": {
+ "tags": ["Configs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Configs",
+ "operationId": "getConfigs"
+ },
+ "patch": {
+ "tags": ["Configs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update Configs",
+ "operationId": "patchConfigs"
+ }
+ },
+ "/api/v2/ui/configs/count": {
+ "get": {
+ "tags": ["Configs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Configs",
+ "operationId": "getConfigsCount"
+ }
+ },
+ "/api/v2/ui/configs/{id}/{relation}": {
+ "get": {
+ "tags": ["Configs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/ConfigRelationConfigSectionGetResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Configs",
+ "operationId": "getConfigsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/configs/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Configs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Configs",
+ "operationId": "getConfigsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Configs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ConfigRelationConfigSection" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Configs",
+ "operationId": "patchConfigsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/configs/{id}": {
+ "get": {
+ "tags": ["Configs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Configs",
+ "operationId": "getConfigsById"
+ },
+ "patch": {
+ "tags": ["Configs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update Configs",
+ "operationId": "patchConfigsById"
+ }
+ },
+ "/api/v2/ui/configsections": {
+ "get": {
+ "tags": ["ConfigSections"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ConfigSectionListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List ConfigSections",
+ "operationId": "getConfigsections"
+ }
+ },
+ "/api/v2/ui/configsections/count": {
+ "get": {
+ "tags": ["ConfigSections"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ConfigSectionListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count ConfigSections",
+ "operationId": "getConfigsectionsCount"
+ }
+ },
+ "/api/v2/ui/configsections/{id}": {
+ "get": {
+ "tags": ["ConfigSections"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigSectionResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get ConfigSections",
+ "operationId": "getConfigsectionsById"
+ }
+ },
+ "/api/v2/ui/crackers": {
+ "get": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List CrackerBinarys",
+ "operationId": "getCrackers"
+ },
+ "post": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create CrackerBinarys",
+ "operationId": "postCrackers"
+ },
+ "patch": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update CrackerBinarys",
+ "operationId": "patchCrackers"
+ },
+ "delete": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete CrackerBinarys",
+ "parameters": [],
+ "summary": "Delete CrackerBinarys",
+ "operationId": "deleteCrackers"
+ }
+ },
+ "/api/v2/ui/crackers/count": {
+ "get": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count CrackerBinarys",
+ "operationId": "getCrackersCount"
+ }
+ },
+ "/api/v2/ui/crackers/{id}/{relation}": {
+ "get": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryRelationTasksGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get CrackerBinarys",
+ "operationId": "getCrackersByIdByRelation"
+ }
+ },
+ "/api/v2/ui/crackers/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get CrackerBinarys",
+ "operationId": "getCrackersByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryRelationTasks" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update CrackerBinarys",
+ "operationId": "patchCrackersByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add CrackerBinarys relationship",
+ "operationId": "postCrackersByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove CrackerBinarys relationship",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryRelationTasks" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove CrackerBinarys relationship",
+ "operationId": "deleteCrackersByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/crackers/{id}": {
+ "get": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get CrackerBinarys",
+ "operationId": "getCrackersById"
+ },
+ "patch": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update CrackerBinarys",
+ "operationId": "patchCrackersById"
+ },
+ "delete": {
+ "tags": ["CrackerBinarys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete CrackerBinarys",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete CrackerBinarys",
+ "operationId": "deleteCrackersById"
+ }
+ },
+ "/api/v2/ui/crackertypes": {
+ "get": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypeListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List CrackerBinaryTypes",
+ "operationId": "getCrackertypes"
+ },
+ "post": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypePostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypeCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create CrackerBinaryTypes",
+ "operationId": "postCrackertypes"
+ },
+ "patch": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update CrackerBinaryTypes",
+ "operationId": "patchCrackertypes"
+ },
+ "delete": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete CrackerBinaryTypes",
+ "parameters": [],
+ "summary": "Delete CrackerBinaryTypes",
+ "operationId": "deleteCrackertypes"
+ }
+ },
+ "/api/v2/ui/crackertypes/count": {
+ "get": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypeListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count CrackerBinaryTypes",
+ "operationId": "getCrackertypesCount"
+ }
+ },
+ "/api/v2/ui/crackertypes/{id}/{relation}": {
+ "get": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/CrackerBinaryTypeRelationTasksGetResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get CrackerBinaryTypes",
+ "operationId": "getCrackertypesByIdByRelation"
+ }
+ },
+ "/api/v2/ui/crackertypes/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypeResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get CrackerBinaryTypes",
+ "operationId": "getCrackertypesByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypeRelationTasks" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update CrackerBinaryTypes",
+ "operationId": "patchCrackertypesByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add CrackerBinaryTypes relationship",
+ "operationId": "postCrackertypesByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove CrackerBinaryTypes relationship",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypeRelationTasks" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove CrackerBinaryTypes relationship",
+ "operationId": "deleteCrackertypesByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/crackertypes/{id}": {
+ "get": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypeResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get CrackerBinaryTypes",
+ "operationId": "getCrackertypesById"
+ },
+ "patch": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypePostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrackerBinaryTypePatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update CrackerBinaryTypes",
+ "operationId": "patchCrackertypesById"
+ },
+ "delete": {
+ "tags": ["CrackerBinaryTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete CrackerBinaryTypes",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete CrackerBinaryTypes",
+ "operationId": "deleteCrackertypesById"
+ }
+ },
+ "/api/v2/ui/files": {
+ "get": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Files",
+ "operationId": "getFiles"
+ },
+ "post": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilePostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create Files",
+ "operationId": "postFiles"
+ },
+ "patch": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update Files",
+ "operationId": "patchFiles"
+ },
+ "delete": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Files",
+ "parameters": [],
+ "summary": "Delete Files",
+ "operationId": "deleteFiles"
+ }
+ },
+ "/api/v2/ui/files/count": {
+ "get": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Files",
+ "operationId": "getFilesCount"
+ }
+ },
+ "/api/v2/ui/files/{id}/{relation}": {
+ "get": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/FileRelationAccessGroupGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Files",
+ "operationId": "getFilesByIdByRelation"
+ }
+ },
+ "/api/v2/ui/files/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Files",
+ "operationId": "getFilesByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileRelationAccessGroup" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Files",
+ "operationId": "patchFilesByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/files/{id}": {
+ "get": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Files",
+ "operationId": "getFilesById"
+ },
+ "patch": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilePostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilePatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update Files",
+ "operationId": "patchFilesById"
+ },
+ "delete": {
+ "tags": ["Files"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Files",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete Files",
+ "operationId": "deleteFilesById"
+ }
+ },
+ "/api/v2/ui/globalpermissiongroups": {
+ "get": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List GlobalPermissionGroups",
+ "operationId": "getGlobalpermissiongroups"
+ },
+ "post": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupPostPatchResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupCreate" } }
+ }
+ },
+ "parameters": [],
+ "summary": "Create GlobalPermissionGroups",
+ "operationId": "postGlobalpermissiongroups"
+ },
+ "patch": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update GlobalPermissionGroups",
+ "operationId": "patchGlobalpermissiongroups"
+ },
+ "delete": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete GlobalPermissionGroups",
+ "parameters": [],
+ "summary": "Delete GlobalPermissionGroups",
+ "operationId": "deleteGlobalpermissiongroups"
+ }
+ },
+ "/api/v2/ui/globalpermissiongroups/count": {
+ "get": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count GlobalPermissionGroups",
+ "operationId": "getGlobalpermissiongroupsCount"
+ }
+ },
+ "/api/v2/ui/globalpermissiongroups/{id}/{relation}": {
+ "get": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupRelationUserMembersGetResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get GlobalPermissionGroups",
+ "operationId": "getGlobalpermissiongroupsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/globalpermissiongroups/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get GlobalPermissionGroups",
+ "operationId": "getGlobalpermissiongroupsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupRelationUserMembers" }
+ }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update GlobalPermissionGroups",
+ "operationId": "patchGlobalpermissiongroupsByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add GlobalPermissionGroups relationship",
+ "operationId": "postGlobalpermissiongroupsByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove GlobalPermissionGroups relationship",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupRelationUserMembers" }
+ }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove GlobalPermissionGroups relationship",
+ "operationId": "deleteGlobalpermissiongroupsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/globalpermissiongroups/{id}": {
+ "get": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get GlobalPermissionGroups",
+ "operationId": "getGlobalpermissiongroupsById"
+ },
+ "patch": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupPostPatchResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GlobalPermissionGroupPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update GlobalPermissionGroups",
+ "operationId": "patchGlobalpermissiongroupsById"
+ },
+ "delete": {
+ "tags": ["GlobalPermissionGroups"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete GlobalPermissionGroups",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete GlobalPermissionGroups",
+ "operationId": "deleteGlobalpermissiongroupsById"
+ }
+ },
+ "/api/v2/ui/hashes": {
+ "get": {
+ "tags": ["Hashs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Hashs",
+ "operationId": "getHashes"
+ }
+ },
+ "/api/v2/ui/hashes/count": {
+ "get": {
+ "tags": ["Hashs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Hashs",
+ "operationId": "getHashesCount"
+ }
+ },
+ "/api/v2/ui/hashes/{id}/{relation}": {
+ "get": {
+ "tags": ["Hashs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HashRelationHashlistGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Hashs",
+ "operationId": "getHashesByIdByRelation"
+ }
+ },
+ "/api/v2/ui/hashes/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Hashs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Hashs",
+ "operationId": "getHashesByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Hashs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashRelationHashlist" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Hashs",
+ "operationId": "patchHashesByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/hashes/{id}": {
+ "get": {
+ "tags": ["Hashs"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Hashs",
+ "operationId": "getHashesById"
+ }
+ },
+ "/api/v2/ui/hashlists": {
+ "get": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashlistListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Hashlists",
+ "operationId": "getHashlists"
+ },
+ "post": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HashlistPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashlistCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create Hashlists",
+ "operationId": "postHashlists"
+ },
+ "patch": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update Hashlists",
+ "operationId": "patchHashlists"
+ },
+ "delete": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Hashlists",
+ "parameters": [],
+ "summary": "Delete Hashlists",
+ "operationId": "deleteHashlists"
+ }
+ },
+ "/api/v2/ui/hashlists/count": {
+ "get": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashlistListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Hashlists",
+ "operationId": "getHashlistsCount"
+ }
+ },
+ "/api/v2/ui/hashlists/{id}/{relation}": {
+ "get": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HashlistRelationTasksGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Hashlists",
+ "operationId": "getHashlistsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/hashlists/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashlistResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Hashlists",
+ "operationId": "getHashlistsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashlistRelationTasks" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Hashlists",
+ "operationId": "patchHashlistsByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add Hashlists relationship",
+ "operationId": "postHashlistsByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove Hashlists relationship",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashlistRelationTasks" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove Hashlists relationship",
+ "operationId": "deleteHashlistsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/hashlists/{id}": {
+ "get": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashlistResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Hashlists",
+ "operationId": "getHashlistsById"
+ },
+ "patch": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HashlistPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashlistPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update Hashlists",
+ "operationId": "patchHashlistsById"
+ },
+ "delete": {
+ "tags": ["Hashlists"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Hashlists",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete Hashlists",
+ "operationId": "deleteHashlistsById"
+ }
+ },
+ "/api/v2/ui/hashtypes": {
+ "get": {
+ "tags": ["HashTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashTypeListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List HashTypes",
+ "operationId": "getHashtypes"
+ },
+ "post": {
+ "tags": ["HashTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HashTypePostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashTypeCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create HashTypes",
+ "operationId": "postHashtypes"
+ },
+ "patch": {
+ "tags": ["HashTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update HashTypes",
+ "operationId": "patchHashtypes"
+ },
+ "delete": {
+ "tags": ["HashTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete HashTypes",
+ "parameters": [],
+ "summary": "Delete HashTypes",
+ "operationId": "deleteHashtypes"
+ }
+ },
+ "/api/v2/ui/hashtypes/count": {
+ "get": {
+ "tags": ["HashTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashTypeListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count HashTypes",
+ "operationId": "getHashtypesCount"
+ }
+ },
+ "/api/v2/ui/hashtypes/{id}": {
+ "get": {
+ "tags": ["HashTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashTypeResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get HashTypes",
+ "operationId": "getHashtypesById"
+ },
+ "patch": {
+ "tags": ["HashTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HashTypePostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashTypePatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update HashTypes",
+ "operationId": "patchHashtypesById"
+ },
+ "delete": {
+ "tags": ["HashTypes"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete HashTypes",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete HashTypes",
+ "operationId": "deleteHashtypesById"
+ }
+ },
+ "/api/v2/ui/healthcheckagents": {
+ "get": {
+ "tags": ["HealthCheckAgents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckAgentListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List HealthCheckAgents",
+ "operationId": "getHealthcheckagents"
+ }
+ },
+ "/api/v2/ui/healthcheckagents/count": {
+ "get": {
+ "tags": ["HealthCheckAgents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckAgentListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count HealthCheckAgents",
+ "operationId": "getHealthcheckagentsCount"
+ }
+ },
+ "/api/v2/ui/healthcheckagents/{id}/{relation}": {
+ "get": {
+ "tags": ["HealthCheckAgents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/HealthCheckAgentRelationHealthCheckGetResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get HealthCheckAgents",
+ "operationId": "getHealthcheckagentsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/healthcheckagents/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["HealthCheckAgents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckAgentResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get HealthCheckAgents",
+ "operationId": "getHealthcheckagentsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["HealthCheckAgents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckAgentRelationHealthCheck" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update HealthCheckAgents",
+ "operationId": "patchHealthcheckagentsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/healthcheckagents/{id}": {
+ "get": {
+ "tags": ["HealthCheckAgents"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckAgentResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get HealthCheckAgents",
+ "operationId": "getHealthcheckagentsById"
+ }
+ },
+ "/api/v2/ui/healthchecks": {
+ "get": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List HealthChecks",
+ "operationId": "getHealthchecks"
+ },
+ "post": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create HealthChecks",
+ "operationId": "postHealthchecks"
+ },
+ "patch": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update HealthChecks",
+ "operationId": "patchHealthchecks"
+ },
+ "delete": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete HealthChecks",
+ "parameters": [],
+ "summary": "Delete HealthChecks",
+ "operationId": "deleteHealthchecks"
+ }
+ },
+ "/api/v2/ui/healthchecks/count": {
+ "get": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count HealthChecks",
+ "operationId": "getHealthchecksCount"
+ }
+ },
+ "/api/v2/ui/healthchecks/{id}/{relation}": {
+ "get": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/HealthCheckRelationHealthCheckAgentsGetResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get HealthChecks",
+ "operationId": "getHealthchecksByIdByRelation"
+ }
+ },
+ "/api/v2/ui/healthchecks/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get HealthChecks",
+ "operationId": "getHealthchecksByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckRelationHealthCheckAgents" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update HealthChecks",
+ "operationId": "patchHealthchecksByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add HealthChecks relationship",
+ "operationId": "postHealthchecksByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove HealthChecks relationship",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckRelationHealthCheckAgents" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove HealthChecks relationship",
+ "operationId": "deleteHealthchecksByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/healthchecks/{id}": {
+ "get": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get HealthChecks",
+ "operationId": "getHealthchecksById"
+ },
+ "patch": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthCheckPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update HealthChecks",
+ "operationId": "patchHealthchecksById"
+ },
+ "delete": {
+ "tags": ["HealthChecks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete HealthChecks",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete HealthChecks",
+ "operationId": "deleteHealthchecksById"
+ }
+ },
+ "/api/v2/ui/logentries": {
+ "get": {
+ "tags": ["LogEntrys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LogEntryListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List LogEntrys",
+ "operationId": "getLogentries"
+ },
+ "post": {
+ "tags": ["LogEntrys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/LogEntryPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LogEntryCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create LogEntrys",
+ "operationId": "postLogentries"
+ },
+ "patch": {
+ "tags": ["LogEntrys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update LogEntrys",
+ "operationId": "patchLogentries"
+ },
+ "delete": {
+ "tags": ["LogEntrys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete LogEntrys",
+ "parameters": [],
+ "summary": "Delete LogEntrys",
+ "operationId": "deleteLogentries"
+ }
+ },
+ "/api/v2/ui/logentries/count": {
+ "get": {
+ "tags": ["LogEntrys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LogEntryListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count LogEntrys",
+ "operationId": "getLogentriesCount"
+ }
+ },
+ "/api/v2/ui/logentries/{id}": {
+ "get": {
+ "tags": ["LogEntrys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LogEntryResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get LogEntrys",
+ "operationId": "getLogentriesById"
+ },
+ "patch": {
+ "tags": ["LogEntrys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/LogEntryPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LogEntryPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update LogEntrys",
+ "operationId": "patchLogentriesById"
+ },
+ "delete": {
+ "tags": ["LogEntrys"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete LogEntrys",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete LogEntrys",
+ "operationId": "deleteLogentriesById"
+ }
+ },
+ "/api/v2/ui/notifications": {
+ "get": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSettingListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List NotificationSettings",
+ "operationId": "getNotifications"
+ },
+ "post": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSettingPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSettingCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create NotificationSettings",
+ "operationId": "postNotifications"
+ },
+ "patch": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update NotificationSettings",
+ "operationId": "patchNotifications"
+ },
+ "delete": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete NotificationSettings",
+ "parameters": [],
+ "summary": "Delete NotificationSettings",
+ "operationId": "deleteNotifications"
+ }
+ },
+ "/api/v2/ui/notifications/count": {
+ "get": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSettingListResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count NotificationSettings",
+ "operationId": "getNotificationsCount"
+ }
+ },
+ "/api/v2/ui/notifications/{id}/{relation}": {
+ "get": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/NotificationSettingRelationUserGetResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get NotificationSettings",
+ "operationId": "getNotificationsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/notifications/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSettingResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get NotificationSettings",
+ "operationId": "getNotificationsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSettingRelationUser" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update NotificationSettings",
+ "operationId": "patchNotificationsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/notifications/{id}": {
+ "get": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSettingResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get NotificationSettings",
+ "operationId": "getNotificationsById"
+ },
+ "patch": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSettingPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationSettingPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update NotificationSettings",
+ "operationId": "patchNotificationsById"
+ },
+ "delete": {
+ "tags": ["NotificationSettings"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete NotificationSettings",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete NotificationSettings",
+ "operationId": "deleteNotificationsById"
+ }
+ },
+ "/api/v2/ui/preprocessors": {
+ "get": {
+ "tags": ["Preprocessors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreprocessorListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Preprocessors",
+ "operationId": "getPreprocessors"
+ },
+ "post": {
+ "tags": ["Preprocessors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/PreprocessorPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreprocessorCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create Preprocessors",
+ "operationId": "postPreprocessors"
+ },
+ "patch": {
+ "tags": ["Preprocessors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update Preprocessors",
+ "operationId": "patchPreprocessors"
+ },
+ "delete": {
+ "tags": ["Preprocessors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Preprocessors",
+ "parameters": [],
+ "summary": "Delete Preprocessors",
+ "operationId": "deletePreprocessors"
+ }
+ },
+ "/api/v2/ui/preprocessors/count": {
+ "get": {
+ "tags": ["Preprocessors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreprocessorListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Preprocessors",
+ "operationId": "getPreprocessorsCount"
+ }
+ },
+ "/api/v2/ui/preprocessors/{id}": {
+ "get": {
+ "tags": ["Preprocessors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreprocessorResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Preprocessors",
+ "operationId": "getPreprocessorsById"
+ },
+ "patch": {
+ "tags": ["Preprocessors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/PreprocessorPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreprocessorPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update Preprocessors",
+ "operationId": "patchPreprocessorsById"
+ },
+ "delete": {
+ "tags": ["Preprocessors"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Preprocessors",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete Preprocessors",
+ "operationId": "deletePreprocessorsById"
+ }
+ },
+ "/api/v2/ui/pretasks": {
+ "get": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List PreTasks",
+ "operationId": "getPretasks"
+ },
+ "post": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create PreTasks",
+ "operationId": "postPretasks"
+ },
+ "patch": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update PreTasks",
+ "operationId": "patchPretasks"
+ },
+ "delete": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete PreTasks",
+ "parameters": [],
+ "summary": "Delete PreTasks",
+ "operationId": "deletePretasks"
+ }
+ },
+ "/api/v2/ui/pretasks/count": {
+ "get": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count PreTasks",
+ "operationId": "getPretasksCount"
+ }
+ },
+ "/api/v2/ui/pretasks/{id}/{relation}": {
+ "get": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": {
+ "schema": { "$ref": "#/components/schemas/PreTaskRelationPretaskFilesGetResponse" }
+ }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get PreTasks",
+ "operationId": "getPretasksByIdByRelation"
+ }
+ },
+ "/api/v2/ui/pretasks/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get PreTasks",
+ "operationId": "getPretasksByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskRelationPretaskFiles" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update PreTasks",
+ "operationId": "patchPretasksByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add PreTasks relationship",
+ "operationId": "postPretasksByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove PreTasks relationship",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskRelationPretaskFiles" } }
+ }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove PreTasks relationship",
+ "operationId": "deletePretasksByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/pretasks/{id}": {
+ "get": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get PreTasks",
+ "operationId": "getPretasksById"
+ },
+ "patch": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreTaskPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update PreTasks",
+ "operationId": "patchPretasksById"
+ },
+ "delete": {
+ "tags": ["PreTasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete PreTasks",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete PreTasks",
+ "operationId": "deletePretasksById"
+ }
+ },
+ "/api/v2/ui/speeds": {
+ "get": {
+ "tags": ["Speeds"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeedListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Speeds",
+ "operationId": "getSpeeds"
+ }
+ },
+ "/api/v2/ui/speeds/count": {
+ "get": {
+ "tags": ["Speeds"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeedListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Speeds",
+ "operationId": "getSpeedsCount"
+ }
+ },
+ "/api/v2/ui/speeds/{id}/{relation}": {
+ "get": {
+ "tags": ["Speeds"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/SpeedRelationTaskGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Speeds",
+ "operationId": "getSpeedsByIdByRelation"
+ }
+ },
+ "/api/v2/ui/speeds/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Speeds"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeedResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Speeds",
+ "operationId": "getSpeedsByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Speeds"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeedRelationTask" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Speeds",
+ "operationId": "patchSpeedsByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/speeds/{id}": {
+ "get": {
+ "tags": ["Speeds"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeedResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Speeds",
+ "operationId": "getSpeedsById"
+ }
+ },
+ "/api/v2/ui/supertasks": {
+ "get": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Supertasks",
+ "operationId": "getSupertasks"
+ },
+ "post": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create Supertasks",
+ "operationId": "postSupertasks"
+ },
+ "patch": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update Supertasks",
+ "operationId": "patchSupertasks"
+ },
+ "delete": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Supertasks",
+ "parameters": [],
+ "summary": "Delete Supertasks",
+ "operationId": "deleteSupertasks"
+ }
+ },
+ "/api/v2/ui/supertasks/count": {
+ "get": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Supertasks",
+ "operationId": "getSupertasksCount"
+ }
+ },
+ "/api/v2/ui/supertasks/{id}/{relation}": {
+ "get": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskRelationPretasksGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Supertasks",
+ "operationId": "getSupertasksByIdByRelation"
+ }
+ },
+ "/api/v2/ui/supertasks/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Supertasks",
+ "operationId": "getSupertasksByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskRelationPretasks" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Supertasks",
+ "operationId": "patchSupertasksByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add Supertasks relationship",
+ "operationId": "postSupertasksByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove Supertasks relationship",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskRelationPretasks" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove Supertasks relationship",
+ "operationId": "deleteSupertasksByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/supertasks/{id}": {
+ "get": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Supertasks",
+ "operationId": "getSupertasksById"
+ },
+ "patch": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update Supertasks",
+ "operationId": "patchSupertasksById"
+ },
+ "delete": {
+ "tags": ["Supertasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Supertasks",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete Supertasks",
+ "operationId": "deleteSupertasksById"
+ }
+ },
+ "/api/v2/ui/tasks": {
+ "get": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Tasks",
+ "operationId": "getTasks"
+ },
+ "post": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create Tasks",
+ "operationId": "postTasks"
+ },
+ "patch": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update Tasks",
+ "operationId": "patchTasks"
+ },
+ "delete": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Tasks",
+ "parameters": [],
+ "summary": "Delete Tasks",
+ "operationId": "deleteTasks"
+ }
+ },
+ "/api/v2/ui/tasks/count": {
+ "get": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Tasks",
+ "operationId": "getTasksCount"
+ }
+ },
+ "/api/v2/ui/tasks/{id}/{relation}": {
+ "get": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/TaskRelationSpeedsGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Tasks",
+ "operationId": "getTasksByIdByRelation"
+ }
+ },
+ "/api/v2/ui/tasks/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Tasks",
+ "operationId": "getTasksByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskRelationSpeeds" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Tasks",
+ "operationId": "patchTasksByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add Tasks relationship",
+ "operationId": "postTasksByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove Tasks relationship",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskRelationSpeeds" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove Tasks relationship",
+ "operationId": "deleteTasksByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/tasks/{id}": {
+ "get": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Tasks",
+ "operationId": "getTasksById"
+ },
+ "patch": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update Tasks",
+ "operationId": "patchTasksById"
+ },
+ "delete": {
+ "tags": ["Tasks"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Tasks",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete Tasks",
+ "operationId": "deleteTasksById"
+ }
+ },
+ "/api/v2/ui/taskwrappers": {
+ "get": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List TaskWrappers",
+ "operationId": "getTaskwrappers"
+ },
+ "patch": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update TaskWrappers",
+ "operationId": "patchTaskwrappers"
+ },
+ "delete": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete TaskWrappers",
+ "parameters": [],
+ "summary": "Delete TaskWrappers",
+ "operationId": "deleteTaskwrappers"
+ }
+ },
+ "/api/v2/ui/taskwrappers/count": {
+ "get": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count TaskWrappers",
+ "operationId": "getTaskwrappersCount"
+ }
+ },
+ "/api/v2/ui/taskwrappers/{id}/{relation}": {
+ "get": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperRelationTasksGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get TaskWrappers",
+ "operationId": "getTaskwrappersByIdByRelation"
+ }
+ },
+ "/api/v2/ui/taskwrappers/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get TaskWrappers",
+ "operationId": "getTaskwrappersByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperRelationTasks" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update TaskWrappers",
+ "operationId": "patchTaskwrappersByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add TaskWrappers relationship",
+ "operationId": "postTaskwrappersByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove TaskWrappers relationship",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperRelationTasks" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove TaskWrappers relationship",
+ "operationId": "deleteTaskwrappersByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/taskwrappers/{id}": {
+ "get": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get TaskWrappers",
+ "operationId": "getTaskwrappersById"
+ },
+ "patch": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperPostPatchResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update TaskWrappers",
+ "operationId": "patchTaskwrappersById"
+ },
+ "delete": {
+ "tags": ["TaskWrappers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete TaskWrappers",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete TaskWrappers",
+ "operationId": "deleteTaskwrappersById"
+ }
+ },
+ "/api/v2/ui/users": {
+ "get": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Users",
+ "operationId": "getUsers"
+ },
+ "post": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create Users",
+ "operationId": "postUsers"
+ },
+ "patch": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update Users",
+ "operationId": "patchUsers"
+ },
+ "delete": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Users",
+ "parameters": [],
+ "summary": "Delete Users",
+ "operationId": "deleteUsers"
+ }
+ },
+ "/api/v2/ui/users/count": {
+ "get": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Users",
+ "operationId": "getUsersCount"
+ }
+ },
+ "/api/v2/ui/users/{id}/{relation}": {
+ "get": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/UserRelationAccessGroupsGetResponse" } }
+ }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Users",
+ "operationId": "getUsersByIdByRelation"
+ }
+ },
+ "/api/v2/ui/users/{id}/relationships/{relation}": {
+ "get": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request for for a to-one relationship link. Returns the resource record of the object that is part of the specified relation.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Get Users",
+ "operationId": "getUsersByIdRelationshipsByRelation"
+ },
+ "patch": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "Successfull operation" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update a to one relationship.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRelationAccessGroups" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Update Users",
+ "operationId": "patchUsersByIdRelationshipsByRelation"
+ },
+ "post": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully created" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a to-one relationship link.",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Add Users relationship",
+ "operationId": "postUsersByIdRelationshipsByRelation"
+ },
+ "delete": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "204": { "description": "successfully deleted" },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Remove Users relationship",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRelationAccessGroups" } } }
+ },
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "relation", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Remove Users relationship",
+ "operationId": "deleteUsersByIdRelationshipsByRelation"
+ }
+ },
+ "/api/v2/ui/users/{id}": {
+ "get": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Users",
+ "operationId": "getUsersById"
+ },
+ "patch": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update Users",
+ "operationId": "patchUsersById"
+ },
+ "delete": {
+ "tags": ["Users"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Users",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete Users",
+ "operationId": "deleteUsersById"
+ }
+ },
+ "/api/v2/ui/vouchers": {
+ "get": {
+ "tags": ["Vouchers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoucherListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "List Vouchers",
+ "operationId": "getVouchers"
+ },
+ "post": {
+ "tags": ["Vouchers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "201": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoucherPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "POST request to create a new object. The request must contain the resource record as data with the attributes of the new object.To add relationships, a relationships object can be added with the resource records of the relations that are part of this object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoucherCreate" } } }
+ },
+ "parameters": [],
+ "summary": "Create Vouchers",
+ "operationId": "postVouchers"
+ },
+ "patch": {
+ "tags": ["Vouchers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "parameters": [],
+ "summary": "Update Vouchers",
+ "operationId": "patchVouchers"
+ },
+ "delete": {
+ "tags": ["Vouchers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": { "description": "successful operation" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Vouchers",
+ "parameters": [],
+ "summary": "Delete Vouchers",
+ "operationId": "deleteVouchers"
+ }
+ },
+ "/api/v2/ui/vouchers/count": {
+ "get": {
+ "tags": ["Vouchers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoucherListResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET many request to retrieve multiple objects.",
+ "parameters": [
+ {
+ "name": "page[after]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data after the value provided"
+ },
+ {
+ "name": "page[before]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 0,
+ "description": "Pointer to paginate to retrieve the data before the value provided"
+ },
+ {
+ "name": "page[size]",
+ "in": "query",
+ "schema": { "type": "integer", "format": "int32" },
+ "example": 100,
+ "description": "Amout of data to retrieve inside a single page"
+ },
+ {
+ "name": "filter",
+ "in": "query",
+ "style": "deepObject",
+ "explode": true,
+ "schema": { "type": "object" },
+ "description": "Filters results using a query",
+ "example": "\"filter[hashlistId__gt]\": 200"
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include, comma seperated. Possible options: Array"
+ }
+ ],
+ "summary": "Count Vouchers",
+ "operationId": "getVouchersCount"
+ }
+ },
+ "/api/v2/ui/vouchers/{id}": {
+ "get": {
+ "tags": ["Vouchers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoucherResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "GET request to retrieve a single object.",
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": { "type": "integer", "format": "int32", "example": 10 }
+ },
+ {
+ "name": "include",
+ "in": "query",
+ "schema": { "type": "string" },
+ "description": "Items to include. Comma seperated"
+ }
+ ],
+ "summary": "Get Vouchers",
+ "operationId": "getVouchersById"
+ },
+ "patch": {
+ "tags": ["Vouchers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoucherPostPatchResponse" } } }
+ }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "PATCH request to update attributes of a single object.",
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoucherPatch" } } }
+ },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Update Vouchers",
+ "operationId": "patchVouchersById"
+ },
+ "delete": {
+ "tags": ["Vouchers"],
+ "responses": {
+ "400": {
+ "description": "Invalid request",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ },
+ "204": { "description": "successfully deleted" }
+ },
+ "security": [{ "bearerAuth": [] }],
+ "description": "Delete Vouchers",
+ "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object" } } } },
+ "parameters": [{ "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }],
+ "summary": "Delete Vouchers",
+ "operationId": "deleteVouchersById"
+ }
+ },
+ "/api/v2/helper/abortChunk": {
+ "post": {
+ "description": "Endpoint to stop a running chunk.
@throws HTException
",
+ "requestBody": {
+ "description": "ChunkID is the ID of the chunk that needs to be aborted.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AbortChunkHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AbortChunkHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postAbortChunk",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/assignAgent": {
+ "post": {
+ "description": "This endpoint is responsible for assigning a task to a specific agent.
@throws HTException
@throws HttpError
",
+ "requestBody": {
+ "description": "The agentId is the Id of the agent that has to be assigned to the task.
The taskId is the Id of the task that will be assigned to the agent. If this is set to 0,
the agent will be unassigned from its current assigned task.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssignAgentHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/AssignAgentHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postAssignAgent",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/bulkSupertaskBuilder": {
+ "post": {
+ "description": "Endpoint to import cracked hashes into a hashlist.
@throws HTException
",
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/BulkSupertaskBuilderHelperAPI" } }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskSingleResponse" } } }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postBulkSupertaskBuilder",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/changeOwnPassword": {
+ "post": {
+ "description": "Endpoint to set a password of an user.
@throws HTException
",
+ "requestBody": {
+ "description": "oldPassword is the current password of the user.
newPassword is the new password that you want to set.
confirmPassword is the new password again to confirm it.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChangeOwnPasswordHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ChangeOwnPasswordHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postChangeOwnPassword",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/createSuperHashlist": {
+ "post": {
+ "description": "Endpoint to create a super hashlist from multiple hashlists
@throws HTException
",
+ "requestBody": {
+ "description": "HashlistIds is an array of hashlist ids of the hashlists that have to be combined into a superHashlist.
Name is the name of the newly created superHashlist.
",
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/CreateSuperHashlistHelperAPI" } }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashlistSingleResponse" } } }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postCreateSuperHashlist",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/createSupertask": {
+ "post": {
+ "description": "Endpoint to create a supertask from a supertask template
@throws HTException
",
+ "requestBody": {
+ "description": "supertaskTemplateId is the the Id of the supertasktemplate of which you want to create a supertask of.
hashlistId is the Id of the hashlist that has to be used for the supertask.
crackerVersionId is the Id of the crackerversion that is used for the created supertask.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSupertaskHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/TaskWrapperSingleResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postCreateSupertask",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/currentUser": {
+ "get": {
+ "description": "@throws NotFoundExceptionInterface
@throws ContainerExceptionInterface
@throws HTException
@throws JsonException
",
+ "parameters": [],
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "List Helpers",
+ "operationId": "getCurrentUser",
+ "security": [{ "bearerAuth": [] }]
+ },
+ "patch": {
+ "description": "@throws HTException
",
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "Update Helpers",
+ "operationId": "patchCurrentUser",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/exportCrackedHashes": {
+ "post": {
+ "description": "Endpoint to export cracked hashes.
@throws HTException
",
+ "requestBody": {
+ "description": "hashlistId is the Id of the hashlist where you want to export the hashes of.
",
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ExportCrackedHashesHelperAPI" } }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileSingleResponse" } } }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postExportCrackedHashes",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/exportLeftHashes": {
+ "post": {
+ "description": "Endpoint to export uncracked hashes of a hashlist.
@throws HTException
",
+ "requestBody": {
+ "description": "hashlistId is the id of the hashlist where you want to export the uncracked hashes of.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportLeftHashesHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileSingleResponse" } } }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postExportLeftHashes",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/exportWordlist": {
+ "post": {
+ "description": "Endpoint to export a wordlist of the cracked hashes inside a hashlist.
@throws HTException
",
+ "requestBody": {
+ "description": "hashlistId is the Id of the hashlist where you want to export the wordlist of.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportWordlistHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileSingleResponse" } } }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postExportWordlist",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/getAccessGroups": {
+ "get": {
+ "description": "@throws NotFoundExceptionInterface
@throws ContainerExceptionInterface
@throws HTException
@throws JsonException
",
+ "parameters": [],
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "List Helpers",
+ "operationId": "getGetAccessGroups",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/getAgentBinary": {
+ "get": {
+ "description": "Endpoint to download files
@param Request $request
@param Response $response
@return Response
@throws HTException
@throws HttpErrorException
",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "agent",
+ "schema": { "type": "integer", "format": "int32" },
+ "required": true,
+ "example": 1,
+ "description": "The ID of the agent zip to download."
+ }
+ ],
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "List Helpers",
+ "operationId": "getGetAgentBinary",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/getBestTasksAgent": {
+ "get": {
+ "description": "Endpoint to get the tasks a agent can work on
@param Request $request
@param Response $response
@return Response
@throws HttpErrorException
",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "agent",
+ "schema": { "type": "integer", "format": "int32" },
+ "required": true,
+ "example": 1,
+ "description": "The ID of the agent."
+ }
+ ],
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "List Helpers",
+ "operationId": "getGetBestTasksAgent",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/getCracksOfTask": {
+ "get": {
+ "description": "Endpoint to get the cracked hashes of a certain task
@param Request $request
@param Response $response
@return Response
@throws HttpError
@throws HTException
@throws JsonException
@throws ContainerExceptionInterface
@throws NotFoundExceptionInterface
",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "task",
+ "schema": { "type": "integer", "format": "int32" },
+ "required": true,
+ "example": 1,
+ "description": "The ID of the task."
+ }
+ ],
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "List Helpers",
+ "operationId": "getGetCracksOfTask",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/getFile": {
+ "get": {
+ "description": "Endpoint to download files
@param Request $request
@param Response $response
@return Response
@throws HTException
@throws HttpErrorException
",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "file",
+ "schema": { "type": "integer", "format": "int32" },
+ "required": true,
+ "example": 1,
+ "description": "The ID of the file to download."
+ }
+ ],
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "List Helpers",
+ "operationId": "getGetFile",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/getTaskProgressImage": {
+ "get": {
+ "description": "Endpoint to download files
@param Request $request
@param Response $response
@return Response
@throws HTException
@throws HttpError
@throws HttpForbidden
",
+ "parameters": [
+ {
+ "in": "query",
+ "name": "supertask",
+ "schema": { "type": "integer", "format": "int32" },
+ "required": false,
+ "example": 1,
+ "description": "The ID of the supertask where you want to create the progress image of."
+ },
+ {
+ "in": "query",
+ "name": "task",
+ "schema": { "type": "integer", "format": "int32" },
+ "required": false,
+ "example": 1,
+ "description": "The ID of the task where you want to create the progress image of."
+ }
+ ],
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "List Helpers",
+ "operationId": "getGetTaskProgressImage",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/getUserPermission": {
+ "get": {
+ "description": "@throws NotFoundExceptionInterface
@throws ContainerExceptionInterface
@throws HTException
@throws JsonException
",
+ "parameters": [],
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "List Helpers",
+ "operationId": "getGetUserPermission",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/importCrackedHashes": {
+ "post": {
+ "description": "Endpoint to import cracked hashes into a hashlist.
@throws HTException
@throws HttpError
",
+ "requestBody": {
+ "description": "HashlistId is the Id of the hashlist where you want to import the cracked hashes into.
SourceData is the cracked hashes you want to import.
Seperator is the seperator that has been used for the salt in the hashes.
",
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ImportCrackedHashesHelperAPI" } }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ImportCrackedHashesHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postImportCrackedHashes",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/importFile": {
+ "post": {
+ "description": "Create Helpers",
+ "requestBody": {
+ "description": "Import file has no POST parameters
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportFileHelperAPI" } } }
+ },
+ "responses": {
+ "200": { "description": "successful operation" },
+ "201": {
+ "description": "successful operation",
+ "headers": {
+ "Tus-Resumable": {
+ "description": "Indicates the TUS version the server supports.\n Must always be set to `1.0.0` in compliant servers.",
+ "schema": { "type": "string", "enum": ["1.0.0"] }
+ },
+ "Location": {
+ "description": "Location of the file where the user can push to.",
+ "schema": { "type": "string" }
+ }
+ },
+ "content": { "application/pdf": { "schema": { "type": "string", "format": "binary" } } }
+ }
+ },
+ "parameters": [
+ {
+ "name": "Upload-Metadata",
+ "in": "header",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "pattern": "^([a-zA-Z0-9]+ [A-Za-z0-9+/=]+)(,[a-zA-Z0-9]+ [A-Za-z0-9+/=]+)*$"
+ },
+ "example": "filename ZXhhbXBsZS50eHQ=",
+ "description": " The Upload-Metadata header contains one or more comma-separated key-value pairs.\n Each pair is formatted as ` `, where:\n - `key` is a string without spaces.\n - `value` is base64-encoded"
+ },
+ {
+ "name": "Upload-Length",
+ "in": "header",
+ "schema": { "type": "integer", "minimum": 1 },
+ "example": 10000,
+ "description": "The total size of the upload in bytes. Must be a positive integer.\n Required if `Upload-Defer-Length` is not set."
+ },
+ {
+ "name": "Upload-Defer-Length",
+ "in": "header",
+ "schema": { "type": "integer" },
+ "example": 1,
+ "description": "Indicates that the upload length is not known at creation time.\n Value must be `1`. If present, `Upload-Length` must be omitted."
+ }
+ ],
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postImportFile",
+ "security": [{ "bearerAuth": [] }]
+ },
+ "get": {
+ "description": "List Helpers",
+ "parameters": [],
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "summary": "List Helpers",
+ "operationId": "getImportFile",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/importFile/{id}-[0-9a-f]{32}}": {
+ "head": {
+ "description": "A HEAD request is used in the TUS protocol to determine the offset at which the upload should be continued.
And to retrieve the upload status.
",
+ "responses": {
+ "200": {
+ "description": "successful request",
+ "headers": {
+ "Tus-Resumable": {
+ "description": "Indicates the TUS version the server supports.\n Must always be set to `1.0.0` in compliant servers.",
+ "schema": { "type": "string", "enum": ["1.0.0"] }
+ },
+ "Upload-Offset": { "description": "Number of bytes already received", "schema": { "type": "integer" } },
+ "Upload-Length": { "description": "Total upload length (if known)", "schema": { "type": "integer" } },
+ "Upload-Defer-Length": {
+ "description": "Indicates deferred upload length (if applicable)",
+ "schema": { "type": "string" }
+ },
+ "Upload-Metadata": {
+ "description": "Original metadata sent during creation",
+ "schema": { "type": "string" }
+ }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "32", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Head Helpers",
+ "operationId": "headImportFileById}-[0-9a-f]{32",
+ "security": [{ "bearerAuth": [] }]
+ },
+ "patch": {
+ "description": "Given the offset in the 'Upload Offset' header, the user can use this PATCH endpoint in order to resume the upload.
@throws HttpError
",
+ "responses": {
+ "200": { "description": "successful operation" },
+ "204": {
+ "description": "Chunk accepted",
+ "headers": {
+ "Tus-Resumable": {
+ "description": "Indicates the TUS version the server supports.\n Must always be set to `1.0.0` in compliant servers.",
+ "schema": { "type": "string", "enum": ["1.0.0"] }
+ },
+ "Upload-Offset": {
+ "description": "The new offset after the chunk is accepted. Indicates how many bytes were received so far.",
+ "schema": { "type": "integer" }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "Upload-Offset",
+ "in": "header",
+ "required": true,
+ "schema": { "type": "integer" },
+ "example": "512",
+ "description": " The Upload-Offset header's value MUST be equal to the current offset of the resource"
+ },
+ {
+ "name": "Content-Type",
+ "in": "header",
+ "required": true,
+ "schema": { "type": "string", "enum": ["application/offset+octet-stream"] }
+ },
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "32", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "requestBody": {
+ "required": true,
+ "description": "The binary data to push to the file",
+ "content": { "application/offset+octet-stream": { "schema": { "type": "string", "format": "binary" } } }
+ },
+ "tags": ["Helpers"],
+ "summary": "Update Helpers",
+ "operationId": "patchImportFileById}-[0-9a-f]{32",
+ "security": [{ "bearerAuth": [] }]
+ },
+ "delete": {
+ "description": "Delete Helpers",
+ "responses": { "200": { "description": "successful operation" } },
+ "tags": ["Helpers"],
+ "parameters": [
+ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } },
+ { "name": "32", "in": "path", "required": true, "schema": { "type": "string" } }
+ ],
+ "summary": "Delete Helpers",
+ "operationId": "deleteImportFileById}-[0-9a-f]{32",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/maskSupertaskBuilder": {
+ "post": {
+ "description": "Endpoint to import cracked hashes into a hashlist.
@throws HTException
",
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/MaskSupertaskBuilderHelperAPI" } }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupertaskSingleResponse" } } }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postMaskSupertaskBuilder",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/purgeTask": {
+ "post": {
+ "description": "Endpoint to purge a task. Meaning all chunks of a task will be deleted and keyspace and progress will be set to 0.
@throws HTException
",
+ "requestBody": {
+ "description": "taskId is the id of the task that should be purged.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PurgeTaskHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/PurgeTaskHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postPurgeTask",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/rebuildChunkCache": {
+ "post": {
+ "description": "Endpoint to recount files for when there is size mismatch
@param $data
@return object|array|null
",
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RebuildChunkCacheHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/RebuildChunkCacheHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postRebuildChunkCache",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/recountFileLines": {
+ "post": {
+ "description": "Endpoint to recount files for when there is size mismatch
@param $data
@return object|array|null
@throws HTException
@throws ContainerExceptionInterface
@throws NotFoundExceptionInterface
",
+ "requestBody": {
+ "description": "FileId is the id of the file that needs to be recounted.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecountFileLinesHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileSingleResponse" } } }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postRecountFileLines",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/rescanGlobalFiles": {
+ "post": {
+ "description": "Endpoint to recount files for when there is size mismatch
@param $data
@return object|array|null
@throws HTMessages
",
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RescanGlobalFilesHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/RescanGlobalFilesHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postRescanGlobalFiles",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/resetChunk": {
+ "post": {
+ "description": "Endpoint to reset a chunk.
@throws HTException
",
+ "requestBody": {
+ "description": "chunkId is the id of the chunk which you want to reset.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetChunkHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ResetChunkHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postResetChunk",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/resetUserPassword": {
+ "post": {
+ "description": "@throws HTException
",
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetUserPasswordHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/ResetUserPasswordHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postResetUserPassword",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/searchHashes": {
+ "post": {
+ "description": "Endpoint to search for hashes in accessible hashlists.
@param $data
@return object|array|null
@throws ContainerExceptionInterface
@throws NotFoundExceptionInterface
@throws HttpError
",
+ "requestBody": {
+ "description": "",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchHashesHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/SearchHashesHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postSearchHashes",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/setUserPassword": {
+ "post": {
+ "description": "Endpoint to set a password of an user.
@throws HTException
",
+ "requestBody": {
+ "description": "userId is the id of the user of which you want to change the password.
password is the new password that you want to set.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetUserPasswordHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/SetUserPasswordHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postSetUserPassword",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/helper/unassignAgent": {
+ "post": {
+ "description": "Endpoint to unassign an agent.
@throws HTException
@throws HttpError
",
+ "requestBody": {
+ "description": "agentId is the id of the agent which you want to unassign.
",
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnassignAgentHelperAPI" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "successful operation",
+ "content": {
+ "application/json": { "schema": { "$ref": "#/components/schemas/UnassignAgentHelperAPIResponse" } }
+ }
+ }
+ },
+ "tags": ["Helpers"],
+ "summary": "Create Helpers",
+ "operationId": "postUnassignAgent",
+ "security": [{ "bearerAuth": [] }]
+ }
+ },
+ "/api/v2/auth/token": {
+ "post": {
+ "tags": ["Login"],
+ "requestBody": {
+ "required": true,
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenRequest" } } }
+ },
+ "responses": {
+ "200": {
+ "description": "Success",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Token" } } }
+ },
+ "401": {
+ "description": "Authentication failed",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotFoundResponse" } } }
+ }
+ },
+ "security": [{ "basicAuth": [] }],
+ "summary": "Create Login",
+ "operationId": "postToken",
+ "description": "Create Login"
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "ErrorResponse": {
+ "type": "object",
+ "required": ["status"],
+ "properties": {
+ "title": { "type": "string", "example": "about=>blank" },
+ "type": { "type": "string", "example": "Error details here" },
+ "status": { "type": "integer", "example": 400 }
+ }
+ },
+ "NotFoundResponse": {
+ "type": "object",
+ "required": ["message"],
+ "properties": {
+ "message": { "type": "string", "example": "404 Not Found" },
+ "exception": {
+ "type": "object",
+ "properties": {
+ "type": { "type": "string", "example": "Slim\\Exception\\HttpNotFoundException" },
+ "code": { "type": "integer", "example": 404 },
+ "message": { "type": "string", "example": "Not Found" },
+ "file": {
+ "type": "string",
+ "example": "../hashtopolis/server/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php"
+ },
+ "line": { "type": "integer", "example": 91 }
+ }
+ }
+ }
+ },
+ "AccessGroupCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "properties": { "groupName": { "type": "string" } },
+ "required": ["groupName"]
+ }
+ }
+ }
+ }
+ },
+ "AccessGroupPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": { "type": "object", "properties": { "groupName": { "type": "string" } } }
+ }
+ }
+ }
+ },
+ "AccessGroupResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/accessgroups?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/accessgroups?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/accessgroups?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/accessgroups?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/accessgroups?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agentMembers", "userMembers"],
+ "properties": {
+ "agentMembers": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/accessgroups/relationships/agentMembers" },
+ "related": { "type": "string", "default": "/api/v2/ui/accessgroups/agentMembers" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "userMembers": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/accessgroups/relationships/userMembers" },
+ "related": { "type": "string", "default": "/api/v2/ui/accessgroups/userMembers" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "AccessGroupPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ }
+ }
+ },
+ "AccessGroupListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/accessgroups?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/accessgroups?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/accessgroups?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/accessgroups?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/accessgroups?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agentMembers", "userMembers"],
+ "properties": {
+ "agentMembers": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/accessgroups/relationships/agentMembers" },
+ "related": { "type": "string", "default": "/api/v2/ui/accessgroups/agentMembers" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "userMembers": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/accessgroups/relationships/userMembers" },
+ "related": { "type": "string", "default": "/api/v2/ui/accessgroups/userMembers" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "AccessGroupRelationAgentMembers": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "agentMembers" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "AccessGroupRelationAgentMembersGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "agentMembers" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "AgentPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "agentName": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "cpuOnly": { "type": "boolean" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "uid": { "type": "string" },
+ "userId": { "type": ["integer", "null"] }
+ }
+ }
+ }
+ }
+ }
+ },
+ "AgentResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agents?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agents?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/agents?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/agents?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroups", "agentErrors", "agentStats", "assignments", "chunks", "tasks", "user"],
+ "properties": {
+ "accessGroups": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/accessGroups" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/accessGroups" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "agentErrors": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/agentErrors" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/agentErrors" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agentError" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "agentStats": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/agentStats" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/agentStats" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agentStat" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "assignments": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/assignments" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/assignments" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "agentAssignment" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "chunks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/chunks" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/chunks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "chunk" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "user": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/user" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/user" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentStat" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "statType", "time", "value"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "statType": {
+ "oneOf": [
+ { "const": 1, "title": "GPU temperature", "type": "integer" },
+ { "const": 2, "title": "GPU utilization", "type": "integer" },
+ { "const": 3, "title": "CPU utilization", "type": "integer" }
+ ]
+ },
+ "time": { "type": "integer", "format": "int64" },
+ "value": { "type": "array", "items": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentError" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "taskId", "chunkId", "time", "error"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "taskId": { "type": "integer" },
+ "chunkId": { "type": "integer" },
+ "time": { "type": "integer", "format": "int64" },
+ "error": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "chunk" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskId",
+ "skip",
+ "length",
+ "agentId",
+ "dispatchTime",
+ "solveTime",
+ "checkpoint",
+ "progress",
+ "state",
+ "cracked",
+ "speed"
+ ],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "skip": { "type": "integer" },
+ "length": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "dispatchTime": { "type": "integer", "format": "int64" },
+ "solveTime": { "type": "integer", "format": "int64" },
+ "checkpoint": { "type": "integer", "format": "int64" },
+ "progress": { "type": "integer" },
+ "state": {
+ "oneOf": [
+ { "const": 0, "title": "Init", "type": "integer" },
+ { "const": 1, "title": "Autotune", "type": "integer" },
+ { "const": 2, "title": "Running", "type": "integer" },
+ { "const": 3, "title": "Paused", "type": "integer" },
+ { "const": 4, "title": "Exhausted", "type": "integer" },
+ { "const": 5, "title": "Cracked", "type": "integer" },
+ { "const": 6, "title": "Aborted", "type": "integer" },
+ { "const": 7, "title": "Quit", "type": "integer" },
+ { "const": 8, "title": "Bypass", "type": "integer" },
+ { "const": 9, "title": "Aborted at checkpoint", "type": "integer" },
+ { "const": 10, "title": "Aborted at runtime", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentAssignment" },
+ "attributes": {
+ "type": "object",
+ "required": ["taskId", "agentId", "benchmark"],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "benchmark": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "AgentPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "AgentListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agents?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agents?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/agents?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/agents?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroups", "agentErrors", "agentStats", "assignments", "chunks", "tasks", "user"],
+ "properties": {
+ "accessGroups": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/accessGroups" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/accessGroups" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "agentErrors": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/agentErrors" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/agentErrors" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agentError" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "agentStats": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/agentStats" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/agentStats" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agentStat" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "assignments": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/assignments" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/assignments" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "agentAssignment" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "chunks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/chunks" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/chunks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "chunk" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "user": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agents/relationships/user" },
+ "related": { "type": "string", "default": "/api/v2/ui/agents/user" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentStat" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "statType", "time", "value"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "statType": {
+ "oneOf": [
+ { "const": 1, "title": "GPU temperature", "type": "integer" },
+ { "const": 2, "title": "GPU utilization", "type": "integer" },
+ { "const": 3, "title": "CPU utilization", "type": "integer" }
+ ]
+ },
+ "time": { "type": "integer", "format": "int64" },
+ "value": { "type": "array", "items": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentError" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "taskId", "chunkId", "time", "error"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "taskId": { "type": "integer" },
+ "chunkId": { "type": "integer" },
+ "time": { "type": "integer", "format": "int64" },
+ "error": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "chunk" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskId",
+ "skip",
+ "length",
+ "agentId",
+ "dispatchTime",
+ "solveTime",
+ "checkpoint",
+ "progress",
+ "state",
+ "cracked",
+ "speed"
+ ],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "skip": { "type": "integer" },
+ "length": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "dispatchTime": { "type": "integer", "format": "int64" },
+ "solveTime": { "type": "integer", "format": "int64" },
+ "checkpoint": { "type": "integer", "format": "int64" },
+ "progress": { "type": "integer" },
+ "state": {
+ "oneOf": [
+ { "const": 0, "title": "Init", "type": "integer" },
+ { "const": 1, "title": "Autotune", "type": "integer" },
+ { "const": 2, "title": "Running", "type": "integer" },
+ { "const": 3, "title": "Paused", "type": "integer" },
+ { "const": 4, "title": "Exhausted", "type": "integer" },
+ { "const": 5, "title": "Cracked", "type": "integer" },
+ { "const": 6, "title": "Aborted", "type": "integer" },
+ { "const": 7, "title": "Quit", "type": "integer" },
+ { "const": 8, "title": "Bypass", "type": "integer" },
+ { "const": 9, "title": "Aborted at checkpoint", "type": "integer" },
+ { "const": 10, "title": "Aborted at runtime", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentAssignment" },
+ "attributes": {
+ "type": "object",
+ "required": ["taskId", "agentId", "benchmark"],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "benchmark": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "AgentRelationAssignments": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "assignments" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "AgentRelationAssignmentsGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "assignments" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "AgentAssignmentCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "agentAssignment" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "taskId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "benchmark": { "type": "string" }
+ },
+ "required": ["taskId", "agentId", "benchmark"]
+ }
+ }
+ }
+ }
+ },
+ "AgentAssignmentPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "agentAssignment" },
+ "attributes": { "type": "object", "properties": { "benchmark": { "type": "string" } } }
+ }
+ }
+ }
+ },
+ "AgentAssignmentResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentassignments?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agentassignments?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agentassignments?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentassignments?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentassignments?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentAssignment" },
+ "attributes": {
+ "type": "object",
+ "required": ["taskId", "agentId", "benchmark"],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "benchmark": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agent", "task"],
+ "properties": {
+ "agent": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentassignments/relationships/agent" },
+ "related": { "type": "string", "default": "/api/v2/ui/agentassignments/agent" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentassignments/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/agentassignments/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "AgentAssignmentPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentAssignment" },
+ "attributes": {
+ "type": "object",
+ "required": ["taskId", "agentId", "benchmark"],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "benchmark": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "AgentAssignmentListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentassignments?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agentassignments?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agentassignments?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentassignments?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentassignments?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentAssignment" },
+ "attributes": {
+ "type": "object",
+ "required": ["taskId", "agentId", "benchmark"],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "benchmark": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agent", "task"],
+ "properties": {
+ "agent": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentassignments/relationships/agent" },
+ "related": { "type": "string", "default": "/api/v2/ui/agentassignments/agent" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentassignments/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/agentassignments/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "AgentAssignmentRelationTask": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "AgentAssignmentRelationTaskGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "AgentBinaryCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "agentBinary" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "binaryType": { "type": "string" },
+ "version": { "type": "string" },
+ "operatingSystems": { "type": "string" },
+ "filename": { "type": "string" },
+ "updateTrack": { "type": "string" }
+ },
+ "required": ["binaryType", "version", "operatingSystems", "filename", "updateTrack"]
+ }
+ }
+ }
+ }
+ },
+ "AgentBinaryPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "agentBinary" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "binaryType": { "type": "string" },
+ "filename": { "type": "string" },
+ "operatingSystems": { "type": "string" },
+ "updateTrack": { "type": "string" },
+ "version": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "AgentBinaryResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentbinaries?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agentbinaries?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agentbinaries?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentbinaries?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentbinaries?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["binaryType", "version", "operatingSystems", "filename", "updateTrack", "updateAvailable"],
+ "properties": {
+ "binaryType": { "type": "string" },
+ "version": { "type": "string" },
+ "operatingSystems": { "type": "string" },
+ "filename": { "type": "string" },
+ "updateTrack": { "type": "string" },
+ "updateAvailable": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "AgentBinaryPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["binaryType", "version", "operatingSystems", "filename", "updateTrack", "updateAvailable"],
+ "properties": {
+ "binaryType": { "type": "string" },
+ "version": { "type": "string" },
+ "operatingSystems": { "type": "string" },
+ "filename": { "type": "string" },
+ "updateTrack": { "type": "string" },
+ "updateAvailable": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "AgentBinaryListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentbinaries?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agentbinaries?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agentbinaries?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentbinaries?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentbinaries?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentBinary" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "binaryType",
+ "version",
+ "operatingSystems",
+ "filename",
+ "updateTrack",
+ "updateAvailable"
+ ],
+ "properties": {
+ "binaryType": { "type": "string" },
+ "version": { "type": "string" },
+ "operatingSystems": { "type": "string" },
+ "filename": { "type": "string" },
+ "updateTrack": { "type": "string" },
+ "updateAvailable": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "AgentErrorResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agenterrors?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agenterrors?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agenterrors?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/agenterrors?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agenterrors?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentError" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "taskId", "chunkId", "time", "error"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "taskId": { "type": "integer" },
+ "chunkId": { "type": "integer" },
+ "time": { "type": "integer", "format": "int64" },
+ "error": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["task"],
+ "properties": {
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agenterrors/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/agenterrors/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "AgentErrorListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agenterrors?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agenterrors?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agenterrors?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/agenterrors?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agenterrors?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentError" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "taskId", "chunkId", "time", "error"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "taskId": { "type": "integer" },
+ "chunkId": { "type": "integer" },
+ "time": { "type": "integer", "format": "int64" },
+ "error": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["task"],
+ "properties": {
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agenterrors/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/agenterrors/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "AgentErrorRelationTask": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "AgentErrorRelationTaskGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "AgentStatResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentstats?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agentstats?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agentstats?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/agentstats?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentstats?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentStat" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "statType", "time", "value"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "statType": {
+ "oneOf": [
+ { "const": 1, "title": "GPU temperature", "type": "integer" },
+ { "const": 2, "title": "GPU utilization", "type": "integer" },
+ { "const": 3, "title": "CPU utilization", "type": "integer" }
+ ]
+ },
+ "time": { "type": "integer", "format": "int64" },
+ "value": { "type": "array", "items": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "AgentStatListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/agentstats?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/agentstats?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/agentstats?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/agentstats?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/agentstats?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agentStat" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "statType", "time", "value"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "statType": {
+ "oneOf": [
+ { "const": 1, "title": "GPU temperature", "type": "integer" },
+ { "const": 2, "title": "GPU utilization", "type": "integer" },
+ { "const": 3, "title": "CPU utilization", "type": "integer" }
+ ]
+ },
+ "time": { "type": "integer", "format": "int64" },
+ "value": { "type": "array", "items": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "ApiTokenCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "apiToken" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "scopes": { "type": "array", "items": { "type": "integer" } },
+ "startValid": { "type": "integer", "format": "int64" },
+ "endValid": { "type": "integer", "format": "int64" },
+ "userId": { "type": "integer" },
+ "isRevoked": { "type": "boolean" }
+ },
+ "required": ["scopes", "startValid", "endValid", "userId", "isRevoked"]
+ }
+ }
+ }
+ }
+ },
+ "ApiTokenPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "apiToken" },
+ "attributes": { "type": "object", "properties": { "isRevoked": { "type": "boolean" } } }
+ }
+ }
+ }
+ },
+ "ApiTokenResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/apiTokens?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/apiTokens?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/apiTokens?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/apiTokens?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/apiTokens?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "apiToken" },
+ "attributes": {
+ "type": "object",
+ "required": ["startValid", "endValid", "userId", "isRevoked", "token"],
+ "properties": {
+ "startValid": { "type": "integer", "format": "int64" },
+ "endValid": { "type": "integer", "format": "int64" },
+ "userId": { "type": "integer" },
+ "isRevoked": { "type": "boolean" },
+ "token": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["user"],
+ "properties": {
+ "user": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/apiTokens/relationships/user" },
+ "related": { "type": "string", "default": "/api/v2/ui/apiTokens/user" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "ApiTokenPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "apiToken" },
+ "attributes": {
+ "type": "object",
+ "required": ["startValid", "endValid", "userId", "isRevoked", "token"],
+ "properties": {
+ "startValid": { "type": "integer", "format": "int64" },
+ "endValid": { "type": "integer", "format": "int64" },
+ "userId": { "type": "integer" },
+ "isRevoked": { "type": "boolean" },
+ "token": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "ApiTokenListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/apiTokens?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/apiTokens?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/apiTokens?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/apiTokens?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/apiTokens?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "apiToken" },
+ "attributes": {
+ "type": "object",
+ "required": ["startValid", "endValid", "userId", "isRevoked", "token"],
+ "properties": {
+ "startValid": { "type": "integer", "format": "int64" },
+ "endValid": { "type": "integer", "format": "int64" },
+ "userId": { "type": "integer" },
+ "isRevoked": { "type": "boolean" },
+ "token": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["user"],
+ "properties": {
+ "user": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/apiTokens/relationships/user" },
+ "related": { "type": "string", "default": "/api/v2/ui/apiTokens/user" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "ApiTokenRelationUser": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "ApiTokenRelationUserGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "ChunkResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/chunks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/chunks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/chunks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/chunks?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/chunks?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "chunk" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskId",
+ "skip",
+ "length",
+ "agentId",
+ "dispatchTime",
+ "solveTime",
+ "checkpoint",
+ "progress",
+ "state",
+ "cracked",
+ "speed"
+ ],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "skip": { "type": "integer" },
+ "length": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "dispatchTime": { "type": "integer", "format": "int64" },
+ "solveTime": { "type": "integer", "format": "int64" },
+ "checkpoint": { "type": "integer", "format": "int64" },
+ "progress": { "type": "integer" },
+ "state": {
+ "oneOf": [
+ { "const": 0, "title": "Init", "type": "integer" },
+ { "const": 1, "title": "Autotune", "type": "integer" },
+ { "const": 2, "title": "Running", "type": "integer" },
+ { "const": 3, "title": "Paused", "type": "integer" },
+ { "const": 4, "title": "Exhausted", "type": "integer" },
+ { "const": 5, "title": "Cracked", "type": "integer" },
+ { "const": 6, "title": "Aborted", "type": "integer" },
+ { "const": 7, "title": "Quit", "type": "integer" },
+ { "const": 8, "title": "Bypass", "type": "integer" },
+ { "const": 9, "title": "Aborted at checkpoint", "type": "integer" },
+ { "const": 10, "title": "Aborted at runtime", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agent", "task"],
+ "properties": {
+ "agent": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/chunks/relationships/agent" },
+ "related": { "type": "string", "default": "/api/v2/ui/chunks/agent" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/chunks/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/chunks/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "ChunkListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/chunks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/chunks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/chunks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/chunks?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/chunks?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "chunk" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskId",
+ "skip",
+ "length",
+ "agentId",
+ "dispatchTime",
+ "solveTime",
+ "checkpoint",
+ "progress",
+ "state",
+ "cracked",
+ "speed"
+ ],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "skip": { "type": "integer" },
+ "length": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "dispatchTime": { "type": "integer", "format": "int64" },
+ "solveTime": { "type": "integer", "format": "int64" },
+ "checkpoint": { "type": "integer", "format": "int64" },
+ "progress": { "type": "integer" },
+ "state": {
+ "oneOf": [
+ { "const": 0, "title": "Init", "type": "integer" },
+ { "const": 1, "title": "Autotune", "type": "integer" },
+ { "const": 2, "title": "Running", "type": "integer" },
+ { "const": 3, "title": "Paused", "type": "integer" },
+ { "const": 4, "title": "Exhausted", "type": "integer" },
+ { "const": 5, "title": "Cracked", "type": "integer" },
+ { "const": 6, "title": "Aborted", "type": "integer" },
+ { "const": 7, "title": "Quit", "type": "integer" },
+ { "const": 8, "title": "Bypass", "type": "integer" },
+ { "const": 9, "title": "Aborted at checkpoint", "type": "integer" },
+ { "const": 10, "title": "Aborted at runtime", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agent", "task"],
+ "properties": {
+ "agent": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/chunks/relationships/agent" },
+ "related": { "type": "string", "default": "/api/v2/ui/chunks/agent" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/chunks/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/chunks/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "ChunkRelationTask": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "ChunkRelationTaskGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "ConfigPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "config" },
+ "attributes": {
+ "type": "object",
+ "properties": { "item": { "type": "string" }, "value": { "type": "string" } }
+ }
+ }
+ }
+ }
+ },
+ "ConfigResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/configs?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/configs?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/configs?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/configs?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/configs?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "config" },
+ "attributes": {
+ "type": "object",
+ "required": ["configSectionId", "item", "value"],
+ "properties": {
+ "configSectionId": { "type": "integer" },
+ "item": { "type": "string" },
+ "value": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["configSection"],
+ "properties": {
+ "configSection": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/configs/relationships/configSection" },
+ "related": { "type": "string", "default": "/api/v2/ui/configs/configSection" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "configSection" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "configSection" },
+ "attributes": {
+ "type": "object",
+ "required": ["sectionName"],
+ "properties": { "sectionName": { "type": "string" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "ConfigPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "config" },
+ "attributes": {
+ "type": "object",
+ "required": ["configSectionId", "item", "value"],
+ "properties": {
+ "configSectionId": { "type": "integer" },
+ "item": { "type": "string" },
+ "value": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "ConfigListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/configs?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/configs?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/configs?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/configs?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/configs?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "config" },
+ "attributes": {
+ "type": "object",
+ "required": ["configSectionId", "item", "value"],
+ "properties": {
+ "configSectionId": { "type": "integer" },
+ "item": { "type": "string" },
+ "value": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["configSection"],
+ "properties": {
+ "configSection": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/configs/relationships/configSection" },
+ "related": { "type": "string", "default": "/api/v2/ui/configs/configSection" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "configSection" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "configSection" },
+ "attributes": {
+ "type": "object",
+ "required": ["sectionName"],
+ "properties": { "sectionName": { "type": "string" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "ConfigRelationConfigSection": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "configSection" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ },
+ "ConfigRelationConfigSectionGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "configSection" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ },
+ "ConfigSectionResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/configsections?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/configsections?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/configsections?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/configsections?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/configsections?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "configSection" },
+ "attributes": {
+ "type": "object",
+ "required": ["sectionName"],
+ "properties": { "sectionName": { "type": "string" } }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "ConfigSectionListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/configsections?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/configsections?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/configsections?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/configsections?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/configsections?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "configSection" },
+ "attributes": {
+ "type": "object",
+ "required": ["sectionName"],
+ "properties": { "sectionName": { "type": "string" } }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "CrackerBinaryCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ },
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"]
+ }
+ }
+ }
+ }
+ },
+ "CrackerBinaryPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "binaryName": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "version": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "CrackerBinaryResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackers?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/crackers?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/crackers?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/crackers?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/crackers?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"],
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["crackerBinaryType", "tasks"],
+ "properties": {
+ "crackerBinaryType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackers/relationships/crackerBinaryType" },
+ "related": { "type": "string", "default": "/api/v2/ui/crackers/crackerBinaryType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackers/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/crackers/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "attributes": {
+ "type": "object",
+ "required": ["typeName", "isChunkingAvailable"],
+ "properties": { "typeName": { "type": "string" }, "isChunkingAvailable": { "type": "boolean" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "CrackerBinaryPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"],
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "CrackerBinaryListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackers?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/crackers?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/crackers?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/crackers?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/crackers?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"],
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["crackerBinaryType", "tasks"],
+ "properties": {
+ "crackerBinaryType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackers/relationships/crackerBinaryType" },
+ "related": { "type": "string", "default": "/api/v2/ui/crackers/crackerBinaryType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackers/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/crackers/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "attributes": {
+ "type": "object",
+ "required": ["typeName", "isChunkingAvailable"],
+ "properties": { "typeName": { "type": "string" }, "isChunkingAvailable": { "type": "boolean" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "CrackerBinaryRelationTasks": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "tasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "CrackerBinaryRelationTasksGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "tasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "CrackerBinaryTypeCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "attributes": {
+ "type": "object",
+ "properties": { "typeName": { "type": "string" } },
+ "required": ["typeName"]
+ }
+ }
+ }
+ }
+ },
+ "CrackerBinaryTypePatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "attributes": {
+ "type": "object",
+ "properties": { "isChunkingAvailable": { "type": "boolean" }, "typeName": { "type": "string" } }
+ }
+ }
+ }
+ }
+ },
+ "CrackerBinaryTypeResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackertypes?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/crackertypes?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/crackertypes?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/crackertypes?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/crackertypes?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "attributes": {
+ "type": "object",
+ "required": ["typeName", "isChunkingAvailable"],
+ "properties": { "typeName": { "type": "string" }, "isChunkingAvailable": { "type": "boolean" } }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["crackerVersions", "tasks"],
+ "properties": {
+ "crackerVersions": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackertypes/relationships/crackerVersions" },
+ "related": { "type": "string", "default": "/api/v2/ui/crackertypes/crackerVersions" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinary" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackertypes/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/crackertypes/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"],
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "CrackerBinaryTypePostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "attributes": {
+ "type": "object",
+ "required": ["typeName", "isChunkingAvailable"],
+ "properties": { "typeName": { "type": "string" }, "isChunkingAvailable": { "type": "boolean" } }
+ }
+ }
+ }
+ }
+ },
+ "CrackerBinaryTypeListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackertypes?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/crackertypes?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/crackertypes?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/crackertypes?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/crackertypes?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "attributes": {
+ "type": "object",
+ "required": ["typeName", "isChunkingAvailable"],
+ "properties": { "typeName": { "type": "string" }, "isChunkingAvailable": { "type": "boolean" } }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["crackerVersions", "tasks"],
+ "properties": {
+ "crackerVersions": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackertypes/relationships/crackerVersions" },
+ "related": { "type": "string", "default": "/api/v2/ui/crackertypes/crackerVersions" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinary" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/crackertypes/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/crackertypes/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"],
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "CrackerBinaryTypeRelationTasks": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "tasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "CrackerBinaryTypeRelationTasksGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "tasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "FileCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "sourceType": { "type": "string" },
+ "sourceData": { "type": "string" },
+ "filename": { "type": "string" },
+ "isSecret": { "type": "boolean" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "accessGroupId": { "type": "integer" }
+ },
+ "required": ["sourceType", "sourceData", "filename", "isSecret", "fileType", "accessGroupId"]
+ }
+ }
+ }
+ }
+ },
+ "FilePatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "accessGroupId": { "type": "integer" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "filename": { "type": "string" },
+ "isSecret": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "FileResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/files?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/files?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/files?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/files?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/files?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "required": ["filename", "size", "isSecret", "fileType", "accessGroupId", "lineCount"],
+ "properties": {
+ "filename": { "type": "string" },
+ "size": { "type": "integer", "format": "int64" },
+ "isSecret": { "type": "boolean" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "accessGroupId": { "type": "integer" },
+ "lineCount": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroup"],
+ "properties": {
+ "accessGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/files/relationships/accessGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/files/accessGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "FileSingleResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "required": ["filename", "size", "isSecret", "fileType", "accessGroupId", "lineCount"],
+ "properties": {
+ "filename": { "type": "string" },
+ "size": { "type": "integer", "format": "int64" },
+ "isSecret": { "type": "boolean" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "accessGroupId": { "type": "integer" },
+ "lineCount": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroup"],
+ "properties": {
+ "accessGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/files/relationships/accessGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/files/accessGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "FilePostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "required": ["filename", "size", "isSecret", "fileType", "accessGroupId", "lineCount"],
+ "properties": {
+ "filename": { "type": "string" },
+ "size": { "type": "integer", "format": "int64" },
+ "isSecret": { "type": "boolean" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "accessGroupId": { "type": "integer" },
+ "lineCount": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "FileListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/files?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/files?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/files?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/files?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/files?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "required": ["filename", "size", "isSecret", "fileType", "accessGroupId", "lineCount"],
+ "properties": {
+ "filename": { "type": "string" },
+ "size": { "type": "integer", "format": "int64" },
+ "isSecret": { "type": "boolean" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "accessGroupId": { "type": "integer" },
+ "lineCount": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroup"],
+ "properties": {
+ "accessGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/files/relationships/accessGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/files/accessGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "FileRelationAccessGroup": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ },
+ "FileRelationAccessGroupGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ },
+ "GlobalPermissionGroupCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "globalPermissionGroup" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "name": { "type": "string" },
+ "permissions": { "type": "object", "additionalProperties": { "type": "boolean" } }
+ },
+ "required": ["name", "permissions"]
+ }
+ }
+ }
+ }
+ },
+ "GlobalPermissionGroupPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "globalPermissionGroup" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "name": { "type": "string" },
+ "permissions": { "type": "object", "additionalProperties": { "type": "boolean" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "GlobalPermissionGroupResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/globalpermissiongroups?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/globalpermissiongroups?page[size]=25&page[after]=0" },
+ "last": {
+ "type": "string",
+ "default": "/api/v2/ui/globalpermissiongroups?page[size]=25&page[before]=500"
+ },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/globalpermissiongroups?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/globalpermissiongroups?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "globalPermissionGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["name", "permissions"],
+ "properties": {
+ "name": { "type": "string" },
+ "permissions": { "type": "object", "additionalProperties": { "type": "boolean" } }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["userMembers"],
+ "properties": {
+ "userMembers": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": {
+ "type": "string",
+ "default": "/api/v2/ui/globalpermissiongroups/relationships/userMembers"
+ },
+ "related": { "type": "string", "default": "/api/v2/ui/globalpermissiongroups/userMembers" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "GlobalPermissionGroupPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "globalPermissionGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["name", "permissions"],
+ "properties": {
+ "name": { "type": "string" },
+ "permissions": { "type": "object", "additionalProperties": { "type": "boolean" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "GlobalPermissionGroupListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/globalpermissiongroups?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/globalpermissiongroups?page[size]=25&page[after]=0" },
+ "last": {
+ "type": "string",
+ "default": "/api/v2/ui/globalpermissiongroups?page[size]=25&page[before]=500"
+ },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/globalpermissiongroups?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/globalpermissiongroups?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "globalPermissionGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["name", "permissions"],
+ "properties": {
+ "name": { "type": "string" },
+ "permissions": { "type": "object", "additionalProperties": { "type": "boolean" } }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["userMembers"],
+ "properties": {
+ "userMembers": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": {
+ "type": "string",
+ "default": "/api/v2/ui/globalpermissiongroups/relationships/userMembers"
+ },
+ "related": { "type": "string", "default": "/api/v2/ui/globalpermissiongroups/userMembers" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "GlobalPermissionGroupRelationUserMembers": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "userMembers" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "GlobalPermissionGroupRelationUserMembersGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "userMembers" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "HashResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashes?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/hashes?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/hashes?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/hashes?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/hashes?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hash" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "hashlistId",
+ "hash",
+ "salt",
+ "plaintext",
+ "timeCracked",
+ "chunkId",
+ "isCracked",
+ "crackPos"
+ ],
+ "properties": {
+ "hashlistId": { "type": "integer" },
+ "hash": { "type": "string" },
+ "salt": { "type": "string" },
+ "plaintext": { "type": "string" },
+ "timeCracked": { "type": "integer", "format": "int64" },
+ "chunkId": { "type": "integer" },
+ "isCracked": { "type": "boolean" },
+ "crackPos": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["chunk", "hashlist"],
+ "properties": {
+ "chunk": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashes/relationships/chunk" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashes/chunk" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "chunk" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashlist": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashes/relationships/hashlist" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashes/hashlist" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "chunk" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskId",
+ "skip",
+ "length",
+ "agentId",
+ "dispatchTime",
+ "solveTime",
+ "checkpoint",
+ "progress",
+ "state",
+ "cracked",
+ "speed"
+ ],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "skip": { "type": "integer" },
+ "length": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "dispatchTime": { "type": "integer", "format": "int64" },
+ "solveTime": { "type": "integer", "format": "int64" },
+ "checkpoint": { "type": "integer", "format": "int64" },
+ "progress": { "type": "integer" },
+ "state": {
+ "oneOf": [
+ { "const": 0, "title": "Init", "type": "integer" },
+ { "const": 1, "title": "Autotune", "type": "integer" },
+ { "const": 2, "title": "Running", "type": "integer" },
+ { "const": 3, "title": "Paused", "type": "integer" },
+ { "const": 4, "title": "Exhausted", "type": "integer" },
+ { "const": 5, "title": "Cracked", "type": "integer" },
+ { "const": 6, "title": "Aborted", "type": "integer" },
+ { "const": 7, "title": "Quit", "type": "integer" },
+ { "const": 8, "title": "Bypass", "type": "integer" },
+ { "const": 9, "title": "Aborted at checkpoint", "type": "integer" },
+ { "const": 10, "title": "Aborted at runtime", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "HashListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashes?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/hashes?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/hashes?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/hashes?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/hashes?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hash" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "hashlistId",
+ "hash",
+ "salt",
+ "plaintext",
+ "timeCracked",
+ "chunkId",
+ "isCracked",
+ "crackPos"
+ ],
+ "properties": {
+ "hashlistId": { "type": "integer" },
+ "hash": { "type": "string" },
+ "salt": { "type": "string" },
+ "plaintext": { "type": "string" },
+ "timeCracked": { "type": "integer", "format": "int64" },
+ "chunkId": { "type": "integer" },
+ "isCracked": { "type": "boolean" },
+ "crackPos": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["chunk", "hashlist"],
+ "properties": {
+ "chunk": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashes/relationships/chunk" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashes/chunk" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "chunk" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashlist": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashes/relationships/hashlist" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashes/hashlist" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "chunk" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskId",
+ "skip",
+ "length",
+ "agentId",
+ "dispatchTime",
+ "solveTime",
+ "checkpoint",
+ "progress",
+ "state",
+ "cracked",
+ "speed"
+ ],
+ "properties": {
+ "taskId": { "type": "integer" },
+ "skip": { "type": "integer" },
+ "length": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "dispatchTime": { "type": "integer", "format": "int64" },
+ "solveTime": { "type": "integer", "format": "int64" },
+ "checkpoint": { "type": "integer", "format": "int64" },
+ "progress": { "type": "integer" },
+ "state": {
+ "oneOf": [
+ { "const": 0, "title": "Init", "type": "integer" },
+ { "const": 1, "title": "Autotune", "type": "integer" },
+ { "const": 2, "title": "Running", "type": "integer" },
+ { "const": 3, "title": "Paused", "type": "integer" },
+ { "const": 4, "title": "Exhausted", "type": "integer" },
+ { "const": 5, "title": "Cracked", "type": "integer" },
+ { "const": 6, "title": "Aborted", "type": "integer" },
+ { "const": 7, "title": "Quit", "type": "integer" },
+ { "const": 8, "title": "Bypass", "type": "integer" },
+ { "const": 9, "title": "Aborted at checkpoint", "type": "integer" },
+ { "const": 10, "title": "Aborted at runtime", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "HashRelationHashlist": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "hashlist" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ },
+ "HashRelationHashlistGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "hashlist" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ },
+ "HashlistCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "hashlistSeperator": { "type": ["string", "null"] },
+ "sourceType": { "type": "string" },
+ "sourceData": { "type": "string" },
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ },
+ "required": [
+ "sourceType",
+ "sourceData",
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "HashlistPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "accessGroupId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "isSecret": { "type": "boolean" },
+ "name": { "type": "string" },
+ "notes": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "HashlistResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/hashlists?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/hashlists?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/hashlists?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/hashlists?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroup", "hashType", "hashes", "hashlists", "tasks"],
+ "properties": {
+ "accessGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/accessGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/accessGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/hashType" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/hashType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashType" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashes": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/hashes" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/hashes" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hash" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "hashlists": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/hashlists" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/hashlists" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hash" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "hashlistId",
+ "hash",
+ "salt",
+ "plaintext",
+ "timeCracked",
+ "chunkId",
+ "isCracked",
+ "crackPos"
+ ],
+ "properties": {
+ "hashlistId": { "type": "integer" },
+ "hash": { "type": "string" },
+ "salt": { "type": "string" },
+ "plaintext": { "type": "string" },
+ "timeCracked": { "type": "integer", "format": "int64" },
+ "chunkId": { "type": "integer" },
+ "isCracked": { "type": "boolean" },
+ "crackPos": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "HashlistSingleResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroup", "hashType", "hashes", "hashlists", "tasks"],
+ "properties": {
+ "accessGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/accessGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/accessGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/hashType" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/hashType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashType" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashes": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/hashes" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/hashes" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hash" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "hashlists": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/hashlists" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/hashlists" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hash" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "hashlistId",
+ "hash",
+ "salt",
+ "plaintext",
+ "timeCracked",
+ "chunkId",
+ "isCracked",
+ "crackPos"
+ ],
+ "properties": {
+ "hashlistId": { "type": "integer" },
+ "hash": { "type": "string" },
+ "salt": { "type": "string" },
+ "plaintext": { "type": "string" },
+ "timeCracked": { "type": "integer", "format": "int64" },
+ "chunkId": { "type": "integer" },
+ "isCracked": { "type": "boolean" },
+ "crackPos": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "HashlistPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "HashlistListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/hashlists?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/hashlists?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/hashlists?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/hashlists?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroup", "hashType", "hashes", "hashlists", "tasks"],
+ "properties": {
+ "accessGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/accessGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/accessGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/hashType" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/hashType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashType" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashes": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/hashes" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/hashes" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hash" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "hashlists": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/hashlists" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/hashlists" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashlists/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/hashlists/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hash" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "hashlistId",
+ "hash",
+ "salt",
+ "plaintext",
+ "timeCracked",
+ "chunkId",
+ "isCracked",
+ "crackPos"
+ ],
+ "properties": {
+ "hashlistId": { "type": "integer" },
+ "hash": { "type": "string" },
+ "salt": { "type": "string" },
+ "plaintext": { "type": "string" },
+ "timeCracked": { "type": "integer", "format": "int64" },
+ "chunkId": { "type": "integer" },
+ "isCracked": { "type": "boolean" },
+ "crackPos": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "HashlistRelationTasks": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "tasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "HashlistRelationTasksGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "tasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "HashTypeCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "hashTypeId": { "type": "integer" },
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ },
+ "required": ["hashTypeId", "description", "isSalted", "isSlowHash"]
+ }
+ }
+ }
+ }
+ },
+ "HashTypePatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "HashTypeResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashtypes?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/hashtypes?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/hashtypes?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/hashtypes?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/hashtypes?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "HashTypePostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "HashTypeListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/hashtypes?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/hashtypes?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/hashtypes?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/hashtypes?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/hashtypes?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "HealthCheckAgentResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthcheckagents?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/healthcheckagents?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/healthcheckagents?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/healthcheckagents?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/healthcheckagents?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "healthCheckAgent" },
+ "attributes": {
+ "type": "object",
+ "required": ["healthCheckId", "agentId", "status", "cracked", "numGpus", "start", "end", "errors"],
+ "properties": {
+ "healthCheckId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "status": {
+ "oneOf": [
+ { "const": -1, "title": "Failed", "type": "integer" },
+ { "const": 0, "title": "Pending", "type": "integer" },
+ { "const": 1, "title": "Completed", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "numGpus": { "type": "integer" },
+ "start": { "type": "integer", "format": "int64" },
+ "end": { "type": "integer", "format": "int64" },
+ "errors": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agent", "healthCheck"],
+ "properties": {
+ "agent": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthcheckagents/relationships/agent" },
+ "related": { "type": "string", "default": "/api/v2/ui/healthcheckagents/agent" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "healthCheck": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthcheckagents/relationships/healthCheck" },
+ "related": { "type": "string", "default": "/api/v2/ui/healthcheckagents/healthCheck" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheck" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "healthCheck" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "time",
+ "status",
+ "checkType",
+ "hashtypeId",
+ "crackerBinaryId",
+ "expectedCracks",
+ "attackCmd"
+ ],
+ "properties": {
+ "time": { "type": "integer", "format": "int64" },
+ "status": {
+ "oneOf": [
+ { "const": -1, "title": "Aborted", "type": "integer" },
+ { "const": 0, "title": "Pending", "type": "integer" },
+ { "const": 1, "title": "Completed", "type": "integer" }
+ ]
+ },
+ "checkType": {
+ "oneOf": [
+ { "const": 0, "title": "MD5", "type": "integer" },
+ { "const": 3200, "title": "Bcrypt", "type": "integer" }
+ ]
+ },
+ "hashtypeId": { "type": "integer" },
+ "crackerBinaryId": { "type": "integer" },
+ "expectedCracks": { "type": "integer" },
+ "attackCmd": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "HealthCheckAgentListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthcheckagents?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/healthcheckagents?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/healthcheckagents?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/healthcheckagents?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/healthcheckagents?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "healthCheckAgent" },
+ "attributes": {
+ "type": "object",
+ "required": ["healthCheckId", "agentId", "status", "cracked", "numGpus", "start", "end", "errors"],
+ "properties": {
+ "healthCheckId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "status": {
+ "oneOf": [
+ { "const": -1, "title": "Failed", "type": "integer" },
+ { "const": 0, "title": "Pending", "type": "integer" },
+ { "const": 1, "title": "Completed", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "numGpus": { "type": "integer" },
+ "start": { "type": "integer", "format": "int64" },
+ "end": { "type": "integer", "format": "int64" },
+ "errors": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agent", "healthCheck"],
+ "properties": {
+ "agent": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthcheckagents/relationships/agent" },
+ "related": { "type": "string", "default": "/api/v2/ui/healthcheckagents/agent" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "healthCheck": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthcheckagents/relationships/healthCheck" },
+ "related": { "type": "string", "default": "/api/v2/ui/healthcheckagents/healthCheck" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheck" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "healthCheck" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "time",
+ "status",
+ "checkType",
+ "hashtypeId",
+ "crackerBinaryId",
+ "expectedCracks",
+ "attackCmd"
+ ],
+ "properties": {
+ "time": { "type": "integer", "format": "int64" },
+ "status": {
+ "oneOf": [
+ { "const": -1, "title": "Aborted", "type": "integer" },
+ { "const": 0, "title": "Pending", "type": "integer" },
+ { "const": 1, "title": "Completed", "type": "integer" }
+ ]
+ },
+ "checkType": {
+ "oneOf": [
+ { "const": 0, "title": "MD5", "type": "integer" },
+ { "const": 3200, "title": "Bcrypt", "type": "integer" }
+ ]
+ },
+ "hashtypeId": { "type": "integer" },
+ "crackerBinaryId": { "type": "integer" },
+ "expectedCracks": { "type": "integer" },
+ "attackCmd": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "HealthCheckAgentRelationHealthCheck": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheck" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ },
+ "HealthCheckAgentRelationHealthCheckGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheck" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ },
+ "HealthCheckCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheck" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "checkType": {
+ "oneOf": [
+ { "const": 0, "title": "MD5", "type": "integer" },
+ { "const": 3200, "title": "Bcrypt", "type": "integer" }
+ ]
+ },
+ "hashtypeId": { "type": "integer" },
+ "crackerBinaryId": { "type": "integer" }
+ },
+ "required": ["checkType", "hashtypeId", "crackerBinaryId"]
+ }
+ }
+ }
+ }
+ },
+ "HealthCheckPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheck" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "checkType": {
+ "oneOf": [
+ { "const": 0, "title": "MD5", "type": "integer" },
+ { "const": 3200, "title": "Bcrypt", "type": "integer" }
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "HealthCheckResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthchecks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/healthchecks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/healthchecks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/healthchecks?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/healthchecks?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "healthCheck" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "time",
+ "status",
+ "checkType",
+ "hashtypeId",
+ "crackerBinaryId",
+ "expectedCracks",
+ "attackCmd"
+ ],
+ "properties": {
+ "time": { "type": "integer", "format": "int64" },
+ "status": {
+ "oneOf": [
+ { "const": -1, "title": "Aborted", "type": "integer" },
+ { "const": 0, "title": "Pending", "type": "integer" },
+ { "const": 1, "title": "Completed", "type": "integer" }
+ ]
+ },
+ "checkType": {
+ "oneOf": [
+ { "const": 0, "title": "MD5", "type": "integer" },
+ { "const": 3200, "title": "Bcrypt", "type": "integer" }
+ ]
+ },
+ "hashtypeId": { "type": "integer" },
+ "crackerBinaryId": { "type": "integer" },
+ "expectedCracks": { "type": "integer" },
+ "attackCmd": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["crackerBinary", "hashType", "healthCheckAgents"],
+ "properties": {
+ "crackerBinary": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthchecks/relationships/crackerBinary" },
+ "related": { "type": "string", "default": "/api/v2/ui/healthchecks/crackerBinary" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinary" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthchecks/relationships/hashType" },
+ "related": { "type": "string", "default": "/api/v2/ui/healthchecks/hashType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashType" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "healthCheckAgents": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": {
+ "type": "string",
+ "default": "/api/v2/ui/healthchecks/relationships/healthCheckAgents"
+ },
+ "related": { "type": "string", "default": "/api/v2/ui/healthchecks/healthCheckAgents" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheckAgent" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"],
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "healthCheckAgent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "healthCheckId",
+ "agentId",
+ "status",
+ "cracked",
+ "numGpus",
+ "start",
+ "end",
+ "errors"
+ ],
+ "properties": {
+ "healthCheckId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "status": {
+ "oneOf": [
+ { "const": -1, "title": "Failed", "type": "integer" },
+ { "const": 0, "title": "Pending", "type": "integer" },
+ { "const": 1, "title": "Completed", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "numGpus": { "type": "integer" },
+ "start": { "type": "integer", "format": "int64" },
+ "end": { "type": "integer", "format": "int64" },
+ "errors": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "HealthCheckPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "healthCheck" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "time",
+ "status",
+ "checkType",
+ "hashtypeId",
+ "crackerBinaryId",
+ "expectedCracks",
+ "attackCmd"
+ ],
+ "properties": {
+ "time": { "type": "integer", "format": "int64" },
+ "status": {
+ "oneOf": [
+ { "const": -1, "title": "Aborted", "type": "integer" },
+ { "const": 0, "title": "Pending", "type": "integer" },
+ { "const": 1, "title": "Completed", "type": "integer" }
+ ]
+ },
+ "checkType": {
+ "oneOf": [
+ { "const": 0, "title": "MD5", "type": "integer" },
+ { "const": 3200, "title": "Bcrypt", "type": "integer" }
+ ]
+ },
+ "hashtypeId": { "type": "integer" },
+ "crackerBinaryId": { "type": "integer" },
+ "expectedCracks": { "type": "integer" },
+ "attackCmd": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "HealthCheckListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthchecks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/healthchecks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/healthchecks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/healthchecks?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/healthchecks?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "healthCheck" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "time",
+ "status",
+ "checkType",
+ "hashtypeId",
+ "crackerBinaryId",
+ "expectedCracks",
+ "attackCmd"
+ ],
+ "properties": {
+ "time": { "type": "integer", "format": "int64" },
+ "status": {
+ "oneOf": [
+ { "const": -1, "title": "Aborted", "type": "integer" },
+ { "const": 0, "title": "Pending", "type": "integer" },
+ { "const": 1, "title": "Completed", "type": "integer" }
+ ]
+ },
+ "checkType": {
+ "oneOf": [
+ { "const": 0, "title": "MD5", "type": "integer" },
+ { "const": 3200, "title": "Bcrypt", "type": "integer" }
+ ]
+ },
+ "hashtypeId": { "type": "integer" },
+ "crackerBinaryId": { "type": "integer" },
+ "expectedCracks": { "type": "integer" },
+ "attackCmd": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["crackerBinary", "hashType", "healthCheckAgents"],
+ "properties": {
+ "crackerBinary": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthchecks/relationships/crackerBinary" },
+ "related": { "type": "string", "default": "/api/v2/ui/healthchecks/crackerBinary" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinary" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/healthchecks/relationships/hashType" },
+ "related": { "type": "string", "default": "/api/v2/ui/healthchecks/hashType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashType" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "healthCheckAgents": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": {
+ "type": "string",
+ "default": "/api/v2/ui/healthchecks/relationships/healthCheckAgents"
+ },
+ "related": { "type": "string", "default": "/api/v2/ui/healthchecks/healthCheckAgents" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheckAgent" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"],
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "healthCheckAgent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "healthCheckId",
+ "agentId",
+ "status",
+ "cracked",
+ "numGpus",
+ "start",
+ "end",
+ "errors"
+ ],
+ "properties": {
+ "healthCheckId": { "type": "integer" },
+ "agentId": { "type": "integer" },
+ "status": {
+ "oneOf": [
+ { "const": -1, "title": "Failed", "type": "integer" },
+ { "const": 0, "title": "Pending", "type": "integer" },
+ { "const": 1, "title": "Completed", "type": "integer" }
+ ]
+ },
+ "cracked": { "type": "integer" },
+ "numGpus": { "type": "integer" },
+ "start": { "type": "integer", "format": "int64" },
+ "end": { "type": "integer", "format": "int64" },
+ "errors": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "HealthCheckRelationHealthCheckAgents": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheckAgents" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "HealthCheckRelationHealthCheckAgentsGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "healthCheckAgents" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "LogEntryCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "logEntry" },
+ "attributes": { "type": "object", "properties": {} }
+ }
+ }
+ }
+ },
+ "LogEntryPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "logEntry" },
+ "attributes": { "type": "object", "properties": {} }
+ }
+ }
+ }
+ },
+ "LogEntryResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/logentries?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/logentries?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/logentries?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/logentries?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/logentries?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "logEntry" },
+ "attributes": {
+ "type": "object",
+ "required": ["issuer", "issuerId", "level", "message", "time"],
+ "properties": {
+ "issuer": {
+ "oneOf": [
+ { "const": "API", "title": "API", "type": "string" },
+ { "const": "User", "title": "User", "type": "string" }
+ ]
+ },
+ "issuerId": { "type": "string" },
+ "level": {
+ "oneOf": [
+ { "const": "warning", "title": "Warning", "type": "string" },
+ { "const": "error", "title": "Error", "type": "string" },
+ { "const": "fatal error", "title": "Fatal error", "type": "string" },
+ { "const": "information", "title": "Information", "type": "string" }
+ ]
+ },
+ "message": { "type": "string" },
+ "time": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "LogEntryPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "logEntry" },
+ "attributes": {
+ "type": "object",
+ "required": ["issuer", "issuerId", "level", "message", "time"],
+ "properties": {
+ "issuer": {
+ "oneOf": [
+ { "const": "API", "title": "API", "type": "string" },
+ { "const": "User", "title": "User", "type": "string" }
+ ]
+ },
+ "issuerId": { "type": "string" },
+ "level": {
+ "oneOf": [
+ { "const": "warning", "title": "Warning", "type": "string" },
+ { "const": "error", "title": "Error", "type": "string" },
+ { "const": "fatal error", "title": "Fatal error", "type": "string" },
+ { "const": "information", "title": "Information", "type": "string" }
+ ]
+ },
+ "message": { "type": "string" },
+ "time": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "LogEntryListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/logentries?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/logentries?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/logentries?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/logentries?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/logentries?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "logEntry" },
+ "attributes": {
+ "type": "object",
+ "required": ["issuer", "issuerId", "level", "message", "time"],
+ "properties": {
+ "issuer": {
+ "oneOf": [
+ { "const": "API", "title": "API", "type": "string" },
+ { "const": "User", "title": "User", "type": "string" }
+ ]
+ },
+ "issuerId": { "type": "string" },
+ "level": {
+ "oneOf": [
+ { "const": "warning", "title": "Warning", "type": "string" },
+ { "const": "error", "title": "Error", "type": "string" },
+ { "const": "fatal error", "title": "Fatal error", "type": "string" },
+ { "const": "information", "title": "Information", "type": "string" }
+ ]
+ },
+ "message": { "type": "string" },
+ "time": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "NotificationSettingCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "notificationSetting" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "actionFilter": { "type": "string" },
+ "action": {
+ "oneOf": [
+ { "const": "createNotification", "title": "Create notification", "type": "string" },
+ { "const": "setActive", "title": "Set active", "type": "string" },
+ { "const": "deleteNotification", "title": "Delete notification", "type": "string" }
+ ]
+ },
+ "notification": {
+ "oneOf": [
+ { "const": "taskComplete", "title": "Task completed", "type": "string" },
+ { "const": "agentError", "title": "Agent error", "type": "string" },
+ { "const": "ownAgentError", "title": "Own agent error", "type": "string" },
+ { "const": "logError", "title": "Log error", "type": "string" },
+ { "const": "newTask", "title": "New task", "type": "string" },
+ { "const": "newHashlist", "title": "New hashlist", "type": "string" },
+ { "const": "hashlistAllCracked", "title": "Hashlist all cracked", "type": "string" },
+ { "const": "hashlistCrackedHash", "title": "Hashlist cracked hash", "type": "string" },
+ { "const": "userCreated", "title": "User created", "type": "string" },
+ { "const": "userDeleted", "title": "User deleted", "type": "string" },
+ { "const": "userLoginFailed", "title": "User login failed", "type": "string" },
+ { "const": "logWarn", "title": "Log warning", "type": "string" },
+ { "const": "logFatal", "title": "Log fatal", "type": "string" },
+ { "const": "newAgent", "title": "New agent", "type": "string" },
+ { "const": "deleteTask", "title": "Delete task", "type": "string" },
+ { "const": "deleteHashlist", "title": "Delete hashlist", "type": "string" },
+ { "const": "deleteAgent", "title": "Delete agent", "type": "string" }
+ ]
+ },
+ "receiver": { "type": "string" }
+ },
+ "required": ["actionFilter", "action", "notification", "receiver"]
+ }
+ }
+ }
+ }
+ },
+ "NotificationSettingPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "notificationSetting" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "action": {
+ "oneOf": [
+ { "const": "createNotification", "title": "Create notification", "type": "string" },
+ { "const": "setActive", "title": "Set active", "type": "string" },
+ { "const": "deleteNotification", "title": "Delete notification", "type": "string" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "notification": {
+ "oneOf": [
+ { "const": "taskComplete", "title": "Task completed", "type": "string" },
+ { "const": "agentError", "title": "Agent error", "type": "string" },
+ { "const": "ownAgentError", "title": "Own agent error", "type": "string" },
+ { "const": "logError", "title": "Log error", "type": "string" },
+ { "const": "newTask", "title": "New task", "type": "string" },
+ { "const": "newHashlist", "title": "New hashlist", "type": "string" },
+ { "const": "hashlistAllCracked", "title": "Hashlist all cracked", "type": "string" },
+ { "const": "hashlistCrackedHash", "title": "Hashlist cracked hash", "type": "string" },
+ { "const": "userCreated", "title": "User created", "type": "string" },
+ { "const": "userDeleted", "title": "User deleted", "type": "string" },
+ { "const": "userLoginFailed", "title": "User login failed", "type": "string" },
+ { "const": "logWarn", "title": "Log warning", "type": "string" },
+ { "const": "logFatal", "title": "Log fatal", "type": "string" },
+ { "const": "newAgent", "title": "New agent", "type": "string" },
+ { "const": "deleteTask", "title": "Delete task", "type": "string" },
+ { "const": "deleteHashlist", "title": "Delete hashlist", "type": "string" },
+ { "const": "deleteAgent", "title": "Delete agent", "type": "string" }
+ ]
+ },
+ "receiver": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "NotificationSettingResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/notifications?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/notifications?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/notifications?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/notifications?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/notifications?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "notificationSetting" },
+ "attributes": {
+ "type": "object",
+ "required": ["action", "objectId", "notification", "userId", "receiver", "isActive"],
+ "properties": {
+ "action": {
+ "oneOf": [
+ { "const": "createNotification", "title": "Create notification", "type": "string" },
+ { "const": "setActive", "title": "Set active", "type": "string" },
+ { "const": "deleteNotification", "title": "Delete notification", "type": "string" }
+ ]
+ },
+ "objectId": { "type": "integer" },
+ "notification": {
+ "oneOf": [
+ { "const": "taskComplete", "title": "Task completed", "type": "string" },
+ { "const": "agentError", "title": "Agent error", "type": "string" },
+ { "const": "ownAgentError", "title": "Own agent error", "type": "string" },
+ { "const": "logError", "title": "Log error", "type": "string" },
+ { "const": "newTask", "title": "New task", "type": "string" },
+ { "const": "newHashlist", "title": "New hashlist", "type": "string" },
+ { "const": "hashlistAllCracked", "title": "Hashlist all cracked", "type": "string" },
+ { "const": "hashlistCrackedHash", "title": "Hashlist cracked hash", "type": "string" },
+ { "const": "userCreated", "title": "User created", "type": "string" },
+ { "const": "userDeleted", "title": "User deleted", "type": "string" },
+ { "const": "userLoginFailed", "title": "User login failed", "type": "string" },
+ { "const": "logWarn", "title": "Log warning", "type": "string" },
+ { "const": "logFatal", "title": "Log fatal", "type": "string" },
+ { "const": "newAgent", "title": "New agent", "type": "string" },
+ { "const": "deleteTask", "title": "Delete task", "type": "string" },
+ { "const": "deleteHashlist", "title": "Delete hashlist", "type": "string" },
+ { "const": "deleteAgent", "title": "Delete agent", "type": "string" }
+ ]
+ },
+ "userId": { "type": "integer" },
+ "receiver": { "type": "string" },
+ "isActive": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["user"],
+ "properties": {
+ "user": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/notifications/relationships/user" },
+ "related": { "type": "string", "default": "/api/v2/ui/notifications/user" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "NotificationSettingPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "notificationSetting" },
+ "attributes": {
+ "type": "object",
+ "required": ["action", "objectId", "notification", "userId", "receiver", "isActive"],
+ "properties": {
+ "action": {
+ "oneOf": [
+ { "const": "createNotification", "title": "Create notification", "type": "string" },
+ { "const": "setActive", "title": "Set active", "type": "string" },
+ { "const": "deleteNotification", "title": "Delete notification", "type": "string" }
+ ]
+ },
+ "objectId": { "type": "integer" },
+ "notification": {
+ "oneOf": [
+ { "const": "taskComplete", "title": "Task completed", "type": "string" },
+ { "const": "agentError", "title": "Agent error", "type": "string" },
+ { "const": "ownAgentError", "title": "Own agent error", "type": "string" },
+ { "const": "logError", "title": "Log error", "type": "string" },
+ { "const": "newTask", "title": "New task", "type": "string" },
+ { "const": "newHashlist", "title": "New hashlist", "type": "string" },
+ { "const": "hashlistAllCracked", "title": "Hashlist all cracked", "type": "string" },
+ { "const": "hashlistCrackedHash", "title": "Hashlist cracked hash", "type": "string" },
+ { "const": "userCreated", "title": "User created", "type": "string" },
+ { "const": "userDeleted", "title": "User deleted", "type": "string" },
+ { "const": "userLoginFailed", "title": "User login failed", "type": "string" },
+ { "const": "logWarn", "title": "Log warning", "type": "string" },
+ { "const": "logFatal", "title": "Log fatal", "type": "string" },
+ { "const": "newAgent", "title": "New agent", "type": "string" },
+ { "const": "deleteTask", "title": "Delete task", "type": "string" },
+ { "const": "deleteHashlist", "title": "Delete hashlist", "type": "string" },
+ { "const": "deleteAgent", "title": "Delete agent", "type": "string" }
+ ]
+ },
+ "userId": { "type": "integer" },
+ "receiver": { "type": "string" },
+ "isActive": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "NotificationSettingListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/notifications?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/notifications?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/notifications?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/notifications?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/notifications?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "notificationSetting" },
+ "attributes": {
+ "type": "object",
+ "required": ["action", "objectId", "notification", "userId", "receiver", "isActive"],
+ "properties": {
+ "action": {
+ "oneOf": [
+ { "const": "createNotification", "title": "Create notification", "type": "string" },
+ { "const": "setActive", "title": "Set active", "type": "string" },
+ { "const": "deleteNotification", "title": "Delete notification", "type": "string" }
+ ]
+ },
+ "objectId": { "type": "integer" },
+ "notification": {
+ "oneOf": [
+ { "const": "taskComplete", "title": "Task completed", "type": "string" },
+ { "const": "agentError", "title": "Agent error", "type": "string" },
+ { "const": "ownAgentError", "title": "Own agent error", "type": "string" },
+ { "const": "logError", "title": "Log error", "type": "string" },
+ { "const": "newTask", "title": "New task", "type": "string" },
+ { "const": "newHashlist", "title": "New hashlist", "type": "string" },
+ { "const": "hashlistAllCracked", "title": "Hashlist all cracked", "type": "string" },
+ { "const": "hashlistCrackedHash", "title": "Hashlist cracked hash", "type": "string" },
+ { "const": "userCreated", "title": "User created", "type": "string" },
+ { "const": "userDeleted", "title": "User deleted", "type": "string" },
+ { "const": "userLoginFailed", "title": "User login failed", "type": "string" },
+ { "const": "logWarn", "title": "Log warning", "type": "string" },
+ { "const": "logFatal", "title": "Log fatal", "type": "string" },
+ { "const": "newAgent", "title": "New agent", "type": "string" },
+ { "const": "deleteTask", "title": "Delete task", "type": "string" },
+ { "const": "deleteHashlist", "title": "Delete hashlist", "type": "string" },
+ { "const": "deleteAgent", "title": "Delete agent", "type": "string" }
+ ]
+ },
+ "userId": { "type": "integer" },
+ "receiver": { "type": "string" },
+ "isActive": { "type": "boolean" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["user"],
+ "properties": {
+ "user": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/notifications/relationships/user" },
+ "related": { "type": "string", "default": "/api/v2/ui/notifications/user" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "NotificationSettingRelationUser": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "NotificationSettingRelationUserGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "user" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "PreprocessorCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "preprocessor" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "name": { "type": "string" },
+ "url": { "type": "string" },
+ "binaryName": { "type": "string" },
+ "keyspaceCommand": { "type": "string" },
+ "skipCommand": { "type": "string" },
+ "limitCommand": { "type": "string" }
+ },
+ "required": ["name", "url", "binaryName", "keyspaceCommand", "skipCommand", "limitCommand"]
+ }
+ }
+ }
+ }
+ },
+ "PreprocessorPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "preprocessor" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "binaryName": { "type": "string" },
+ "keyspaceCommand": { "type": "string" },
+ "limitCommand": { "type": "string" },
+ "name": { "type": "string" },
+ "skipCommand": { "type": "string" },
+ "url": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "PreprocessorResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/preprocessors?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/preprocessors?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/preprocessors?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/preprocessors?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/preprocessors?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "preprocessor" },
+ "attributes": {
+ "type": "object",
+ "required": ["name", "url", "binaryName", "keyspaceCommand", "skipCommand", "limitCommand"],
+ "properties": {
+ "name": { "type": "string" },
+ "url": { "type": "string" },
+ "binaryName": { "type": "string" },
+ "keyspaceCommand": { "type": "string" },
+ "skipCommand": { "type": "string" },
+ "limitCommand": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "PreprocessorPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "preprocessor" },
+ "attributes": {
+ "type": "object",
+ "required": ["name", "url", "binaryName", "keyspaceCommand", "skipCommand", "limitCommand"],
+ "properties": {
+ "name": { "type": "string" },
+ "url": { "type": "string" },
+ "binaryName": { "type": "string" },
+ "keyspaceCommand": { "type": "string" },
+ "skipCommand": { "type": "string" },
+ "limitCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "PreprocessorListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/preprocessors?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/preprocessors?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/preprocessors?page[size]=25&page[before]=500" },
+ "next": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/preprocessors?page[size]=25&page[after]=25"
+ },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/preprocessors?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "preprocessor" },
+ "attributes": {
+ "type": "object",
+ "required": ["name", "url", "binaryName", "keyspaceCommand", "skipCommand", "limitCommand"],
+ "properties": {
+ "name": { "type": "string" },
+ "url": { "type": "string" },
+ "binaryName": { "type": "string" },
+ "keyspaceCommand": { "type": "string" },
+ "skipCommand": { "type": "string" },
+ "limitCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "PreTaskCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "preTask" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "files": { "type": "array", "items": { "type": "integer" } },
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "color": { "type": "string" },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "isMaskImport": { "type": "boolean" },
+ "crackerBinaryTypeId": { "type": "integer" }
+ },
+ "required": [
+ "files",
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "priority",
+ "maxAgents",
+ "isMaskImport",
+ "crackerBinaryTypeId"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "PreTaskPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "preTask" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "color": { "type": "string" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "isCpuTask": { "type": "boolean" },
+ "isMaskImport": { "type": "boolean" },
+ "isSmall": { "type": "boolean" },
+ "maxAgents": { "type": "integer" },
+ "priority": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "taskName": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "PreTaskResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/pretasks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/pretasks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/pretasks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/pretasks?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/pretasks?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "preTask" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "priority",
+ "maxAgents",
+ "isMaskImport",
+ "crackerBinaryTypeId",
+ "auxiliaryKeyspace"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "color": { "type": "string" },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "isMaskImport": { "type": "boolean" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "auxiliaryKeyspace": { "type": "integer" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["pretaskFiles"],
+ "properties": {
+ "pretaskFiles": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/pretasks/relationships/pretaskFiles" },
+ "related": { "type": "string", "default": "/api/v2/ui/pretasks/pretaskFiles" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "file" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "required": ["filename", "size", "isSecret", "fileType", "accessGroupId", "lineCount"],
+ "properties": {
+ "filename": { "type": "string" },
+ "size": { "type": "integer", "format": "int64" },
+ "isSecret": { "type": "boolean" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "accessGroupId": { "type": "integer" },
+ "lineCount": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "PreTaskPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "preTask" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "priority",
+ "maxAgents",
+ "isMaskImport",
+ "crackerBinaryTypeId",
+ "auxiliaryKeyspace"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "color": { "type": "string" },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "isMaskImport": { "type": "boolean" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "auxiliaryKeyspace": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "PreTaskListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/pretasks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/pretasks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/pretasks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/pretasks?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/pretasks?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "preTask" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "priority",
+ "maxAgents",
+ "isMaskImport",
+ "crackerBinaryTypeId",
+ "auxiliaryKeyspace"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "color": { "type": "string" },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "isMaskImport": { "type": "boolean" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "auxiliaryKeyspace": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["pretaskFiles"],
+ "properties": {
+ "pretaskFiles": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/pretasks/relationships/pretaskFiles" },
+ "related": { "type": "string", "default": "/api/v2/ui/pretasks/pretaskFiles" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "file" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "required": ["filename", "size", "isSecret", "fileType", "accessGroupId", "lineCount"],
+ "properties": {
+ "filename": { "type": "string" },
+ "size": { "type": "integer", "format": "int64" },
+ "isSecret": { "type": "boolean" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "accessGroupId": { "type": "integer" },
+ "lineCount": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "PreTaskRelationPretaskFiles": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "pretaskFiles" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "PreTaskRelationPretaskFilesGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "pretaskFiles" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "SpeedResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/speeds?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/speeds?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/speeds?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/speeds?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/speeds?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "speed" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "taskId", "speed", "time"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "taskId": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" },
+ "time": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agent", "task"],
+ "properties": {
+ "agent": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/speeds/relationships/agent" },
+ "related": { "type": "string", "default": "/api/v2/ui/speeds/agent" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/speeds/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/speeds/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "SpeedListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/speeds?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/speeds?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/speeds?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/speeds?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/speeds?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "speed" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "taskId", "speed", "time"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "taskId": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" },
+ "time": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["agent", "task"],
+ "properties": {
+ "agent": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/speeds/relationships/agent" },
+ "related": { "type": "string", "default": "/api/v2/ui/speeds/agent" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/speeds/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/speeds/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "SpeedRelationTask": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "SpeedRelationTaskGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer", "default": 1 } }
+ }
+ }
+ },
+ "SupertaskCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "supertask" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "pretasks": { "type": "array", "items": { "type": "integer" } },
+ "supertaskName": { "type": "string" }
+ },
+ "required": ["pretasks", "supertaskName"]
+ }
+ }
+ }
+ }
+ },
+ "SupertaskPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "supertask" },
+ "attributes": { "type": "object", "properties": { "supertaskName": { "type": "string" } } }
+ }
+ }
+ }
+ },
+ "SupertaskResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/supertasks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/supertasks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/supertasks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/supertasks?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/supertasks?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "supertask" },
+ "attributes": {
+ "type": "object",
+ "required": ["supertaskName"],
+ "properties": { "supertaskName": { "type": "string" } }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["pretasks"],
+ "properties": {
+ "pretasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/supertasks/relationships/pretasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/supertasks/pretasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "preTask" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "preTask" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "priority",
+ "maxAgents",
+ "isMaskImport",
+ "crackerBinaryTypeId"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "color": { "type": "string" },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "isMaskImport": { "type": "boolean" },
+ "crackerBinaryTypeId": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "SupertaskSingleResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "supertask" },
+ "attributes": {
+ "type": "object",
+ "required": ["supertaskName"],
+ "properties": { "supertaskName": { "type": "string" } }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["pretasks"],
+ "properties": {
+ "pretasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/supertasks/relationships/pretasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/supertasks/pretasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "preTask" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "preTask" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "priority",
+ "maxAgents",
+ "isMaskImport",
+ "crackerBinaryTypeId"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "color": { "type": "string" },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "isMaskImport": { "type": "boolean" },
+ "crackerBinaryTypeId": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "SupertaskPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "supertask" },
+ "attributes": {
+ "type": "object",
+ "required": ["supertaskName"],
+ "properties": { "supertaskName": { "type": "string" } }
+ }
+ }
+ }
+ }
+ },
+ "SupertaskListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/supertasks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/supertasks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/supertasks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/supertasks?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/supertasks?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "supertask" },
+ "attributes": {
+ "type": "object",
+ "required": ["supertaskName"],
+ "properties": { "supertaskName": { "type": "string" } }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["pretasks"],
+ "properties": {
+ "pretasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/supertasks/relationships/pretasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/supertasks/pretasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "preTask" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "preTask" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "priority",
+ "maxAgents",
+ "isMaskImport",
+ "crackerBinaryTypeId"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "color": { "type": "string" },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "isMaskImport": { "type": "boolean" },
+ "crackerBinaryTypeId": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "SupertaskRelationPretasks": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "pretasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "SupertaskRelationPretasksGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "pretasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "TaskCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "hashlistId": { "type": "integer" },
+ "files": { "type": "array", "items": { "type": "integer" } },
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ },
+ "required": [
+ "hashlistId",
+ "files",
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "priority",
+ "maxAgents",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "TaskPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isArchived": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "isSmall": { "type": "boolean" },
+ "maxAgents": { "type": "integer" },
+ "notes": { "type": "string" },
+ "priority": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "taskName": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "TaskResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/tasks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/tasks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/tasks?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/tasks?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand",
+ "activeAgents",
+ "dispatched",
+ "searched",
+ "status",
+ "estimatedTime",
+ "timeSpent",
+ "currentSpeed",
+ "cprogress"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" },
+ "activeAgents": { "type": "integer" },
+ "dispatched": { "type": "string" },
+ "searched": { "type": "string" },
+ "status": {
+ "oneOf": [
+ { "const": 0, "title": "init", "type": "integer" },
+ { "const": 1, "title": "running", "type": "integer" },
+ { "const": 2, "title": "idle", "type": "integer" },
+ { "const": 3, "title": "completed", "type": "integer" }
+ ]
+ },
+ "estimatedTime": { "type": "integer" },
+ "timeSpent": { "type": "integer" },
+ "currentSpeed": { "type": "integer" },
+ "cprogress": { "type": "integer" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["assignedAgents", "crackerBinary", "crackerBinaryType", "files", "hashlist", "speeds"],
+ "properties": {
+ "assignedAgents": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/assignedAgents" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/assignedAgents" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "crackerBinary": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/crackerBinary" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/crackerBinary" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinary" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "crackerBinaryType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/crackerBinaryType" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/crackerBinaryType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "files": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/files" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/files" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "file" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "hashlist": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/hashlist" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/hashlist" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "speeds": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/speeds" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/speeds" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "speed" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"],
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "attributes": {
+ "type": "object",
+ "required": ["typeName", "isChunkingAvailable"],
+ "properties": { "typeName": { "type": "string" }, "isChunkingAvailable": { "type": "boolean" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "required": ["filename", "size", "isSecret", "fileType", "accessGroupId", "lineCount"],
+ "properties": {
+ "filename": { "type": "string" },
+ "size": { "type": "integer", "format": "int64" },
+ "isSecret": { "type": "boolean" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "accessGroupId": { "type": "integer" },
+ "lineCount": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "speed" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "taskId", "speed", "time"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "taskId": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" },
+ "time": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "TaskPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand",
+ "activeAgents",
+ "dispatched",
+ "searched",
+ "status",
+ "estimatedTime",
+ "timeSpent",
+ "currentSpeed",
+ "cprogress"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" },
+ "activeAgents": { "type": "integer" },
+ "dispatched": { "type": "string" },
+ "searched": { "type": "string" },
+ "status": {
+ "oneOf": [
+ { "const": 0, "title": "init", "type": "integer" },
+ { "const": 1, "title": "running", "type": "integer" },
+ { "const": 2, "title": "idle", "type": "integer" },
+ { "const": 3, "title": "completed", "type": "integer" }
+ ]
+ },
+ "estimatedTime": { "type": "integer" },
+ "timeSpent": { "type": "integer" },
+ "currentSpeed": { "type": "integer" },
+ "cprogress": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "TaskListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/tasks?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/tasks?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/tasks?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/tasks?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand",
+ "activeAgents",
+ "dispatched",
+ "searched",
+ "status",
+ "estimatedTime",
+ "timeSpent",
+ "currentSpeed",
+ "cprogress"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" },
+ "activeAgents": { "type": "integer" },
+ "dispatched": { "type": "string" },
+ "searched": { "type": "string" },
+ "status": {
+ "oneOf": [
+ { "const": 0, "title": "init", "type": "integer" },
+ { "const": 1, "title": "running", "type": "integer" },
+ { "const": 2, "title": "idle", "type": "integer" },
+ { "const": 3, "title": "completed", "type": "integer" }
+ ]
+ },
+ "estimatedTime": { "type": "integer" },
+ "timeSpent": { "type": "integer" },
+ "currentSpeed": { "type": "integer" },
+ "cprogress": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["assignedAgents", "crackerBinary", "crackerBinaryType", "files", "hashlist", "speeds"],
+ "properties": {
+ "assignedAgents": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/assignedAgents" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/assignedAgents" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "agent" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "crackerBinary": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/crackerBinary" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/crackerBinary" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinary" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "crackerBinaryType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/crackerBinaryType" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/crackerBinaryType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "files": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/files" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/files" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "file" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ },
+ "hashlist": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/hashlist" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/hashlist" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "speeds": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/tasks/relationships/speeds" },
+ "related": { "type": "string", "default": "/api/v2/ui/tasks/speeds" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "speed" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinary" },
+ "attributes": {
+ "type": "object",
+ "required": ["crackerBinaryTypeId", "version", "downloadUrl", "binaryName"],
+ "properties": {
+ "crackerBinaryTypeId": { "type": "integer" },
+ "version": { "type": "string" },
+ "downloadUrl": { "type": "string" },
+ "binaryName": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "crackerBinaryType" },
+ "attributes": {
+ "type": "object",
+ "required": ["typeName", "isChunkingAvailable"],
+ "properties": { "typeName": { "type": "string" }, "isChunkingAvailable": { "type": "boolean" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "agent" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "agentName",
+ "uid",
+ "os",
+ "devices",
+ "cmdPars",
+ "ignoreErrors",
+ "isActive",
+ "isTrusted",
+ "token",
+ "lastAct",
+ "lastTime",
+ "lastIp",
+ "userId",
+ "cpuOnly",
+ "clientSignature"
+ ],
+ "properties": {
+ "agentName": { "type": "string" },
+ "uid": { "type": "string" },
+ "os": {
+ "oneOf": [
+ { "const": 0, "title": "Linux", "type": "integer" },
+ { "const": 1, "title": "Windows", "type": "integer" },
+ { "const": 2, "title": "macOS", "type": "integer" }
+ ]
+ },
+ "devices": { "type": "string" },
+ "cmdPars": { "type": "string" },
+ "ignoreErrors": {
+ "oneOf": [
+ { "const": 0, "title": "Deactivate agent on error", "type": "integer" },
+ { "const": 1, "title": "Keep agent running, but save errors", "type": "integer" },
+ { "const": 2, "title": "Keep agent running and discard errors", "type": "integer" }
+ ]
+ },
+ "isActive": { "type": "boolean" },
+ "isTrusted": { "type": "boolean" },
+ "token": { "type": "string" },
+ "lastAct": { "type": "string" },
+ "lastTime": { "type": "integer", "format": "int64" },
+ "lastIp": { "type": "string" },
+ "userId": { "type": ["integer", "null"] },
+ "cpuOnly": { "type": "boolean" },
+ "clientSignature": { "type": "string" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "file" },
+ "attributes": {
+ "type": "object",
+ "required": ["filename", "size", "isSecret", "fileType", "accessGroupId", "lineCount"],
+ "properties": {
+ "filename": { "type": "string" },
+ "size": { "type": "integer", "format": "int64" },
+ "isSecret": { "type": "boolean" },
+ "fileType": {
+ "oneOf": [
+ { "const": 0, "title": "Wordlist", "type": "integer" },
+ { "const": 1, "title": "Rule", "type": "integer" },
+ { "const": 2, "title": "Other", "type": "integer" },
+ { "const": 100, "title": "Temporary", "type": "integer" }
+ ]
+ },
+ "accessGroupId": { "type": "integer" },
+ "lineCount": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "speed" },
+ "attributes": {
+ "type": "object",
+ "required": ["agentId", "taskId", "speed", "time"],
+ "properties": {
+ "agentId": { "type": "integer" },
+ "taskId": { "type": "integer" },
+ "speed": { "type": "integer", "format": "int64" },
+ "time": { "type": "integer", "format": "int64" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "TaskRelationSpeeds": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "speeds" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "TaskRelationSpeedsGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "speeds" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "TaskWrapperPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "taskWrapper" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "accessGroupId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "maxAgents": { "type": "integer" },
+ "priority": { "type": "integer" },
+ "taskWrapperName": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "TaskWrapperResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/taskwrappers?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/taskwrappers?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/taskwrappers?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/taskwrappers?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "taskWrapper" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "priority",
+ "maxAgents",
+ "taskType",
+ "hashlistId",
+ "accessGroupId",
+ "taskWrapperName",
+ "isArchived",
+ "cracked"
+ ],
+ "properties": {
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "taskType": {
+ "oneOf": [
+ { "const": 0, "title": "TaskType is Task", "type": "integer" },
+ { "const": 1, "title": "TaskType is Supertask", "type": "integer" }
+ ]
+ },
+ "hashlistId": { "type": "integer" },
+ "accessGroupId": { "type": "integer" },
+ "taskWrapperName": { "type": "string" },
+ "isArchived": { "type": "boolean" },
+ "cracked": { "type": "integer" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroup", "hashType", "hashlist", "task", "tasks"],
+ "properties": {
+ "accessGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/accessGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/accessGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/hashType" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/hashType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashType" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashlist": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/hashlist" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/hashlist" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "TaskWrapperSingleResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "taskWrapper" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "priority",
+ "maxAgents",
+ "taskType",
+ "hashlistId",
+ "accessGroupId",
+ "taskWrapperName",
+ "isArchived",
+ "cracked"
+ ],
+ "properties": {
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "taskType": {
+ "oneOf": [
+ { "const": 0, "title": "TaskType is Task", "type": "integer" },
+ { "const": 1, "title": "TaskType is Supertask", "type": "integer" }
+ ]
+ },
+ "hashlistId": { "type": "integer" },
+ "accessGroupId": { "type": "integer" },
+ "taskWrapperName": { "type": "string" },
+ "isArchived": { "type": "boolean" },
+ "cracked": { "type": "integer" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroup", "hashType", "hashlist", "task", "tasks"],
+ "properties": {
+ "accessGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/accessGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/accessGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/hashType" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/hashType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashType" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashlist": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/hashlist" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/hashlist" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "TaskWrapperPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "taskWrapper" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "priority",
+ "maxAgents",
+ "taskType",
+ "hashlistId",
+ "accessGroupId",
+ "taskWrapperName",
+ "isArchived",
+ "cracked"
+ ],
+ "properties": {
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "taskType": {
+ "oneOf": [
+ { "const": 0, "title": "TaskType is Task", "type": "integer" },
+ { "const": 1, "title": "TaskType is Supertask", "type": "integer" }
+ ]
+ },
+ "hashlistId": { "type": "integer" },
+ "accessGroupId": { "type": "integer" },
+ "taskWrapperName": { "type": "string" },
+ "isArchived": { "type": "boolean" },
+ "cracked": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "TaskWrapperListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/taskwrappers?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/taskwrappers?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/taskwrappers?page[size]=25&page[after]=25" },
+ "previous": {
+ "type": ["string", "null"],
+ "default": "/api/v2/ui/taskwrappers?page[size]=25&page[before]=25"
+ }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "taskWrapper" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "priority",
+ "maxAgents",
+ "taskType",
+ "hashlistId",
+ "accessGroupId",
+ "taskWrapperName",
+ "isArchived",
+ "cracked"
+ ],
+ "properties": {
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "taskType": {
+ "oneOf": [
+ { "const": 0, "title": "TaskType is Task", "type": "integer" },
+ { "const": 1, "title": "TaskType is Supertask", "type": "integer" }
+ ]
+ },
+ "hashlistId": { "type": "integer" },
+ "accessGroupId": { "type": "integer" },
+ "taskWrapperName": { "type": "string" },
+ "isArchived": { "type": "boolean" },
+ "cracked": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroup", "hashType", "hashlist", "task", "tasks"],
+ "properties": {
+ "accessGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/accessGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/accessGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashType": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/hashType" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/hashType" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashType" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "hashlist": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/hashlist" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/hashlist" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "hashlist" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "task": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/task" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/task" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ },
+ "tasks": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/taskwrappers/relationships/tasks" },
+ "related": { "type": "string", "default": "/api/v2/ui/taskwrappers/tasks" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": { "type": { "type": "string", "const": "task" }, "id": { "type": "integer" } }
+ }
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashlist" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "format",
+ "hashTypeId",
+ "hashCount",
+ "separator",
+ "cracked",
+ "isSecret",
+ "isHexSalt",
+ "isSalted",
+ "accessGroupId",
+ "notes",
+ "useBrain",
+ "brainFeatures",
+ "isArchived"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "format": {
+ "oneOf": [
+ { "const": 0, "title": "Hashlist format is PLAIN", "type": "integer" },
+ { "const": 1, "title": "Hashlist format is WPA", "type": "integer" },
+ { "const": 2, "title": "Hashlist format is BINARY", "type": "integer" },
+ { "const": 3, "title": "Hashlist is SUPERHASHLIST", "type": "integer" }
+ ]
+ },
+ "hashTypeId": { "type": "integer" },
+ "hashCount": { "type": "integer" },
+ "separator": { "type": ["string", "null"] },
+ "cracked": { "type": "integer" },
+ "isSecret": { "type": "boolean" },
+ "isHexSalt": { "type": "boolean" },
+ "isSalted": { "type": "boolean" },
+ "accessGroupId": { "type": "integer" },
+ "notes": { "type": "string" },
+ "useBrain": { "type": "boolean" },
+ "brainFeatures": { "type": "integer" },
+ "isArchived": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "hashType" },
+ "attributes": {
+ "type": "object",
+ "required": ["description", "isSalted", "isSlowHash"],
+ "properties": {
+ "description": { "type": "string" },
+ "isSalted": { "type": "boolean" },
+ "isSlowHash": { "type": "boolean" }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "task" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "taskName",
+ "attackCmd",
+ "chunkTime",
+ "statusTimer",
+ "keyspace",
+ "keyspaceProgress",
+ "priority",
+ "maxAgents",
+ "color",
+ "isSmall",
+ "isCpuTask",
+ "useNewBench",
+ "skipKeyspace",
+ "crackerBinaryId",
+ "crackerBinaryTypeId",
+ "taskWrapperId",
+ "isArchived",
+ "notes",
+ "staticChunks",
+ "chunkSize",
+ "forcePipe",
+ "preprocessorId",
+ "preprocessorCommand"
+ ],
+ "properties": {
+ "taskName": { "type": "string" },
+ "attackCmd": { "type": "string" },
+ "chunkTime": { "type": "integer" },
+ "statusTimer": { "type": "integer" },
+ "keyspace": { "type": "integer", "format": "int64" },
+ "keyspaceProgress": { "type": "integer", "format": "int64" },
+ "priority": { "type": "integer" },
+ "maxAgents": { "type": "integer" },
+ "color": { "type": ["string", "null"] },
+ "isSmall": { "type": "boolean" },
+ "isCpuTask": { "type": "boolean" },
+ "useNewBench": { "type": "boolean" },
+ "skipKeyspace": { "type": "integer", "format": "int64" },
+ "crackerBinaryId": { "type": "integer" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "taskWrapperId": { "type": "integer" },
+ "isArchived": { "type": "boolean" },
+ "notes": { "type": "string" },
+ "staticChunks": { "type": "integer" },
+ "chunkSize": { "type": "integer", "format": "int64" },
+ "forcePipe": { "type": "boolean" },
+ "preprocessorId": { "type": "integer" },
+ "preprocessorCommand": { "type": "string" }
+ }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "TaskWrapperRelationTasks": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "tasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "TaskWrapperRelationTasksGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "tasks" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "UserCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "globalPermissionGroupId": { "type": "integer" }
+ },
+ "required": ["name", "email", "globalPermissionGroupId"]
+ }
+ }
+ }
+ }
+ },
+ "UserPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "properties": {
+ "email": { "type": "string" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "isValid": { "type": "boolean" },
+ "sessionLifetime": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "UserResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/users?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/users?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/users?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/users?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/users?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroups", "globalPermissionGroup"],
+ "properties": {
+ "accessGroups": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/users/relationships/accessGroups" },
+ "related": { "type": "string", "default": "/api/v2/ui/users/accessGroups" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "globalPermissionGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/users/relationships/globalPermissionGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/users/globalPermissionGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "globalPermissionGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "globalPermissionGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["name", "permissions"],
+ "properties": {
+ "name": { "type": "string" },
+ "permissions": { "type": "object", "additionalProperties": { "type": "boolean" } }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "UserPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ },
+ "UserListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/users?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/users?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/users?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/users?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/users?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "user" },
+ "attributes": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "isValid",
+ "isComputedPassword",
+ "lastLoginDate",
+ "registeredSince",
+ "sessionLifetime",
+ "globalPermissionGroupId",
+ "yubikey",
+ "otp1",
+ "otp2",
+ "otp3",
+ "otp4"
+ ],
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "isValid": { "type": "boolean" },
+ "isComputedPassword": { "type": "boolean" },
+ "lastLoginDate": { "type": "integer", "format": "int64" },
+ "registeredSince": { "type": "integer", "format": "int64" },
+ "sessionLifetime": { "type": "integer" },
+ "globalPermissionGroupId": { "type": "integer" },
+ "yubikey": { "type": "string" },
+ "otp1": { "type": "string" },
+ "otp2": { "type": "string" },
+ "otp3": { "type": "string" },
+ "otp4": { "type": "string" }
+ }
+ }
+ }
+ }
+ },
+ "relationships": {
+ "type": "object",
+ "required": ["accessGroups", "globalPermissionGroup"],
+ "properties": {
+ "accessGroups": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/users/relationships/accessGroups" },
+ "related": { "type": "string", "default": "/api/v2/ui/users/accessGroups" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroup" },
+ "id": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ "globalPermissionGroup": {
+ "type": "object",
+ "required": ["links"],
+ "properties": {
+ "links": {
+ "type": "object",
+ "required": ["self", "related"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/users/relationships/globalPermissionGroup" },
+ "related": { "type": "string", "default": "/api/v2/ui/users/globalPermissionGroup" }
+ }
+ },
+ "data": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "globalPermissionGroup" },
+ "id": { "type": "integer" }
+ }
+ },
+ { "type": "null" }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "included": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "globalPermissionGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["name", "permissions"],
+ "properties": {
+ "name": { "type": "string" },
+ "permissions": { "type": "object", "additionalProperties": { "type": "boolean" } }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "accessGroup" },
+ "attributes": {
+ "type": "object",
+ "required": ["groupName"],
+ "properties": { "groupName": { "type": "string" } }
+ }
+ }
+ }
+ ],
+ "discriminator": { "propertyName": "type" }
+ }
+ }
+ }
+ },
+ "UserRelationAccessGroups": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroups" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "UserRelationAccessGroupsGetResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["type", "id"],
+ "properties": {
+ "type": { "type": "string", "const": "accessGroups" },
+ "id": { "type": "integer", "default": 1 }
+ }
+ }
+ }
+ }
+ },
+ "VoucherCreate": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "voucher" },
+ "attributes": {
+ "type": "object",
+ "properties": { "voucher": { "type": "string" } },
+ "required": ["voucher"]
+ }
+ }
+ }
+ }
+ },
+ "VoucherPatch": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": ["type", "attributes"],
+ "properties": {
+ "type": { "type": "string", "const": "voucher" },
+ "attributes": { "type": "object", "properties": { "voucher": { "type": "string" } } }
+ }
+ }
+ }
+ },
+ "VoucherResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/vouchers?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/vouchers?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/vouchers?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/vouchers?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/vouchers?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "voucher" },
+ "attributes": {
+ "type": "object",
+ "required": ["voucher", "time"],
+ "properties": { "voucher": { "type": "string" }, "time": { "type": "integer", "format": "int64" } }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "VoucherPostPatchResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "data": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "voucher" },
+ "attributes": {
+ "type": "object",
+ "required": ["voucher", "time"],
+ "properties": { "voucher": { "type": "string" }, "time": { "type": "integer", "format": "int64" } }
+ }
+ }
+ }
+ }
+ },
+ "VoucherListResponse": {
+ "type": "object",
+ "required": ["jsonapi", "data"],
+ "properties": {
+ "jsonapi": {
+ "type": "object",
+ "required": ["version"],
+ "properties": {
+ "version": { "type": "string", "default": "1.1" },
+ "ext": {
+ "type": "array",
+ "items": { "type": "string" },
+ "default": ["https://jsonapi.org/profiles/ethanresnick/cursor-pagination"]
+ }
+ }
+ },
+ "links": {
+ "type": "object",
+ "required": ["self"],
+ "properties": {
+ "self": { "type": "string", "default": "/api/v2/ui/vouchers?page[size]=25" },
+ "first": { "type": "string", "default": "/api/v2/ui/vouchers?page[size]=25&page[after]=0" },
+ "last": { "type": "string", "default": "/api/v2/ui/vouchers?page[size]=25&page[before]=500" },
+ "next": { "type": ["string", "null"], "default": "/api/v2/ui/vouchers?page[size]=25&page[after]=25" },
+ "previous": { "type": ["string", "null"], "default": "/api/v2/ui/vouchers?page[size]=25&page[before]=25" }
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["id", "type", "attributes"],
+ "properties": {
+ "id": { "type": "integer" },
+ "type": { "type": "string", "const": "voucher" },
+ "attributes": {
+ "type": "object",
+ "required": ["voucher", "time"],
+ "properties": { "voucher": { "type": "string" }, "time": { "type": "integer", "format": "int64" } }
+ }
+ }
+ }
+ },
+ "relationships": { "type": "object", "required": [], "properties": {} },
+ "included": { "type": "array", "items": { "oneOf": [], "discriminator": { "propertyName": "type" } } }
+ }
+ },
+ "AbortChunkHelperAPI": { "type": "object", "properties": { "chunkId": { "type": "integer" } } },
+ "AbortChunkHelperAPIResponse": {
+ "type": "array",
+ "items": { "type": "object", "properties": { "Abort": { "type": "string", "default": "Success" } } }
+ },
+ "AssignAgentHelperAPI": {
+ "type": "object",
+ "properties": { "agentId": { "type": "integer" }, "taskId": { "type": "integer" } }
+ },
+ "AssignAgentHelperAPIResponse": {
+ "type": "array",
+ "items": { "type": "object", "properties": { "Assign": { "type": "string", "default": "Success" } } }
+ },
+ "BulkSupertaskBuilderHelperAPI": {
+ "type": "object",
+ "properties": {
+ "name": { "type": "string" },
+ "isCpu": { "type": "boolean" },
+ "isSmall": { "type": "boolean" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "benchtype": { "type": "string" },
+ "command": { "type": "string" },
+ "maxAgents": { "type": "integer" },
+ "basefiles": { "type": "array", "items": { "type": "integer" } },
+ "iterfiles": { "type": "array", "items": { "type": "integer" } }
+ }
+ },
+ "ChangeOwnPasswordHelperAPI": {
+ "type": "object",
+ "properties": {
+ "oldPassword": { "type": "string" },
+ "newPassword": { "type": "string" },
+ "confirmPassword": { "type": "string" }
+ }
+ },
+ "ChangeOwnPasswordHelperAPIResponse": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": { "Change password": { "type": "string", "default": "Password succesfully updated!" } }
+ }
+ },
+ "CreateSuperHashlistHelperAPI": {
+ "type": "object",
+ "properties": {
+ "hashlistIds": { "type": "array", "items": { "type": "integer" } },
+ "name": { "type": "string" }
+ }
+ },
+ "CreateSupertaskHelperAPI": {
+ "type": "object",
+ "properties": {
+ "supertaskTemplateId": { "type": "integer" },
+ "hashlistId": { "type": "integer" },
+ "crackerVersionId": { "type": "integer" }
+ }
+ },
+ "ExportCrackedHashesHelperAPI": { "type": "object", "properties": { "hashlistId": { "type": "integer" } } },
+ "ExportLeftHashesHelperAPI": { "type": "object", "properties": { "hashlistId": { "type": "integer" } } },
+ "ExportWordlistHelperAPI": { "type": "object", "properties": { "hashlistId": { "type": "integer" } } },
+ "ImportCrackedHashesHelperAPI": {
+ "type": "object",
+ "properties": {
+ "hashlistId": { "type": "integer" },
+ "sourceType": { "type": "string" },
+ "sourceData": { "type": "string" },
+ "separator": { "type": "string" },
+ "overwrite": { "type": "integer" }
+ }
+ },
+ "ImportCrackedHashesHelperAPIResponse": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "totalLines": { "type": "integer", "default": 100 },
+ "newCracked": { "type": "integer", "default": 5 },
+ "alreadyCracked": { "type": "integer", "default": 2 },
+ "invalid": { "type": "integer", "default": 1 },
+ "notFound": { "type": "integer", "default": 1 },
+ "processTime": { "type": "integer", "default": 60 },
+ "tooLongPlaintexts": { "type": "integer", "default": 4 }
+ }
+ }
+ },
+ "ImportFileHelperAPI": { "type": "object", "properties": {} },
+ "MaskSupertaskBuilderHelperAPI": {
+ "type": "object",
+ "properties": {
+ "name": { "type": "string" },
+ "isCpu": { "type": "boolean" },
+ "isSmall": { "type": "boolean" },
+ "optimized": { "type": "boolean" },
+ "crackerBinaryTypeId": { "type": "integer" },
+ "benchtype": { "type": "string" },
+ "masks": { "type": "string" },
+ "maxAgents": { "type": "integer" }
+ }
+ },
+ "PurgeTaskHelperAPI": { "type": "object", "properties": { "taskId": { "type": "integer" } } },
+ "PurgeTaskHelperAPIResponse": {
+ "type": "array",
+ "items": { "type": "object", "properties": { "Purge": { "type": "string", "default": "Success" } } }
+ },
+ "RebuildChunkCacheHelperAPI": { "type": "object", "properties": {} },
+ "RebuildChunkCacheHelperAPIResponse": {
+ "type": "array",
+ "items": { "type": "object", "properties": { "Rebuild": { "type": "string", "default": "Success" } } }
+ },
+ "RecountFileLinesHelperAPI": { "type": "object", "properties": { "fileId": { "type": "integer" } } },
+ "RescanGlobalFilesHelperAPI": { "type": "object", "properties": {} },
+ "RescanGlobalFilesHelperAPIResponse": {
+ "type": "array",
+ "items": { "type": "object", "properties": { "Rescan": { "type": "string", "default": "Success" } } }
+ },
+ "ResetChunkHelperAPI": { "type": "object", "properties": { "chunkId": { "type": "integer" } } },
+ "ResetChunkHelperAPIResponse": {
+ "type": "array",
+ "items": { "type": "object", "properties": { "Reset": { "type": "string", "default": "Success" } } }
+ },
+ "ResetUserPasswordHelperAPI": {
+ "type": "object",
+ "properties": { "email": { "type": "string" }, "username": { "type": "string" } }
+ },
+ "ResetUserPasswordHelperAPIResponse": {
+ "type": "array",
+ "items": { "type": "object", "properties": { "Reset": { "type": "string", "default": "Success" } } }
+ },
+ "SearchHashesHelperAPI": {
+ "type": "object",
+ "properties": {
+ "searchData": { "type": "string" },
+ "separator": { "type": "string" },
+ "isSalted": { "type": "boolean" }
+ }
+ },
+ "SearchHashesHelperAPIResponse": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "0": { "type": "object", "default": { "found": false, "query": "12345678" } },
+ "1": {
+ "type": "object",
+ "default": {
+ "found": true,
+ "query": "54321",
+ "matches": [
+ {
+ "type": "hash",
+ "id": 552,
+ "attributes": {
+ "hashlistId": 5,
+ "hash": "7682543218768",
+ "salt": "",
+ "plaintext": "",
+ "timeCracked": 0,
+ "chunkId": null,
+ "isCracked": false,
+ "crackPos": 0
+ },
+ "links": { "self": "/api/v2/ui/hashes/552" },
+ "relationships": {
+ "chunk": {
+ "links": {
+ "self": "/api/v2/ui/hashes/552/relationships/chunk",
+ "related": "/api/v2/ui/hashes/552/chunk"
+ }
+ },
+ "hashlist": {
+ "links": {
+ "self": "/api/v2/ui/hashes/552/relationships/hashlist",
+ "related": "/api/v2/ui/hashes/552/hashlist"
+ }
+ }
+ }
+ },
+ {
+ "type": "hash",
+ "id": 1,
+ "attributes": {
+ "hashlistId": 5,
+ "hash": "54321768671",
+ "salt": "",
+ "plaintext": "",
+ "timeCracked": 0,
+ "chunkId": null,
+ "isCracked": false,
+ "crackPos": 0
+ },
+ "links": { "self": "/api/v2/ui/hashes/1" },
+ "relationships": {
+ "chunk": {
+ "links": {
+ "self": "/api/v2/ui/hashes/1/relationships/chunk",
+ "related": "/api/v2/ui/hashes/1/chunk"
+ }
+ },
+ "hashlist": {
+ "links": {
+ "self": "/api/v2/ui/hashes/1/relationships/hashlist",
+ "related": "/api/v2/ui/hashes/1/hashlist"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "SetUserPasswordHelperAPI": {
+ "type": "object",
+ "properties": { "userId": { "type": "integer" }, "password": { "type": "string" } }
+ },
+ "SetUserPasswordHelperAPIResponse": {
+ "type": "array",
+ "items": { "type": "object", "properties": { "Set password": { "type": "string", "default": "Success" } } }
+ },
+ "UnassignAgentHelperAPI": { "type": "object", "properties": { "agentId": { "type": "integer" } } },
+ "UnassignAgentHelperAPIResponse": {
+ "type": "array",
+ "items": { "type": "object", "properties": { "Unassign": { "type": "string", "default": "Success" } } }
+ },
+ "Token": {
+ "type": "object",
+ "required": ["token", "expires"],
+ "properties": { "token": { "type": "string" }, "expires": { "type": "integer" } },
+ "additionalProperties": false
+ },
+ "TokenRequest": { "type": "array", "items": { "type": "string", "example": "role.all" } }
+ },
+ "securitySchemes": {
+ "bearerAuth": {
+ "type": "http",
+ "description": "JWT Authorization header using the Bearer scheme.",
+ "scheme": "bearer",
+ "bearerFormat": "JWT"
+ },
+ "basicAuth": { "type": "http", "description": "Basic Authorization header.", "scheme": "basic" }
+ }
+ },
+ "tags": [
+ { "name": "AccessGroups" },
+ { "name": "AgentAssignments" },
+ { "name": "AgentBinarys" },
+ { "name": "AgentErrors" },
+ { "name": "AgentStats" },
+ { "name": "Agents" },
+ { "name": "ApiTokens" },
+ { "name": "Chunks" },
+ { "name": "ConfigSections" },
+ { "name": "Configs" },
+ { "name": "CrackerBinaryTypes" },
+ { "name": "CrackerBinarys" },
+ { "name": "Files" },
+ { "name": "GlobalPermissionGroups" },
+ { "name": "HashTypes" },
+ { "name": "Hashlists" },
+ { "name": "Hashs" },
+ { "name": "HealthCheckAgents" },
+ { "name": "HealthChecks" },
+ { "name": "Helpers" },
+ { "name": "LogEntrys" },
+ { "name": "Login" },
+ { "name": "NotificationSettings" },
+ { "name": "PreTasks" },
+ { "name": "Preprocessors" },
+ { "name": "Speeds" },
+ { "name": "Supertasks" },
+ { "name": "TaskWrappers" },
+ { "name": "Tasks" },
+ { "name": "Users" },
+ { "name": "Vouchers" }
+ ]
+}
diff --git a/package-lock.json b/package-lock.json
index 0fed67084..12a453e0e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -60,6 +60,9 @@
"@eslint/compat": "^2.0.2",
"@eslint/eslintrc": "^3.3.4",
"@eslint/js": "^9.39.3",
+ "@hey-api/openapi-ts": "^0.94.2",
+ "@redocly/cli": "^2.24.0",
+ "@stoplight/spectral-cli": "^6.15.0",
"@trivago/prettier-plugin-sort-imports": "^4.2.1",
"@types/jasmine": "~4.3.5",
"@types/node": "^20.5.0",
@@ -852,34 +855,6 @@
}
}
},
- "node_modules/@angular/compiler-cli/node_modules/chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
- "license": "MIT",
- "dependencies": {
- "readdirp": "^4.0.1"
- },
- "engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@angular/compiler-cli/node_modules/readdirp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
- "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
- "license": "MIT",
- "engines": {
- "node": ">= 14.18.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
"node_modules/@angular/core": {
"version": "20.3.17",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.17.tgz",
@@ -1026,6 +1001,16 @@
"rxjs": "^6.5.3 || ^7.4.0"
}
},
+ "node_modules/@asyncapi/specs": {
+ "version": "6.11.1",
+ "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.11.1.tgz",
+ "integrity": "sha512-A3WBLqAKGoJ2+6FWFtpjBlCQ1oFCcs4GxF7zsIGvNqp/klGUHjlA3aAcZ9XMMpLGE8zPeYDz2x9FmO6DSuKraQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.11"
+ }
+ },
"node_modules/@babel/code-frame": {
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
@@ -1360,6 +1345,30 @@
"node": ">=0.1.90"
}
},
+ "node_modules/@emotion/is-prop-valid": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz",
+ "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/memoize": "^0.9.0"
+ }
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
+ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@emotion/unitless": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
+ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@esbuild/aix-ppc64": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz",
@@ -2014,6 +2023,24 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
+ "node_modules/@exodus/schemasafe": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz",
+ "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@faker-js/faker": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-7.6.0.tgz",
+ "integrity": "sha512-XK6BTq1NDMo9Xqw/YkYyGjSsg44fbNwYRx7QK2CuoQgyy+f1rrTDHoExVM5PsyXCtfl2vs2vVJ0MN0yN6LppRw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0",
+ "npm": ">=6.0.0"
+ }
+ },
"node_modules/@fast-csv/format": {
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz",
@@ -2159,6 +2186,101 @@
"node": "^20.17.0 || >=22.9.0"
}
},
+ "node_modules/@hey-api/codegen-core": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/@hey-api/codegen-core/-/codegen-core-0.7.3.tgz",
+ "integrity": "sha512-tRxwr8hPbPgETbcfxbg0K4nZZxUM51I0hEHfLEWLmsTbnpY/E4CU25/PyHXD0KdKQS4TwkAL2csEXFQth6AzBQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@hey-api/types": "0.1.4",
+ "ansi-colors": "4.1.3",
+ "c12": "3.3.3",
+ "color-support": "1.1.3"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/hey-api"
+ }
+ },
+ "node_modules/@hey-api/json-schema-ref-parser": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@hey-api/json-schema-ref-parser/-/json-schema-ref-parser-1.3.1.tgz",
+ "integrity": "sha512-7atnpUkT8TyUPHYPLk91j/GyaqMuwTEHanLOe50Dlx0EEvNuQqFD52Yjg8x4KU0UFL1mWlyhE+sUE/wAtQ1N2A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jsdevtools/ono": "7.1.3",
+ "@types/json-schema": "7.0.15",
+ "js-yaml": "4.1.1"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/hey-api"
+ }
+ },
+ "node_modules/@hey-api/openapi-ts": {
+ "version": "0.94.2",
+ "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.94.2.tgz",
+ "integrity": "sha512-k8BmVfRZ3Ntpt99+0wzbw18sssf9mMgCpUFi9hTdUTGCgXEFlCnM6HW6tWZjPtT4CbclNqLVvSrfIABrRE88YA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@hey-api/codegen-core": "0.7.3",
+ "@hey-api/json-schema-ref-parser": "1.3.1",
+ "@hey-api/shared": "0.2.4",
+ "@hey-api/types": "0.1.4",
+ "ansi-colors": "4.1.3",
+ "color-support": "1.1.3",
+ "commander": "14.0.3",
+ "get-tsconfig": "4.13.6"
+ },
+ "bin": {
+ "openapi-ts": "bin/run.js"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/hey-api"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.5.3 || 6.0.1-rc"
+ }
+ },
+ "node_modules/@hey-api/shared": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@hey-api/shared/-/shared-0.2.4.tgz",
+ "integrity": "sha512-a3YPByL+odEY9QnEh0uhPJZFgLxzB4YEss+8mexU4ZQ3sL3Y/BbEiDPhLT2HI9xXgagYK/KScy8J7Jm14Zma0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@hey-api/codegen-core": "0.7.3",
+ "@hey-api/json-schema-ref-parser": "1.3.1",
+ "@hey-api/types": "0.1.4",
+ "ansi-colors": "4.1.3",
+ "cross-spawn": "7.0.6",
+ "open": "11.0.0",
+ "semver": "7.7.3"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/hey-api"
+ }
+ },
+ "node_modules/@hey-api/types": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@hey-api/types/-/types-0.1.4.tgz",
+ "integrity": "sha512-thWfawrDIP7wSI9ioT13I5soaaqB5vAPIiZmgD8PbeEVKNrkonc0N/Sjj97ezl7oQgusZmaNphGdMKipPO6IBg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@hono/node-server": {
"version": "1.19.10",
"resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.10.tgz",
@@ -2210,6 +2332,16 @@
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@humanwhocodes/momoa": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz",
+ "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
"node_modules/@humanwhocodes/retry": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
@@ -2643,6 +2775,52 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@jsdevtools/ono": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz",
+ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jsep-plugin/assignment": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz",
+ "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.16.0"
+ },
+ "peerDependencies": {
+ "jsep": "^0.4.0||^1.0.0"
+ }
+ },
+ "node_modules/@jsep-plugin/regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz",
+ "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.16.0"
+ },
+ "peerDependencies": {
+ "jsep": "^0.4.0||^1.0.0"
+ }
+ },
+ "node_modules/@jsep-plugin/ternary": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@jsep-plugin/ternary/-/ternary-1.1.4.tgz",
+ "integrity": "sha512-ck5wiqIbqdMX6WRQztBL7ASDty9YLgJ3sSAK5ZpBzXeySvFGCzIvM6UiAI4hTZ22fEcYQVV/zhUbNscggW+Ukg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.16.0"
+ },
+ "peerDependencies": {
+ "jsep": "^0.4.0||^1.0.0"
+ }
+ },
"node_modules/@listr2/prompt-adapter-inquirer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-3.0.1.tgz",
@@ -3247,6 +3425,57 @@
"rxjs": "^6.5.3 || ^7.5.0"
}
},
+ "node_modules/@noble/hashes": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/@npmcli/agent": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.0.tgz",
@@ -3552,97 +3781,307 @@
"node": "^20.17.0 || >=22.9.0"
}
},
- "node_modules/@parcel/watcher": {
- "version": "2.5.6",
- "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz",
- "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==",
+ "node_modules/@opentelemetry/api": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
+ "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
"dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
+ "license": "Apache-2.0",
+ "peer": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@opentelemetry/api-logs": {
+ "version": "0.202.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.202.0.tgz",
+ "integrity": "sha512-fTBjMqKCfotFWfLzaKyhjLvyEyq5vDKTTFfBmx21btv3gvy8Lq6N5Dh2OzqeuN4DjtpSvNT1uNVfg08eD2Rfxw==",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "detect-libc": "^2.0.3",
- "is-glob": "^4.0.3",
- "node-addon-api": "^7.0.0",
- "picomatch": "^4.0.3"
+ "@opentelemetry/api": "^1.3.0"
},
"engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "@parcel/watcher-android-arm64": "2.5.6",
- "@parcel/watcher-darwin-arm64": "2.5.6",
- "@parcel/watcher-darwin-x64": "2.5.6",
- "@parcel/watcher-freebsd-x64": "2.5.6",
- "@parcel/watcher-linux-arm-glibc": "2.5.6",
- "@parcel/watcher-linux-arm-musl": "2.5.6",
- "@parcel/watcher-linux-arm64-glibc": "2.5.6",
- "@parcel/watcher-linux-arm64-musl": "2.5.6",
- "@parcel/watcher-linux-x64-glibc": "2.5.6",
- "@parcel/watcher-linux-x64-musl": "2.5.6",
- "@parcel/watcher-win32-arm64": "2.5.6",
- "@parcel/watcher-win32-ia32": "2.5.6",
- "@parcel/watcher-win32-x64": "2.5.6"
+ "node": ">=8.0.0"
}
},
- "node_modules/@parcel/watcher-android-arm64": {
- "version": "2.5.6",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz",
- "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@opentelemetry/context-async-hooks": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-2.0.1.tgz",
+ "integrity": "sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 10.0.0"
+ "node": "^18.19.0 || >=20.6.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
- "node_modules/@parcel/watcher-darwin-arm64": {
- "version": "2.5.6",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz",
- "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@opentelemetry/core": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.1.tgz",
+ "integrity": "sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "^1.29.0"
+ },
"engines": {
- "node": ">= 10.0.0"
+ "node": "^18.19.0 || >=20.6.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
- "node_modules/@parcel/watcher-darwin-x64": {
- "version": "2.5.6",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz",
- "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@opentelemetry/exporter-trace-otlp-http": {
+ "version": "0.202.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.202.0.tgz",
+ "integrity": "sha512-/hKE8DaFCJuaQqE1IxpgkcjOolUIwgi3TgHElPVKGdGRBSmJMTmN/cr6vWa55pCJIXPyhKvcMrbrya7DZ3VmzA==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "2.0.1",
+ "@opentelemetry/otlp-exporter-base": "0.202.0",
+ "@opentelemetry/otlp-transformer": "0.202.0",
+ "@opentelemetry/resources": "2.0.1",
+ "@opentelemetry/sdk-trace-base": "2.0.1"
+ },
+ "engines": {
+ "node": "^18.19.0 || >=20.6.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/otlp-exporter-base": {
+ "version": "0.202.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.202.0.tgz",
+ "integrity": "sha512-nMEOzel+pUFYuBJg2znGmHJWbmvMbdX5/RhoKNKowguMbURhz0fwik5tUKplLcUtl8wKPL1y9zPnPxeBn65N0Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "2.0.1",
+ "@opentelemetry/otlp-transformer": "0.202.0"
+ },
+ "engines": {
+ "node": "^18.19.0 || >=20.6.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/otlp-transformer": {
+ "version": "0.202.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.202.0.tgz",
+ "integrity": "sha512-5XO77QFzs9WkexvJQL9ksxL8oVFb/dfi9NWQSq7Sv0Efr9x3N+nb1iklP1TeVgxqJ7m1xWiC/Uv3wupiQGevMw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/api-logs": "0.202.0",
+ "@opentelemetry/core": "2.0.1",
+ "@opentelemetry/resources": "2.0.1",
+ "@opentelemetry/sdk-logs": "0.202.0",
+ "@opentelemetry/sdk-metrics": "2.0.1",
+ "@opentelemetry/sdk-trace-base": "2.0.1",
+ "protobufjs": "^7.3.0"
+ },
+ "engines": {
+ "node": "^18.19.0 || >=20.6.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/resources": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.1.tgz",
+ "integrity": "sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "2.0.1",
+ "@opentelemetry/semantic-conventions": "^1.29.0"
+ },
+ "engines": {
+ "node": "^18.19.0 || >=20.6.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.3.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-logs": {
+ "version": "0.202.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.202.0.tgz",
+ "integrity": "sha512-pv8QiQLQzk4X909YKm0lnW4hpuQg4zHwJ4XBd5bZiXcd9urvrJNoNVKnxGHPiDVX/GiLFvr5DMYsDBQbZCypRQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/api-logs": "0.202.0",
+ "@opentelemetry/core": "2.0.1",
+ "@opentelemetry/resources": "2.0.1"
+ },
+ "engines": {
+ "node": "^18.19.0 || >=20.6.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.4.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-metrics": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-2.0.1.tgz",
+ "integrity": "sha512-wf8OaJoSnujMAHWR3g+/hGvNcsC16rf9s1So4JlMiFaFHiE4HpIA3oUh+uWZQ7CNuK8gVW/pQSkgoa5HkkOl0g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "2.0.1",
+ "@opentelemetry/resources": "2.0.1"
+ },
+ "engines": {
+ "node": "^18.19.0 || >=20.6.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.9.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-base": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.0.1.tgz",
+ "integrity": "sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "2.0.1",
+ "@opentelemetry/resources": "2.0.1",
+ "@opentelemetry/semantic-conventions": "^1.29.0"
+ },
+ "engines": {
+ "node": "^18.19.0 || >=20.6.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.3.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-node": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-2.0.1.tgz",
+ "integrity": "sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/context-async-hooks": "2.0.1",
+ "@opentelemetry/core": "2.0.1",
+ "@opentelemetry/sdk-trace-base": "2.0.1"
+ },
+ "engines": {
+ "node": "^18.19.0 || >=20.6.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.34.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.34.0.tgz",
+ "integrity": "sha512-aKcOkyrorBGlajjRdVoJWHTxfxO1vCNHLJVlSDaRHDIdjU+pX8IYQPvPDkYiujKLbRnWU+1TBwEt0QRgSm4SGA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz",
+ "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^2.0.3",
+ "is-glob": "^4.0.3",
+ "node-addon-api": "^7.0.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.6",
+ "@parcel/watcher-darwin-arm64": "2.5.6",
+ "@parcel/watcher-darwin-x64": "2.5.6",
+ "@parcel/watcher-freebsd-x64": "2.5.6",
+ "@parcel/watcher-linux-arm-glibc": "2.5.6",
+ "@parcel/watcher-linux-arm-musl": "2.5.6",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.6",
+ "@parcel/watcher-linux-arm64-musl": "2.5.6",
+ "@parcel/watcher-linux-x64-glibc": "2.5.6",
+ "@parcel/watcher-linux-x64-musl": "2.5.6",
+ "@parcel/watcher-win32-arm64": "2.5.6",
+ "@parcel/watcher-win32-ia32": "2.5.6",
+ "@parcel/watcher-win32-x64": "2.5.6"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz",
+ "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz",
+ "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz",
+ "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
],
"engines": {
"node": ">= 10.0.0"
@@ -3883,6 +4322,80 @@
"url": "https://opencollective.com/pkgr"
}
},
+ "node_modules/@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "node_modules/@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
"node_modules/@puppeteer/browsers": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.0.tgz",
@@ -4035,35 +4548,353 @@
"node": ">=12"
}
},
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
- "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@redocly/ajv": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
},
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.59.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
- "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@redocly/cli": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-2.24.0.tgz",
+ "integrity": "sha512-g5iKfmG1rgbpQ/mBnEH78bJbAUx2XxLSJTYdYGuvsrT8CODbOyza1xFF7kwOFo93JV62lmu3IfzNIxFj9FACYw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
+ "dependencies": {
+ "@opentelemetry/exporter-trace-otlp-http": "0.202.0",
+ "@opentelemetry/resources": "2.0.1",
+ "@opentelemetry/sdk-trace-node": "2.0.1",
+ "@opentelemetry/semantic-conventions": "1.34.0",
+ "@redocly/openapi-core": "2.24.0",
+ "@redocly/respect-core": "2.24.0",
+ "abort-controller": "^3.0.0",
+ "ajv": "npm:@redocly/ajv@8.18.0",
+ "ajv-formats": "^3.0.1",
+ "colorette": "^1.2.0",
+ "cookie": "^0.7.2",
+ "dotenv": "16.4.7",
+ "glob": "^13.0.5",
+ "handlebars": "^4.7.6",
+ "https-proxy-agent": "^7.0.5",
+ "mobx": "^6.0.4",
+ "picomatch": "^4.0.3",
+ "pluralize": "^8.0.0",
+ "react": "^17.0.0 || ^18.2.0 || ^19.2.1",
+ "react-dom": "^17.0.0 || ^18.2.0 || ^19.2.1",
+ "redoc": "2.5.1",
+ "semver": "^7.5.2",
+ "set-cookie-parser": "^2.3.5",
+ "simple-websocket": "^9.0.0",
+ "styled-components": "6.3.9",
+ "ulid": "^3.0.1",
+ "undici": "^6.24.1",
+ "yargs": "17.0.1"
+ },
+ "bin": {
+ "openapi": "bin/cli.js",
+ "redocly": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=22.12.0 || >=20.19.0 <21.0.0",
+ "npm": ">=10"
+ }
},
- "node_modules/@rollup/rollup-darwin-arm64": {
+ "node_modules/@redocly/cli/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/brace-expansion": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
+ "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@redocly/cli/node_modules/dotenv": {
+ "version": "16.4.7",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
+ "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@redocly/cli/node_modules/glob": {
+ "version": "13.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz",
+ "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "minimatch": "^10.2.2",
+ "minipass": "^7.1.3",
+ "path-scurry": "^2.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/minimatch": {
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
+ "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "brace-expansion": "^5.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/yargs": {
+ "version": "17.0.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz",
+ "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@redocly/cli/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@redocly/config": {
+ "version": "0.44.1",
+ "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.44.1.tgz",
+ "integrity": "sha512-l6/ZE+/RBfNDdhzltau6cbW8+k5PgJbJBMqaBrlQlZQlmGBHMxqGyDaon4dPLj0jdi37gsMQ3yf95JBY/vaDSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json-schema-to-ts": "2.7.2"
+ }
+ },
+ "node_modules/@redocly/openapi-core": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-2.24.0.tgz",
+ "integrity": "sha512-4j8+OKA+bFBOj9Uhr6LJuNnFQpKAE9uK5Smw4yd2WJS2bcsJhCqbUWOG9N1cYBUFlwRQpLBT1ZOSmDFYv81NOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@redocly/ajv": "^8.18.0",
+ "@redocly/config": "^0.44.1",
+ "ajv": "npm:@redocly/ajv@8.18.0",
+ "ajv-formats": "^3.0.1",
+ "colorette": "^1.2.0",
+ "js-levenshtein": "^1.1.6",
+ "js-yaml": "^4.1.0",
+ "picomatch": "^4.0.3",
+ "pluralize": "^8.0.0",
+ "yaml-ast-parser": "0.0.43"
+ },
+ "engines": {
+ "node": ">=22.12.0 || >=20.19.0 <21.0.0",
+ "npm": ">=10"
+ }
+ },
+ "node_modules/@redocly/openapi-core/node_modules/colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@redocly/respect-core": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/@redocly/respect-core/-/respect-core-2.24.0.tgz",
+ "integrity": "sha512-3Gp+4X5V6DCATmB7OYpUrGKEYaR8quq2LD+PsniEAMTfG+oyuDHJRUy3zXYfGQGT7PDi0iXUZ8PEWUFzgVdyZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@faker-js/faker": "^7.6.0",
+ "@noble/hashes": "^1.8.0",
+ "@redocly/ajv": "^8.18.0",
+ "@redocly/openapi-core": "2.24.0",
+ "ajv": "npm:@redocly/ajv@8.18.0",
+ "better-ajv-errors": "^1.2.0",
+ "colorette": "^2.0.20",
+ "json-pointer": "^0.6.2",
+ "jsonpath-rfc9535": "1.3.0",
+ "openapi-sampler": "^1.7.1",
+ "outdent": "^0.8.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=22.12.0 || >=20.19.0 <21.0.0",
+ "npm": ">=10"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
+ "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
+ "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz",
"integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==",
@@ -4506,33 +5337,900 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@swc/helpers": {
- "version": "0.5.19",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.19.tgz",
- "integrity": "sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==",
+ "node_modules/@stoplight/better-ajv-errors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@stoplight/better-ajv-errors/-/better-ajv-errors-1.0.3.tgz",
+ "integrity": "sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==",
+ "dev": true,
"license": "Apache-2.0",
"dependencies": {
- "tslib": "^2.8.0"
+ "jsonpointer": "^5.0.0",
+ "leven": "^3.1.0"
+ },
+ "engines": {
+ "node": "^12.20 || >= 14.13"
+ },
+ "peerDependencies": {
+ "ajv": ">=8"
}
},
- "node_modules/@tailwindcss/node": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.1.tgz",
- "integrity": "sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==",
- "license": "MIT",
+ "node_modules/@stoplight/json": {
+ "version": "3.21.7",
+ "resolved": "https://registry.npmjs.org/@stoplight/json/-/json-3.21.7.tgz",
+ "integrity": "sha512-xcJXgKFqv/uCEgtGlPxy3tPA+4I+ZI4vAuMJ885+ThkTHFVkC+0Fm58lA9NlsyjnkpxFh4YiQWpH+KefHdbA0A==",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@jridgewell/remapping": "^2.3.5",
- "enhanced-resolve": "^5.19.0",
- "jiti": "^2.6.1",
- "lightningcss": "1.31.1",
- "magic-string": "^0.30.21",
- "source-map-js": "^1.2.1",
- "tailwindcss": "4.2.1"
+ "@stoplight/ordered-object-literal": "^1.0.3",
+ "@stoplight/path": "^1.3.2",
+ "@stoplight/types": "^13.6.0",
+ "jsonc-parser": "~2.2.1",
+ "lodash": "^4.17.21",
+ "safe-stable-stringify": "^1.1"
+ },
+ "engines": {
+ "node": ">=8.3.0"
}
},
- "node_modules/@tailwindcss/node/node_modules/magic-string": {
- "version": "0.30.21",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "node_modules/@stoplight/json-ref-readers": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@stoplight/json-ref-readers/-/json-ref-readers-1.2.2.tgz",
+ "integrity": "sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "node-fetch": "^2.6.0",
+ "tslib": "^1.14.1"
+ },
+ "engines": {
+ "node": ">=8.3.0"
+ }
+ },
+ "node_modules/@stoplight/json-ref-readers/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/@stoplight/json-ref-resolver": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/@stoplight/json-ref-resolver/-/json-ref-resolver-3.1.6.tgz",
+ "integrity": "sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/json": "^3.21.0",
+ "@stoplight/path": "^1.3.2",
+ "@stoplight/types": "^12.3.0 || ^13.0.0",
+ "@types/urijs": "^1.19.19",
+ "dependency-graph": "~0.11.0",
+ "fast-memoize": "^2.5.2",
+ "immer": "^9.0.6",
+ "lodash": "^4.17.21",
+ "tslib": "^2.6.0",
+ "urijs": "^1.19.11"
+ },
+ "engines": {
+ "node": ">=8.3.0"
+ }
+ },
+ "node_modules/@stoplight/json/node_modules/jsonc-parser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz",
+ "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@stoplight/ordered-object-literal": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.5.tgz",
+ "integrity": "sha512-COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/path": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@stoplight/path/-/path-1.3.2.tgz",
+ "integrity": "sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/spectral-cli": {
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-cli/-/spectral-cli-6.15.0.tgz",
+ "integrity": "sha512-FVeQIuqQQnnLfa8vy+oatTKUve7uU+3SaaAfdjpX/B+uB1NcfkKRJYhKT9wMEehDRaMPL5AKIRYMCFerdEbIpw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/json": "~3.21.0",
+ "@stoplight/path": "1.3.2",
+ "@stoplight/spectral-core": "^1.19.5",
+ "@stoplight/spectral-formatters": "^1.4.1",
+ "@stoplight/spectral-parsers": "^1.0.4",
+ "@stoplight/spectral-ref-resolver": "^1.0.4",
+ "@stoplight/spectral-ruleset-bundler": "^1.6.0",
+ "@stoplight/spectral-ruleset-migrator": "^1.11.0",
+ "@stoplight/spectral-rulesets": ">=1",
+ "@stoplight/spectral-runtime": "^1.1.2",
+ "@stoplight/types": "^13.6.0",
+ "chalk": "4.1.2",
+ "fast-glob": "~3.2.12",
+ "hpagent": "~1.2.0",
+ "lodash": "~4.17.21",
+ "pony-cause": "^1.1.1",
+ "stacktracey": "^2.1.8",
+ "tslib": "^2.8.1",
+ "yargs": "~17.7.2"
+ },
+ "bin": {
+ "spectral": "dist/index.js"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-cli/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/spectral-cli/node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@stoplight/spectral-cli/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@stoplight/spectral-cli/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/spectral-cli/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/spectral-cli/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/spectral-cli/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@stoplight/spectral-cli/node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@stoplight/spectral-cli/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@stoplight/spectral-core": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-core/-/spectral-core-1.21.0.tgz",
+ "integrity": "sha512-oj4e/FrDLUhBRocIW+lRMKlJ/q/rDZw61HkLbTFsdMd+f/FTkli2xHNB1YC6n1mrMKjjvy7XlUuFkC7XxtgbWw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/better-ajv-errors": "1.0.3",
+ "@stoplight/json": "~3.21.0",
+ "@stoplight/path": "1.3.2",
+ "@stoplight/spectral-parsers": "^1.0.0",
+ "@stoplight/spectral-ref-resolver": "^1.0.4",
+ "@stoplight/spectral-runtime": "^1.1.2",
+ "@stoplight/types": "~13.6.0",
+ "@types/es-aggregate-error": "^1.0.2",
+ "@types/json-schema": "^7.0.11",
+ "ajv": "^8.17.1",
+ "ajv-errors": "~3.0.0",
+ "ajv-formats": "~2.1.1",
+ "es-aggregate-error": "^1.0.7",
+ "jsonpath-plus": "^10.3.0",
+ "lodash": "~4.17.23",
+ "lodash.topath": "^4.5.2",
+ "minimatch": "3.1.2",
+ "nimma": "0.2.3",
+ "pony-cause": "^1.1.1",
+ "simple-eval": "1.0.1",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-core/node_modules/@stoplight/types": {
+ "version": "13.6.0",
+ "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.6.0.tgz",
+ "integrity": "sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.4",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": "^12.20 || >=14.13"
+ }
+ },
+ "node_modules/@stoplight/spectral-core/node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@stoplight/spectral-core/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@stoplight/spectral-formats": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-formats/-/spectral-formats-1.8.2.tgz",
+ "integrity": "sha512-c06HB+rOKfe7tuxg0IdKDEA5XnjL2vrn/m/OVIIxtINtBzphZrOgtRn7epQ5bQF5SWp84Ue7UJWaGgDwVngMFw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/json": "^3.17.0",
+ "@stoplight/spectral-core": "^1.19.2",
+ "@types/json-schema": "^7.0.7",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-formatters": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-formatters/-/spectral-formatters-1.5.0.tgz",
+ "integrity": "sha512-lR7s41Z00Mf8TdXBBZQ3oi2uR8wqAtR6NO0KA8Ltk4FSpmAy0i6CKUmJG9hZQjanTnGmwpQkT/WP66p1GY3iXA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/path": "^1.3.2",
+ "@stoplight/spectral-core": "^1.19.4",
+ "@stoplight/spectral-runtime": "^1.1.2",
+ "@stoplight/types": "^13.15.0",
+ "@types/markdown-escape": "^1.1.3",
+ "chalk": "4.1.2",
+ "cliui": "7.0.4",
+ "lodash": "^4.17.21",
+ "markdown-escape": "^2.0.0",
+ "node-sarif-builder": "^2.0.3",
+ "strip-ansi": "6.0",
+ "text-table": "^0.2.0",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-formatters/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/spectral-formatters/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/@stoplight/spectral-formatters/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@stoplight/spectral-formatters/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/spectral-formatters/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/spectral-formatters/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@stoplight/spectral-formatters/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@stoplight/spectral-functions": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-functions/-/spectral-functions-1.10.1.tgz",
+ "integrity": "sha512-obu8ZfoHxELOapfGsCJixKZXZcffjg+lSoNuttpmUFuDzVLT3VmH8QkPXfOGOL5Pz80BR35ClNAToDkdnYIURg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/better-ajv-errors": "1.0.3",
+ "@stoplight/json": "^3.17.1",
+ "@stoplight/spectral-core": "^1.19.4",
+ "@stoplight/spectral-formats": "^1.8.1",
+ "@stoplight/spectral-runtime": "^1.1.2",
+ "ajv": "^8.17.1",
+ "ajv-draft-04": "~1.0.0",
+ "ajv-errors": "~3.0.0",
+ "ajv-formats": "~2.1.1",
+ "lodash": "~4.17.21",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-functions/node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@stoplight/spectral-parsers": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-parsers/-/spectral-parsers-1.0.5.tgz",
+ "integrity": "sha512-ANDTp2IHWGvsQDAY85/jQi9ZrF4mRrA5bciNHX+PUxPr4DwS6iv4h+FVWJMVwcEYdpyoIdyL+SRmHdJfQEPmwQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/json": "~3.21.0",
+ "@stoplight/types": "^14.1.1",
+ "@stoplight/yaml": "~4.3.0",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-parsers/node_modules/@stoplight/types": {
+ "version": "14.1.1",
+ "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz",
+ "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.4",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": "^12.20 || >=14.13"
+ }
+ },
+ "node_modules/@stoplight/spectral-ref-resolver": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-ref-resolver/-/spectral-ref-resolver-1.0.5.tgz",
+ "integrity": "sha512-gj3TieX5a9zMW29z3mBlAtDOCgN3GEc1VgZnCVlr5irmR4Qi5LuECuFItAq4pTn5Zu+sW5bqutsCH7D4PkpyAA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/json-ref-readers": "1.2.2",
+ "@stoplight/json-ref-resolver": "~3.1.6",
+ "@stoplight/spectral-runtime": "^1.1.2",
+ "dependency-graph": "0.11.0",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-bundler": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-bundler/-/spectral-ruleset-bundler-1.6.3.tgz",
+ "integrity": "sha512-AQFRO6OCKg8SZJUupnr3+OzI1LrMieDTEUHsYgmaRpNiDRPvzImE3bzM1KyQg99q58kTQyZ8kpr7sG8Lp94RRA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@rollup/plugin-commonjs": "~22.0.2",
+ "@stoplight/path": "1.3.2",
+ "@stoplight/spectral-core": ">=1",
+ "@stoplight/spectral-formats": "^1.8.1",
+ "@stoplight/spectral-functions": ">=1",
+ "@stoplight/spectral-parsers": ">=1",
+ "@stoplight/spectral-ref-resolver": "^1.0.4",
+ "@stoplight/spectral-ruleset-migrator": "^1.9.6",
+ "@stoplight/spectral-rulesets": ">=1",
+ "@stoplight/spectral-runtime": "^1.1.2",
+ "@stoplight/types": "^13.6.0",
+ "@types/node": "*",
+ "pony-cause": "1.1.1",
+ "rollup": "~2.79.2",
+ "tslib": "^2.8.1",
+ "validate-npm-package-name": "3.0.0"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-bundler/node_modules/@rollup/plugin-commonjs": {
+ "version": "22.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz",
+ "integrity": "sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^3.1.0",
+ "commondir": "^1.0.1",
+ "estree-walker": "^2.0.1",
+ "glob": "^7.1.6",
+ "is-reference": "^1.2.1",
+ "magic-string": "^0.25.7",
+ "resolve": "^1.17.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.68.0"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-bundler/node_modules/@rollup/pluginutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "0.0.39",
+ "estree-walker": "^1.0.1",
+ "picomatch": "^2.2.2"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-bundler/node_modules/@rollup/pluginutils/node_modules/estree-walker": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@stoplight/spectral-ruleset-bundler/node_modules/@types/estree": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
+ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@stoplight/spectral-ruleset-bundler/node_modules/magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-bundler/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-bundler/node_modules/rollup": {
+ "version": "2.79.2",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
+ "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-bundler/node_modules/validate-npm-package-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+ "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "builtins": "^1.0.3"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-migrator": {
+ "version": "1.11.3",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-migrator/-/spectral-ruleset-migrator-1.11.3.tgz",
+ "integrity": "sha512-+9Y1zFxYmSsneT5FPkgS1IlRQs0VgtdMT77f5xf6vzje9ezyhfs7oXwbZOCSZjEJew8iVZBKQtiOFndcBrdtqg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/json": "~3.21.0",
+ "@stoplight/ordered-object-literal": "~1.0.4",
+ "@stoplight/path": "1.3.2",
+ "@stoplight/spectral-functions": "^1.9.1",
+ "@stoplight/spectral-runtime": "^1.1.2",
+ "@stoplight/types": "^13.6.0",
+ "@stoplight/yaml": "~4.2.3",
+ "@types/node": "*",
+ "ajv": "^8.17.1",
+ "ast-types": "0.14.2",
+ "astring": "^1.9.0",
+ "reserved": "0.1.2",
+ "tslib": "^2.8.1",
+ "validate-npm-package-name": "3.0.0"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-migrator/node_modules/@stoplight/yaml": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.2.3.tgz",
+ "integrity": "sha512-Mx01wjRAR9C7yLMUyYFTfbUf5DimEpHMkRDQ1PKLe9dfNILbgdxyrncsOXM3vCpsQ1Hfj4bPiGl+u4u6e9Akqw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/ordered-object-literal": "^1.0.1",
+ "@stoplight/types": "^13.0.0",
+ "@stoplight/yaml-ast-parser": "0.0.48",
+ "tslib": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.8"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-migrator/node_modules/@stoplight/yaml-ast-parser": {
+ "version": "0.0.48",
+ "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.48.tgz",
+ "integrity": "sha512-sV+51I7WYnLJnKPn2EMWgS4EUfoP4iWEbrWwbXsj0MZCB/xOK8j6+C9fntIdOM50kpx45ZLC3s6kwKivWuqvyg==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/@stoplight/spectral-ruleset-migrator/node_modules/ast-types": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz",
+ "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@stoplight/spectral-ruleset-migrator/node_modules/validate-npm-package-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+ "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "builtins": "^1.0.3"
+ }
+ },
+ "node_modules/@stoplight/spectral-rulesets": {
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-rulesets/-/spectral-rulesets-1.22.0.tgz",
+ "integrity": "sha512-l2EY2jiKKLsvnPfGy+pXC0LeGsbJzcQP5G/AojHgf+cwN//VYxW1Wvv4WKFx/CLmLxc42mJYF2juwWofjWYNIQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@asyncapi/specs": "^6.8.0",
+ "@stoplight/better-ajv-errors": "1.0.3",
+ "@stoplight/json": "^3.17.0",
+ "@stoplight/spectral-core": "^1.19.4",
+ "@stoplight/spectral-formats": "^1.8.1",
+ "@stoplight/spectral-functions": "^1.9.1",
+ "@stoplight/spectral-runtime": "^1.1.2",
+ "@stoplight/types": "^13.6.0",
+ "@types/json-schema": "^7.0.7",
+ "ajv": "^8.17.1",
+ "ajv-formats": "~2.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "leven": "3.1.0",
+ "lodash": "~4.17.21",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/spectral-rulesets/node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@stoplight/spectral-runtime": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@stoplight/spectral-runtime/-/spectral-runtime-1.1.4.tgz",
+ "integrity": "sha512-YHbhX3dqW0do6DhiPSgSGQzr6yQLlWybhKwWx0cqxjMwxej3TqLv3BXMfIUYFKKUqIwH4Q2mV8rrMM8qD2N0rQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/json": "^3.20.1",
+ "@stoplight/path": "^1.3.2",
+ "@stoplight/types": "^13.6.0",
+ "abort-controller": "^3.0.0",
+ "lodash": "^4.17.21",
+ "node-fetch": "^2.7.0",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": "^16.20 || ^18.18 || >= 20.17"
+ }
+ },
+ "node_modules/@stoplight/types": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.20.0.tgz",
+ "integrity": "sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.4",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": "^12.20 || >=14.13"
+ }
+ },
+ "node_modules/@stoplight/yaml": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.3.0.tgz",
+ "integrity": "sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@stoplight/ordered-object-literal": "^1.0.5",
+ "@stoplight/types": "^14.1.1",
+ "@stoplight/yaml-ast-parser": "0.0.50",
+ "tslib": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.8"
+ }
+ },
+ "node_modules/@stoplight/yaml-ast-parser": {
+ "version": "0.0.50",
+ "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.50.tgz",
+ "integrity": "sha512-Pb6M8TDO9DtSVla9yXSTAxmo9GVEouq5P40DWXdOie69bXogZTkgvopCq+yEvTMA0F6PEvdJmbtTV3ccIp11VQ==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/@stoplight/yaml/node_modules/@stoplight/types": {
+ "version": "14.1.1",
+ "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz",
+ "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.4",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": "^12.20 || >=14.13"
+ }
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.19.tgz",
+ "integrity": "sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@tailwindcss/node": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.1.tgz",
+ "integrity": "sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "enhanced-resolve": "^5.19.0",
+ "jiti": "^2.6.1",
+ "lightningcss": "1.31.1",
+ "magic-string": "^0.30.21",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.2.1"
+ }
+ },
+ "node_modules/@tailwindcss/node/node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"license": "MIT",
"dependencies": {
@@ -5062,6 +6760,16 @@
"@types/zrender": "*"
}
},
+ "node_modules/@types/es-aggregate-error": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/es-aggregate-error/-/es-aggregate-error-1.0.6.tgz",
+ "integrity": "sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/esrecurse": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
@@ -5097,6 +6805,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/markdown-escape": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@types/markdown-escape/-/markdown-escape-1.1.3.tgz",
+ "integrity": "sha512-JIc1+s3y5ujKnt/+N+wq6s/QdL2qZ11fP79MijrVXsAAnzSxCbT2j/3prHRouJdZ2yFLN3vkP0HytfnoCczjOw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/node": {
"version": "20.19.35",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.35.tgz",
@@ -5131,13 +6846,35 @@
"license": "MIT",
"optional": true
},
+ "node_modules/@types/sarif": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/@types/sarif/-/sarif-2.1.7.tgz",
+ "integrity": "sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/stylis": {
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.7.tgz",
+ "integrity": "sha512-VgDNokpBoKF+wrdvhAAfS55OMQpL6QRglwTwNC3kIgBrzZxA4WsFj+2eLfEA/uMUDzBcEhYmjSbwQakn/i3ajA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/trusted-types": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "dev": true,
"license": "MIT",
"optional": true
},
+ "node_modules/@types/urijs": {
+ "version": "1.19.26",
+ "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.26.tgz",
+ "integrity": "sha512-wkXrVzX5yoqLnndOwFsieJA7oKM8cNkOKJtf/3vVGSUFkWDKZvFHpIl9Pvqb/T9UsawBBFMTTD8xu7sK5MWuvg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/yauzl": {
"version": "2.10.3",
"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz",
@@ -5477,6 +7214,19 @@
"node": "^20.17.0 || >=22.9.0"
}
},
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
"node_modules/accepts": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
@@ -5531,6 +7281,7 @@
"integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -5542,6 +7293,31 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "node_modules/ajv-draft-04": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz",
+ "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^8.5.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ajv-errors": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz",
+ "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^8.0.1"
+ }
+ },
"node_modules/ajv-formats": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
@@ -5586,6 +7362,16 @@
"node": ">= 14.0.0"
}
},
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/ansi-escapes": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz",
@@ -5871,6 +7657,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/as-table": {
+ "version": "1.0.55",
+ "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz",
+ "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "printable-characters": "^1.0.42"
+ }
+ },
"node_modules/ast-types": {
"version": "0.13.4",
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
@@ -5884,6 +7680,16 @@
"node": ">=4"
}
},
+ "node_modules/astring": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz",
+ "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "astring": "bin/astring"
+ }
+ },
"node_modules/async": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
@@ -6111,6 +7917,26 @@
"node": ">=14.0.0"
}
},
+ "node_modules/better-ajv-errors": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-1.2.0.tgz",
+ "integrity": "sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@babel/code-frame": "^7.16.0",
+ "@humanwhocodes/momoa": "^2.0.2",
+ "chalk": "^4.1.2",
+ "jsonpointer": "^5.0.0",
+ "leven": "^3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "peerDependencies": {
+ "ajv": "4.11.8 - 8"
+ }
+ },
"node_modules/big-integer": {
"version": "1.6.52",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
@@ -6357,6 +8183,29 @@
"node": ">=0.2.0"
}
},
+ "node_modules/builtins": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+ "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/bundle-name": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
+ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "run-applescript": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@@ -6367,6 +8216,65 @@
"node": ">= 0.8"
}
},
+ "node_modules/c12": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz",
+ "integrity": "sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^5.0.0",
+ "confbox": "^0.2.2",
+ "defu": "^6.1.4",
+ "dotenv": "^17.2.3",
+ "exsolve": "^1.0.8",
+ "giget": "^2.0.0",
+ "jiti": "^2.6.1",
+ "ohash": "^2.0.11",
+ "pathe": "^2.0.3",
+ "perfect-debounce": "^2.0.0",
+ "pkg-types": "^2.3.0",
+ "rc9": "^2.1.2"
+ },
+ "peerDependencies": {
+ "magicast": "*"
+ },
+ "peerDependenciesMeta": {
+ "magicast": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/c12/node_modules/chokidar": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
+ "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/c12/node_modules/readdirp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
+ "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/cacache": {
"version": "20.0.3",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz",
@@ -6507,6 +8415,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/call-me-maybe": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz",
+ "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -6517,6 +8432,16 @@
"node": ">=6"
}
},
+ "node_modules/camelize": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz",
+ "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/caniuse-lite": {
"version": "1.0.30001776",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001776.tgz",
@@ -6593,6 +8518,21 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/chownr": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
@@ -6627,6 +8567,23 @@
"url": "https://github.com/sponsors/colinhacks"
}
},
+ "node_modules/citty": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz",
+ "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "consola": "^3.2.3"
+ }
+ },
+ "node_modules/classnames": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
+ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/cli-cursor": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
@@ -6735,6 +8692,16 @@
"node": ">=0.8"
}
},
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -6755,6 +8722,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "color-support": "bin.js"
+ }
+ },
"node_modules/colorette": {
"version": "2.0.20",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
@@ -6781,6 +8758,23 @@
"lodash.uniqby": "4.5.0"
}
},
+ "node_modules/commander": {
+ "version": "14.0.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz",
+ "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/compress-commons": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz",
@@ -6802,6 +8796,13 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"license": "MIT"
},
+ "node_modules/confbox": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz",
+ "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/connect": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
@@ -6887,6 +8888,16 @@
"node": ">= 0.6"
}
},
+ "node_modules/consola": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
+ "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.18.0 || >=16.10.0"
+ }
+ },
"node_modules/content-disposition": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz",
@@ -6941,9 +8952,10 @@
"version": "3.48.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz",
"integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==",
+ "devOptional": true,
"hasInstallScript": true,
"license": "MIT",
- "optional": true,
+ "peer": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
@@ -7046,6 +9058,16 @@
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==",
"license": "MIT"
},
+ "node_modules/css-color-keywords": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz",
+ "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/css-line-break": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz",
@@ -7073,6 +9095,18 @@
"url": "https://github.com/sponsors/fb55"
}
},
+ "node_modules/css-to-react-native": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz",
+ "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camelize": "^1.0.0",
+ "css-color-keywords": "^1.0.0",
+ "postcss-value-parser": "^4.0.2"
+ }
+ },
"node_modules/css-what": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz",
@@ -7086,6 +9120,13 @@
"url": "https://github.com/sponsors/fb55"
}
},
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/custom-error-instance": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/custom-error-instance/-/custom-error-instance-2.1.1.tgz",
@@ -7196,6 +9237,12 @@
}
}
},
+ "node_modules/decko": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz",
+ "integrity": "sha512-m8FnyHXV1QX+S1cl+KPFDIl6NMkxtKsy6+U/aYyjrOqWMuwAwYWu7ePqrsUHtDR5Y8Yk2pi/KIDSgF+vT4cPOQ==",
+ "dev": true
+ },
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -7203,6 +9250,36 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/default-browser": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz",
+ "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bundle-name": "^4.1.0",
+ "default-browser-id": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser-id": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -7221,6 +9298,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/define-properties": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
@@ -7239,6 +9329,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/defu": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
+ "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/degenerator": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz",
@@ -7264,6 +9361,23 @@
"node": ">= 0.8"
}
},
+ "node_modules/dependency-graph": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
+ "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/destr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz",
+ "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
@@ -7379,8 +9493,8 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz",
"integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==",
+ "devOptional": true,
"license": "(MPL-2.0 OR Apache-2.0)",
- "optional": true,
"optionalDependencies": {
"@types/trusted-types": "^2.0.7"
}
@@ -7400,6 +9514,19 @@
"url": "https://github.com/fb55/domutils?sponsor=1"
}
},
+ "node_modules/dotenv": {
+ "version": "17.3.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz",
+ "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -7765,6 +9892,29 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-aggregate-error": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.14.tgz",
+ "integrity": "sha512-3YxX6rVb07B5TV11AV5wsL7nQCHXNwoHPsQC8S4AmBiqYhyNCJ5BRKXkXyDJvs8QzXN20NgRtxe3dEEQD9NLHA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.24.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "globalthis": "^1.0.4",
+ "has-property-descriptors": "^1.0.2",
+ "set-function-name": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/es-define-property": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
@@ -7845,6 +9995,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es6-promise": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
+ "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/esbuild": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz",
@@ -8352,6 +10509,13 @@
"node": ">=4.0"
}
},
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -8372,6 +10536,16 @@
"node": ">= 0.6"
}
},
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@@ -8503,6 +10677,13 @@
"express": ">= 4.11"
}
},
+ "node_modules/exsolve": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz",
+ "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@@ -8564,6 +10745,36 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@@ -8578,6 +10789,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/fast-memoize": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz",
+ "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fast-png": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/fast-png/-/fast-png-6.4.0.tgz",
@@ -8589,6 +10807,13 @@
"pako": "^2.1.0"
}
},
+ "node_modules/fast-safe-stringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fast-uri": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
@@ -8606,6 +10831,53 @@
],
"license": "BSD-3-Clause"
},
+ "node_modules/fast-xml-builder": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz",
+ "integrity": "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "path-expression-matcher": "^1.1.3"
+ }
+ },
+ "node_modules/fast-xml-parser": {
+ "version": "5.5.6",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.6.tgz",
+ "integrity": "sha512-3+fdZyBRVg29n4rXP0joHthhcHdPUHaIC16cuyyd1iLsuaO6Vea36MPrxgAzbZna8lhvZeRL8Bc9GP56/J9xEw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "fast-xml-builder": "^1.1.4",
+ "path-expression-matcher": "^1.1.3",
+ "strnum": "^2.1.2"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
"node_modules/fd-slicer": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
@@ -8779,6 +11051,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/foreach": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz",
+ "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -9003,6 +11282,34 @@
"node": ">= 0.4"
}
},
+ "node_modules/get-source": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz",
+ "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==",
+ "dev": true,
+ "license": "Unlicense",
+ "dependencies": {
+ "data-uri-to-buffer": "^2.0.0",
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/get-source/node_modules/data-uri-to-buffer": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz",
+ "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/get-source/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/get-stream": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
@@ -9037,6 +11344,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-tsconfig": {
+ "version": "4.13.6",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz",
+ "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
"node_modules/get-uri": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz",
@@ -9052,6 +11372,24 @@
"node": ">= 14"
}
},
+ "node_modules/giget": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz",
+ "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "citty": "^0.1.6",
+ "consola": "^3.4.0",
+ "defu": "^6.1.4",
+ "node-fetch-native": "^1.6.6",
+ "nypm": "^0.6.0",
+ "pathe": "^2.0.3"
+ },
+ "bin": {
+ "giget": "dist/cli.mjs"
+ }
+ },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -9142,6 +11480,38 @@
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"license": "ISC"
},
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
+ "node_modules/handlebars/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/has-bigints": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
@@ -9276,6 +11646,16 @@
"node": "20 || >=22"
}
},
+ "node_modules/hpagent": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz",
+ "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@@ -9387,6 +11767,13 @@
"node": ">= 14"
}
},
+ "node_modules/http2-client": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz",
+ "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/https-proxy-agent": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
@@ -9513,6 +11900,17 @@
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
"license": "MIT"
},
+ "node_modules/immer": {
+ "version": "9.0.21",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz",
+ "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/immer"
+ }
+ },
"node_modules/immutable": {
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz",
@@ -9770,6 +12168,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -9842,6 +12256,38 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-in-ssh": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz",
+ "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-interactive": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz",
@@ -9915,6 +12361,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/is-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
"node_modules/is-regex": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
@@ -10085,6 +12541,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-wsl": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
+ "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-inside-container": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
@@ -10240,6 +12712,16 @@
"integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==",
"license": "BSD-3-Clause"
},
+ "node_modules/js-levenshtein": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
+ "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -10259,6 +12741,17 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/jsep": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz",
+ "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 10.16.0"
+ }
+ },
"node_modules/jsesc": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
@@ -10288,6 +12781,31 @@
"node": "^20.17.0 || >=22.9.0"
}
},
+ "node_modules/json-pointer": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz",
+ "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "foreach": "^2.0.4"
+ }
+ },
+ "node_modules/json-schema-to-ts": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-2.7.2.tgz",
+ "integrity": "sha512-R1JfqKqbBR4qE8UyBR56Ms30LL62/nlhoz+1UkfI/VE7p54Awu919FZ6ZUPG8zIa3XB65usPJgr1ONVncUGSaQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@types/json-schema": "^7.0.9",
+ "ts-algebra": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
"node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
@@ -10357,6 +12875,45 @@
],
"license": "MIT"
},
+ "node_modules/jsonpath-plus": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.4.0.tgz",
+ "integrity": "sha512-T92WWatJXmhBbKsgH/0hl+jxjdXrifi5IKeMY02DWggRxX0UElcbVzPlmgLTbvsPeW1PasQ6xE2Q75stkhGbsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jsep-plugin/assignment": "^1.3.0",
+ "@jsep-plugin/regex": "^1.0.4",
+ "jsep": "^1.4.0"
+ },
+ "bin": {
+ "jsonpath": "bin/jsonpath-cli.js",
+ "jsonpath-plus": "bin/jsonpath-cli.js"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/jsonpath-rfc9535": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsonpath-rfc9535/-/jsonpath-rfc9535-1.3.0.tgz",
+ "integrity": "sha512-3jFHya7oZ45aDxIIdx+/zQARahHXxFSMWBkcBUldfXpLS9VCXDJyTKt35kQfEXLqh0K3Ixw/9xFnvcDStaxh7Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/jsonpointer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
+ "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/jspdf": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/jspdf/-/jspdf-4.2.0.tgz",
@@ -10964,6 +13521,16 @@
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@@ -11493,6 +14060,13 @@
"integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==",
"license": "MIT"
},
+ "node_modules/lodash.topath": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz",
+ "integrity": "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lodash.union": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
@@ -11659,6 +14233,26 @@
"node": ">=8.0"
}
},
+ "node_modules/long": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
+ "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -11668,6 +14262,13 @@
"yallist": "^3.0.2"
}
},
+ "node_modules/lunr": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
+ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/magic-string": {
"version": "0.30.17",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
@@ -11727,6 +14328,33 @@
"node": "^20.17.0 || >=22.9.0"
}
},
+ "node_modules/mark.js": {
+ "version": "8.11.1",
+ "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz",
+ "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/markdown-escape": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-escape/-/markdown-escape-2.0.0.tgz",
+ "integrity": "sha512-Trz4v0+XWlwy68LJIyw3bLbsJiC8XAbRCKF9DbEtZjyndKOGVx6n+wNB0VfoRmY2LKboQLeniap3xrb6LGSJ8A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/marked": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
@@ -11760,6 +14388,43 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/mime": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
@@ -11986,6 +14651,70 @@
"mkdirp": "bin/cmd.js"
}
},
+ "node_modules/mobx": {
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.15.0.tgz",
+ "integrity": "sha512-UczzB+0nnwGotYSgllfARAqWCJ5e/skuV2K/l+Zyck/H6pJIhLXuBnz+6vn2i211o7DtbE78HQtsYEKICHGI+g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mobx"
+ }
+ },
+ "node_modules/mobx-react": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-9.2.0.tgz",
+ "integrity": "sha512-dkGWCx+S0/1mfiuFfHRH8D9cplmwhxOV5CkXMp38u6rQGG2Pv3FWYztS0M7ncR6TyPRQKaTG/pnitInoYE9Vrw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mobx-react-lite": "^4.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mobx"
+ },
+ "peerDependencies": {
+ "mobx": "^6.9.0",
+ "react": "^16.8.0 || ^17 || ^18 || ^19"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mobx-react-lite": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-4.1.1.tgz",
+ "integrity": "sha512-iUxiMpsvNraCKXU+yPotsOncNNmyeS2B5DKL+TL6Tar/xm+wwNJAubJmtRSeAoYawdZqwv8Z/+5nPRHeQxTiXg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "use-sync-external-store": "^1.4.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mobx"
+ },
+ "peerDependencies": {
+ "mobx": "^6.9.0",
+ "react": "^16.8.0 || ^17 || ^18 || ^19"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
@@ -12091,6 +14820,13 @@
"node": ">= 0.6"
}
},
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/netmask": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
@@ -12113,13 +14849,74 @@
"moment": "^2.19.3"
}
},
- "node_modules/node-addon-api": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
- "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
+ "node_modules/nimma": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/nimma/-/nimma-0.2.3.tgz",
+ "integrity": "sha512-1ZOI8J+1PKKGceo/5CT5GfQOG6H8I2BencSK06YarZ2wXwH37BSSUWldqJmMJYA5JfqDqffxDXynt6f11AyKcA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsep-plugin/regex": "^1.0.1",
+ "@jsep-plugin/ternary": "^1.0.2",
+ "astring": "^1.8.1",
+ "jsep": "^1.2.0"
+ },
+ "engines": {
+ "node": "^12.20 || >=14.13"
+ },
+ "optionalDependencies": {
+ "jsonpath-plus": "^6.0.1 || ^10.1.0",
+ "lodash.topath": "^4.5.2"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-fetch-h2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz",
+ "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "http2-client": "^1.2.5"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ }
+ },
+ "node_modules/node-fetch-native": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz",
+ "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==",
"dev": true,
- "license": "MIT",
- "optional": true
+ "license": "MIT"
},
"node_modules/node-gyp": {
"version": "12.2.0",
@@ -12198,12 +14995,74 @@
"node": "^20.17.0 || >=22.9.0"
}
},
+ "node_modules/node-readfiles": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz",
+ "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es6-promise": "^3.2.1"
+ }
+ },
"node_modules/node-releases": {
"version": "2.0.36",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
"integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
"license": "MIT"
},
+ "node_modules/node-sarif-builder": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-2.0.3.tgz",
+ "integrity": "sha512-Pzr3rol8fvhG/oJjIq2NTVB0vmdNNlz22FENhhPojYRZ4/ee08CfK4YuKmuL54V9MLhI1kpzxfOJ/63LzmZzDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/sarif": "^2.1.4",
+ "fs-extra": "^10.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/node-sarif-builder/node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/node-sarif-builder/node_modules/jsonfile": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
+ "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/node-sarif-builder/node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
"node_modules/nodemon": {
"version": "3.1.14",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.14.tgz",
@@ -12389,134 +15248,381 @@
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz",
"integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "npm-normalize-package-bin": "^5.0.0"
- },
+ "license": "ISC",
+ "dependencies": {
+ "npm-normalize-package-bin": "^5.0.0"
+ },
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/npm-install-checks": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz",
+ "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "semver": "^7.1.1"
+ },
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/npm-normalize-package-bin": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz",
+ "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/npm-package-arg": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.0.tgz",
+ "integrity": "sha512-+t2etZAGcB7TbbLHfDwooV9ppB2LhhcT6A+L9cahsf9mEUAoQ6CktLEVvEnpD0N5CkX7zJqnPGaFtoQDy9EkHQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "hosted-git-info": "^9.0.0",
+ "proc-log": "^5.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-name": "^6.0.0"
+ },
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/npm-packlist": {
+ "version": "10.0.4",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz",
+ "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "ignore-walk": "^8.0.0",
+ "proc-log": "^6.0.0"
+ },
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/npm-packlist/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/npm-pick-manifest": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz",
+ "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-install-checks": "^8.0.0",
+ "npm-normalize-package-bin": "^5.0.0",
+ "npm-package-arg": "^13.0.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/npm-registry-fetch": {
+ "version": "19.1.1",
+ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz",
+ "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/redact": "^4.0.0",
+ "jsonparse": "^1.3.1",
+ "make-fetch-happen": "^15.0.0",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^5.0.0",
+ "minizlib": "^3.0.1",
+ "npm-package-arg": "^13.0.0",
+ "proc-log": "^6.0.0"
+ },
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/npm-registry-fetch/node_modules/proc-log": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/nypm": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.5.tgz",
+ "integrity": "sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "citty": "^0.2.0",
+ "pathe": "^2.0.3",
+ "tinyexec": "^1.0.2"
+ },
+ "bin": {
+ "nypm": "dist/cli.mjs"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/nypm/node_modules/citty": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.1.tgz",
+ "integrity": "sha512-kEV95lFBhQgtogAPlQfJJ0WGVSokvLr/UEoFPiKKOXF7pl98HfUVUD0ejsuTCld/9xH9vogSywZ5KqHzXrZpqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/oas-kit-common": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz",
+ "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "fast-safe-stringify": "^2.0.7"
+ }
+ },
+ "node_modules/oas-linter": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz",
+ "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@exodus/schemasafe": "^1.0.0-rc.2",
+ "should": "^13.2.1",
+ "yaml": "^1.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/Mermade/oas-kit?sponsor=1"
+ }
+ },
+ "node_modules/oas-linter/node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/oas-resolver": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz",
+ "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "node-fetch-h2": "^2.3.0",
+ "oas-kit-common": "^1.0.8",
+ "reftools": "^1.1.9",
+ "yaml": "^1.10.0",
+ "yargs": "^17.0.1"
+ },
+ "bin": {
+ "resolve": "resolve.js"
+ },
+ "funding": {
+ "url": "https://github.com/Mermade/oas-kit?sponsor=1"
+ }
+ },
+ "node_modules/oas-resolver/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/oas-resolver/node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/oas-resolver/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/oas-resolver/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "^20.17.0 || >=22.9.0"
+ "node": ">=8"
}
},
- "node_modules/npm-install-checks": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz",
- "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==",
+ "node_modules/oas-resolver/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
- "license": "BSD-2-Clause",
+ "license": "MIT",
"dependencies": {
- "semver": "^7.1.1"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": "^20.17.0 || >=22.9.0"
- }
- },
- "node_modules/npm-normalize-package-bin": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz",
- "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": "^20.17.0 || >=22.9.0"
+ "node": ">=8"
}
},
- "node_modules/npm-package-arg": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.0.tgz",
- "integrity": "sha512-+t2etZAGcB7TbbLHfDwooV9ppB2LhhcT6A+L9cahsf9mEUAoQ6CktLEVvEnpD0N5CkX7zJqnPGaFtoQDy9EkHQ==",
+ "node_modules/oas-resolver/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "hosted-git-info": "^9.0.0",
- "proc-log": "^5.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^6.0.0"
+ "ansi-regex": "^5.0.1"
},
"engines": {
- "node": "^20.17.0 || >=22.9.0"
+ "node": ">=8"
}
},
- "node_modules/npm-packlist": {
- "version": "10.0.4",
- "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz",
- "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==",
+ "node_modules/oas-resolver/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "ignore-walk": "^8.0.0",
- "proc-log": "^6.0.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": "^20.17.0 || >=22.9.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/npm-packlist/node_modules/proc-log": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
- "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
+ "node_modules/oas-resolver/node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true,
"license": "ISC",
"engines": {
- "node": "^20.17.0 || >=22.9.0"
+ "node": ">= 6"
}
},
- "node_modules/npm-pick-manifest": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz",
- "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==",
+ "node_modules/oas-resolver/node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "npm-install-checks": "^8.0.0",
- "npm-normalize-package-bin": "^5.0.0",
- "npm-package-arg": "^13.0.0",
- "semver": "^7.3.5"
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
},
"engines": {
- "node": "^20.17.0 || >=22.9.0"
+ "node": ">=12"
}
},
- "node_modules/npm-registry-fetch": {
- "version": "19.1.1",
- "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz",
- "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==",
+ "node_modules/oas-resolver/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
"license": "ISC",
- "dependencies": {
- "@npmcli/redact": "^4.0.0",
- "jsonparse": "^1.3.1",
- "make-fetch-happen": "^15.0.0",
- "minipass": "^7.0.2",
- "minipass-fetch": "^5.0.0",
- "minizlib": "^3.0.1",
- "npm-package-arg": "^13.0.0",
- "proc-log": "^6.0.0"
- },
"engines": {
- "node": "^20.17.0 || >=22.9.0"
+ "node": ">=12"
}
},
- "node_modules/npm-registry-fetch/node_modules/proc-log": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
- "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
+ "node_modules/oas-schema-walker": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz",
+ "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==",
"dev": true,
- "license": "ISC",
- "engines": {
- "node": "^20.17.0 || >=22.9.0"
+ "license": "BSD-3-Clause",
+ "funding": {
+ "url": "https://github.com/Mermade/oas-kit?sponsor=1"
}
},
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "node_modules/oas-validator": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz",
+ "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==",
"dev": true,
- "license": "BSD-2-Clause",
+ "license": "BSD-3-Clause",
"dependencies": {
- "boolbase": "^1.0.0"
+ "call-me-maybe": "^1.0.1",
+ "oas-kit-common": "^1.0.8",
+ "oas-linter": "^3.2.2",
+ "oas-resolver": "^2.5.6",
+ "oas-schema-walker": "^1.1.5",
+ "reftools": "^1.1.9",
+ "should": "^13.2.1",
+ "yaml": "^1.10.0"
},
"funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
+ "url": "https://github.com/Mermade/oas-kit?sponsor=1"
+ }
+ },
+ "node_modules/oas-validator/node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
}
},
"node_modules/object-assign": {
@@ -12626,6 +15732,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/ohash": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz",
+ "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@@ -12664,6 +15777,39 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/open": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz",
+ "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "default-browser": "^5.4.0",
+ "define-lazy-prop": "^3.0.0",
+ "is-in-ssh": "^1.0.0",
+ "is-inside-container": "^1.0.0",
+ "powershell-utils": "^0.1.0",
+ "wsl-utils": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/openapi-sampler": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.7.2.tgz",
+ "integrity": "sha512-OKytvqB5XIaTgA9xtw8W8UTar+uymW2xPVpFN0NihMtuHPdPTGxBEhGnfFnJW5g/gOSIvkP+H0Xh3XhVI9/n7g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.7",
+ "fast-xml-parser": "^5.5.1",
+ "json-pointer": "0.6.2"
+ }
+ },
"node_modules/opentracing": {
"version": "0.14.7",
"resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz",
@@ -12736,6 +15882,13 @@
"license": "MIT",
"optional": true
},
+ "node_modules/outdent": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.8.0.tgz",
+ "integrity": "sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/own-keys": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
@@ -13001,6 +16154,13 @@
"node": ">= 0.8"
}
},
+ "node_modules/path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -13011,6 +16171,22 @@
"node": ">=8"
}
},
+ "node_modules/path-expression-matcher": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.1.3.tgz",
+ "integrity": "sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -13075,6 +16251,13 @@
"url": "https://opencollective.com/express"
}
},
+ "node_modules/pathe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/pdfkit": {
"version": "0.17.2",
"resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.17.2.tgz",
@@ -13109,6 +16292,20 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/perfect-debounce": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz",
+ "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/perfect-scrollbar": {
+ "version": "1.5.6",
+ "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.6.tgz",
+ "integrity": "sha512-rixgxw3SxyJbCaSpo1n35A/fwI1r2rdwMKOTCg/AcG+xOEyZcE8UHVjpZMFCVImzsFoCZeJTT+M/rdEIQYO2nw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@@ -13157,11 +16354,56 @@
"node": ">=16.20.0"
}
},
+ "node_modules/pkg-types": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz",
+ "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.2.2",
+ "exsolve": "^1.0.7",
+ "pathe": "^2.0.3"
+ }
+ },
+ "node_modules/pluralize": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
+ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/png-js": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz",
"integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g=="
},
+ "node_modules/polished": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz",
+ "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.17.8"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/pony-cause": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-1.1.1.tgz",
+ "integrity": "sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==",
+ "dev": true,
+ "license": "0BSD",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/possible-typed-array-names": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
@@ -13207,6 +16449,26 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/powershell-utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz",
+ "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -13247,6 +16509,23 @@
"node": ">=6.0.0"
}
},
+ "node_modules/printable-characters": {
+ "version": "1.0.42",
+ "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz",
+ "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==",
+ "dev": true,
+ "license": "Unlicense"
+ },
+ "node_modules/prismjs": {
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
+ "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/proc-log": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz",
@@ -13297,6 +16576,18 @@
"node": ">= 4"
}
},
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
"node_modules/proper-lockfile": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
@@ -13323,6 +16614,31 @@
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"license": "ISC"
},
+ "node_modules/protobufjs": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz",
+ "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/node": ">=13.7.0",
+ "long": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -13472,6 +16788,27 @@
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"license": "MIT"
},
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/raf": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
@@ -13482,6 +16819,16 @@
"performance-now": "^2.1.0"
}
},
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -13508,6 +16855,63 @@
"node": ">= 0.10"
}
},
+ "node_modules/rc9": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz",
+ "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "defu": "^6.1.4",
+ "destr": "^2.0.3"
+ }
+ },
+ "node_modules/react": {
+ "version": "19.2.4",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
+ "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "19.2.4",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
+ "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "scheduler": "^0.27.0"
+ },
+ "peerDependencies": {
+ "react": "^19.2.4"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/react-tabs": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-6.1.0.tgz",
+ "integrity": "sha512-6QtbTRDKM+jA/MZTTefvigNxo0zz+gnBTVFw2CFVvq+f2BuH0nF0vDLNClL045nuTAdOoK/IL1vTP0ZLX0DAyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clsx": "^2.0.0",
+ "prop-types": "^15.5.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
@@ -13552,6 +16956,143 @@
"node": ">=10"
}
},
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/redoc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.5.1.tgz",
+ "integrity": "sha512-LmqA+4A3CmhTllGG197F0arUpmChukAj9klfSdxNRemT9Hr07xXr7OGKu4PHzBs359sgrJ+4JwmOlM7nxLPGMg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@redocly/openapi-core": "^1.4.0",
+ "classnames": "^2.3.2",
+ "decko": "^1.2.0",
+ "dompurify": "^3.2.4",
+ "eventemitter3": "^5.0.1",
+ "json-pointer": "^0.6.2",
+ "lunr": "^2.3.9",
+ "mark.js": "^8.11.1",
+ "marked": "^4.3.0",
+ "mobx-react": "9.2.0",
+ "openapi-sampler": "^1.5.0",
+ "path-browserify": "^1.0.1",
+ "perfect-scrollbar": "^1.5.5",
+ "polished": "^4.2.2",
+ "prismjs": "^1.29.0",
+ "prop-types": "^15.8.1",
+ "react-tabs": "^6.0.2",
+ "slugify": "~1.4.7",
+ "stickyfill": "^1.1.1",
+ "swagger2openapi": "^7.0.8",
+ "url-template": "^2.0.8"
+ },
+ "engines": {
+ "node": ">=6.9",
+ "npm": ">=3.0.0"
+ },
+ "peerDependencies": {
+ "core-js": "^3.1.4",
+ "mobx": "^6.0.4",
+ "react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "styled-components": "^4.1.1 || ^5.1.1 || ^6.0.5"
+ }
+ },
+ "node_modules/redoc/node_modules/@redocly/ajv": {
+ "version": "8.11.2",
+ "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz",
+ "integrity": "sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js-replace": "^1.0.1"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/redoc/node_modules/@redocly/config": {
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.22.0.tgz",
+ "integrity": "sha512-gAy93Ddo01Z3bHuVdPWfCwzgfaYgMdaZPcfL7JZ7hWJoK9V0lXDbigTWkhiPFAaLWzbOJ+kbUQG1+XwIm0KRGQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/redoc/node_modules/@redocly/openapi-core": {
+ "version": "1.34.11",
+ "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.34.11.tgz",
+ "integrity": "sha512-V09ayfnb5GyysmvARbt+voFZAjGcf7hSYxOYxSkCc4fbH/DTfq5YWoec8cflvmHHqyIFbqvmGKmYFzqhr9zxDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@redocly/ajv": "8.11.2",
+ "@redocly/config": "0.22.0",
+ "colorette": "1.4.0",
+ "https-proxy-agent": "7.0.6",
+ "js-levenshtein": "1.1.6",
+ "js-yaml": "4.1.1",
+ "minimatch": "5.1.9",
+ "pluralize": "8.0.0",
+ "yaml-ast-parser": "0.0.43"
+ },
+ "engines": {
+ "node": ">=18.17.0",
+ "npm": ">=9.5.0"
+ }
+ },
+ "node_modules/redoc/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/redoc/node_modules/colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/redoc/node_modules/eventemitter3": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz",
+ "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/redoc/node_modules/minimatch": {
+ "version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz",
+ "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/reflect-metadata": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
@@ -13581,6 +17122,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/reftools": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz",
+ "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "funding": {
+ "url": "https://github.com/Mermade/oas-kit?sponsor=1"
+ }
+ },
"node_modules/regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
@@ -13635,6 +17186,15 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"license": "MIT"
},
+ "node_modules/reserved": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/reserved/-/reserved-0.1.2.tgz",
+ "integrity": "sha512-/qO54MWj5L8WCBP9/UNe2iefJc+L9yETbH32xO/ft/EYPOTCR5k+azvDUgdCOKwZH8hXwPd0b8XBL78Nn2U69g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/resolve": {
"version": "1.22.11",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
@@ -13666,6 +17226,16 @@
"node": ">=4"
}
},
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
"node_modules/restore-cursor": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
@@ -13699,6 +17269,17 @@
"node": ">= 4"
}
},
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/rfdc": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
@@ -13795,6 +17376,43 @@
"node": ">= 18"
}
},
+ "node_modules/run-applescript": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
"node_modules/rxjs": {
"version": "7.8.2",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
@@ -13880,6 +17498,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/safe-stable-stringify": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz",
+ "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -13893,6 +17518,7 @@
"integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"chokidar": "^4.0.0",
"immutable": "^5.0.2",
@@ -13908,36 +17534,6 @@
"@parcel/watcher": "^2.4.1"
}
},
- "node_modules/sass/node_modules/chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readdirp": "^4.0.1"
- },
- "engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/sass/node_modules/readdirp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
- "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14.18.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
"node_modules/sax": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz",
@@ -13959,6 +17555,13 @@
"node": ">=10"
}
},
+ "node_modules/scheduler": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
+ "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/semver": {
"version": "7.7.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
@@ -14018,6 +17621,13 @@
"url": "https://opencollective.com/express"
}
},
+ "node_modules/set-cookie-parser": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz",
+ "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
@@ -14080,29 +17690,96 @@
"dev": true,
"license": "ISC"
},
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "node_modules/shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/should": {
+ "version": "13.2.3",
+ "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz",
+ "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "should-equal": "^2.0.0",
+ "should-format": "^3.0.3",
+ "should-type": "^1.4.0",
+ "should-type-adaptors": "^1.0.1",
+ "should-util": "^1.0.0"
+ }
+ },
+ "node_modules/should-equal": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz",
+ "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "should-type": "^1.4.0"
+ }
+ },
+ "node_modules/should-format": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz",
+ "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
+ "should-type": "^1.3.0",
+ "should-type-adaptors": "^1.0.1"
}
},
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "node_modules/should-type": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz",
+ "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/should-type-adaptors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz",
+ "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "should-type": "^1.3.0",
+ "should-util": "^1.0.0"
}
},
+ "node_modules/should-util": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz",
+ "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
@@ -14210,6 +17887,19 @@
"node": "^20.17.0 || >=22.9.0"
}
},
+ "node_modules/simple-eval": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-eval/-/simple-eval-1.0.1.tgz",
+ "integrity": "sha512-LH7FpTAkeD+y5xQC4fzS+tFtaNlvt3Ib1zKzvhjv/Y+cioV4zIuw4IZr2yhRLu67CWL7FR9/6KXKnjRoZTvGGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jsep": "^1.3.6"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/simple-update-notifier": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
@@ -14223,6 +17913,56 @@
"node": ">=10"
}
},
+ "node_modules/simple-websocket": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-9.1.0.tgz",
+ "integrity": "sha512-8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.3.1",
+ "queue-microtask": "^1.2.2",
+ "randombytes": "^2.1.0",
+ "readable-stream": "^3.6.0",
+ "ws": "^7.4.2"
+ }
+ },
+ "node_modules/simple-websocket/node_modules/ws": {
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"node_modules/slice-ansi": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
@@ -14253,6 +17993,16 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/slugify": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.7.tgz",
+ "integrity": "sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/smart-buffer": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
@@ -14447,6 +18197,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
+ "deprecated": "Please use @jridgewell/sourcemap-codec instead",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/spdx-exceptions": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
@@ -14495,6 +18253,17 @@
"node": ">=0.1.14"
}
},
+ "node_modules/stacktracey": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.2.0.tgz",
+ "integrity": "sha512-ETyQEz+CzXiLjEbyJqpbp+/T79RQD/6wqFucRBIlVNZfYq2Ay7wbretD4cxpbymZlaPWx58aIhPEY1Cr8DlVvg==",
+ "dev": true,
+ "license": "Unlicense",
+ "dependencies": {
+ "as-table": "^1.0.36",
+ "get-source": "^2.0.12"
+ }
+ },
"node_modules/statuses": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
@@ -14518,6 +18287,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/stickyfill": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz",
+ "integrity": "sha512-GCp7vHAfpao+Qh/3Flh9DXEJ/qSi0KJwJw6zYlZOtRYXWUIpMM6mC2rIep/dK8RQqwW0KxGJIllmjPIBOGN8AA==",
+ "dev": true
+ },
"node_modules/stop-iteration-iterator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
@@ -14579,27 +18354,212 @@
"strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-data-property": "^1.1.4",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-object-atoms": "^1.0.0",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strnum": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.1.tgz",
+ "integrity": "sha512-BwRvNd5/QoAtyW1na1y1LsJGQNvRlkde6Q/ipqqEaivoMdV+B1OMOTVdwR+N/cwVUcIt9PYyHmV8HyexCZSupg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/styled-components": {
+ "version": "6.3.9",
+ "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.3.9.tgz",
+ "integrity": "sha512-J72R4ltw0UBVUlEjTzI0gg2STOqlI9JBhQOL4Dxt7aJOnnSesy0qJDn4PYfMCafk9cWOaVg129Pesl5o+DIh0Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@emotion/is-prop-valid": "1.4.0",
+ "@emotion/unitless": "0.10.0",
+ "@types/stylis": "4.2.7",
+ "css-to-react-native": "3.2.0",
+ "csstype": "3.2.3",
+ "postcss": "8.4.49",
+ "shallowequal": "1.1.0",
+ "stylis": "4.3.6",
+ "tslib": "2.8.1"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/styled-components"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0",
+ "react-dom": ">= 16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/styled-components/node_modules/postcss": {
+ "version": "8.4.49",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
+ "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/stylis": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz",
+ "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/string.prototype.trim": {
- "version": "1.2.10",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
- "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "define-data-property": "^1.1.4",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-object-atoms": "^1.0.0",
- "has-property-descriptors": "^1.0.2"
- },
"engines": {
"node": ">= 0.4"
},
@@ -14607,115 +18567,169 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/string.prototype.trimend": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
- "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
- "dev": true,
+ "node_modules/svg-pathdata": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz",
+ "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==",
"license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
- },
+ "optional": true,
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=12.0.0"
}
},
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
- "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+ "node_modules/swagger2openapi": {
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz",
+ "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==",
"dev": true,
- "license": "MIT",
+ "license": "BSD-3-Clause",
"dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
+ "call-me-maybe": "^1.0.1",
+ "node-fetch": "^2.6.1",
+ "node-fetch-h2": "^2.3.0",
+ "node-readfiles": "^0.2.0",
+ "oas-kit-common": "^1.0.8",
+ "oas-resolver": "^2.5.6",
+ "oas-schema-walker": "^1.1.5",
+ "oas-validator": "^5.0.8",
+ "reftools": "^1.1.9",
+ "yaml": "^1.10.0",
+ "yargs": "^17.0.1"
},
- "engines": {
- "node": ">= 0.4"
+ "bin": {
+ "boast": "boast.js",
+ "oas-validate": "oas-validate.js",
+ "swagger2openapi": "swagger2openapi.js"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/Mermade/oas-kit?sponsor=1"
}
},
- "node_modules/strip-ansi": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
- "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
+ "node_modules/swagger2openapi/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
"license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/swagger2openapi/node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "ansi-regex": "^6.2.2"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
},
"engines": {
"node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/strip-bom": {
+ "node_modules/swagger2openapi/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/swagger2openapi/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "node_modules/swagger2openapi/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
"engines": {
"node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/swagger2openapi/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
+ "ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "node_modules/swagger2openapi/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/svg-pathdata": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz",
- "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==",
+ "node_modules/swagger2openapi/node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/swagger2openapi/node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
"license": "MIT",
- "optional": true,
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
"engines": {
- "node": ">=12.0.0"
+ "node": ">=12"
+ }
+ },
+ "node_modules/swagger2openapi/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/synckit": {
@@ -14854,12 +18868,29 @@
"utrie": "^1.0.2"
}
},
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/tiny-inflate": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
"integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
"license": "MIT"
},
+ "node_modules/tinyexec": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz",
+ "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/tinyglobby": {
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
@@ -14928,6 +18959,13 @@
"nodetouch": "bin/nodetouch.js"
}
},
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/traverse": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
@@ -14937,6 +18975,13 @@
"node": "*"
}
},
+ "node_modules/ts-algebra": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-1.2.2.tgz",
+ "integrity": "sha512-kloPhf1hq3JbCPOTYoOWDKxebWjNb2o/LKnNfkWhxVVisFFmMJPPdJeGoGmM+iRLyoXAR61e08Pb+vUXINg8aA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/ts-api-utils": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz",
@@ -15168,6 +19213,30 @@
"node": "*"
}
},
+ "node_modules/uglify-js": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/ulid": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/ulid/-/ulid-3.0.2.tgz",
+ "integrity": "sha512-yu26mwteFYzBAot7KVMqFGCVpsF6g8wXfJzQUHvu1no3+rRRSFcSV2nKeYvNPLD2J4b08jYBDhHUjeH0ygIl9w==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "ulid": "dist/cli.js"
+ }
+ },
"node_modules/unbox-primitive": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
@@ -15194,6 +19263,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/undici": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
+ "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.17"
+ }
+ },
"node_modules/undici-types": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
@@ -15387,6 +19466,13 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/uri-js-replace": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz",
+ "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/uri-js/node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -15397,6 +19483,13 @@
"node": ">=6"
}
},
+ "node_modules/urijs": {
+ "version": "1.19.11",
+ "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz",
+ "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/url-parse": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
@@ -15407,12 +19500,39 @@
"requires-port": "^1.0.0"
}
},
+ "node_modules/url-template": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
+ "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==",
+ "dev": true,
+ "license": "BSD"
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
+ "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"license": "MIT"
},
+ "node_modules/utility-types": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz",
+ "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
"node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
@@ -15594,6 +19714,24 @@
"dev": true,
"license": "Apache-2.0"
},
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -15715,6 +19853,13 @@
"integrity": "sha512-Lu4nHBSKkU0FCoc0LlQvTzN+m2+prNgVlI3sX6cy7k0K6cLK3UmfD22JgaeevXgthSTaf6xoWK8vYkyKqDZm3Q==",
"license": "Creative Commons Attribution (CC BY)"
},
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
@@ -15813,6 +19958,23 @@
}
}
},
+ "node_modules/wsl-utils": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz",
+ "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-wsl": "^3.1.0",
+ "powershell-utils": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/xmlchars": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
@@ -15846,6 +20008,13 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"license": "ISC"
},
+ "node_modules/yaml-ast-parser": {
+ "version": "0.0.43",
+ "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz",
+ "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/yargs": {
"version": "18.0.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz",
diff --git a/package.json b/package.json
index 1659e8fdc..481eddd8d 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,12 @@
"build:ci": "ng build --configuration production",
"format": "npx prettier 'src/**/*.{js,jsx,ts,tsx,html,css,scss}' --write",
"lint": "ng lint",
- "clean": "rm -rf package-lock.json npm-shrinkwrap.json node_modules;npm cache clean --force;npm cache verify"
+ "check-types": "tsc --noEmit",
+ "clean": "rm -rf package-lock.json npm-shrinkwrap.json node_modules;npm cache clean --force;npm cache verify",
+ "fetch:openapi": "curl -s -o openapi.json http://localhost:8080/api/v2/openapi-compliant.json && npx prettier --write openapi.json",
+ "generate:api": "openapi-ts -f openapi-ts.config.mjs && node scripts/postprocess-zod.mjs",
+ "generate": "npm run fetch:openapi && npm run generate:api",
+ "lint:openapi": "redocly lint openapi.json && spectral lint -D openapi.json"
},
"private": true,
"dependencies": {
@@ -71,6 +76,9 @@
"@eslint/compat": "^2.0.2",
"@eslint/eslintrc": "^3.3.4",
"@eslint/js": "^9.39.3",
+ "@hey-api/openapi-ts": "^0.94.2",
+ "@redocly/cli": "^2.24.0",
+ "@stoplight/spectral-cli": "^6.15.0",
"@trivago/prettier-plugin-sort-imports": "^4.2.1",
"@types/jasmine": "~4.3.5",
"@types/node": "^20.5.0",
diff --git a/scripts/postprocess-zod.mjs b/scripts/postprocess-zod.mjs
new file mode 100644
index 000000000..07c038aa1
--- /dev/null
+++ b/scripts/postprocess-zod.mjs
@@ -0,0 +1,28 @@
+/**
+ * Post-process generated zod.gen.ts to fix bigint → number.
+ *
+ * The Zod plugin hardcodes z.coerce.bigint() for int64 fields,
+ * but our J* interfaces use `number`. This script replaces all
+ * bigint validator chains with plain z.number().
+ */
+import { readFileSync, writeFileSync } from 'fs';
+
+const file = './src/generated/api/zod.gen.ts';
+let content = readFileSync(file, 'utf-8');
+
+const before = (content.match(/z\.coerce\.bigint\(\)/g) || []).length;
+
+// Replace the full bigint chain (with int64 min/max) with z.number()
+content = content.replaceAll(
+ `z.coerce.bigint().min(BigInt('-9223372036854775808'), { error: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { error: 'Invalid value: Expected int64 to be <= 9223372036854775807' })`,
+ 'z.number()'
+);
+
+const after = (content.match(/z\.coerce\.bigint\(\)/g) || []).length;
+
+writeFileSync(file, content);
+console.log(`Replaced ${before - after} bigint chains with z.number() (${after} remaining)`);
+
+if (after > 0) {
+ console.warn('Warning: some bigint patterns were not replaced — check for variant chains');
+}
diff --git a/src/app/account/settings/acc-settings/acc-settings.component.spec.ts b/src/app/account/settings/acc-settings/acc-settings.component.spec.ts
index 3bc7ce917..f109c1d76 100644
--- a/src/app/account/settings/acc-settings/acc-settings.component.spec.ts
+++ b/src/app/account/settings/acc-settings/acc-settings.component.spec.ts
@@ -71,7 +71,7 @@ describe('AccountSettingsComponent', () => {
},
// eslint-disable-next-line @typescript-eslint/no-unused-vars
ghelper(_serviceConfig, _option: string): Observable {
- return of({ data: userResponse, included: [] });
+ return of({ jsonapi: { version: '1.1' }, data: userResponse, included: [] });
},
// eslint-disable-next-line @typescript-eslint/no-unused-vars
uhelper(_serviceConfig, _id: number, _option: string, _payload: unknown): Observable {
@@ -122,6 +122,21 @@ describe('AccountSettingsComponent', () => {
expect(component).toBeTruthy();
});
+ describe('User settings loading', () => {
+ it('populates form with user data from single-object response', () => {
+ // The mock ghelper returns { data: userResponse } (single object, not array).
+ // loadUserSettings() is called in ngOnInit, so the form should already be populated.
+ expect(component.form.get('name')?.value).toBe('admin');
+ expect(component.form.get('email')?.value).toBe('admin@localhost');
+ });
+
+ it('populates registeredSince as a formatted date', () => {
+ // registeredSince should be set from the user data, not be null/undefined
+ const registeredSince = component.form.get('registeredSince')?.value;
+ expect(registeredSince).toBeTruthy();
+ });
+ });
+
describe('Main form tests', () => {
it('validates email as required', () => {
const emailControl = component.form.get('email');
diff --git a/src/app/account/settings/acc-settings/acc-settings.component.ts b/src/app/account/settings/acc-settings/acc-settings.component.ts
index 3a1b5ea5a..bce7c0812 100644
--- a/src/app/account/settings/acc-settings/acc-settings.component.ts
+++ b/src/app/account/settings/acc-settings/acc-settings.component.ts
@@ -9,12 +9,14 @@ import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
+import { JUser } from '@models/user.model';
+
import { SERV } from '@services/main.config';
import { changeOwnPasswordResponseSchema } from '@src/app/account/settings/acc-settings/acc-settings.schema';
-import { JUserSchema } from '@src/app/core/_models/user.schema';
import { JsonAPISerializer } from '@src/app/core/_services/api/serializer-service';
import { passwordMatchValidator } from '@src/app/core/_validators/password.validator';
+import { zUserResponse } from '@src/generated/api/zod.gen';
export interface UpdateUserPassword {
oldPassword: string;
@@ -222,10 +224,7 @@ export class AccountSettingsComponent implements OnInit, OnDestroy {
private loadUserSettings() {
this.subscriptions.push(
this.gs.ghelper(SERV.HELPER, 'currentUser').subscribe((response) => {
- const user = new JsonAPISerializer().deserialize(
- { data: response.data, included: response.included },
- JUserSchema
- );
+ const user: JUser = new JsonAPISerializer().deserialize(response, zUserResponse);
this.form.patchValue({
name: user.name,
diff --git a/src/app/agents/edit-agent/edit-agent.component.ts b/src/app/agents/edit-agent/edit-agent.component.ts
index 77d3b7f3b..6c9b1f5dc 100644
--- a/src/app/agents/edit-agent/edit-agent.component.ts
+++ b/src/app/agents/edit-agent/edit-agent.component.ts
@@ -1,5 +1,6 @@
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
import { faApple, faLinux, faWindows } from '@fortawesome/free-brands-svg-icons';
+import { zAgentResponse, zChunkListResponse, zTaskListResponse, zUserListResponse } from '@generated/api/zod.gen';
import { firstValueFrom } from 'rxjs';
import { HttpErrorResponse } from '@angular/common/http';
@@ -13,7 +14,6 @@ import { JChunk } from '@models/chunk.model';
import { FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
import { JTask } from '@models/task.model';
-import { JUser } from '@models/user.model';
import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
@@ -184,8 +184,7 @@ export class EditAgentComponent implements OnInit, OnDestroy {
})
);
- const responseBody = { data: response.data, included: response.included };
- const agent = this.serializer.deserialize(responseBody);
+ const agent: JAgent = this.serializer.deserialize(response, zAgentResponse);
this.showagent = agent;
this.selectUserAgps = transformSelectOptions(agent.accessGroups, ACCESS_GROUP_FIELD_MAPPING);
if (this.agentRoleService.hasRole('readAssignment')) {
@@ -208,8 +207,7 @@ export class EditAgentComponent implements OnInit, OnDestroy {
if (httpErr?.status && httpErr.status >= 500) {
const response = await firstValueFrom(this.gs.get(SERV.AGENTS, this.editedAgentIndex));
- const responseBody = { data: response.data, included: response.included };
- const agent = this.serializer.deserialize(responseBody);
+ const agent: JAgent = this.serializer.deserialize(response, zAgentResponse);
this.showagent = agent;
this.selectUserAgps = transformSelectOptions(agent.accessGroups, ACCESS_GROUP_FIELD_MAPPING);
return;
@@ -232,8 +230,7 @@ export class EditAgentComponent implements OnInit, OnDestroy {
const loadTasksSubscription$ = this.gs
.ghelper(SERV.HELPER, 'getBestTasksAgent?agent=' + this.editedAgentIndex)
.subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const tasks = this.serializer.deserialize(responseBody);
+ const tasks: JTask[] = this.serializer.deserialize(response, zTaskListResponse);
this.assignTasks = transformSelectOptions(tasks, TASKS_FIELD_MAPPING);
});
@@ -246,9 +243,8 @@ export class EditAgentComponent implements OnInit, OnDestroy {
*/
private loadSelectUsers(): void {
const loadUsersSubscription$ = this.gs.getAll(SERV.USERS).subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
this.selectUsers = transformSelectOptions(
- this.serializer.deserialize(responseBody),
+ this.serializer.deserialize(response, zUserListResponse),
DEFAULT_FIELD_MAPPING
);
});
@@ -305,12 +301,10 @@ export class EditAgentComponent implements OnInit, OnDestroy {
.create();
const chunksSub$ = this.gs.getAll(SERV.CHUNKS, chunkRequestParams).subscribe((response: ResponseWrapper) => {
- const chunksBody = { data: response.data, included: response.included };
- const chunks = this.serializer.deserialize(chunksBody);
+ const chunks: JChunk[] = this.serializer.deserialize(response, zChunkListResponse);
const tasksSub$ = this.gs.getAll(SERV.TASKS).subscribe((tasksResponse: ResponseWrapper) => {
- const tasksBody = { data: tasksResponse.data, included: tasksResponse.included };
- const tasks = this.serializer.deserialize(tasksBody);
+ const tasks: JTask[] = this.serializer.deserialize(tasksResponse, zTaskListResponse);
this.getchunks = chunks.map((chunk) => {
const matchedTask = tasks.find((task) => task.id === chunk.taskId);
diff --git a/src/app/agents/edit-agent/edit-agent.form.ts b/src/app/agents/edit-agent/edit-agent.form.ts
index d35652894..d2676db82 100644
--- a/src/app/agents/edit-agent/edit-agent.form.ts
+++ b/src/app/agents/edit-agent/edit-agent.form.ts
@@ -10,7 +10,7 @@ export interface EditAgentForm {
isActive: FormControl;
userId: FormControl;
agentName: FormControl;
- cpuOnly: FormControl;
+ cpuOnly: FormControl;
cmdPars: FormControl;
ignoreErrors: FormControl;
isTrusted: FormControl;
diff --git a/src/app/agents/new-agent/new-agent.component.ts b/src/app/agents/new-agent/new-agent.component.ts
index 7ef27ece0..f4d70b322 100644
--- a/src/app/agents/new-agent/new-agent.component.ts
+++ b/src/app/agents/new-agent/new-agent.component.ts
@@ -1,3 +1,4 @@
+import { zConfigListResponse } from '@generated/api/zod.gen';
import { Subscription } from 'rxjs';
import { VouchersTableComponent } from 'src/app/core/_components/tables/vouchers-table/vouchers-table.component';
import { GlobalService } from 'src/app/core/_services/main.service';
@@ -9,11 +10,12 @@ import { Component, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { Router } from '@angular/router';
+import { JConfig } from '@models/configs.model';
+
import { SERV } from '@services/main.config';
import { AlertService } from '@services/shared/alert.service';
import { VoucherForm } from '@src/app/agents/new-agent/new-agent.form';
-import { JConfig } from '@src/app/core/_models/configs.model';
import { FilterType } from '@src/app/core/_models/request-params.model';
import { JsonAPISerializer } from '@src/app/core/_services/api/serializer-service';
import { RequestParamBuilder } from '@src/app/core/_services/params/builder-implementation.service';
@@ -66,10 +68,7 @@ export class NewAgentComponent implements OnInit, OnDestroy {
this.gs.getAll(SERV.CONFIGS, params).subscribe({
next: (response) => {
try {
- const configs = new JsonAPISerializer().deserialize({
- data: response?.data,
- included: response?.included
- });
+ const configs: JConfig[] = new JsonAPISerializer().deserialize(response, zConfigListResponse);
const setting = configs?.find((config) => config.item === 'voucherDeletion');
const rawValue = setting?.value ?? '';
const normalized = String(rawValue).toLowerCase();
diff --git a/src/app/config/engine/preprocessors/new_edit-preprocessor/new_edit-preprocessor.component.ts b/src/app/config/engine/preprocessors/new_edit-preprocessor/new_edit-preprocessor.component.ts
index 0eb2cdb34..57fafebb5 100644
--- a/src/app/config/engine/preprocessors/new_edit-preprocessor/new_edit-preprocessor.component.ts
+++ b/src/app/config/engine/preprocessors/new_edit-preprocessor/new_edit-preprocessor.component.ts
@@ -1,3 +1,4 @@
+import { zPreprocessorResponse } from '@generated/api/zod.gen';
import { Subscription, firstValueFrom } from 'rxjs';
import { HttpBackend, HttpClient, HttpErrorResponse } from '@angular/common/http';
@@ -5,7 +6,6 @@ import { Component, OnInit, inject } from '@angular/core';
import { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
-import { JPreprocessor } from '@models/preprocessor.model';
import { ResponseWrapper } from '@models/response.model';
import { JsonAPISerializer } from '@services/api/serializer-service';
@@ -113,10 +113,7 @@ export class NewEditPreprocessorComponent implements OnInit {
const response = await firstValueFrom(this.http.get(url));
- const preprocessor = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const preprocessor = new JsonAPISerializer().deserialize(response, zPreprocessorResponse);
this.newEditPreprocessorForm.patchValue({
name: preprocessor.name,
diff --git a/src/app/config/health-checks/new-health-check/new-health-checks.component.ts b/src/app/config/health-checks/new-health-check/new-health-checks.component.ts
index 9e327c573..4a973694f 100644
--- a/src/app/config/health-checks/new-health-check/new-health-checks.component.ts
+++ b/src/app/config/health-checks/new-health-check/new-health-checks.component.ts
@@ -1,8 +1,10 @@
+import { zCrackerBinaryListResponse, zCrackerBinaryTypeListResponse } from '@generated/api/zod.gen';
+
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
-import { JCrackerBinary, JCrackerBinaryType } from '@models/cracker-binary.model';
+import { JCrackerBinary, JCrackerBinaryType, zCrackerBinaryTypeList } from '@models/cracker-binary.model';
import { Filter, FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
@@ -85,10 +87,9 @@ export class NewHealthChecksComponent implements OnInit, OnDestroy {
*/
loadData(): void {
const loadSubscription$ = this.gs.getAll(SERV.CRACKERS_TYPES).subscribe((response: ResponseWrapper) => {
- const crackerTypes = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const crackerTypes: JCrackerBinaryType[] = zCrackerBinaryTypeList.parse(
+ new JsonAPISerializer().deserialize(response, zCrackerBinaryTypeListResponse)
+ );
this.selectCrackertype = transformSelectOptions(crackerTypes, CRACKER_TYPE_FIELD_MAPPING);
});
this.unsubscribeService.add(loadSubscription$);
@@ -105,10 +106,7 @@ export class NewHealthChecksComponent implements OnInit, OnDestroy {
const filter = new Array({ field: 'crackerBinaryTypeId', operator: FilterType.EQUAL, value: id });
const params = { filter: filter };
const onChangeBinarySubscription$ = this.gs.getAll(SERV.CRACKERS, params).subscribe((response: ResponseWrapper) => {
- const crackers = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const crackers: JCrackerBinary[] = new JsonAPISerializer().deserialize(response, zCrackerBinaryListResponse);
this.selectCrackerversions = transformSelectOptions(crackers, CRACKER_VERSION_FIELD_MAPPING);
const lastItem = this.selectCrackerversions.slice(-1)[0]['id'];
this.form.get('crackerBinaryId').patchValue(lastItem);
diff --git a/src/app/config/health-checks/view-health-check/view-health-checks.component.ts b/src/app/config/health-checks/view-health-check/view-health-checks.component.ts
index 860a663c8..69d91067d 100644
--- a/src/app/config/health-checks/view-health-check/view-health-checks.component.ts
+++ b/src/app/config/health-checks/view-health-check/view-health-checks.component.ts
@@ -1,3 +1,5 @@
+import { zHealthCheckResponse } from '@generated/api/zod.gen';
+
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@@ -79,10 +81,8 @@ export class ViewHealthChecksComponent implements OnInit, OnDestroy {
const loadSubscription$ = this.gs
.get(SERV.HEALTH_CHECKS, this.viewedHealthCIndex)
.subscribe((response: ResponseWrapper) => {
- this.healthc = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const healthCheck: JHealthCheck = new JsonAPISerializer().deserialize(response, zHealthCheckResponse);
+ this.healthc = healthCheck;
});
this.unsubscribeService.add(loadSubscription$);
}
diff --git a/src/app/core/_components/forms/custom-forms/superhashlist/new-superhashlist/new-superhashlist.component.ts b/src/app/core/_components/forms/custom-forms/superhashlist/new-superhashlist/new-superhashlist.component.ts
index f705afb1a..1cc2e9b48 100644
--- a/src/app/core/_components/forms/custom-forms/superhashlist/new-superhashlist/new-superhashlist.component.ts
+++ b/src/app/core/_components/forms/custom-forms/superhashlist/new-superhashlist/new-superhashlist.component.ts
@@ -1,8 +1,9 @@
+import { zHashlistListResponse } from '@generated/api/zod.gen';
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
-import { JHashlist } from '@models/hashlist.model';
import { FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
@@ -84,10 +85,7 @@ export class NewSuperhashlistComponent implements OnInit, OnDestroy {
const loadSubscription$ = this.globalService
.getAll(SERV.HASHLISTS, requestParams)
.subscribe((response: ResponseWrapper) => {
- this.selectHashlists = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ this.selectHashlists = new JsonAPISerializer().deserialize(response, zHashlistListResponse);
this.isLoading = false;
this.changeDetectorRef.detectChanges();
});
diff --git a/src/app/core/_components/forms/custom-forms/task/new-supertasks/new-supertasks.component.ts b/src/app/core/_components/forms/custom-forms/task/new-supertasks/new-supertasks.component.ts
index 4e9663808..b36d88325 100644
--- a/src/app/core/_components/forms/custom-forms/task/new-supertasks/new-supertasks.component.ts
+++ b/src/app/core/_components/forms/custom-forms/task/new-supertasks/new-supertasks.component.ts
@@ -1,3 +1,5 @@
+import { zPreTaskListResponse } from '@generated/api/zod.gen';
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
@@ -80,10 +82,7 @@ export class NewSupertasksComponent implements OnInit, OnDestroy {
*/
loadData(): void {
const loadSubscription$ = this.gs.getAll(SERV.PRETASKS).subscribe((response: ResponseWrapper) => {
- const pretasks = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const pretasks: JPretask[] = new JsonAPISerializer().deserialize(response, zPreTaskListResponse);
this.selectPretasks = transformSelectOptions(pretasks, PRETASKS_FIELD_MAPPING);
this.isLoading = false;
this.changeDetectorRef.detectChanges();
diff --git a/src/app/core/_components/forms/simple-forms/formconfig.component.ts b/src/app/core/_components/forms/simple-forms/formconfig.component.ts
index 95f75af05..a46e449f6 100644
--- a/src/app/core/_components/forms/simple-forms/formconfig.component.ts
+++ b/src/app/core/_components/forms/simple-forms/formconfig.component.ts
@@ -1,3 +1,4 @@
+import { zConfigListResponse } from '@generated/api/zod.gen';
import { Subscription, forkJoin } from 'rxjs';
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
@@ -135,8 +136,7 @@ export class FormConfigComponent implements OnInit, OnDestroy {
this.mySubscription = this.gs
.getAll(this.serviceConfig, { page: { size: 500 } })
.subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const config = this.serializer.deserialize(responseBody);
+ const config: JConfig[] = this.serializer.deserialize(response, zConfigListResponse);
this.formValues = config.reduce((configValues, item) => {
let value: string | boolean = item.value;
diff --git a/src/app/core/_datasources/access-groups-expand.datasource.ts b/src/app/core/_datasources/access-groups-expand.datasource.ts
index 08ac7f72b..3badfc77d 100644
--- a/src/app/core/_datasources/access-groups-expand.datasource.ts
+++ b/src/app/core/_datasources/access-groups-expand.datasource.ts
@@ -1,3 +1,4 @@
+import { zAccessGroupResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { JAccessGroup } from '@models/access-group.model';
@@ -5,7 +6,6 @@ import { JAgent } from '@models/agent.model';
import { ResponseWrapper } from '@models/response.model';
import { JUser } from '@models/user.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -40,10 +40,7 @@ export class AccessGroupsExpandDataSource extends BaseDataSource
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const accessGroup = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const accessGroup: JAccessGroup = this.serializer.deserialize(response, zAccessGroupResponse);
this.originalData = accessGroup[this._include] || [];
this.applyClientFilter(this._activeFilterValue, this._activeFilterColumn);
})
diff --git a/src/app/core/_datasources/access-groups.datasource.ts b/src/app/core/_datasources/access-groups.datasource.ts
index 6410c3e52..af5b0dddf 100644
--- a/src/app/core/_datasources/access-groups.datasource.ts
+++ b/src/app/core/_datasources/access-groups.datasource.ts
@@ -1,3 +1,4 @@
+import { zAccessGroupListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -41,10 +42,7 @@ export class AccessGroupsDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
-
- const accessgroups = this.serializer.deserialize(responseBody);
-
+ const accessgroups: JAccessGroup[] = this.serializer.deserialize(response, zAccessGroupListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
const prevLink = response.links.prev;
diff --git a/src/app/core/_datasources/access-permission-groups-expand.datasource.ts b/src/app/core/_datasources/access-permission-groups-expand.datasource.ts
index d2b66b618..ef024a99b 100644
--- a/src/app/core/_datasources/access-permission-groups-expand.datasource.ts
+++ b/src/app/core/_datasources/access-permission-groups-expand.datasource.ts
@@ -1,10 +1,10 @@
+import { zGlobalPermissionGroupResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { JGlobalPermissionGroup, UserPermissions } from '@models/global-permission-group.model';
import { ResponseWrapper } from '@models/response.model';
import { JUser } from '@models/user.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -40,7 +40,11 @@ export class AccessPermissionGroupsExpandDataSource extends BaseDataSource (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const globalPermissionGroup = new JsonAPISerializer().deserialize(response);
+ const globalPermissionGroup: JGlobalPermissionGroup = this.serializer.deserialize(
+ response,
+ zGlobalPermissionGroupResponse,
+ { include: ['userMembers'] as const }
+ );
let data: (UserPermissions | JUser)[];
if (this._perm) {
data = this.processPermissions(globalPermissionGroup);
diff --git a/src/app/core/_datasources/agent-binaries.datasource.ts b/src/app/core/_datasources/agent-binaries.datasource.ts
index 21d81f570..1f8653d04 100644
--- a/src/app/core/_datasources/agent-binaries.datasource.ts
+++ b/src/app/core/_datasources/agent-binaries.datasource.ts
@@ -1,3 +1,4 @@
+import { zAgentBinaryListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -41,8 +42,7 @@ export class AgentBinariesDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseData = { data: response.data, included: response.included };
- const agentBinaries = this.serializer.deserialize(responseData);
+ const agentBinaries: JAgentBinary[] = this.serializer.deserialize(response, zAgentBinaryListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
diff --git a/src/app/core/_datasources/agent-error.datasource.ts b/src/app/core/_datasources/agent-error.datasource.ts
index 13ca04107..e8e797696 100644
--- a/src/app/core/_datasources/agent-error.datasource.ts
+++ b/src/app/core/_datasources/agent-error.datasource.ts
@@ -2,13 +2,13 @@
* Contains data source for agents resource
* @module
*/
+import { zAgentErrorListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { JAgentErrors } from '@models/agent-errors.model';
import { Filter, FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -43,12 +43,7 @@ export class AgentErrorDatasource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe(async (response: ResponseWrapper) => {
- const serializer = new JsonAPISerializer();
- const responseBody = { data: response.data, included: response.included };
- const agents = serializer.deserialize({
- data: responseBody.data,
- included: responseBody.included
- });
+ const agents: JAgentErrors[] = this.serializer.deserialize(response, zAgentErrorListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
diff --git a/src/app/core/_datasources/agents.datasource.ts b/src/app/core/_datasources/agents.datasource.ts
index 68ebd9b62..935592144 100644
--- a/src/app/core/_datasources/agents.datasource.ts
+++ b/src/app/core/_datasources/agents.datasource.ts
@@ -2,6 +2,7 @@
* Contains data source for agents resource
* @module
*/
+import { zAgentAssignmentListResponse, zAgentListResponse, zUserListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, firstValueFrom, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -10,9 +11,9 @@ import { JAgentAssignment } from '@models/agent-assignment.model';
import { JAgent } from '@models/agent.model';
import { Filter, FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
+import { JTask } from '@models/task.model';
import { JUser } from '@models/user.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -69,12 +70,7 @@ export class AgentsDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe(async (response: ResponseWrapper) => {
- const serializer = new JsonAPISerializer();
- const responseBody = { data: response.data, included: response.included };
- const agents = serializer.deserialize({
- data: responseBody.data,
- included: responseBody.included
- });
+ const agents: JAgent[] = this.serializer.deserialize(response, zAgentListResponse);
if (agents && agents.length > 0) {
agents.forEach((agent: JAgent) => {
@@ -112,12 +108,7 @@ export class AgentsDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe(async (response: ResponseWrapper) => {
- const serializer = new JsonAPISerializer();
- const responseBody = { data: response.data, included: response.included };
- const assignments = serializer.deserialize({
- data: responseBody.data,
- included: responseBody.included
- });
+ const assignments: JAgentAssignment[] = this.serializer.deserialize(response, zAgentAssignmentListResponse);
if (assignments && assignments.length > 0) {
const userIds: Array = assignments
.map((assignment) => assignment.agent.userId)
@@ -126,8 +117,8 @@ export class AgentsDataSource extends BaseDataSource {
const agents: JAgent[] = [];
assignments.forEach((assignment) => {
- const task = assignment.task;
- const agent = assignment.agent;
+ const task = assignment.task as JTask;
+ const agent = assignment.agent as JAgent;
agent.task = task;
agent.user = users.find((user) => user.id === agent.userId);
agent.taskName = agent.task.taskName;
@@ -188,8 +179,7 @@ export class AgentsDataSource extends BaseDataSource {
})
)
);
- const responseBody = { data: response.data, included: response.included };
- users = this.serializer.deserialize(responseBody);
+ users = this.serializer.deserialize(response, zUserListResponse);
} catch {
// Error already handled via handleFilterError
}
diff --git a/src/app/core/_datasources/chunks.datasource.ts b/src/app/core/_datasources/chunks.datasource.ts
index 342a3e222..a26dcb7b5 100644
--- a/src/app/core/_datasources/chunks.datasource.ts
+++ b/src/app/core/_datasources/chunks.datasource.ts
@@ -1,3 +1,4 @@
+import { zChunkListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, forkJoin, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -48,8 +49,7 @@ export class ChunksDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe(([response]: [ResponseWrapper]) => {
- const responseBody = { data: response.data, included: response.included };
- const assignedChunks = this.serializer.deserialize(responseBody);
+ const assignedChunks: JChunk[] = this.serializer.deserialize(response, zChunkListResponse);
assignedChunks.forEach((chunk: JChunk) => {
if (chunk.task != undefined) {
diff --git a/src/app/core/_datasources/crackers.datasource.ts b/src/app/core/_datasources/crackers.datasource.ts
index e49809f88..19e7959ce 100644
--- a/src/app/core/_datasources/crackers.datasource.ts
+++ b/src/app/core/_datasources/crackers.datasource.ts
@@ -1,8 +1,9 @@
+import { zCrackerBinaryTypeListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
-import { JCrackerBinaryType } from '@models/cracker-binary.model';
+import { JCrackerBinaryType, zCrackerBinaryTypeList } from '@models/cracker-binary.model';
import { Filter } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
@@ -40,8 +41,9 @@ export class CrackersDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseData = { data: response.data, included: response.included };
- const crackers = this.serializer.deserialize(responseData);
+ const crackers: JCrackerBinaryType[] = zCrackerBinaryTypeList.parse(
+ this.serializer.deserialize(response, zCrackerBinaryTypeListResponse)
+ );
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
diff --git a/src/app/core/_datasources/cracks.datasource.ts b/src/app/core/_datasources/cracks.datasource.ts
index a2cfc25a1..268abefb5 100644
--- a/src/app/core/_datasources/cracks.datasource.ts
+++ b/src/app/core/_datasources/cracks.datasource.ts
@@ -1,11 +1,10 @@
+import { zHashListResponse, zTaskResponse } from '@generated/api/zod.gen';
import { catchError, firstValueFrom } from 'rxjs';
import { JHash } from '@models/hash.model';
import { Filter, FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
-import { JTask } from '@models/task.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -34,7 +33,7 @@ export class CracksDataSource extends BaseDataSource {
* Load cracked hashes from server
* @return Promise of cracked hashes
*/
- async loadCrackedHashes(query?: Filter) {
+ async loadCrackedHashes(query?: Filter): Promise {
if (query) {
this._currentFilter = query;
}
@@ -64,8 +63,7 @@ export class CracksDataSource extends BaseDataSource {
const before = prevLink ? new URL(response.links.prev).searchParams.get('page[before]') : null;
this.setPaginationConfig(this.pageSize, length, after, before, this.index);
- const serializer = new JsonAPISerializer();
- return serializer.deserialize({ data: response.data, included: response.included });
+ return this.serializer.deserialize(response, zHashListResponse, { include: ['chunk'] as const });
} catch {
return [];
}
@@ -86,7 +84,7 @@ export class CracksDataSource extends BaseDataSource {
})
)
);
- return new JsonAPISerializer().deserialize({ data: response.data, included: response.included });
+ return this.serializer.deserialize(response, zTaskResponse);
} catch {
return null;
}
diff --git a/src/app/core/_datasources/files.datasource.ts b/src/app/core/_datasources/files.datasource.ts
index 4dab4332f..8b1e1a7b2 100644
--- a/src/app/core/_datasources/files.datasource.ts
+++ b/src/app/core/_datasources/files.datasource.ts
@@ -3,6 +3,7 @@
* @module
*/
+import { zFileListResponse, zPreTaskResponse, zTaskResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -13,7 +14,6 @@ import { Filter, FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
import { JTask } from '@models/task.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -99,15 +99,11 @@ export class FilesDataSource extends BaseDataSource {
)
.subscribe((response: ResponseWrapper) => {
if (this.editIndex !== undefined && this.editType === 0) {
- const serializer = new JsonAPISerializer();
- const responseData = { data: response.data, included: response.included };
- const tasks = serializer.deserialize(responseData);
+ const tasks: JTask = this.serializer.deserialize(response, zTaskResponse);
- this.setData(tasks.files);
+ this.setData(tasks.files as JFile[]);
} else if (this.editType === 1) {
- const serializer = new JsonAPISerializer();
- const responseData = { data: response.data, included: response.included };
- const pretask = serializer.deserialize(responseData);
+ const pretask: JPretask = this.serializer.deserialize(response, zPreTaskResponse);
if (!this.editType) {
const nextLink = response.links.next;
@@ -118,11 +114,9 @@ export class FilesDataSource extends BaseDataSource {
this.setPaginationConfig(this.pageSize, length, after, before, this.index);
}
- this.setData(pretask.pretaskFiles);
+ this.setData(pretask.pretaskFiles as JFile[]);
} else {
- const serializer = new JsonAPISerializer();
- const responseData = { data: response.data, included: response.included };
- const files = serializer.deserialize(responseData);
+ const files: JFile[] = this.serializer.deserialize(response, zFileListResponse);
const nextLink = response.links.next;
const prevLink = response.links.prev;
diff --git a/src/app/core/_datasources/hashes.datasource.ts b/src/app/core/_datasources/hashes.datasource.ts
index c936cf8e9..c977e5acc 100644
--- a/src/app/core/_datasources/hashes.datasource.ts
+++ b/src/app/core/_datasources/hashes.datasource.ts
@@ -1,10 +1,10 @@
+import { zHashListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { JHash } from '@models/hash.model';
import { Filter, FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -40,10 +40,7 @@ export class HashesDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const hashes = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const hashes: JHash[] = this.serializer.deserialize(response, zHashListResponse);
this.setData(hashes);
})
@@ -72,10 +69,7 @@ export class HashesDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const hashes = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const hashes: JHash[] = this.serializer.deserialize(response, zHashListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
diff --git a/src/app/core/_datasources/hashlists.datasource.ts b/src/app/core/_datasources/hashlists.datasource.ts
index d18240099..43c50a2fd 100644
--- a/src/app/core/_datasources/hashlists.datasource.ts
+++ b/src/app/core/_datasources/hashlists.datasource.ts
@@ -1,3 +1,4 @@
+import { zHashlistListResponse, zHashlistResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -59,12 +60,8 @@ export class HashlistsDataSource extends BaseDataSource {
if (!response) {
return; // Don't update data if there was an error
}
- const responseData = { data: response.data, included: response.included };
- const superHashList: JHashlist = this.serializer.deserialize({
- data: responseData.data,
- included: responseData.included
- });
- this.setData(superHashList.hashlists);
+ const superHashList: JHashlist = this.serializer.deserialize(response, zHashlistResponse);
+ this.setData(superHashList.hashlists as JHashlist[]);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
const prevLink = response.links.prev;
@@ -103,8 +100,7 @@ export class HashlistsDataSource extends BaseDataSource {
if (!response) {
return; // Don't update data if there was an error
}
- const responseData = { data: response.data, included: response.included };
- const deserialized = this.serializer.deserialize(responseData);
+ const deserialized: JHashlist[] = this.serializer.deserialize(response, zHashlistListResponse);
if (!deserialized || !Array.isArray(deserialized)) {
return; // Safety check: if deserialize returns null or non-array, exit
}
diff --git a/src/app/core/_datasources/hashtypes.datasource.ts b/src/app/core/_datasources/hashtypes.datasource.ts
index bfda111cf..e1d16758e 100644
--- a/src/app/core/_datasources/hashtypes.datasource.ts
+++ b/src/app/core/_datasources/hashtypes.datasource.ts
@@ -1,3 +1,4 @@
+import { zHashTypeListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -39,8 +40,7 @@ export class HashtypesDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const hashtypes = this.serializer.deserialize(responseBody);
+ const hashtypes: JHashtype[] = this.serializer.deserialize(response, zHashTypeListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
const prevLink = response.links.prev;
diff --git a/src/app/core/_datasources/health-check-agents.datasource.ts b/src/app/core/_datasources/health-check-agents.datasource.ts
index 68f96c3d3..d6fa15301 100644
--- a/src/app/core/_datasources/health-check-agents.datasource.ts
+++ b/src/app/core/_datasources/health-check-agents.datasource.ts
@@ -1,10 +1,10 @@
+import { zHealthCheckAgentListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { JHealthCheckAgent } from '@models/health-check.model';
import { FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -38,10 +38,10 @@ export class HealthCheckAgentsDataSource extends BaseDataSource (this.loading = false))
)
.subscribe((healthCheckResponse: ResponseWrapper) => {
- const healthChecksAgent = new JsonAPISerializer().deserialize({
- data: healthCheckResponse.data,
- included: healthCheckResponse.included
- });
+ const healthChecksAgent: JHealthCheckAgent[] = this.serializer.deserialize(
+ healthCheckResponse,
+ zHealthCheckAgentListResponse
+ );
const length = healthCheckResponse.meta.page.total_elements;
const nextLink = healthCheckResponse.links.next;
diff --git a/src/app/core/_datasources/health-checks.datasource.ts b/src/app/core/_datasources/health-checks.datasource.ts
index 413ef0a99..a03f42a08 100644
--- a/src/app/core/_datasources/health-checks.datasource.ts
+++ b/src/app/core/_datasources/health-checks.datasource.ts
@@ -1,3 +1,4 @@
+import { zHealthCheckListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, forkJoin, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -40,8 +41,7 @@ export class HealthChecksDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe(([response]: [ResponseWrapper]) => {
- const responseData = { data: response.data, included: response.included };
- const healthChecks = this.serializer.deserialize(responseData);
+ const healthChecks: JHealthCheck[] = this.serializer.deserialize(response, zHealthCheckListResponse);
healthChecks.forEach((healthCheck: JHealthCheck) => {
healthCheck.hashTypeDescription = healthCheck.hashType?.description;
diff --git a/src/app/core/_datasources/logs.datasource.ts b/src/app/core/_datasources/logs.datasource.ts
index de59aee6a..6f71b13a6 100644
--- a/src/app/core/_datasources/logs.datasource.ts
+++ b/src/app/core/_datasources/logs.datasource.ts
@@ -1,3 +1,4 @@
+import { zLogEntryListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -44,10 +45,9 @@ export class LogsDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseData = { data: response.data, included: response.included };
- const logs = this.serializer.deserialize(responseData);
- /*
- this causes an infinite loop when searching im not sure what is the purpose of it since no other load all has it
+ const logs: JLog[] = this.serializer.deserialize(response, zLogEntryListResponse);
+ /*
+ this causes an infinite loop when searching im not sure what is the purpose of it since no other load all has it
*/
/* if (this.currentPage * this.pageSize >= logs.length) {
this.currentPage = 0;
diff --git a/src/app/core/_datasources/notifications.datasource.ts b/src/app/core/_datasources/notifications.datasource.ts
index 68df07026..40de1559e 100644
--- a/src/app/core/_datasources/notifications.datasource.ts
+++ b/src/app/core/_datasources/notifications.datasource.ts
@@ -1,3 +1,4 @@
+import { zNotificationSettingListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -40,8 +41,10 @@ export class NotificationsDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseData = { data: response.data, included: response.included };
- const notifications = this.serializer.deserialize(responseData);
+ const notifications: JNotification[] = this.serializer.deserialize(
+ response,
+ zNotificationSettingListResponse
+ );
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
diff --git a/src/app/core/_datasources/permissions.datasource.ts b/src/app/core/_datasources/permissions.datasource.ts
index 25b7a9fe3..b54210dce 100644
--- a/src/app/core/_datasources/permissions.datasource.ts
+++ b/src/app/core/_datasources/permissions.datasource.ts
@@ -1,3 +1,4 @@
+import { zGlobalPermissionGroupListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -41,8 +42,10 @@ export class PermissionsDataSource extends BaseDataSource (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const globalPermissionGroups = this.serializer.deserialize(responseBody);
+ const globalPermissionGroups: JGlobalPermissionGroup[] = this.serializer.deserialize(
+ response,
+ zGlobalPermissionGroupListResponse
+ );
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
diff --git a/src/app/core/_datasources/preconfigured-tasks.datasource.ts b/src/app/core/_datasources/preconfigured-tasks.datasource.ts
index 7e89a385b..d267906b0 100644
--- a/src/app/core/_datasources/preconfigured-tasks.datasource.ts
+++ b/src/app/core/_datasources/preconfigured-tasks.datasource.ts
@@ -1,4 +1,5 @@
// typescript
+import { zPreTaskListResponse, zSupertaskResponse } from '@generated/api/zod.gen';
import { catchError, firstValueFrom } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -109,8 +110,7 @@ export class PreTasksDataSource extends BaseDataSource {
const before = prevLink ? new URL(response.links.prev).searchParams.get('page[before]') : null;
this.setPaginationConfig(this.pageSize, length, after, before, this.index);
- const responseData = { data: response.data, included: response.included };
- return this.serializer.deserialize(responseData);
+ return this.serializer.deserialize(response, zPreTaskListResponse);
} catch {
return [];
}
@@ -128,8 +128,7 @@ export class PreTasksDataSource extends BaseDataSource {
)
);
- const responseData = { data: response.data, included: response.included };
- return this.serializer.deserialize(responseData);
+ return this.serializer.deserialize(response, zSupertaskResponse);
} catch {
return null;
}
@@ -170,8 +169,7 @@ export class PreTasksDataSource extends BaseDataSource {
const before = prevLink ? new URL(prevLink).searchParams.get('page[before]') : null;
this.setPaginationConfig(this.pageSize, length, after, before, this.index);
- const responseData = { data: response.data, included: response.included };
- return this.serializer.deserialize(responseData);
+ return this.serializer.deserialize(response, zPreTaskListResponse);
} catch {
return [];
}
diff --git a/src/app/core/_datasources/preprocessors.datasource.ts b/src/app/core/_datasources/preprocessors.datasource.ts
index 5d9debda3..3fa04a2b4 100644
--- a/src/app/core/_datasources/preprocessors.datasource.ts
+++ b/src/app/core/_datasources/preprocessors.datasource.ts
@@ -1,6 +1,7 @@
/**
* This module contains the datasource definition for the preprocessors table component
*/
+import { zPreprocessorListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -42,8 +43,7 @@ export class PreprocessorsDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseData = { data: response.data, included: response.included };
- const preprocessors = this.serializer.deserialize(responseData);
+ const preprocessors: JPreprocessor[] = this.serializer.deserialize(response, zPreprocessorListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
diff --git a/src/app/core/_datasources/search-hash.datasource.ts b/src/app/core/_datasources/search-hash.datasource.ts
index 4b3912e47..222416b0a 100644
--- a/src/app/core/_datasources/search-hash.datasource.ts
+++ b/src/app/core/_datasources/search-hash.datasource.ts
@@ -1,3 +1,4 @@
+import { zHashListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { JHash, SearchHashModel } from '@models/hash.model';
@@ -60,8 +61,7 @@ export class SearchHashDataSource extends BaseDataSource {
})
)
.subscribe((response: ResponseWrapper) => {
- const responseData = { data: response.data, included: response.included };
- const hashes = this.convertHashes(this.serializer.deserialize(responseData));
+ const hashes = this.convertHashes(this.serializer.deserialize(response, zHashListResponse));
this.checkMissingHashes(hashes);
this.setData(hashes);
})
diff --git a/src/app/core/_datasources/super-hashlists.datasource.ts b/src/app/core/_datasources/super-hashlists.datasource.ts
index 7db6f72b0..a406bb81f 100644
--- a/src/app/core/_datasources/super-hashlists.datasource.ts
+++ b/src/app/core/_datasources/super-hashlists.datasource.ts
@@ -1,4 +1,5 @@
import { HashListFormat } from '@constants/hashlist.config';
+import { zHashlistListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -7,7 +8,6 @@ import { JHashlist } from '@models/hashlist.model';
import { Filter, FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { BaseDataSource } from '@datasources/base.datasource';
@@ -51,9 +51,7 @@ export class SuperHashlistsDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const serializer = new JsonAPISerializer();
- const responseData = { data: response.data, included: response.included };
- const superHashlists = serializer.deserialize(responseData);
+ const superHashlists: JHashlist[] = this.serializer.deserialize(response, zHashlistListResponse);
const rows: JHashlist[] = [];
superHashlists.forEach((superHashlist) => {
diff --git a/src/app/core/_datasources/supertasks-pretasks.datasource.ts b/src/app/core/_datasources/supertasks-pretasks.datasource.ts
index f4779f7e1..229d3b46c 100644
--- a/src/app/core/_datasources/supertasks-pretasks.datasource.ts
+++ b/src/app/core/_datasources/supertasks-pretasks.datasource.ts
@@ -1,10 +1,10 @@
+import { zSupertaskResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { JPretask } from '@models/pretask.model';
import { ResponseWrapper } from '@models/response.model';
import { JSuperTask } from '@models/supertask.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -29,10 +29,10 @@ export class SuperTasksPretasksDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const pretasks = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- }).pretasks;
+ const superTask: JSuperTask = this.serializer.deserialize(response, zSupertaskResponse, {
+ include: ['pretasks'] as const
+ });
+ const pretasks = superTask.pretasks;
this.setData(pretasks);
})
);
diff --git a/src/app/core/_datasources/supertasks.datasource.ts b/src/app/core/_datasources/supertasks.datasource.ts
index 92f2e0502..009e55ac9 100644
--- a/src/app/core/_datasources/supertasks.datasource.ts
+++ b/src/app/core/_datasources/supertasks.datasource.ts
@@ -1,3 +1,4 @@
+import { zSupertaskListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -40,8 +41,7 @@ export class SuperTasksDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const supertasks = this.serializer.deserialize(responseBody);
+ const supertasks: JSuperTask[] = this.serializer.deserialize(response, zSupertaskListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
const prevLink = response.links.prev;
diff --git a/src/app/core/_datasources/tasks-chunks.datasource.ts b/src/app/core/_datasources/tasks-chunks.datasource.ts
index 8711bda53..fe646f28c 100644
--- a/src/app/core/_datasources/tasks-chunks.datasource.ts
+++ b/src/app/core/_datasources/tasks-chunks.datasource.ts
@@ -1,3 +1,4 @@
+import { zChunkListResponse, zTaskResponse } from '@generated/api/zod.gen';
import { catchError, finalize, firstValueFrom, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -7,7 +8,6 @@ import { Filter, FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
import { JTask } from '@models/task.model';
-import { JsonAPISerializer } from '@services/api/serializer-service';
import { SERV } from '@services/main.config';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -54,10 +54,7 @@ export class TasksChunksDataSource extends BaseDataSource {
})
)
);
- const task = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const task: JTask = this.serializer.deserialize(response, zTaskResponse);
chunkTime = task.chunkTime;
} catch {
// Error already handled via handleFilterError
@@ -85,11 +82,7 @@ export class TasksChunksDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const chunks = new JsonAPISerializer().deserialize({
- data: responseBody.data,
- included: responseBody.included
- });
+ const chunks: JChunk[] = this.serializer.deserialize(response, zChunkListResponse);
const chunksToShow: JChunk[] = chunks.map((chunk: JChunk) => {
if (chunk.agent) {
diff --git a/src/app/core/_datasources/tasks-supertasks.datasource.ts b/src/app/core/_datasources/tasks-supertasks.datasource.ts
index 7cca69ded..1f99057cf 100644
--- a/src/app/core/_datasources/tasks-supertasks.datasource.ts
+++ b/src/app/core/_datasources/tasks-supertasks.datasource.ts
@@ -1,3 +1,4 @@
+import { zChunkListResponse, zTaskListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { JChunk } from '@models/chunk.model';
@@ -34,10 +35,7 @@ export class TasksSupertasksDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const subtasks = this.serializer.deserialize({
- data: response.data,
- included: response.included
- });
+ const subtasks: JTask[] = this.serializer.deserialize(response, zTaskListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
const prevLink = response.links.prev;
@@ -57,10 +55,7 @@ export class TasksSupertasksDataSource extends BaseDataSource {
.getAll(SERV.CHUNKS, chunkParams.create())
.pipe(finalize(() => this.setData(subtasks)))
.subscribe((chunkResponse: ResponseWrapper) => {
- const chunks = this.serializer.deserialize({
- data: chunkResponse.data,
- included: chunkResponse.included
- });
+ const chunks: JChunk[] = this.serializer.deserialize(chunkResponse, zChunkListResponse);
subtasks.forEach((task) => {
task.chunkData = this.convertChunks(task.id, chunks, false, task.keyspace);
});
diff --git a/src/app/core/_datasources/tasks.datasource.ts b/src/app/core/_datasources/tasks.datasource.ts
index e1c4ce617..774718624 100644
--- a/src/app/core/_datasources/tasks.datasource.ts
+++ b/src/app/core/_datasources/tasks.datasource.ts
@@ -1,3 +1,4 @@
+import { zTaskWrapperListResponse } from '@generated/api/zod.gen';
import { catchError, of } from 'rxjs';
import { finalize } from 'rxjs/operators';
@@ -69,10 +70,7 @@ export class TasksDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const taskWrappers = this.serializer.deserialize({
- data: response.data,
- included: response.included
- });
+ const taskWrappers: JTaskWrapper[] = this.serializer.deserialize(response, zTaskWrapperListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
const prevLink = response.links.prev;
diff --git a/src/app/core/_datasources/users.datasource.ts b/src/app/core/_datasources/users.datasource.ts
index 9661d6be9..7fe6ec16c 100644
--- a/src/app/core/_datasources/users.datasource.ts
+++ b/src/app/core/_datasources/users.datasource.ts
@@ -1,3 +1,4 @@
+import { zUserListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { HttpHeaders } from '@angular/common/http';
@@ -41,9 +42,7 @@ export class UsersDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
-
- const users = this.serializer.deserialize(responseBody);
+ const users: JUser[] = this.serializer.deserialize(response, zUserListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
diff --git a/src/app/core/_datasources/vouchers.datasource.ts b/src/app/core/_datasources/vouchers.datasource.ts
index c7d978829..78c97ad26 100644
--- a/src/app/core/_datasources/vouchers.datasource.ts
+++ b/src/app/core/_datasources/vouchers.datasource.ts
@@ -1,3 +1,4 @@
+import { zVoucherListResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { Filter } from '@models/request-params.model';
@@ -5,7 +6,6 @@ import { Filter } from '@models/request-params.model';
import { BaseDataSource } from '@src/app/core/_datasources/base.datasource';
import { ResponseWrapper } from '@src/app/core/_models/response.model';
import { JVoucher } from '@src/app/core/_models/voucher.model';
-import { JsonAPISerializer } from '@src/app/core/_services/api/serializer-service';
import { SERV } from '@src/app/core/_services/main.config';
import { RequestParamBuilder } from '@src/app/core/_services/params/builder-implementation.service';
@@ -25,10 +25,7 @@ export class VouchersDataSource extends BaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response: ResponseWrapper) => {
- const vouchers: JVoucher[] = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const vouchers: JVoucher[] = this.serializer.deserialize(response, zVoucherListResponse);
const length = response.meta.page.total_elements;
const nextLink = response.links.next;
diff --git a/src/app/core/_models/agent-errors.model.ts b/src/app/core/_models/agent-errors.model.ts
index da46e24dc..b725cc30c 100644
--- a/src/app/core/_models/agent-errors.model.ts
+++ b/src/app/core/_models/agent-errors.model.ts
@@ -1,6 +1,5 @@
-import { BaseModel } from './base.model';
-import { JTask } from './task.model';
-import { NumberSymbol } from '@angular/common';
+import { BaseModel } from '@models/base.model';
+import { JTask } from '@models/task.model';
export interface JAgentErrors extends BaseModel {
agentId: number;
@@ -8,7 +7,7 @@ export interface JAgentErrors extends BaseModel {
error: string;
id: number;
taskId: number;
- time: NumberSymbol;
+ time: number;
type: string;
task?: JTask;
}
diff --git a/src/app/core/_models/agent.model.ts b/src/app/core/_models/agent.model.ts
index 1792da346..5372d0449 100644
--- a/src/app/core/_models/agent.model.ts
+++ b/src/app/core/_models/agent.model.ts
@@ -1,10 +1,9 @@
-import { ChunkData, JChunk } from '@models/chunk.model';
-
-import { BaseModel } from '@models/base.model';
import { JAccessGroup } from '@models/access-group.model';
import { JAgentAssignment } from '@models/agent-assignment.model';
-import { JAgentErrors } from './agent-errors.model';
+import { JAgentErrors } from '@models/agent-errors.model';
import { JAgentStat } from '@models/agent-stats.model';
+import { BaseModel } from '@models/base.model';
+import { ChunkData, JChunk } from '@models/chunk.model';
import { JTask } from '@models/task.model';
import { JUser } from '@models/user.model';
@@ -18,16 +17,16 @@ export interface JAgent extends BaseModel {
os: number;
devices: string;
cmdPars: string;
- ignoreErrors: number;
+ ignoreErrors?: number;
isActive: boolean;
isTrusted: boolean;
token: string;
lastAct: string;
lastTime: number;
lastIp: string;
- userId: null;
+ userId?: number | null;
user?: JUser;
- cpuOnly: number;
+ cpuOnly: boolean;
clientSignature: string;
agentStats?: JAgentStat[];
agentErrors?: JAgentErrors[];
diff --git a/src/app/core/_models/chunk.model.ts b/src/app/core/_models/chunk.model.ts
index 7b782245f..ba88bcf3c 100644
--- a/src/app/core/_models/chunk.model.ts
+++ b/src/app/core/_models/chunk.model.ts
@@ -10,7 +10,7 @@ export interface JChunk extends BaseModel {
taskId: number;
taskName?: string;
task?: JTask;
- format: string;
+ format?: string;
skip: number;
length: number;
agentId: number;
diff --git a/src/app/core/_models/cracker-binary.model.ts b/src/app/core/_models/cracker-binary.model.ts
index b0e4110ce..80047111c 100644
--- a/src/app/core/_models/cracker-binary.model.ts
+++ b/src/app/core/_models/cracker-binary.model.ts
@@ -1,3 +1,5 @@
+import { z } from 'zod';
+
import { BaseModel } from '@models/base.model';
/**
@@ -24,3 +26,26 @@ export interface JCrackerBinaryType extends BaseModel {
isChunkingAvailable: boolean;
typeName: string;
}
+
+/**
+ * Zod schema for validating deserialized (flat) cracker binary objects.
+ * Use after jsona.deserialize() to validate that relationship data was included.
+ */
+export const zCrackerBinary = z.object({
+ id: z.number(),
+ type: z.string(),
+ binaryName: z.string(),
+ crackerBinaryTypeId: z.number(),
+ downloadUrl: z.string(),
+ version: z.string()
+});
+
+export const zCrackerBinaryType = z.object({
+ id: z.number(),
+ type: z.string(),
+ typeName: z.string(),
+ isChunkingAvailable: z.boolean(),
+ crackerVersions: z.array(zCrackerBinary)
+});
+
+export const zCrackerBinaryTypeList = z.array(zCrackerBinaryType);
diff --git a/src/app/core/_models/global-permission-group.model.ts b/src/app/core/_models/global-permission-group.model.ts
index d5072ce42..846d7eb29 100644
--- a/src/app/core/_models/global-permission-group.model.ts
+++ b/src/app/core/_models/global-permission-group.model.ts
@@ -21,7 +21,7 @@ export interface Permission {
export interface JGlobalPermissionGroup extends BaseModel {
name: string;
permissions: Permission;
- userMembers: JUser[];
+ userMembers?: JUser[];
}
/**
diff --git a/src/app/core/_models/hashlist.model.ts b/src/app/core/_models/hashlist.model.ts
index 372716471..be6ab98b5 100644
--- a/src/app/core/_models/hashlist.model.ts
+++ b/src/app/core/_models/hashlist.model.ts
@@ -9,8 +9,8 @@ import { JTask } from '@models/task.model';
export interface JHashlist extends BaseModel {
hashlistId?: number;
accessGroupId: number;
- brainFeatures: string;
- format: number;
+ brainFeatures: number;
+ format?: number;
name: string;
hashTypeId: number;
hashType?: JHashtype;
@@ -18,14 +18,14 @@ export interface JHashlist extends BaseModel {
isHexSalt: boolean;
isSecret: boolean;
isSalted: boolean;
- separator: string;
+ separator?: string | null;
useBrain: boolean;
hashCount: number;
cracked: number;
notes: string;
isArchived: boolean;
- sourceType: string;
- sourceData: string;
+ sourceType?: string;
+ sourceData?: string;
hashlists?: JHashlist[];
tasks?: JTask[];
}
diff --git a/src/app/core/_models/health-check.model.ts b/src/app/core/_models/health-check.model.ts
index 9b65738b2..2d783f437 100644
--- a/src/app/core/_models/health-check.model.ts
+++ b/src/app/core/_models/health-check.model.ts
@@ -8,8 +8,10 @@ import { JHashtype } from '@models/hashtype.model';
* - `BRUTE_FORCE` Health check using brute-force attack
* @enum
*/
+// @TODO: Check this
export enum HealthCheckType {
- BRUTE_FORCE
+ MD5 = 0,
+ BCRYPT = 3200
}
/**
@@ -35,7 +37,8 @@ export interface JHealthCheck extends BaseModel {
crackerBinary?: JCrackerBinary;
expectedCracks: number;
healthCheckAgents?: JHealthCheckAgent[];
- hashTypeId: number;
+ hashtypeId: number;
+ hashTypeId?: number;
hashType?: JHashtype;
hashTypeDescription?: string;
status: number;
diff --git a/src/app/core/_models/json-api.types.ts b/src/app/core/_models/json-api.types.ts
new file mode 100644
index 000000000..487ac6ea1
--- /dev/null
+++ b/src/app/core/_models/json-api.types.ts
@@ -0,0 +1,111 @@
+import { TJsonApiLinks } from 'jsona/lib/JsonaTypes';
+import { z } from 'zod';
+
+// ── Helpers ──────────────────────────────────────────────────────
+
+/**
+ * Make optional `data` required so conditional type matching works.
+ * Guard: only activates when T actually has a `data` key
+ * (preserves backward compat for flat schemas).
+ */
+type NormalizeEnvelope = 'data' extends keyof T
+ ? T extends { data?: infer D }
+ ? Omit & { data: NonNullable }
+ : T
+ : T;
+
+/**
+ * Properties injected by jsona at runtime on every deserialized object.
+ */
+type JsonaRuntimeProps = {
+ links?: TJsonApiLinks;
+ relationshipNames?: string[];
+};
+
+// ── Relationship resolution types ────────────────────────────────
+
+/** Extract the typed relationships object from a JSON:API envelope. */
+type ExtractRelationships = T extends { relationships?: infer R } ? NonNullable : Record;
+
+/** Extract the union of included resource types from a JSON:API envelope. */
+type ExtractIncludedUnion = T extends { included?: (infer I)[] } ? I : never;
+
+/**
+ * Resolve a relationship to its flattened type.
+ * Matches by relationship key name = included type literal.
+ * To-many (array data) → FlattenItem[]
+ * To-one (single data) → FlattenItem | null
+ */
+type ResolveRel =
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ NonNullable extends readonly any[]
+ ? FlattenItem>[]
+ : FlattenItem> | null;
+
+/** Map all relationship keys to optional resolved types. */
+type RelationshipMap = {
+ [K in keyof Rels & string]?: ResolveRel;
+};
+
+/** Make specified keys required (no-op when K is never). */
+type RequireKeys = [K] extends [never] ? T : Omit & Required>;
+
+// ── Flatten types ────────────────────────────────────────────────
+
+/**
+ * Flatten a JSON:API resource object: merge attributes into the root,
+ * strip the `attributes` and `relationships` wrappers.
+ *
+ * { id, type, attributes: { name } } → { id, type, name }
+ */
+type FlattenItem = D extends { attributes?: infer A }
+ ? Omit & Required> & JsonaRuntimeProps
+ : D & JsonaRuntimeProps;
+
+/** Flatten data item + attach resolved relationship properties. */
+type FlattenItemWithRels = D extends { attributes?: infer A }
+ ? Omit &
+ Required> &
+ RelationshipMap &
+ JsonaRuntimeProps
+ : D & JsonaRuntimeProps;
+
+// ── Main types ───────────────────────────────────────────────────
+
+type JsonApiPayloadInner = [IncKeys] extends [never]
+ ? T extends { data: (infer D)[] }
+ ? FlattenItem[]
+ : T extends { data: infer D }
+ ? FlattenItem
+ : T
+ : T extends { data: (infer D)[] }
+ ? RequireKeys, ExtractIncludedUnion>, IncKeys>[]
+ : T extends { data: infer D }
+ ? RequireKeys, ExtractIncludedUnion>, IncKeys>
+ : T;
+
+/**
+ * Transform a JSON:API envelope type into the flat model type
+ * that jsona's `deserialize()` produces at runtime.
+ *
+ * Handles: optional data/attributes, relationships from included,
+ * both array and single-object data.
+ *
+ * Pass IncKeys to make specific relationship properties required
+ * (reflecting that those relationships were requested via `include`).
+ */
+export type JsonApiPayload = JsonApiPayloadInner, IncKeys>;
+
+/**
+ * Shorthand: extract JsonApiPayload directly from a Zod envelope schema.
+ */
+export type JsonApiPayloadOf = JsonApiPayload<
+ z.infer,
+ IncKeys
+>;
+
+/** Valid relationship key names from an envelope type. */
+export type RelationshipKeysOf = keyof ExtractRelationships & string;
+
+/** Valid relationship key names from a Zod envelope schema. */
+export type RelationshipKeysOfSchema = RelationshipKeysOf>;
diff --git a/src/app/core/_models/pretask.model.ts b/src/app/core/_models/pretask.model.ts
index e41257012..93a483fd0 100644
--- a/src/app/core/_models/pretask.model.ts
+++ b/src/app/core/_models/pretask.model.ts
@@ -14,7 +14,7 @@ export interface JPretask extends BaseModel {
isMaskImport: boolean;
isSmall: boolean;
maxAgents: number;
- pretaskFiles: JFile[];
+ pretaskFiles?: JFile[];
priority: number;
statusTimer: number;
taskName: string;
diff --git a/src/app/core/_models/speed-stat.model.ts b/src/app/core/_models/speed-stat.model.ts
index b560b2e66..8e3289b1b 100644
--- a/src/app/core/_models/speed-stat.model.ts
+++ b/src/app/core/_models/speed-stat.model.ts
@@ -10,7 +10,7 @@ import { BaseModel } from '@models/base.model';
* @prop time Timestamp
*/
export interface SpeedStat extends BaseModel {
- speedId: number;
+ speedId?: number;
agentId: number;
taskId: number;
speed: number;
diff --git a/src/app/core/_models/task.model.ts b/src/app/core/_models/task.model.ts
index 587db73e7..997246753 100644
--- a/src/app/core/_models/task.model.ts
+++ b/src/app/core/_models/task.model.ts
@@ -30,21 +30,22 @@ export interface TaskAttributes extends BaseModel {
*/
export interface JTask extends BaseModel, TaskAttributes {
attackCmd: string;
- totalAssignedAgents: number;
+ activeAgents?: number;
+ totalAssignedAgents?: number;
chunkTime: number;
statusTimer: number;
keyspace: number;
keyspaceProgress: number;
files?: JFile[];
- color: null | string;
+ color?: string | null;
isSmall: boolean;
isCpuTask: boolean;
useNewBench: boolean;
skipKeyspace: number;
crackerBinaryId: number;
crackerBinaryTypeId: number;
- crackerBinary: JCrackerBinary;
- crackerBinaryType: JCrackerBinaryType;
+ crackerBinary?: JCrackerBinary;
+ crackerBinaryType?: JCrackerBinaryType;
hashlist?: JHashlist;
assignedAgents?: JAgent[];
taskWrapperId: number;
@@ -55,15 +56,15 @@ export interface JTask extends BaseModel, TaskAttributes {
forcePipe: boolean;
preprocessorId: number;
preprocessorCommand: string;
- dispatched: string;
- searched: string;
- speeds: SpeedStat[];
+ dispatched?: string;
+ searched?: string;
+ speeds?: SpeedStat[];
chunkData?: ChunkData;
- status: number;
- timeSpent: number;
- currentSpeed: number;
- estimatedTime: number;
- cprogress: number;
+ status?: number;
+ timeSpent?: number;
+ currentSpeed?: number;
+ estimatedTime?: number;
+ cprogress?: number;
isrunning?: boolean;
isCompleted?: boolean;
activeSubtasks?: number;
@@ -82,8 +83,8 @@ export interface JTaskWrapper extends BaseModel, TaskAttributes {
hashlist?: JHashlist;
hashType?: JHashtype;
isArchived: boolean;
- taskType: TaskType;
- taskWrapperId: number;
+ taskType?: TaskType;
+ taskWrapperId?: number;
taskWrapperName: string;
tasks?: JTask[];
chunkData?: ChunkData;
diff --git a/src/app/core/_models/user.model.ts b/src/app/core/_models/user.model.ts
index f2eb98656..837bf987e 100644
--- a/src/app/core/_models/user.model.ts
+++ b/src/app/core/_models/user.model.ts
@@ -25,5 +25,5 @@ export interface JUser extends BaseModel {
registeredSince: number;
sessionLifetime: number;
yubikey: string;
- accessGroups: JAccessGroup[];
+ accessGroups?: JAccessGroup[];
}
diff --git a/src/app/core/_services/api/serializer-service.spec.ts b/src/app/core/_services/api/serializer-service.spec.ts
new file mode 100644
index 000000000..b91321b87
--- /dev/null
+++ b/src/app/core/_services/api/serializer-service.spec.ts
@@ -0,0 +1,110 @@
+import { zAccessGroupListResponse, zUserListResponse, zUserResponse } from '@generated/api/zod.gen';
+
+import { JsonAPISerializer } from '@services/api/serializer-service';
+
+describe('JsonAPISerializer', () => {
+ let serializer: JsonAPISerializer;
+
+ const jsonapi = { version: '1.1' };
+
+ const userAttributes = {
+ name: 'admin',
+ email: 'admin@localhost',
+ isValid: true,
+ isComputedPassword: true,
+ lastLoginDate: 1752647017,
+ registeredSince: 1744086356,
+ sessionLifetime: 3600,
+ globalPermissionGroupId: 1,
+ yubikey: '0',
+ otp1: '',
+ otp2: '',
+ otp3: '',
+ otp4: ''
+ };
+
+ const singleUserBody = {
+ jsonapi,
+ data: {
+ id: 1,
+ type: 'user',
+ attributes: userAttributes
+ }
+ };
+
+ const userListBody = {
+ jsonapi,
+ data: [
+ {
+ id: 1,
+ type: 'user',
+ attributes: userAttributes
+ },
+ {
+ id: 2,
+ type: 'user',
+ attributes: {
+ ...userAttributes,
+ name: 'testuser',
+ email: 'test@example.com'
+ }
+ }
+ ]
+ };
+
+ beforeEach(() => {
+ serializer = new JsonAPISerializer();
+ });
+
+ describe('single-object response (zUserResponse)', () => {
+ it('returns a single flat object, not an array', () => {
+ const result = serializer.deserialize(singleUserBody, zUserResponse);
+
+ // Must be a plain object, NOT an array
+ expect(Array.isArray(result)).toBe(false);
+ expect(typeof result).toBe('object');
+ });
+
+ it('flattens attributes onto the root object', () => {
+ const user = serializer.deserialize(singleUserBody, zUserResponse);
+
+ expect(user.id).toBe(1);
+ expect(user.name).toBe('admin');
+ expect(user.email).toBe('admin@localhost');
+ expect(user.registeredSince).toBe(1744086356);
+ });
+
+ it('should not be indexable as an array', () => {
+ const user = serializer.deserialize(singleUserBody, zUserResponse);
+
+ // This is the Bug 1 pattern: code does user[0] expecting array behavior
+ // On a flat object, [0] is undefined
+ expect(user[0]).toBeUndefined();
+ });
+ });
+
+ describe('list response (zUserListResponse)', () => {
+ it('returns an array of flat user objects', () => {
+ const result = serializer.deserialize(userListBody, zUserListResponse);
+
+ expect(Array.isArray(result)).toBe(true);
+ expect(result.length).toBe(2);
+ });
+
+ it('flattens attributes onto each array element', () => {
+ const users = serializer.deserialize(userListBody, zUserListResponse);
+
+ expect(users[0].name).toBe('admin');
+ expect(users[1].name).toBe('testuser');
+ });
+ });
+
+ describe('schema mismatch detection', () => {
+ it('throws when user data is validated against access group schema', () => {
+ // Bug 2: using zAccessGroupListResponse for user data should fail validation
+ expect(() => {
+ serializer.deserialize(userListBody, zAccessGroupListResponse);
+ }).toThrow();
+ });
+ });
+});
diff --git a/src/app/core/_services/api/serializer-service.ts b/src/app/core/_services/api/serializer-service.ts
index 775d307ef..773cdd88a 100644
--- a/src/app/core/_services/api/serializer-service.ts
+++ b/src/app/core/_services/api/serializer-service.ts
@@ -16,6 +16,12 @@ import { z } from 'zod';
import { Injectable } from '@angular/core';
+import { JsonApiPayload, RelationshipKeysOfSchema } from '@models/json-api.types';
+
+interface IncludeOptions extends TDeserializeOptions {
+ include: readonly K[];
+}
+
/** Class for serializing/deserializing objects to and from JSON:API format
* @class JsonAPISerializer
* */
@@ -47,36 +53,50 @@ export class JsonAPISerializer {
/**
* Deserialize a JSON:API response body into a typed model.
*
- * @overload Pass a Zod schema to validate and type the result:
- * `deserialize(body, MySchema)` → returns `z.infer`
+ * @overload Pass a Zod envelope schema + include keys to get relationships required:
+ * `deserialize(body, zTaskResponse, { include: ['hashlist'] })`
+ *
+ * @overload Pass a Zod envelope schema to validate and auto-infer the flat return type:
+ * `deserialize(body, zAgentResponse)` → returns `JsonApiPayload<...>`
*
* @overload Omit the schema to get an unvalidated result:
* `deserialize(body)` → returns `MyType`
*
* @param body Response body received by an API call
- * @param schema Zod schema to validate and type the result (first overload)
- * @param options Optional deserializer options
+ * @param schema Zod envelope schema to validate the raw JSON:API body
+ * @param options Optional deserializer options; `include` is type-only
*/
+ deserialize>(
+ body: TJsonApiBody,
+ schema: TSchema,
+ options: IncludeOptions
+ ): JsonApiPayload, K>;
deserialize(
body: TJsonApiBody,
schema: TSchema,
options?: TDeserializeOptions
- ): z.infer;
+ ): JsonApiPayload>;
deserialize(body: TJsonApiBody, options?: TDeserializeOptions): T;
deserialize(
body: TJsonApiBody,
schemaOrOptions?: z.ZodTypeAny | TDeserializeOptions,
- options?: TDeserializeOptions
+ options?: TDeserializeOptions | IncludeOptions
): T {
if (schemaOrOptions instanceof z.ZodType) {
- const result = this.formatter.deserialize(body, options);
- const parseResult = schemaOrOptions.safeParse(result);
- if (!parseResult.success) {
- console.error('API response validation failed', parseResult.error);
- throw parseResult.error;
- }
- return parseResult.data as T;
+ this.validateBody(body, schemaOrOptions);
+ return this.formatter.deserialize(body, options) as T;
}
return this.formatter.deserialize(body, schemaOrOptions) as T;
}
+
+ /**
+ * Validate a JSON:API body against a Zod envelope schema.
+ */
+ private validateBody(body: TJsonApiBody, schema: z.ZodTypeAny): void {
+ const parseResult = schema.safeParse(body);
+ if (!parseResult.success) {
+ console.error('API response validation failed', parseResult.error);
+ throw parseResult.error;
+ }
+ }
}
diff --git a/src/app/core/_services/permission/permission.service.ts b/src/app/core/_services/permission/permission.service.ts
index b28066533..e1b39989a 100644
--- a/src/app/core/_services/permission/permission.service.ts
+++ b/src/app/core/_services/permission/permission.service.ts
@@ -1,3 +1,4 @@
+import { zGlobalPermissionGroupResponse } from '@generated/api/zod.gen';
import { BehaviorSubject, Observable, forkJoin, map, take } from 'rxjs';
import { Injectable } from '@angular/core';
@@ -44,8 +45,10 @@ export class PermissionService {
return this.gs.ghelper(SERV.HELPER, 'getUserPermission').pipe(
take(1),
map((response: ResponseWrapper) => {
- const responseData = { data: response.data, included: response.included };
- const globalPermissionGroup = this.serializer.deserialize(responseData);
+ const globalPermissionGroup: JGlobalPermissionGroup = this.serializer.deserialize(
+ response,
+ zGlobalPermissionGroupResponse
+ );
const permissions = globalPermissionGroup.permissions;
this.currentPermissions = permissions;
diff --git a/src/app/core/_services/shared/storage.service.ts b/src/app/core/_services/shared/storage.service.ts
index 086bdeb0b..c92101722 100644
--- a/src/app/core/_services/shared/storage.service.ts
+++ b/src/app/core/_services/shared/storage.service.ts
@@ -1,3 +1,5 @@
+import { zConfigListResponse } from '@generated/api/zod.gen';
+
import { Injectable } from '@angular/core';
import { UiSettings, UisCacheName, uisCacheNames, uisSettingsSchema } from '@models/config-ui.schema';
@@ -46,10 +48,7 @@ export class UIConfigService {
const params = new RequestParamBuilder().setPageSize(this.maxResults).create();
this.gs.getAll(SERV.CONFIGS, params).subscribe({
next: (response: ResponseWrapper) => {
- const configs = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const configs: JConfig[] = new JsonAPISerializer().deserialize(response, zConfigListResponse);
const raw = convertNameValueConfigPairs(configs, this.cachevar);
raw['_timestamp'] = Date.now();
raw['_expiresin'] = this.cexprity;
diff --git a/src/app/files/new-files/new-files.component.ts b/src/app/files/new-files/new-files.component.ts
index 740918cfa..cffb0a9cb 100644
--- a/src/app/files/new-files/new-files.component.ts
+++ b/src/app/files/new-files/new-files.component.ts
@@ -1,3 +1,4 @@
+import { zAccessGroupListResponse } from '@generated/api/zod.gen';
import { Subject, firstValueFrom, takeUntil } from 'rxjs';
import { ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';
@@ -184,10 +185,7 @@ export class NewFilesComponent implements OnInit, OnDestroy {
this.gs.getRelationships(SERV.USERS, this.gs.userId, RelationshipType.ACCESSGROUPS)
);
- const accessGroups = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const accessGroups: JAccessGroup[] = new JsonAPISerializer().deserialize(response, zAccessGroupListResponse);
this.selectAccessgroup = transformSelectOptions(accessGroups, ACCESS_GROUP_FIELD_MAPPING);
} catch (error) {
diff --git a/src/app/hashlists/edit-hashlist/edit-hashlist.component.ts b/src/app/hashlists/edit-hashlist/edit-hashlist.component.ts
index 7b064c057..77244934c 100644
--- a/src/app/hashlists/edit-hashlist/edit-hashlist.component.ts
+++ b/src/app/hashlists/edit-hashlist/edit-hashlist.component.ts
@@ -1,3 +1,4 @@
+import { zAccessGroupListResponse, zHashlistResponse } from '@generated/api/zod.gen';
import { firstValueFrom } from 'rxjs';
import { HttpBackend, HttpClient, HttpErrorResponse } from '@angular/common/http';
@@ -5,7 +6,6 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angula
import { FormGroup } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
-import { JAccessGroup } from '@models/access-group.model';
import { JHashlist } from '@models/hashlist.model';
import { JHashtype } from '@models/hashtype.model';
import { ResponseWrapper } from '@models/response.model';
@@ -128,10 +128,7 @@ export class EditHashlistComponent implements OnInit, OnDestroy, CanComponentDea
try {
const response = await firstValueFrom(this.http.get(url, { params }));
- const hashlist = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const hashlist: JHashlist = new JsonAPISerializer().deserialize(response, zHashlistResponse);
this.editedHashlist = hashlist;
this.type = hashlist.format;
@@ -159,10 +156,7 @@ export class EditHashlistComponent implements OnInit, OnDestroy, CanComponentDea
console.warn('loadHashlist(): request with includes failed, retrying without includes', err);
const responseFallback = await firstValueFrom(this.http.get(url));
- const hashlist = new JsonAPISerializer().deserialize({
- data: responseFallback.data,
- included: responseFallback.included
- });
+ const hashlist: JHashlist = new JsonAPISerializer().deserialize(responseFallback, zHashlistResponse);
this.editedHashlist = hashlist;
this.type = hashlist.format;
@@ -200,10 +194,7 @@ export class EditHashlistComponent implements OnInit, OnDestroy, CanComponentDea
this.gs.getRelationships(SERV.USERS, this.gs.userId, RelationshipType.ACCESSGROUPS)
);
- const accessGroups = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const accessGroups = new JsonAPISerializer().deserialize(response, zAccessGroupListResponse);
this.selectAccessgroup = transformSelectOptions(accessGroups, ACCESS_GROUP_FIELD_MAPPING);
this.changeDetectorRef.detectChanges();
diff --git a/src/app/hashlists/hashes/hashes.component.ts b/src/app/hashlists/hashes/hashes.component.ts
index fedf86a02..6a19f8eb0 100644
--- a/src/app/hashlists/hashes/hashes.component.ts
+++ b/src/app/hashlists/hashes/hashes.component.ts
@@ -1,3 +1,5 @@
+import { zChunkResponse, zHashlistResponse, zTaskResponse } from '@generated/api/zod.gen';
+
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { ActivatedRoute, Params, Router } from '@angular/router';
@@ -137,10 +139,7 @@ export class HashesComponent implements OnInit, OnDestroy {
case 'chunkshash':
this.whichView = 'chunks';
this.gs.get(SERV.CHUNKS, this.editedIndex).subscribe((response: ResponseWrapper) => {
- const chunk = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const chunk: JChunk = new JsonAPISerializer().deserialize(response, zChunkResponse);
this.titleName = String(chunk.id);
});
break;
@@ -148,10 +147,7 @@ export class HashesComponent implements OnInit, OnDestroy {
case 'taskhas':
this.whichView = 'tasks';
this.gs.get(SERV.TASKS, this.editedIndex).subscribe((response: ResponseWrapper) => {
- const task = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const task: JTask = new JsonAPISerializer().deserialize(response, zTaskResponse);
this.titleName = task.taskName;
});
break;
@@ -159,10 +155,7 @@ export class HashesComponent implements OnInit, OnDestroy {
case 'hashlisthash':
this.whichView = 'hashlists';
this.gs.get(SERV.HASHLISTS, this.editedIndex).subscribe((response: ResponseWrapper) => {
- const hashlist = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const hashlist: JHashlist = new JsonAPISerializer().deserialize(response, zHashlistResponse);
this.titleName = hashlist.name;
});
break;
diff --git a/src/app/hashlists/import-cracked-hashes/import-cracked-hashes.component.ts b/src/app/hashlists/import-cracked-hashes/import-cracked-hashes.component.ts
index cfde6f940..a2fe26ac9 100644
--- a/src/app/hashlists/import-cracked-hashes/import-cracked-hashes.component.ts
+++ b/src/app/hashlists/import-cracked-hashes/import-cracked-hashes.component.ts
@@ -1,3 +1,4 @@
+import { zHashlistResponse } from '@generated/api/zod.gen';
import { Subject, firstValueFrom, takeUntil } from 'rxjs';
import { Component, OnInit, inject } from '@angular/core';
@@ -359,10 +360,7 @@ export class ImportCrackedHashesComponent implements OnInit, OnDestroy {
include: ['tasks,hashlists,hashType']
})
.subscribe((response: ResponseWrapper) => {
- const hashlist = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const hashlist: JHashlist = new JsonAPISerializer().deserialize(response, zHashlistResponse);
this.type = hashlist.format;
this.hashtype = hashlist.hashType;
diff --git a/src/app/hashlists/new-hashlist/new-hashlist.component.spec.ts b/src/app/hashlists/new-hashlist/new-hashlist.component.spec.ts
index 38715e627..548aca4fa 100644
--- a/src/app/hashlists/new-hashlist/new-hashlist.component.spec.ts
+++ b/src/app/hashlists/new-hashlist/new-hashlist.component.spec.ts
@@ -25,17 +25,18 @@ import { InputModule } from '@src/app/shared/input/input.module';
import { PageSubTitleComponent } from '@src/app/shared/page-headers/page-subtitle/page-subtitle.component';
const mockAccessGroups: ResponseWrapper = {
+ jsonapi: { version: '1.1', ext: [] },
data: [
{
id: 1,
- type: 'access-groups',
+ type: 'accessGroup',
attributes: {
groupName: 'Admin'
}
},
{
id: 2,
- type: 'access-groups',
+ type: 'accessGroup',
attributes: {
groupName: 'User'
}
@@ -45,10 +46,11 @@ const mockAccessGroups: ResponseWrapper = {
};
const mockHashtypes: ResponseWrapper = {
+ jsonapi: { version: '1.1', ext: [] },
data: [
{
id: 2500,
- type: 'hashtypes',
+ type: 'hashType',
attributes: {
description: 'MD5',
isSalted: true,
@@ -57,7 +59,7 @@ const mockHashtypes: ResponseWrapper = {
},
{
id: 0,
- type: 'hashtypes',
+ type: 'hashType',
attributes: {
description: 'SHA1',
isSalted: false,
@@ -66,7 +68,7 @@ const mockHashtypes: ResponseWrapper = {
},
{
id: 16800,
- type: 'hashtypes',
+ type: 'hashType',
attributes: {
description: 'WPA/WPA2',
isSalted: true,
@@ -78,9 +80,10 @@ const mockHashtypes: ResponseWrapper = {
};
const mockConfigs: ResponseWrapper = {
+ jsonapi: { version: '1.1', ext: [] },
data: {
id: 66,
- type: 'configs',
+ type: 'config',
attributes: {
configSectionId: 1,
item: 'Enable Brain',
diff --git a/src/app/hashlists/new-hashlist/new-hashlist.component.ts b/src/app/hashlists/new-hashlist/new-hashlist.component.ts
index ec1f8a107..a5017a113 100644
--- a/src/app/hashlists/new-hashlist/new-hashlist.component.ts
+++ b/src/app/hashlists/new-hashlist/new-hashlist.component.ts
@@ -1,6 +1,7 @@
/**
* This module contains the component class to create a new hashlist
*/
+import { zAccessGroupListResponse, zConfigResponse, zHashTypeListResponse } from '@generated/api/zod.gen';
import { Subject, Subscription, firstValueFrom, takeUntil } from 'rxjs';
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';
@@ -167,10 +168,7 @@ export class NewHashlistComponent implements OnInit, OnDestroy {
const accessGroupSubscription = this.gs
.getRelationships(SERV.USERS, this.gs.userId, RelationshipType.ACCESSGROUPS)
.subscribe((response: ResponseWrapper) => {
- const accessGroups = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const accessGroups: JAccessGroup[] = new JsonAPISerializer().deserialize(response, zAccessGroupListResponse);
this.selectAccessgroup = transformSelectOptions(accessGroups, ACCESS_GROUP_FIELD_MAPPING);
this.isLoadingAccessGroups = false;
this.changeDetectorRef.detectChanges();
@@ -178,10 +176,7 @@ export class NewHashlistComponent implements OnInit, OnDestroy {
this.unsubscribeService.add(accessGroupSubscription);
const hashtypesSubscription$ = this.gs.getAll(SERV.HASHTYPES).subscribe((response: ResponseWrapper) => {
- this.hashtypes = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ this.hashtypes = new JsonAPISerializer().deserialize(response, zHashTypeListResponse);
this.selectHashtypes = transformSelectOptions(this.hashtypes, HASHTYPE_FIELD_MAPPING);
this.isLoadingHashtypes = false;
this.changeDetectorRef.detectChanges();
@@ -199,7 +194,7 @@ export class NewHashlistComponent implements OnInit, OnDestroy {
*/
loadConfigs() {
const configSubscription$ = this.gs.get(SERV.CONFIGS, 66).subscribe((response: ResponseWrapper) => {
- const config = new JsonAPISerializer().deserialize({ data: response.data, included: response.included });
+ const config: JConfig = new JsonAPISerializer().deserialize(response, zConfigResponse);
this.brainenabled = Number(config.value);
this.form.patchValue({ useBrain: !!this.brainenabled });
this.changeDetectorRef.detectChanges();
diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts
index 5835ebde5..0fe423fe6 100644
--- a/src/app/home/home.component.ts
+++ b/src/app/home/home.component.ts
@@ -1,8 +1,10 @@
+import { zHashListResponse } from '@generated/api/zod.gen';
import { Observable, Subscription, catchError, forkJoin, map, of } from 'rxjs';
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
+import { JHash } from '@models/hash.model';
import { TaskType } from '@models/task.model';
import { PermissionService } from '@services/permission/permission.service';
@@ -12,7 +14,6 @@ import { ThemeService } from '@services/shared/theme.service';
import { Perm } from '@src/app/core/_constants/userpermissions.config';
import { PageTitle } from '@src/app/core/_decorators/autotitle';
import { UIConfig } from '@src/app/core/_models/config-ui.model';
-import { JHash } from '@src/app/core/_models/hash.model';
import { FilterType } from '@src/app/core/_models/request-params.model';
import { ResponseWrapper } from '@src/app/core/_models/response.model';
import { JsonAPISerializer } from '@src/app/core/_services/api/serializer-service';
@@ -352,10 +353,7 @@ export class HomeComponent implements OnInit, OnDestroy {
return this.gs.getAll(SERV.HASHES, params).pipe(
map((res: ResponseWrapper) => {
- const hashes = new JsonAPISerializer().deserialize({
- data: res.data,
- included: res.included
- });
+ const hashes: JHash[] = new JsonAPISerializer().deserialize(res, zHashListResponse);
const formattedDates: string[] = hashes.map((h) => formatUnixTimestamp(h.timeCracked, 'yyyy-MM-dd'));
const dateCounts = this.countOccurrences(formattedDates);
diff --git a/src/app/shared/graphs/task-visual/task-visual.component.ts b/src/app/shared/graphs/task-visual/task-visual.component.ts
index 080f33fc5..64fb4c94a 100644
--- a/src/app/shared/graphs/task-visual/task-visual.component.ts
+++ b/src/app/shared/graphs/task-visual/task-visual.component.ts
@@ -1,3 +1,4 @@
+import { zChunkListResponse, zTaskListResponse, zTaskWrapperListResponse } from '@generated/api/zod.gen';
import { FilterType } from 'src/app/core/_models/request-params.model';
import { AfterViewInit, Component, ElementRef, Input, ViewChild, inject } from '@angular/core';
@@ -67,8 +68,7 @@ export class TaskVisualComponent implements AfterViewInit {
.create();
this.gs.getAll(SERV.TASKS, paramsTasks).subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const tasks = new JsonAPISerializer().deserialize(responseBody);
+ const tasks: JTask[] = new JsonAPISerializer().deserialize(response, zTaskListResponse);
const paramsTaskWrapper = new RequestParamBuilder()
.addFilter({ field: 'taskWrapperId', operator: FilterType.EQUAL, value: tasks[0].taskWrapperId })
@@ -76,13 +76,11 @@ export class TaskVisualComponent implements AfterViewInit {
.create();
this.gs.getAll(SERV.TASKS_WRAPPER, paramsTaskWrapper).subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const taskWrappers = new JsonAPISerializer().deserialize(responseBody);
+ const taskWrappers: JTaskWrapper[] = new JsonAPISerializer().deserialize(response, zTaskWrapperListResponse);
if (taskWrappers[0].taskType === TaskType.SUPERTASK && this.view === 'supertask') {
for (let i = 0; i < taskWrappers.length; i++) {
this.gs.getAll(SERV.CHUNKS, paramsTasks).subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const chunks = new JsonAPISerializer().deserialize(responseBody);
+ const chunks: JChunk[] = new JsonAPISerializer().deserialize(response, zChunkListResponse);
const progress = [];
let cracked = [];
@@ -124,8 +122,7 @@ export class TaskVisualComponent implements AfterViewInit {
}
} else {
this.gs.getAll(SERV.CHUNKS, paramsTasks).subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const ch = new JsonAPISerializer().deserialize(responseBody); // Get chunks by id
+ const ch: JChunk[] = new JsonAPISerializer().deserialize(response, zChunkListResponse); // Get chunks by id
// Getting variables
const keyspace = Number(this.tkeyspace); // Get Keyspace Progress
diff --git a/src/app/shared/report-builder/datasources/hashlists.datasource.ts b/src/app/shared/report-builder/datasources/hashlists.datasource.ts
index 5b6b1949a..1db96cfff 100644
--- a/src/app/shared/report-builder/datasources/hashlists.datasource.ts
+++ b/src/app/shared/report-builder/datasources/hashlists.datasource.ts
@@ -1,3 +1,4 @@
+import { zHashlistResponse } from '@generated/api/zod.gen';
import { catchError, finalize, of } from 'rxjs';
import { SERV } from 'src/app/core/_services/main.config';
import { Hashlist } from 'src/app/hashlists/hashlist.model';
@@ -29,8 +30,7 @@ export class HashlistReportDataSource extends ReportBaseDataSource {
finalize(() => (this.loading = false))
)
.subscribe((response) => {
- const responseBody = { data: response.data, included: response.included };
- const hashlist = new JsonAPISerializer().deserialize(responseBody);
+ const hashlist: JHashlist = new JsonAPISerializer().deserialize(response, zHashlistResponse);
const res = this.getReport(hashlist);
this.setData(res);
diff --git a/src/app/tasks/edit-preconfigured-tasks/edit-preconfigured-tasks.component.ts b/src/app/tasks/edit-preconfigured-tasks/edit-preconfigured-tasks.component.ts
index e3f0a219b..0ebce7342 100644
--- a/src/app/tasks/edit-preconfigured-tasks/edit-preconfigured-tasks.component.ts
+++ b/src/app/tasks/edit-preconfigured-tasks/edit-preconfigured-tasks.component.ts
@@ -1,3 +1,4 @@
+import { zPreTaskResponse } from '@generated/api/zod.gen';
import { firstValueFrom } from 'rxjs';
import { HttpBackend, HttpClient, HttpErrorResponse } from '@angular/common/http';
@@ -147,10 +148,7 @@ export class EditPreconfiguredTasksComponent implements OnInit, OnDestroy {
const response = await firstValueFrom(this.http.get(url));
- const pretask = this.serializer.deserialize({
- data: response.data,
- included: response.included
- });
+ const pretask: JPretask = this.serializer.deserialize(response, zPreTaskResponse);
this.updateForm = new FormGroup({
pretaskId: new FormControl({
diff --git a/src/app/tasks/edit-supertasks/edit-supertasks.component.ts b/src/app/tasks/edit-supertasks/edit-supertasks.component.ts
index eec120a48..b69d93ea1 100644
--- a/src/app/tasks/edit-supertasks/edit-supertasks.component.ts
+++ b/src/app/tasks/edit-supertasks/edit-supertasks.component.ts
@@ -1,3 +1,5 @@
+import { zPreTaskListResponse, zSupertaskResponse } from '@generated/api/zod.gen';
+
import { HttpErrorResponse } from '@angular/common/http';
import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
@@ -121,8 +123,7 @@ export class EditSupertasksComponent implements OnInit, OnDestroy {
const params = new RequestParamBuilder().addInclude('pretasks').create();
const loadSTSubscription$ = this.gs.get(SERV.SUPER_TASKS, this.editedSTIndex, params).subscribe({
next: (response: ResponseWrapper) => {
- const responseData = { data: response.data, included: response.included };
- const supertask = this.serializer.deserialize(responseData);
+ const supertask: JSuperTask = this.serializer.deserialize(response, zSupertaskResponse);
this.editName = supertask.supertaskName;
this.viewForm = new FormGroup({
supertaskId: new FormControl({
@@ -137,9 +138,8 @@ export class EditSupertasksComponent implements OnInit, OnDestroy {
if (this.roleService.hasRole('editSupertaskPreTasks')) {
const loadPTSubscription$ = this.gs.getAll(SERV.PRETASKS).subscribe((responsePT: ResponseWrapper) => {
- const responseDataPT = { data: responsePT.data, included: responsePT.included };
- const pretasks = this.serializer.deserialize(responseDataPT);
- const availablePretasks = this.getAvailablePretasks(supertask.pretasks, pretasks);
+ const pretasks: JPretask[] = this.serializer.deserialize(responsePT, zPreTaskListResponse);
+ const availablePretasks = this.getAvailablePretasks(supertask.pretasks ?? [], pretasks);
this.selectPretasks = transformSelectOptions(availablePretasks, SUPER_TASK_FIELD_MAPPING);
this.isLoading = false;
@@ -164,8 +164,7 @@ export class EditSupertasksComponent implements OnInit, OnDestroy {
console.warn('loadData(): request with includes failed, retrying without includes', err);
const retry$ = this.gs.get(SERV.SUPER_TASKS, this.editedSTIndex).subscribe({
next: (response2: ResponseWrapper) => {
- const responseData2 = { data: response2.data, included: response2.included };
- const supertask2 = this.serializer.deserialize(responseData2);
+ const supertask2: JSuperTask = this.serializer.deserialize(response2, zSupertaskResponse);
this.editName = supertask2.supertaskName;
this.viewForm = new FormGroup({
supertaskId: new FormControl({ value: supertask2.id, disabled: true }),
@@ -173,9 +172,8 @@ export class EditSupertasksComponent implements OnInit, OnDestroy {
});
// still try to load pretasks list for selection
const loadPTSubscription2$ = this.gs.getAll(SERV.PRETASKS).subscribe((responsePT: ResponseWrapper) => {
- const responseDataPT2 = { data: responsePT.data, included: responsePT.included };
- const pretasks = this.serializer.deserialize(responseDataPT2);
- const availablePretasks = this.getAvailablePretasks(supertask2.pretasks, pretasks);
+ const pretasks: JPretask[] = this.serializer.deserialize(responsePT, zPreTaskListResponse);
+ const availablePretasks = this.getAvailablePretasks(supertask2.pretasks ?? [], pretasks);
this.selectPretasks = transformSelectOptions(availablePretasks, SUPER_TASK_FIELD_MAPPING);
this.isLoading = false;
this.changeDetectorRef.detectChanges();
diff --git a/src/app/tasks/edit-tasks/edit-tasks.component.ts b/src/app/tasks/edit-tasks/edit-tasks.component.ts
index 93eb65ab6..31b957270 100644
--- a/src/app/tasks/edit-tasks/edit-tasks.component.ts
+++ b/src/app/tasks/edit-tasks/edit-tasks.component.ts
@@ -1,3 +1,10 @@
+import {
+ zAgentAssignmentListResponse,
+ zAgentListResponse,
+ zHashTypeResponse,
+ zSpeedListResponse,
+ zTaskResponse
+} from '@generated/api/zod.gen';
import { Subscription, finalize, firstValueFrom } from 'rxjs';
import { HttpBackend, HttpClient, HttpErrorResponse } from '@angular/common/http';
@@ -138,7 +145,7 @@ export class EditTasksComponent implements OnInit, OnDestroy {
if (task.hashlist && this.roleService.hasRole('editTaskInfoHashlist')) {
this.hashlistinform = task.hashlist;
this.gs.get(SERV.HASHTYPES, task.hashlist.hashTypeId).subscribe((response: ResponseWrapper) => {
- const hashtype = this.serializer.deserialize({ data: response.data, included: response.included });
+ const hashtype: JHashtype = this.serializer.deserialize(response, zHashTypeResponse);
this.hashlistDescrip = hashtype.description;
});
}
@@ -254,7 +261,7 @@ export class EditTasksComponent implements OnInit, OnDestroy {
try {
const response = await firstValueFrom(this.http.get(url, { params }));
- return this.serializer.deserialize({ data: response.data, included: response.included });
+ return this.serializer.deserialize(response, zTaskResponse);
} catch (err: unknown) {
// If backend fails with server error (500+), try a fallback request without includes.
// This helps when the server chokes resolving included relationships but the main
@@ -262,7 +269,7 @@ export class EditTasksComponent implements OnInit, OnDestroy {
if (err instanceof HttpErrorResponse && err.status && err.status >= 500) {
console.warn('loadTask(): primary request failed, retrying without includes', err);
const responseFallback = await firstValueFrom(this.http.get(url));
- return this.serializer.deserialize({ data: responseFallback.data, included: responseFallback.included });
+ return this.serializer.deserialize(responseFallback, zTaskResponse);
}
throw err;
}
@@ -350,8 +357,8 @@ export class EditTasksComponent implements OnInit, OnDestroy {
}
this.gs.getAll(SERV.AGENTS, params.create()).subscribe((responseAgents: ResponseWrapper) => {
- const responseBodyAgents = { data: responseAgents.data, included: responseAgents.included };
- this.availAgents = this.serializer.deserialize(responseBodyAgents);
+ const agents: JAgent[] = this.serializer.deserialize(responseAgents, zAgentListResponse);
+ this.availAgents = agents;
this.selectAgents = transformSelectOptions(this.availAgents, AGENT_MAPPING);
this.isLoadingAgents = false;
});
@@ -361,11 +368,10 @@ export class EditTasksComponent implements OnInit, OnDestroy {
const paramsAgentAssign = new RequestParamBuilder();
paramsAgentAssign.addFilter({ field: 'taskId', operator: FilterType.EQUAL, value: this.editedTaskIndex });
this.gs.getAll(SERV.AGENT_ASSIGN, paramsAgentAssign.create()).subscribe((responseAssignments: ResponseWrapper) => {
- const responseBodyAssignments = {
- data: responseAssignments.data,
- included: responseAssignments.included
- };
- const agentAssignments = this.serializer.deserialize(responseBodyAssignments);
+ const agentAssignments: JAgentAssignment[] = this.serializer.deserialize(
+ responseAssignments,
+ zAgentAssignmentListResponse
+ );
const agentAssignmentsAgentIds: Array = agentAssignments.map(
(agentAssignment) => agentAssignment.agentId
);
@@ -459,7 +465,7 @@ export class EditTasksComponent implements OnInit, OnDestroy {
.setPageSize(requestLimit);
this.gs.getAll(SERV.SPEEDS, speedParams.create()).subscribe((response: ResponseWrapper) => {
- const speeds = this.serializer.deserialize({ data: response.data, included: response.included });
+ const speeds: SpeedStat[] = this.serializer.deserialize(response, zSpeedListResponse);
this.originalValue.speeds = [...speeds].reverse();
});
}
diff --git a/src/app/tasks/import-supertasks/masks/masks.component.ts b/src/app/tasks/import-supertasks/masks/masks.component.ts
index 09699c4e4..0601bb52d 100644
--- a/src/app/tasks/import-supertasks/masks/masks.component.ts
+++ b/src/app/tasks/import-supertasks/masks/masks.component.ts
@@ -1,10 +1,12 @@
import { CRACKER_TYPE_FIELD_MAPPING } from '@constants/select.config';
import { benchmarkType } from '@constants/tasks.config';
+import { zCrackerBinaryTypeListResponse, zPreTaskResponse } from '@generated/api/zod.gen';
import { ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
+import { JCrackerBinaryType, zCrackerBinaryTypeList } from '@models/cracker-binary.model';
import { HorizontalNav } from '@models/horizontalnav.model';
import { JPretask } from '@models/pretask.model';
@@ -15,7 +17,6 @@ import { AutoTitleService } from '@services/shared/autotitle.service';
import { UIConfigService } from '@services/shared/storage.service';
import { UnsubscribeService } from '@services/unsubscribe.service';
-import { JCrackerBinaryType } from '@src/app/core/_models/cracker-binary.model';
import { ResponseWrapper } from '@src/app/core/_models/response.model';
import { JsonAPISerializer } from '@src/app/core/_services/api/serializer-service';
import { transformSelectOptions } from '@src/app/shared/utils/forms';
@@ -120,8 +121,9 @@ export class MasksComponent implements OnInit, OnDestroy {
*/
loadData(): void {
const loadSubscription$ = this.gs.getAll(SERV.CRACKERS_TYPES).subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const crackerBinaryTypes = this.serializer.deserialize(responseBody);
+ const crackerBinaryTypes: JCrackerBinaryType[] = zCrackerBinaryTypeList.parse(
+ this.serializer.deserialize(response, zCrackerBinaryTypeListResponse)
+ );
this.selectCrackertype = transformSelectOptions(crackerBinaryTypes, CRACKER_TYPE_FIELD_MAPPING);
});
@@ -169,9 +171,7 @@ export class MasksComponent implements OnInit, OnDestroy {
// Create a subscription promise and push it to the array
const subscriptionPromise = new Promise((resolve, reject) => {
const onSubmitSubscription$ = this.gs.create(SERV.PRETASKS, payload).subscribe((result) => {
- const pretask = new JsonAPISerializer().deserialize({
- data: result.data
- });
+ const pretask: JPretask = new JsonAPISerializer().deserialize(result, zPreTaskResponse);
preTasksIds.push(pretask.id);
resolve(); // Resolve the promise when subscription completes
}, reject); // Reject the promise if there's an error
diff --git a/src/app/tasks/import-supertasks/wrbulk/wrbulk.component.ts b/src/app/tasks/import-supertasks/wrbulk/wrbulk.component.ts
index d0e73ff68..db807d21a 100644
--- a/src/app/tasks/import-supertasks/wrbulk/wrbulk.component.ts
+++ b/src/app/tasks/import-supertasks/wrbulk/wrbulk.component.ts
@@ -1,10 +1,11 @@
+import { zCrackerBinaryTypeListResponse, zFileResponse, zPreTaskResponse } from '@generated/api/zod.gen';
import { firstValueFrom } from 'rxjs';
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
-import { JCrackerBinaryType } from '@models/cracker-binary.model';
+import { JCrackerBinaryType, zCrackerBinaryTypeList } from '@models/cracker-binary.model';
import { JFile } from '@models/file.model';
import { HorizontalNav } from '@models/horizontalnav.model';
import { JPretask } from '@models/pretask.model';
@@ -110,8 +111,9 @@ export class WrbulkComponent implements OnInit, OnDestroy {
*/
loadData() {
const loadSubscription$ = this.gs.getAll(SERV.CRACKERS_TYPES).subscribe((response: ResponseWrapper) => {
- const responseBody = { data: response.data, included: response.included };
- const crackerBinaryTypes = this.serializer.deserialize(responseBody);
+ const crackerBinaryTypes: JCrackerBinaryType[] = zCrackerBinaryTypeList.parse(
+ this.serializer.deserialize(response, zCrackerBinaryTypeListResponse)
+ );
this.selectCrackertype = transformSelectOptions(crackerBinaryTypes, CRACKER_TYPE_FIELD_MAPPING);
});
@@ -150,10 +152,7 @@ export class WrbulkComponent implements OnInit, OnDestroy {
const fileName: string = await new Promise((resolve, reject) => {
const fileSubscription$ = this.gs.get(SERV.FILES, iter).subscribe({
next: (response: ResponseWrapper) => {
- const file = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const file: JFile = new JsonAPISerializer().deserialize(response, zFileResponse);
resolve(file.filename);
},
error: reject
@@ -167,7 +166,7 @@ export class WrbulkComponent implements OnInit, OnDestroy {
payload.attackCmd = updatedAttackCmd;
const result: ResponseWrapper = await firstValueFrom(this.gs.create(SERV.PRETASKS, payload));
- const pretask = new JsonAPISerializer().deserialize({ data: result.data, included: result.included });
+ const pretask: JPretask = new JsonAPISerializer().deserialize(result, zPreTaskResponse);
preTasksIds.push(pretask.id);
});
diff --git a/src/app/tasks/new-preconfigured-tasks/new-preconfigured-tasks.component.ts b/src/app/tasks/new-preconfigured-tasks/new-preconfigured-tasks.component.ts
index a1deb7d68..6b26cbf45 100644
--- a/src/app/tasks/new-preconfigured-tasks/new-preconfigured-tasks.component.ts
+++ b/src/app/tasks/new-preconfigured-tasks/new-preconfigured-tasks.component.ts
@@ -1,8 +1,10 @@
+import { zCrackerBinaryTypeListResponse } from '@generated/api/zod.gen';
+
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { ActivatedRoute, Params, Router } from '@angular/router';
-import { JCrackerBinaryType } from '@models/cracker-binary.model';
+import { JCrackerBinaryType, zCrackerBinaryTypeList } from '@models/cracker-binary.model';
import { JFile, TaskSelectFile } from '@models/file.model';
import { JPretask } from '@models/pretask.model';
import { ResponseWrapper } from '@models/response.model';
@@ -105,10 +107,9 @@ export class NewPreconfiguredTasksComponent implements OnInit, OnDestroy {
loadData() {
const loadCrackersSubscription$ = this.gs.getAll(SERV.CRACKERS_TYPES).subscribe((response: ResponseWrapper) => {
- const crackerTypes = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const crackerTypes: JCrackerBinaryType[] = zCrackerBinaryTypeList.parse(
+ new JsonAPISerializer().deserialize(response, zCrackerBinaryTypeListResponse)
+ );
this.selectCrackertype = transformSelectOptions(crackerTypes, CRACKER_TYPE_FIELD_MAPPING);
});
this.unsubscribeService.add(loadCrackersSubscription$);
diff --git a/src/app/tasks/new-tasks/new-tasks.component.spec.ts b/src/app/tasks/new-tasks/new-tasks.component.spec.ts
index 5d69aa0ec..ae3b38279 100644
--- a/src/app/tasks/new-tasks/new-tasks.component.spec.ts
+++ b/src/app/tasks/new-tasks/new-tasks.component.spec.ts
@@ -21,37 +21,115 @@ import { NewTasksComponent } from '@src/app/tasks/new-tasks/new-tasks.component'
import { environment } from '@src/environments/environment';
const MOCK_HASHLISTS_RESPONSE = {
+ jsonapi: { version: '1.1', ext: [] },
data: [
- { id: '1', type: 'HashLists', attributes: { name: 'test-hashlist', isArchived: false, hashTypeId: 0 } },
- { id: '2', type: 'HashLists', attributes: { name: 'second-hashlist', isArchived: false, hashTypeId: 1 } }
+ {
+ id: 1,
+ type: 'hashlist',
+ attributes: {
+ name: 'test-hashlist',
+ format: 0,
+ hashTypeId: 0,
+ hashCount: 0,
+ separator: null,
+ cracked: 0,
+ isSecret: false,
+ isHexSalt: false,
+ isSalted: false,
+ accessGroupId: 1,
+ notes: '',
+ useBrain: false,
+ brainFeatures: 0,
+ isArchived: false
+ }
+ },
+ {
+ id: 2,
+ type: 'hashlist',
+ attributes: {
+ name: 'second-hashlist',
+ format: 0,
+ hashTypeId: 1,
+ hashCount: 0,
+ separator: null,
+ cracked: 0,
+ isSecret: false,
+ isHexSalt: false,
+ isSalted: false,
+ accessGroupId: 1,
+ notes: '',
+ useBrain: false,
+ brainFeatures: 0,
+ isArchived: false
+ }
+ }
],
included: []
};
const MOCK_EMPTY_HASHLISTS_RESPONSE = {
+ jsonapi: { version: '1.1', ext: [] },
data: [],
included: []
};
const MOCK_CRACKER_TYPES_RESPONSE = {
- data: [{ id: '1', type: 'CrackerTypes', attributes: { typeName: 'hashcat' } }],
- included: []
+ jsonapi: { version: '1.1', ext: [] },
+ data: [
+ {
+ id: 1,
+ type: 'crackerBinaryType',
+ attributes: { typeName: 'hashcat', isChunkingAvailable: true },
+ relationships: {
+ crackerVersions: {
+ data: [{ type: 'crackerBinary', id: 10 }]
+ }
+ }
+ }
+ ],
+ included: [
+ {
+ id: 10,
+ type: 'crackerBinary',
+ attributes: { crackerBinaryTypeId: 1, binaryName: 'hashcat', version: '6.2.6', downloadUrl: '' }
+ }
+ ]
};
const MOCK_CRACKERS_RESPONSE = {
+ jsonapi: { version: '1.1', ext: [] },
data: [
- { id: '10', type: 'Crackers', attributes: { crackerBinaryTypeId: 1, binaryName: 'hashcat', version: '6.2.6' } }
+ {
+ id: 10,
+ type: 'crackerBinary',
+ attributes: { crackerBinaryTypeId: 1, binaryName: 'hashcat', version: '6.2.6', downloadUrl: '' }
+ }
],
included: []
};
const MOCK_CRACKERS_EMPTY_RESPONSE = {
+ jsonapi: { version: '1.1', ext: [] },
data: [],
included: []
};
const MOCK_PREPROCESSORS_RESPONSE = {
- data: [{ id: '1', type: 'Preprocessors', attributes: { name: 'prince' } }],
+ jsonapi: { version: '1.1', ext: [] },
+ data: [
+ {
+ id: 1,
+ type: 'preprocessor',
+ attributes: {
+ name: 'prince',
+ url: 'https://example.com/prince',
+ binaryName: 'pp64.bin',
+ keyspaceCommand: '--keyspace',
+ skipCommand: '--skip',
+ limitCommand: '--limit'
+ }
+ }
+ ],
included: []
};
@@ -624,16 +702,17 @@ describe('NewTasksComponent', () => {
it('should select the last version by default', async () => {
const multiVersionResponse = {
+ jsonapi: { version: '1.1', ext: [] },
data: [
{
- id: '10',
- type: 'Crackers',
- attributes: { crackerBinaryTypeId: 1, binaryName: 'hashcat', version: '6.2.5' }
+ id: 10,
+ type: 'crackerBinary',
+ attributes: { crackerBinaryTypeId: 1, binaryName: 'hashcat', version: '6.2.5', downloadUrl: '' }
},
{
- id: '11',
- type: 'Crackers',
- attributes: { crackerBinaryTypeId: 1, binaryName: 'hashcat', version: '6.2.6' }
+ id: 11,
+ type: 'crackerBinary',
+ attributes: { crackerBinaryTypeId: 1, binaryName: 'hashcat', version: '6.2.6', downloadUrl: '' }
}
],
included: []
diff --git a/src/app/tasks/new-tasks/new-tasks.component.ts b/src/app/tasks/new-tasks/new-tasks.component.ts
index e2144ac93..c2e9ec9c7 100644
--- a/src/app/tasks/new-tasks/new-tasks.component.ts
+++ b/src/app/tasks/new-tasks/new-tasks.component.ts
@@ -1,3 +1,9 @@
+import {
+ zCrackerBinaryListResponse,
+ zCrackerBinaryTypeListResponse,
+ zHashlistListResponse,
+ zPreprocessorListResponse
+} from '@generated/api/zod.gen';
import { combineLatest, firstValueFrom, switchMap } from 'rxjs';
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, OnInit, inject } from '@angular/core';
@@ -6,7 +12,7 @@ import { FormGroup } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Router } from '@angular/router';
-import { JCrackerBinary, JCrackerBinaryType } from '@models/cracker-binary.model';
+import { JCrackerBinary, JCrackerBinaryType, zCrackerBinaryTypeList } from '@models/cracker-binary.model';
import { FileType, TaskSelectFile } from '@models/file.model';
import { JHashlist } from '@models/hashlist.model';
import { JPreprocessor } from '@models/preprocessor.model';
@@ -183,10 +189,7 @@ export class NewTasksComponent implements OnInit {
const filter: Filter[] = [{ field: 'isArchived', operator: FilterType.EQUAL, value: false }];
try {
const response: ResponseWrapper = await firstValueFrom(this.gs.getAll(SERV.HASHLISTS, { filter }));
- const hashlists = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const hashlists: JHashlist[] = new JsonAPISerializer().deserialize(response, zHashlistListResponse);
this.selectHashlists = transformSelectOptions(hashlists, DEFAULT_FIELD_MAPPING);
this.isLoading = false;
if (!this.selectHashlists.length) {
@@ -205,10 +208,9 @@ export class NewTasksComponent implements OnInit {
private async loadCrackerSelectOptions(): Promise {
try {
const typeResponse: ResponseWrapper = await firstValueFrom(this.gs.getAll(SERV.CRACKERS_TYPES));
- const crackerTypes = new JsonAPISerializer().deserialize({
- data: typeResponse.data,
- included: typeResponse.included
- });
+ const crackerTypes: JCrackerBinaryType[] = zCrackerBinaryTypeList.parse(
+ new JsonAPISerializer().deserialize(typeResponse, zCrackerBinaryTypeListResponse)
+ );
this.selectCrackertype = transformSelectOptions(crackerTypes, CRACKER_TYPE_FIELD_MAPPING);
let typeId = this.selectCrackertype.find((obj) => obj.name === 'hashcat')?.id;
@@ -226,10 +228,10 @@ export class NewTasksComponent implements OnInit {
const versionResponse: ResponseWrapper = await firstValueFrom(this.gs.getAll(SERV.CRACKERS, requestParams));
- const crackers = new JsonAPISerializer().deserialize({
- data: versionResponse.data,
- included: versionResponse.included
- });
+ const crackers: JCrackerBinary[] = new JsonAPISerializer().deserialize(
+ versionResponse,
+ zCrackerBinaryListResponse
+ );
this.selectCrackerversions = transformSelectOptions(crackers, CRACKER_VERSION_FIELD_MAPPING);
@@ -250,10 +252,7 @@ export class NewTasksComponent implements OnInit {
private async loadPreprocessorSelectOptions(): Promise {
try {
const response: ResponseWrapper = await firstValueFrom(this.gs.getAll(SERV.PREPROCESSORS));
- const preprocessors = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const preprocessors: JPreprocessor[] = new JsonAPISerializer().deserialize(response, zPreprocessorListResponse);
this.selectPreprocessor = transformSelectOptions(preprocessors, DEFAULT_FIELD_MAPPING);
this.changeDetectorRef.detectChanges();
} catch (error) {
@@ -312,10 +311,7 @@ export class NewTasksComponent implements OnInit {
try {
const response: ResponseWrapper = await firstValueFrom(this.gs.getAll(SERV.CRACKERS, requestParams));
- const crackers = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const crackers: JCrackerBinary[] = new JsonAPISerializer().deserialize(response, zCrackerBinaryListResponse);
this.selectCrackerversions = transformSelectOptions(crackers, CRACKER_VERSION_FIELD_MAPPING);
// Select the last version by default
diff --git a/src/app/tasks/supertasks/applyhashlist.component.ts b/src/app/tasks/supertasks/applyhashlist.component.ts
index 27ab424df..395593f6f 100644
--- a/src/app/tasks/supertasks/applyhashlist.component.ts
+++ b/src/app/tasks/supertasks/applyhashlist.component.ts
@@ -1,8 +1,14 @@
+import {
+ zCrackerBinaryListResponse,
+ zCrackerBinaryTypeListResponse,
+ zHashlistListResponse
+} from '@generated/api/zod.gen';
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { ActivatedRoute, Params, Router } from '@angular/router';
-import { JCrackerBinaryType } from '@models/cracker-binary.model';
+import { JCrackerBinary, JCrackerBinaryType, zCrackerBinaryTypeList } from '@models/cracker-binary.model';
import { JHashlist } from '@models/hashlist.model';
import { FilterType } from '@models/request-params.model';
import { ResponseWrapper } from '@models/response.model';
@@ -158,10 +164,7 @@ export class ApplyHashlistComponent implements OnInit, OnDestroy {
const loadHashlistsSubscription$ = this.gs
.getAll(SERV.HASHLISTS, requestParams)
.subscribe((response: ResponseWrapper) => {
- const hashlists = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const hashlists: JHashlist[] = new JsonAPISerializer().deserialize(response, zHashlistListResponse);
this.selectHashlists = transformSelectOptions(hashlists, DEFAULT_FIELD_MAPPING);
this.isLoading = false;
if (!this.selectHashlists.length) {
@@ -178,10 +181,9 @@ export class ApplyHashlistComponent implements OnInit, OnDestroy {
loadCrackerSelectOptions() {
// Load Cracker Types and Crackers Select Options
const loadCrackerTypesSubscription$ = this.gs.getAll(SERV.CRACKERS_TYPES).subscribe((response: ResponseWrapper) => {
- const crackerTypes = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const crackerTypes: JCrackerBinaryType[] = zCrackerBinaryTypeList.parse(
+ new JsonAPISerializer().deserialize(response, zCrackerBinaryTypeListResponse)
+ );
this.selectCrackertype = transformSelectOptions(crackerTypes, CRACKER_TYPE_FIELD_MAPPING);
let id = '';
if (this.selectCrackertype.find((obj) => obj.name === 'hashcat').id) {
@@ -195,10 +197,7 @@ export class ApplyHashlistComponent implements OnInit, OnDestroy {
const loadCrackersSubscription$ = this.gs
.getAll(SERV.CRACKERS, requestParams)
.subscribe((response: ResponseWrapper) => {
- const crackers = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const crackers: JCrackerBinary[] = new JsonAPISerializer().deserialize(response, zCrackerBinaryListResponse);
this.selectCrackerversions = transformSelectOptions(crackers, CRACKER_VERSION_FIELD_MAPPING);
const lastItem = this.selectCrackerversions.slice(-1)[0]['id'];
this.form.get('crackerBinaryTypeId').patchValue(lastItem);
@@ -222,10 +221,7 @@ export class ApplyHashlistComponent implements OnInit, OnDestroy {
const onChangeBinarySubscription$ = this.gs
.getAll(SERV.CRACKERS, requestParams)
.subscribe((response: ResponseWrapper) => {
- const crackers = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const crackers: JCrackerBinary[] = new JsonAPISerializer().deserialize(response, zCrackerBinaryListResponse);
this.selectCrackerversions = transformSelectOptions(crackers, CRACKER_VERSION_FIELD_MAPPING);
const lastItem = this.selectCrackerversions.slice(-1)[0]['id'];
this.form.get('crackerBinaryTypeId').patchValue(lastItem);
diff --git a/src/app/users/edit-groups/edit-groups.component.spec.ts b/src/app/users/edit-groups/edit-groups.component.spec.ts
index 39679c147..1505ea529 100644
--- a/src/app/users/edit-groups/edit-groups.component.spec.ts
+++ b/src/app/users/edit-groups/edit-groups.component.spec.ts
@@ -1,3 +1,4 @@
+import { zAccessGroupListResponse, zUserListResponse } from '@generated/api/zod.gen';
import { of } from 'rxjs';
import { ComponentFixture, TestBed } from '@angular/core/testing';
@@ -17,6 +18,7 @@ import { UnsubscribeService } from '@services/unsubscribe.service';
import { AccessGroupsAgentsTableComponent } from '@components/tables/access-groups-agents-table/access-groups-agents-table.component';
import { AccessGroupsUserTableComponent } from '@components/tables/access-groups-users-table/access-groups-users-table.component';
+import { JsonAPISerializer } from '@src/app/core/_services/api/serializer-service';
import { EditGroupsComponent } from '@src/app/users/edit-groups/edit-groups.component';
const mockAccessGroupResponse: ResponseWrapper = {
@@ -30,6 +32,87 @@ const mockAccessGroupResponse: ResponseWrapper = {
included: []
};
+/**
+ * Focused tests for the deserialization bug in EditGroupsComponent.loadSelectUsers().
+ *
+ * The bug: `loadSelectUsers()` fetches from SERV.USERS but validates
+ * the response against `zAccessGroupListResponse` instead of `zUserListResponse`.
+ *
+ * We test the serializer directly to isolate the exact schema mismatch.
+ */
+describe('EditGroupsComponent deserialization', () => {
+ let serializer: JsonAPISerializer;
+
+ const jsonapi = { version: '1.1' };
+
+ const userListBody = {
+ jsonapi,
+ data: [
+ {
+ id: 10,
+ type: 'user',
+ attributes: {
+ name: 'alice',
+ email: 'alice@example.com',
+ isValid: true,
+ isComputedPassword: false,
+ lastLoginDate: 1752647000,
+ registeredSince: 1744086300,
+ sessionLifetime: 3600,
+ globalPermissionGroupId: 2,
+ yubikey: '0',
+ otp1: '',
+ otp2: '',
+ otp3: '',
+ otp4: ''
+ }
+ },
+ {
+ id: 20,
+ type: 'user',
+ attributes: {
+ name: 'bob',
+ email: 'bob@example.com',
+ isValid: true,
+ isComputedPassword: false,
+ lastLoginDate: 1752647100,
+ registeredSince: 1744086400,
+ sessionLifetime: 7200,
+ globalPermissionGroupId: 1,
+ yubikey: '0',
+ otp1: '',
+ otp2: '',
+ otp3: '',
+ otp4: ''
+ }
+ }
+ ]
+ };
+
+ beforeEach(() => {
+ serializer = new JsonAPISerializer();
+ });
+
+ it('should throw when user data is deserialized with zAccessGroupListResponse (the bug)', () => {
+ // This is the current (buggy) code path:
+ // const users: JAccessGroup[] = serializer.deserialize(response, zAccessGroupListResponse);
+ // It should throw because user-shaped data does not match access group schema.
+ expect(() => {
+ serializer.deserialize(userListBody, zAccessGroupListResponse);
+ }).toThrow();
+ });
+
+ it('should correctly deserialize user data with zUserListResponse (the fix)', () => {
+ // After the fix, the code should use zUserListResponse
+ const users = serializer.deserialize(userListBody, zUserListResponse);
+
+ expect(Array.isArray(users)).toBe(true);
+ expect(users.length).toBe(2);
+ expect(users[0].name).toBe('alice');
+ expect(users[1].name).toBe('bob');
+ });
+});
+
describe('EditGroupsComponent', () => {
let component: EditGroupsComponent;
let fixture: ComponentFixture;
diff --git a/src/app/users/edit-groups/edit-groups.component.ts b/src/app/users/edit-groups/edit-groups.component.ts
index c7e595228..87ec50036 100644
--- a/src/app/users/edit-groups/edit-groups.component.ts
+++ b/src/app/users/edit-groups/edit-groups.component.ts
@@ -1,11 +1,14 @@
+import { zAccessGroupResponse, zAgentListResponse, zUserListResponse } from '@generated/api/zod.gen';
import { firstValueFrom } from 'rxjs';
import { Component, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { ActivatedRoute, Params, Router } from '@angular/router';
+import { JAccessGroup } from '@models/access-group.model';
import { JAgent } from '@models/agent.model';
import { FilterType } from '@models/request-params.model';
+import { JUser } from '@models/user.model';
import { ConfirmDialogService } from '@services/confirm/confirm-dialog.service';
import { RequestParamBuilder } from '@services/params/builder-implementation.service';
@@ -15,7 +18,6 @@ import { AccessGroupsAgentsTableComponent } from '@components/tables/access-grou
import { AccessGroupsUserTableComponent } from '@components/tables/access-groups-users-table/access-groups-users-table.component';
import { AGENT_MAPPING, DEFAULT_FIELD_MAPPING } from '@src/app/core/_constants/select.config';
-import { JAccessGroup } from '@src/app/core/_models/access-group.model';
import { ResponseWrapper } from '@src/app/core/_models/response.model';
import { JsonAPISerializer } from '@src/app/core/_services/api/serializer-service';
import { RelationshipType, SERV } from '@src/app/core/_services/main.config';
@@ -128,10 +130,7 @@ export class EditGroupsComponent implements OnInit, OnDestroy {
this.gs.get(SERV.ACCESS_GROUPS, this.editedAccessGroupIndex, requestParams)
);
- this.accessGroup = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ this.accessGroup = new JsonAPISerializer().deserialize(response, zAccessGroupResponse) as JAccessGroup;
} catch (error) {
console.error('Failed to load access group data:', error);
}
@@ -152,10 +151,7 @@ export class EditGroupsComponent implements OnInit, OnDestroy {
const requestParams = requestParamBuilder.create();
const response: ResponseWrapper = await firstValueFrom(this.gs.getAll(SERV.USERS, requestParams));
- const users = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const users: JUser[] = new JsonAPISerializer().deserialize(response, zUserListResponse);
this.selectUsers = transformSelectOptions(users, DEFAULT_FIELD_MAPPING);
}
} catch (error) {
@@ -181,10 +177,7 @@ export class EditGroupsComponent implements OnInit, OnDestroy {
}
const requestParams = requestParamBuilder.create();
const response: ResponseWrapper = await firstValueFrom(this.gs.getAll(SERV.AGENTS, requestParams));
- const agents = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const agents: JAgent[] = new JsonAPISerializer().deserialize(response, zAgentListResponse);
this.selectAgents = transformSelectOptions(agents, AGENT_MAPPING);
}
} catch (error) {
diff --git a/src/app/users/edit-users/edit-users.component.ts b/src/app/users/edit-users/edit-users.component.ts
index eb99e69c0..3cde3c8b4 100644
--- a/src/app/users/edit-users/edit-users.component.ts
+++ b/src/app/users/edit-users/edit-users.component.ts
@@ -1,3 +1,4 @@
+import { zGlobalPermissionGroupListResponse, zUserResponse } from '@generated/api/zod.gen';
import { finalize } from 'rxjs';
import { ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';
@@ -115,7 +116,7 @@ export class EditUsersComponent implements OnInit, OnDestroy {
const loaduserAGPSubscription$ = this.gs
.get(SERV.USERS, this.editedUserIndex, params)
.subscribe((response: ResponseWrapper) => {
- const user = new JsonAPISerializer().deserialize({ data: response.data, included: response.included });
+ const user: JUser = new JsonAPISerializer().deserialize(response, zUserResponse);
this.selectUserAgps = transformSelectOptions(user.accessGroups, USER_AGP_FIELD_MAPPING);
this.editedUserName = user.name;
});
@@ -125,10 +126,10 @@ export class EditUsersComponent implements OnInit, OnDestroy {
const loadAGPSubscription$ = this.gs
.getAll(SERV.ACCESS_PERMISSIONS_GROUPS)
.subscribe((response: ResponseWrapper) => {
- const globalPermissionGroups = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const globalPermissionGroups: JGlobalPermissionGroup[] = new JsonAPISerializer().deserialize(
+ response,
+ zGlobalPermissionGroupListResponse
+ );
this.selectGlobalPermissionGroups = transformSelectOptions(globalPermissionGroups, DEFAULT_FIELD_MAPPING);
this.isLoading = false;
this.changeDetectorRef.detectChanges();
@@ -146,7 +147,7 @@ export class EditUsersComponent implements OnInit, OnDestroy {
const loadSubscription$ = this.gs
.get(SERV.USERS, this.editedUserIndex, params)
.subscribe((response: ResponseWrapper) => {
- const user = new JsonAPISerializer().deserialize({ data: response.data, included: response.included });
+ const user: JUser = new JsonAPISerializer().deserialize(response, zUserResponse);
this.updateForm.setValue({
id: user.id,
diff --git a/src/app/users/globalpermissionsgroups/edit-globalpermissionsgroups/edit-globalpermissionsgroups.component.ts b/src/app/users/globalpermissionsgroups/edit-globalpermissionsgroups/edit-globalpermissionsgroups.component.ts
index f475c3277..436677f5d 100644
--- a/src/app/users/globalpermissionsgroups/edit-globalpermissionsgroups/edit-globalpermissionsgroups.component.ts
+++ b/src/app/users/globalpermissionsgroups/edit-globalpermissionsgroups/edit-globalpermissionsgroups.component.ts
@@ -1,6 +1,8 @@
/**
* This module contains the component to manage and edit GlobalPermissionGroups
*/
+import { zGlobalPermissionGroupResponse } from '@generated/api/zod.gen';
+
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { ActivatedRoute, Params } from '@angular/router';
@@ -92,10 +94,7 @@ export class EditGlobalpermissionsgroupsComponent implements OnInit, OnDestroy {
})
.subscribe((response: ResponseWrapper) => {
if (response) {
- this.editedGPG = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ this.editedGPG = new JsonAPISerializer().deserialize(response, zGlobalPermissionGroupResponse);
const formValues = this.buildFormValues();
this.updateForm.patchValue(formValues);
}
diff --git a/src/app/users/new-user/new-user.component.spec.ts b/src/app/users/new-user/new-user.component.spec.ts
index a6d76a69b..3e7a91983 100644
--- a/src/app/users/new-user/new-user.component.spec.ts
+++ b/src/app/users/new-user/new-user.component.spec.ts
@@ -24,18 +24,19 @@ describe('NewUserComponent', () => {
let mockAlertService: jasmine.SpyObj;
const mockPermissionResponse: ResponseWrapper = {
+ jsonapi: { version: '1.1', ext: [] },
data: [
{
- id: '1',
- type: SERV.ACCESS_PERMISSIONS_GROUPS.RESOURCE,
+ id: 1,
+ type: 'globalPermissionGroup',
attributes: {
name: 'Default Group',
permissions: {}
}
},
{
- id: '2',
- type: SERV.ACCESS_PERMISSIONS_GROUPS.RESOURCE,
+ id: 2,
+ type: 'globalPermissionGroup',
attributes: {
name: 'Custom Group',
permissions: {}
diff --git a/src/app/users/new-user/new-user.component.ts b/src/app/users/new-user/new-user.component.ts
index b2f8a7c65..38272d467 100644
--- a/src/app/users/new-user/new-user.component.ts
+++ b/src/app/users/new-user/new-user.component.ts
@@ -1,6 +1,7 @@
/**
* This module contains the component to create a new user
*/
+import { zGlobalPermissionGroupListResponse } from '@generated/api/zod.gen';
import { firstValueFrom } from 'rxjs';
import { Component, OnInit, inject } from '@angular/core';
@@ -46,10 +47,10 @@ export class NewUserComponent implements OnInit {
try {
const response = await firstValueFrom(this.gs.getAll(SERV.ACCESS_PERMISSIONS_GROUPS));
- const permissionGroups = new JsonAPISerializer().deserialize({
- data: response.data,
- included: response.included
- });
+ const permissionGroups: JGlobalPermissionGroup[] = new JsonAPISerializer().deserialize(
+ response,
+ zGlobalPermissionGroupListResponse
+ );
this.selectGlobalPermissionGroups = transformSelectOptions(permissionGroups, DEFAULT_FIELD_MAPPING);
} catch {
this.alert.showErrorMessage('Error fetching permission groups');
diff --git a/src/generated/api/index.ts b/src/generated/api/index.ts
new file mode 100644
index 000000000..fb789d498
--- /dev/null
+++ b/src/generated/api/index.ts
@@ -0,0 +1,1691 @@
+// This file is auto-generated by @hey-api/openapi-ts
+
+export type {
+ AbortChunkHelperApi,
+ AbortChunkHelperApiResponse,
+ AccessGroupCreate,
+ AccessGroupListResponse,
+ AccessGroupPatch,
+ AccessGroupPostPatchResponse,
+ AccessGroupRelationAgentMembers,
+ AccessGroupRelationAgentMembersGetResponse,
+ AccessGroupResponse,
+ AgentAssignmentCreate,
+ AgentAssignmentListResponse,
+ AgentAssignmentPatch,
+ AgentAssignmentPostPatchResponse,
+ AgentAssignmentRelationTask,
+ AgentAssignmentRelationTaskGetResponse,
+ AgentAssignmentResponse,
+ AgentBinaryCreate,
+ AgentBinaryListResponse,
+ AgentBinaryPatch,
+ AgentBinaryPostPatchResponse,
+ AgentBinaryResponse,
+ AgentErrorListResponse,
+ AgentErrorRelationTask,
+ AgentErrorRelationTaskGetResponse,
+ AgentErrorResponse,
+ AgentListResponse,
+ AgentPatch,
+ AgentPostPatchResponse,
+ AgentRelationAssignments,
+ AgentRelationAssignmentsGetResponse,
+ AgentResponse,
+ AgentStatListResponse,
+ AgentStatResponse,
+ ApiTokenCreate,
+ ApiTokenListResponse,
+ ApiTokenPatch,
+ ApiTokenPostPatchResponse,
+ ApiTokenRelationUser,
+ ApiTokenRelationUserGetResponse,
+ ApiTokenResponse,
+ AssignAgentHelperApi,
+ AssignAgentHelperApiResponse,
+ BulkSupertaskBuilderHelperApi,
+ ChangeOwnPasswordHelperApi,
+ ChangeOwnPasswordHelperApiResponse,
+ ChunkListResponse,
+ ChunkRelationTask,
+ ChunkRelationTaskGetResponse,
+ ChunkResponse,
+ ClientOptions,
+ ConfigListResponse,
+ ConfigPatch,
+ ConfigPostPatchResponse,
+ ConfigRelationConfigSection,
+ ConfigRelationConfigSectionGetResponse,
+ ConfigResponse,
+ ConfigSectionListResponse,
+ ConfigSectionResponse,
+ CrackerBinaryCreate,
+ CrackerBinaryListResponse,
+ CrackerBinaryPatch,
+ CrackerBinaryPostPatchResponse,
+ CrackerBinaryRelationTasks,
+ CrackerBinaryRelationTasksGetResponse,
+ CrackerBinaryResponse,
+ CrackerBinaryTypeCreate,
+ CrackerBinaryTypeListResponse,
+ CrackerBinaryTypePatch,
+ CrackerBinaryTypePostPatchResponse,
+ CrackerBinaryTypeRelationTasks,
+ CrackerBinaryTypeRelationTasksGetResponse,
+ CrackerBinaryTypeResponse,
+ CreateSuperHashlistHelperApi,
+ CreateSupertaskHelperApi,
+ DeleteAccessgroupsByIdData,
+ DeleteAccessgroupsByIdError,
+ DeleteAccessgroupsByIdErrors,
+ DeleteAccessgroupsByIdRelationshipsByRelationData,
+ DeleteAccessgroupsByIdRelationshipsByRelationError,
+ DeleteAccessgroupsByIdRelationshipsByRelationErrors,
+ DeleteAccessgroupsByIdRelationshipsByRelationResponse,
+ DeleteAccessgroupsByIdRelationshipsByRelationResponses,
+ DeleteAccessgroupsByIdResponse,
+ DeleteAccessgroupsByIdResponses,
+ DeleteAccessgroupsData,
+ DeleteAccessgroupsError,
+ DeleteAccessgroupsErrors,
+ DeleteAccessgroupsResponses,
+ DeleteAgentassignmentsByIdData,
+ DeleteAgentassignmentsByIdError,
+ DeleteAgentassignmentsByIdErrors,
+ DeleteAgentassignmentsByIdResponse,
+ DeleteAgentassignmentsByIdResponses,
+ DeleteAgentassignmentsData,
+ DeleteAgentassignmentsError,
+ DeleteAgentassignmentsErrors,
+ DeleteAgentassignmentsResponses,
+ DeleteAgentbinariesByIdData,
+ DeleteAgentbinariesByIdError,
+ DeleteAgentbinariesByIdErrors,
+ DeleteAgentbinariesByIdResponse,
+ DeleteAgentbinariesByIdResponses,
+ DeleteAgentbinariesData,
+ DeleteAgentbinariesError,
+ DeleteAgentbinariesErrors,
+ DeleteAgentbinariesResponses,
+ DeleteAgenterrorsByIdData,
+ DeleteAgenterrorsByIdError,
+ DeleteAgenterrorsByIdErrors,
+ DeleteAgenterrorsByIdResponse,
+ DeleteAgenterrorsByIdResponses,
+ DeleteAgenterrorsData,
+ DeleteAgenterrorsError,
+ DeleteAgenterrorsErrors,
+ DeleteAgenterrorsResponses,
+ DeleteAgentsByIdData,
+ DeleteAgentsByIdError,
+ DeleteAgentsByIdErrors,
+ DeleteAgentsByIdRelationshipsByRelationData,
+ DeleteAgentsByIdRelationshipsByRelationError,
+ DeleteAgentsByIdRelationshipsByRelationErrors,
+ DeleteAgentsByIdRelationshipsByRelationResponse,
+ DeleteAgentsByIdRelationshipsByRelationResponses,
+ DeleteAgentsByIdResponse,
+ DeleteAgentsByIdResponses,
+ DeleteAgentsData,
+ DeleteAgentsError,
+ DeleteAgentsErrors,
+ DeleteAgentsResponses,
+ DeleteAgentstatsByIdData,
+ DeleteAgentstatsByIdError,
+ DeleteAgentstatsByIdErrors,
+ DeleteAgentstatsByIdResponse,
+ DeleteAgentstatsByIdResponses,
+ DeleteAgentstatsData,
+ DeleteAgentstatsError,
+ DeleteAgentstatsErrors,
+ DeleteAgentstatsResponses,
+ DeleteApiTokensByIdData,
+ DeleteApiTokensByIdError,
+ DeleteApiTokensByIdErrors,
+ DeleteApiTokensByIdResponse,
+ DeleteApiTokensByIdResponses,
+ DeleteApiTokensData,
+ DeleteApiTokensError,
+ DeleteApiTokensErrors,
+ DeleteApiTokensResponses,
+ DeleteCrackersByIdData,
+ DeleteCrackersByIdError,
+ DeleteCrackersByIdErrors,
+ DeleteCrackersByIdRelationshipsByRelationData,
+ DeleteCrackersByIdRelationshipsByRelationError,
+ DeleteCrackersByIdRelationshipsByRelationErrors,
+ DeleteCrackersByIdRelationshipsByRelationResponse,
+ DeleteCrackersByIdRelationshipsByRelationResponses,
+ DeleteCrackersByIdResponse,
+ DeleteCrackersByIdResponses,
+ DeleteCrackersData,
+ DeleteCrackersError,
+ DeleteCrackersErrors,
+ DeleteCrackersResponses,
+ DeleteCrackertypesByIdData,
+ DeleteCrackertypesByIdError,
+ DeleteCrackertypesByIdErrors,
+ DeleteCrackertypesByIdRelationshipsByRelationData,
+ DeleteCrackertypesByIdRelationshipsByRelationError,
+ DeleteCrackertypesByIdRelationshipsByRelationErrors,
+ DeleteCrackertypesByIdRelationshipsByRelationResponse,
+ DeleteCrackertypesByIdRelationshipsByRelationResponses,
+ DeleteCrackertypesByIdResponse,
+ DeleteCrackertypesByIdResponses,
+ DeleteCrackertypesData,
+ DeleteCrackertypesError,
+ DeleteCrackertypesErrors,
+ DeleteCrackertypesResponses,
+ DeleteFilesByIdData,
+ DeleteFilesByIdError,
+ DeleteFilesByIdErrors,
+ DeleteFilesByIdResponse,
+ DeleteFilesByIdResponses,
+ DeleteFilesData,
+ DeleteFilesError,
+ DeleteFilesErrors,
+ DeleteFilesResponses,
+ DeleteGlobalpermissiongroupsByIdData,
+ DeleteGlobalpermissiongroupsByIdError,
+ DeleteGlobalpermissiongroupsByIdErrors,
+ DeleteGlobalpermissiongroupsByIdRelationshipsByRelationData,
+ DeleteGlobalpermissiongroupsByIdRelationshipsByRelationError,
+ DeleteGlobalpermissiongroupsByIdRelationshipsByRelationErrors,
+ DeleteGlobalpermissiongroupsByIdRelationshipsByRelationResponse,
+ DeleteGlobalpermissiongroupsByIdRelationshipsByRelationResponses,
+ DeleteGlobalpermissiongroupsByIdResponse,
+ DeleteGlobalpermissiongroupsByIdResponses,
+ DeleteGlobalpermissiongroupsData,
+ DeleteGlobalpermissiongroupsError,
+ DeleteGlobalpermissiongroupsErrors,
+ DeleteGlobalpermissiongroupsResponses,
+ DeleteHashlistsByIdData,
+ DeleteHashlistsByIdError,
+ DeleteHashlistsByIdErrors,
+ DeleteHashlistsByIdRelationshipsByRelationData,
+ DeleteHashlistsByIdRelationshipsByRelationError,
+ DeleteHashlistsByIdRelationshipsByRelationErrors,
+ DeleteHashlistsByIdRelationshipsByRelationResponse,
+ DeleteHashlistsByIdRelationshipsByRelationResponses,
+ DeleteHashlistsByIdResponse,
+ DeleteHashlistsByIdResponses,
+ DeleteHashlistsData,
+ DeleteHashlistsError,
+ DeleteHashlistsErrors,
+ DeleteHashlistsResponses,
+ DeleteHashtypesByIdData,
+ DeleteHashtypesByIdError,
+ DeleteHashtypesByIdErrors,
+ DeleteHashtypesByIdResponse,
+ DeleteHashtypesByIdResponses,
+ DeleteHashtypesData,
+ DeleteHashtypesError,
+ DeleteHashtypesErrors,
+ DeleteHashtypesResponses,
+ DeleteHealthchecksByIdData,
+ DeleteHealthchecksByIdError,
+ DeleteHealthchecksByIdErrors,
+ DeleteHealthchecksByIdRelationshipsByRelationData,
+ DeleteHealthchecksByIdRelationshipsByRelationError,
+ DeleteHealthchecksByIdRelationshipsByRelationErrors,
+ DeleteHealthchecksByIdRelationshipsByRelationResponse,
+ DeleteHealthchecksByIdRelationshipsByRelationResponses,
+ DeleteHealthchecksByIdResponse,
+ DeleteHealthchecksByIdResponses,
+ DeleteHealthchecksData,
+ DeleteHealthchecksError,
+ DeleteHealthchecksErrors,
+ DeleteHealthchecksResponses,
+ DeleteImportFileById09aF32Data,
+ DeleteImportFileById09aF32Responses,
+ DeleteLogentriesByIdData,
+ DeleteLogentriesByIdError,
+ DeleteLogentriesByIdErrors,
+ DeleteLogentriesByIdResponse,
+ DeleteLogentriesByIdResponses,
+ DeleteLogentriesData,
+ DeleteLogentriesError,
+ DeleteLogentriesErrors,
+ DeleteLogentriesResponses,
+ DeleteNotificationsByIdData,
+ DeleteNotificationsByIdError,
+ DeleteNotificationsByIdErrors,
+ DeleteNotificationsByIdResponse,
+ DeleteNotificationsByIdResponses,
+ DeleteNotificationsData,
+ DeleteNotificationsError,
+ DeleteNotificationsErrors,
+ DeleteNotificationsResponses,
+ DeletePreprocessorsByIdData,
+ DeletePreprocessorsByIdError,
+ DeletePreprocessorsByIdErrors,
+ DeletePreprocessorsByIdResponse,
+ DeletePreprocessorsByIdResponses,
+ DeletePreprocessorsData,
+ DeletePreprocessorsError,
+ DeletePreprocessorsErrors,
+ DeletePreprocessorsResponses,
+ DeletePretasksByIdData,
+ DeletePretasksByIdError,
+ DeletePretasksByIdErrors,
+ DeletePretasksByIdRelationshipsByRelationData,
+ DeletePretasksByIdRelationshipsByRelationError,
+ DeletePretasksByIdRelationshipsByRelationErrors,
+ DeletePretasksByIdRelationshipsByRelationResponse,
+ DeletePretasksByIdRelationshipsByRelationResponses,
+ DeletePretasksByIdResponse,
+ DeletePretasksByIdResponses,
+ DeletePretasksData,
+ DeletePretasksError,
+ DeletePretasksErrors,
+ DeletePretasksResponses,
+ DeleteSupertasksByIdData,
+ DeleteSupertasksByIdError,
+ DeleteSupertasksByIdErrors,
+ DeleteSupertasksByIdRelationshipsByRelationData,
+ DeleteSupertasksByIdRelationshipsByRelationError,
+ DeleteSupertasksByIdRelationshipsByRelationErrors,
+ DeleteSupertasksByIdRelationshipsByRelationResponse,
+ DeleteSupertasksByIdRelationshipsByRelationResponses,
+ DeleteSupertasksByIdResponse,
+ DeleteSupertasksByIdResponses,
+ DeleteSupertasksData,
+ DeleteSupertasksError,
+ DeleteSupertasksErrors,
+ DeleteSupertasksResponses,
+ DeleteTasksByIdData,
+ DeleteTasksByIdError,
+ DeleteTasksByIdErrors,
+ DeleteTasksByIdRelationshipsByRelationData,
+ DeleteTasksByIdRelationshipsByRelationError,
+ DeleteTasksByIdRelationshipsByRelationErrors,
+ DeleteTasksByIdRelationshipsByRelationResponse,
+ DeleteTasksByIdRelationshipsByRelationResponses,
+ DeleteTasksByIdResponse,
+ DeleteTasksByIdResponses,
+ DeleteTasksData,
+ DeleteTasksError,
+ DeleteTasksErrors,
+ DeleteTasksResponses,
+ DeleteTaskwrappersByIdData,
+ DeleteTaskwrappersByIdError,
+ DeleteTaskwrappersByIdErrors,
+ DeleteTaskwrappersByIdRelationshipsByRelationData,
+ DeleteTaskwrappersByIdRelationshipsByRelationError,
+ DeleteTaskwrappersByIdRelationshipsByRelationErrors,
+ DeleteTaskwrappersByIdRelationshipsByRelationResponse,
+ DeleteTaskwrappersByIdRelationshipsByRelationResponses,
+ DeleteTaskwrappersByIdResponse,
+ DeleteTaskwrappersByIdResponses,
+ DeleteTaskwrappersData,
+ DeleteTaskwrappersError,
+ DeleteTaskwrappersErrors,
+ DeleteTaskwrappersResponses,
+ DeleteUsersByIdData,
+ DeleteUsersByIdError,
+ DeleteUsersByIdErrors,
+ DeleteUsersByIdRelationshipsByRelationData,
+ DeleteUsersByIdRelationshipsByRelationError,
+ DeleteUsersByIdRelationshipsByRelationErrors,
+ DeleteUsersByIdRelationshipsByRelationResponse,
+ DeleteUsersByIdRelationshipsByRelationResponses,
+ DeleteUsersByIdResponse,
+ DeleteUsersByIdResponses,
+ DeleteUsersData,
+ DeleteUsersError,
+ DeleteUsersErrors,
+ DeleteUsersResponses,
+ DeleteVouchersByIdData,
+ DeleteVouchersByIdError,
+ DeleteVouchersByIdErrors,
+ DeleteVouchersByIdResponse,
+ DeleteVouchersByIdResponses,
+ DeleteVouchersData,
+ DeleteVouchersError,
+ DeleteVouchersErrors,
+ DeleteVouchersResponses,
+ ErrorResponse,
+ ExportCrackedHashesHelperApi,
+ ExportLeftHashesHelperApi,
+ ExportWordlistHelperApi,
+ FileCreate,
+ FileListResponse,
+ FilePatch,
+ FilePostPatchResponse,
+ FileRelationAccessGroup,
+ FileRelationAccessGroupGetResponse,
+ FileResponse,
+ FileSingleResponse,
+ GetAccessgroupsByIdByRelationData,
+ GetAccessgroupsByIdByRelationError,
+ GetAccessgroupsByIdByRelationErrors,
+ GetAccessgroupsByIdByRelationResponse,
+ GetAccessgroupsByIdByRelationResponses,
+ GetAccessgroupsByIdData,
+ GetAccessgroupsByIdError,
+ GetAccessgroupsByIdErrors,
+ GetAccessgroupsByIdRelationshipsByRelationData,
+ GetAccessgroupsByIdRelationshipsByRelationError,
+ GetAccessgroupsByIdRelationshipsByRelationErrors,
+ GetAccessgroupsByIdRelationshipsByRelationResponse,
+ GetAccessgroupsByIdRelationshipsByRelationResponses,
+ GetAccessgroupsByIdResponse,
+ GetAccessgroupsByIdResponses,
+ GetAccessgroupsCountData,
+ GetAccessgroupsCountError,
+ GetAccessgroupsCountErrors,
+ GetAccessgroupsCountResponse,
+ GetAccessgroupsCountResponses,
+ GetAccessgroupsData,
+ GetAccessgroupsError,
+ GetAccessgroupsErrors,
+ GetAccessgroupsResponse,
+ GetAccessgroupsResponses,
+ GetAgentassignmentsByIdByRelationData,
+ GetAgentassignmentsByIdByRelationError,
+ GetAgentassignmentsByIdByRelationErrors,
+ GetAgentassignmentsByIdByRelationResponse,
+ GetAgentassignmentsByIdByRelationResponses,
+ GetAgentassignmentsByIdData,
+ GetAgentassignmentsByIdError,
+ GetAgentassignmentsByIdErrors,
+ GetAgentassignmentsByIdRelationshipsByRelationData,
+ GetAgentassignmentsByIdRelationshipsByRelationError,
+ GetAgentassignmentsByIdRelationshipsByRelationErrors,
+ GetAgentassignmentsByIdRelationshipsByRelationResponse,
+ GetAgentassignmentsByIdRelationshipsByRelationResponses,
+ GetAgentassignmentsByIdResponse,
+ GetAgentassignmentsByIdResponses,
+ GetAgentassignmentsCountData,
+ GetAgentassignmentsCountError,
+ GetAgentassignmentsCountErrors,
+ GetAgentassignmentsCountResponse,
+ GetAgentassignmentsCountResponses,
+ GetAgentassignmentsData,
+ GetAgentassignmentsError,
+ GetAgentassignmentsErrors,
+ GetAgentassignmentsResponse,
+ GetAgentassignmentsResponses,
+ GetAgentbinariesByIdData,
+ GetAgentbinariesByIdError,
+ GetAgentbinariesByIdErrors,
+ GetAgentbinariesByIdResponse,
+ GetAgentbinariesByIdResponses,
+ GetAgentbinariesCountData,
+ GetAgentbinariesCountError,
+ GetAgentbinariesCountErrors,
+ GetAgentbinariesCountResponse,
+ GetAgentbinariesCountResponses,
+ GetAgentbinariesData,
+ GetAgentbinariesError,
+ GetAgentbinariesErrors,
+ GetAgentbinariesResponse,
+ GetAgentbinariesResponses,
+ GetAgenterrorsByIdByRelationData,
+ GetAgenterrorsByIdByRelationError,
+ GetAgenterrorsByIdByRelationErrors,
+ GetAgenterrorsByIdByRelationResponse,
+ GetAgenterrorsByIdByRelationResponses,
+ GetAgenterrorsByIdData,
+ GetAgenterrorsByIdError,
+ GetAgenterrorsByIdErrors,
+ GetAgenterrorsByIdRelationshipsByRelationData,
+ GetAgenterrorsByIdRelationshipsByRelationError,
+ GetAgenterrorsByIdRelationshipsByRelationErrors,
+ GetAgenterrorsByIdRelationshipsByRelationResponse,
+ GetAgenterrorsByIdRelationshipsByRelationResponses,
+ GetAgenterrorsByIdResponse,
+ GetAgenterrorsByIdResponses,
+ GetAgenterrorsCountData,
+ GetAgenterrorsCountError,
+ GetAgenterrorsCountErrors,
+ GetAgenterrorsCountResponse,
+ GetAgenterrorsCountResponses,
+ GetAgenterrorsData,
+ GetAgenterrorsError,
+ GetAgenterrorsErrors,
+ GetAgenterrorsResponse,
+ GetAgenterrorsResponses,
+ GetAgentsByIdByRelationData,
+ GetAgentsByIdByRelationError,
+ GetAgentsByIdByRelationErrors,
+ GetAgentsByIdByRelationResponse,
+ GetAgentsByIdByRelationResponses,
+ GetAgentsByIdData,
+ GetAgentsByIdError,
+ GetAgentsByIdErrors,
+ GetAgentsByIdRelationshipsByRelationData,
+ GetAgentsByIdRelationshipsByRelationError,
+ GetAgentsByIdRelationshipsByRelationErrors,
+ GetAgentsByIdRelationshipsByRelationResponse,
+ GetAgentsByIdRelationshipsByRelationResponses,
+ GetAgentsByIdResponse,
+ GetAgentsByIdResponses,
+ GetAgentsCountData,
+ GetAgentsCountError,
+ GetAgentsCountErrors,
+ GetAgentsCountResponse,
+ GetAgentsCountResponses,
+ GetAgentsData,
+ GetAgentsError,
+ GetAgentsErrors,
+ GetAgentsResponse,
+ GetAgentsResponses,
+ GetAgentstatsByIdData,
+ GetAgentstatsByIdError,
+ GetAgentstatsByIdErrors,
+ GetAgentstatsByIdResponse,
+ GetAgentstatsByIdResponses,
+ GetAgentstatsCountData,
+ GetAgentstatsCountError,
+ GetAgentstatsCountErrors,
+ GetAgentstatsCountResponse,
+ GetAgentstatsCountResponses,
+ GetAgentstatsData,
+ GetAgentstatsError,
+ GetAgentstatsErrors,
+ GetAgentstatsResponse,
+ GetAgentstatsResponses,
+ GetApiTokensByIdByRelationData,
+ GetApiTokensByIdByRelationError,
+ GetApiTokensByIdByRelationErrors,
+ GetApiTokensByIdByRelationResponse,
+ GetApiTokensByIdByRelationResponses,
+ GetApiTokensByIdData,
+ GetApiTokensByIdError,
+ GetApiTokensByIdErrors,
+ GetApiTokensByIdRelationshipsByRelationData,
+ GetApiTokensByIdRelationshipsByRelationError,
+ GetApiTokensByIdRelationshipsByRelationErrors,
+ GetApiTokensByIdRelationshipsByRelationResponse,
+ GetApiTokensByIdRelationshipsByRelationResponses,
+ GetApiTokensByIdResponse,
+ GetApiTokensByIdResponses,
+ GetApiTokensCountData,
+ GetApiTokensCountError,
+ GetApiTokensCountErrors,
+ GetApiTokensCountResponse,
+ GetApiTokensCountResponses,
+ GetApiTokensData,
+ GetApiTokensError,
+ GetApiTokensErrors,
+ GetApiTokensResponse,
+ GetApiTokensResponses,
+ GetChunksByIdByRelationData,
+ GetChunksByIdByRelationError,
+ GetChunksByIdByRelationErrors,
+ GetChunksByIdByRelationResponse,
+ GetChunksByIdByRelationResponses,
+ GetChunksByIdData,
+ GetChunksByIdError,
+ GetChunksByIdErrors,
+ GetChunksByIdRelationshipsByRelationData,
+ GetChunksByIdRelationshipsByRelationError,
+ GetChunksByIdRelationshipsByRelationErrors,
+ GetChunksByIdRelationshipsByRelationResponse,
+ GetChunksByIdRelationshipsByRelationResponses,
+ GetChunksByIdResponse,
+ GetChunksByIdResponses,
+ GetChunksCountData,
+ GetChunksCountError,
+ GetChunksCountErrors,
+ GetChunksCountResponse,
+ GetChunksCountResponses,
+ GetChunksData,
+ GetChunksError,
+ GetChunksErrors,
+ GetChunksResponse,
+ GetChunksResponses,
+ GetConfigsByIdByRelationData,
+ GetConfigsByIdByRelationError,
+ GetConfigsByIdByRelationErrors,
+ GetConfigsByIdByRelationResponse,
+ GetConfigsByIdByRelationResponses,
+ GetConfigsByIdData,
+ GetConfigsByIdError,
+ GetConfigsByIdErrors,
+ GetConfigsByIdRelationshipsByRelationData,
+ GetConfigsByIdRelationshipsByRelationError,
+ GetConfigsByIdRelationshipsByRelationErrors,
+ GetConfigsByIdRelationshipsByRelationResponse,
+ GetConfigsByIdRelationshipsByRelationResponses,
+ GetConfigsByIdResponse,
+ GetConfigsByIdResponses,
+ GetConfigsCountData,
+ GetConfigsCountError,
+ GetConfigsCountErrors,
+ GetConfigsCountResponse,
+ GetConfigsCountResponses,
+ GetConfigsData,
+ GetConfigsectionsByIdData,
+ GetConfigsectionsByIdError,
+ GetConfigsectionsByIdErrors,
+ GetConfigsectionsByIdResponse,
+ GetConfigsectionsByIdResponses,
+ GetConfigsectionsCountData,
+ GetConfigsectionsCountError,
+ GetConfigsectionsCountErrors,
+ GetConfigsectionsCountResponse,
+ GetConfigsectionsCountResponses,
+ GetConfigsectionsData,
+ GetConfigsectionsError,
+ GetConfigsectionsErrors,
+ GetConfigsectionsResponse,
+ GetConfigsectionsResponses,
+ GetConfigsError,
+ GetConfigsErrors,
+ GetConfigsResponse,
+ GetConfigsResponses,
+ GetCrackersByIdByRelationData,
+ GetCrackersByIdByRelationError,
+ GetCrackersByIdByRelationErrors,
+ GetCrackersByIdByRelationResponse,
+ GetCrackersByIdByRelationResponses,
+ GetCrackersByIdData,
+ GetCrackersByIdError,
+ GetCrackersByIdErrors,
+ GetCrackersByIdRelationshipsByRelationData,
+ GetCrackersByIdRelationshipsByRelationError,
+ GetCrackersByIdRelationshipsByRelationErrors,
+ GetCrackersByIdRelationshipsByRelationResponse,
+ GetCrackersByIdRelationshipsByRelationResponses,
+ GetCrackersByIdResponse,
+ GetCrackersByIdResponses,
+ GetCrackersCountData,
+ GetCrackersCountError,
+ GetCrackersCountErrors,
+ GetCrackersCountResponse,
+ GetCrackersCountResponses,
+ GetCrackersData,
+ GetCrackersError,
+ GetCrackersErrors,
+ GetCrackersResponse,
+ GetCrackersResponses,
+ GetCrackertypesByIdByRelationData,
+ GetCrackertypesByIdByRelationError,
+ GetCrackertypesByIdByRelationErrors,
+ GetCrackertypesByIdByRelationResponse,
+ GetCrackertypesByIdByRelationResponses,
+ GetCrackertypesByIdData,
+ GetCrackertypesByIdError,
+ GetCrackertypesByIdErrors,
+ GetCrackertypesByIdRelationshipsByRelationData,
+ GetCrackertypesByIdRelationshipsByRelationError,
+ GetCrackertypesByIdRelationshipsByRelationErrors,
+ GetCrackertypesByIdRelationshipsByRelationResponse,
+ GetCrackertypesByIdRelationshipsByRelationResponses,
+ GetCrackertypesByIdResponse,
+ GetCrackertypesByIdResponses,
+ GetCrackertypesCountData,
+ GetCrackertypesCountError,
+ GetCrackertypesCountErrors,
+ GetCrackertypesCountResponse,
+ GetCrackertypesCountResponses,
+ GetCrackertypesData,
+ GetCrackertypesError,
+ GetCrackertypesErrors,
+ GetCrackertypesResponse,
+ GetCrackertypesResponses,
+ GetCurrentUserData,
+ GetCurrentUserResponses,
+ GetFilesByIdByRelationData,
+ GetFilesByIdByRelationError,
+ GetFilesByIdByRelationErrors,
+ GetFilesByIdByRelationResponse,
+ GetFilesByIdByRelationResponses,
+ GetFilesByIdData,
+ GetFilesByIdError,
+ GetFilesByIdErrors,
+ GetFilesByIdRelationshipsByRelationData,
+ GetFilesByIdRelationshipsByRelationError,
+ GetFilesByIdRelationshipsByRelationErrors,
+ GetFilesByIdRelationshipsByRelationResponse,
+ GetFilesByIdRelationshipsByRelationResponses,
+ GetFilesByIdResponse,
+ GetFilesByIdResponses,
+ GetFilesCountData,
+ GetFilesCountError,
+ GetFilesCountErrors,
+ GetFilesCountResponse,
+ GetFilesCountResponses,
+ GetFilesData,
+ GetFilesError,
+ GetFilesErrors,
+ GetFilesResponse,
+ GetFilesResponses,
+ GetGetAccessGroupsData,
+ GetGetAccessGroupsResponses,
+ GetGetAgentBinaryData,
+ GetGetAgentBinaryResponses,
+ GetGetBestTasksAgentData,
+ GetGetBestTasksAgentResponses,
+ GetGetCracksOfTaskData,
+ GetGetCracksOfTaskResponses,
+ GetGetFileData,
+ GetGetFileResponses,
+ GetGetTaskProgressImageData,
+ GetGetTaskProgressImageResponses,
+ GetGetUserPermissionData,
+ GetGetUserPermissionResponses,
+ GetGlobalpermissiongroupsByIdByRelationData,
+ GetGlobalpermissiongroupsByIdByRelationError,
+ GetGlobalpermissiongroupsByIdByRelationErrors,
+ GetGlobalpermissiongroupsByIdByRelationResponse,
+ GetGlobalpermissiongroupsByIdByRelationResponses,
+ GetGlobalpermissiongroupsByIdData,
+ GetGlobalpermissiongroupsByIdError,
+ GetGlobalpermissiongroupsByIdErrors,
+ GetGlobalpermissiongroupsByIdRelationshipsByRelationData,
+ GetGlobalpermissiongroupsByIdRelationshipsByRelationError,
+ GetGlobalpermissiongroupsByIdRelationshipsByRelationErrors,
+ GetGlobalpermissiongroupsByIdRelationshipsByRelationResponse,
+ GetGlobalpermissiongroupsByIdRelationshipsByRelationResponses,
+ GetGlobalpermissiongroupsByIdResponse,
+ GetGlobalpermissiongroupsByIdResponses,
+ GetGlobalpermissiongroupsCountData,
+ GetGlobalpermissiongroupsCountError,
+ GetGlobalpermissiongroupsCountErrors,
+ GetGlobalpermissiongroupsCountResponse,
+ GetGlobalpermissiongroupsCountResponses,
+ GetGlobalpermissiongroupsData,
+ GetGlobalpermissiongroupsError,
+ GetGlobalpermissiongroupsErrors,
+ GetGlobalpermissiongroupsResponse,
+ GetGlobalpermissiongroupsResponses,
+ GetHashesByIdByRelationData,
+ GetHashesByIdByRelationError,
+ GetHashesByIdByRelationErrors,
+ GetHashesByIdByRelationResponse,
+ GetHashesByIdByRelationResponses,
+ GetHashesByIdData,
+ GetHashesByIdError,
+ GetHashesByIdErrors,
+ GetHashesByIdRelationshipsByRelationData,
+ GetHashesByIdRelationshipsByRelationError,
+ GetHashesByIdRelationshipsByRelationErrors,
+ GetHashesByIdRelationshipsByRelationResponse,
+ GetHashesByIdRelationshipsByRelationResponses,
+ GetHashesByIdResponse,
+ GetHashesByIdResponses,
+ GetHashesCountData,
+ GetHashesCountError,
+ GetHashesCountErrors,
+ GetHashesCountResponse,
+ GetHashesCountResponses,
+ GetHashesData,
+ GetHashesError,
+ GetHashesErrors,
+ GetHashesResponse,
+ GetHashesResponses,
+ GetHashlistsByIdByRelationData,
+ GetHashlistsByIdByRelationError,
+ GetHashlistsByIdByRelationErrors,
+ GetHashlistsByIdByRelationResponse,
+ GetHashlistsByIdByRelationResponses,
+ GetHashlistsByIdData,
+ GetHashlistsByIdError,
+ GetHashlistsByIdErrors,
+ GetHashlistsByIdRelationshipsByRelationData,
+ GetHashlistsByIdRelationshipsByRelationError,
+ GetHashlistsByIdRelationshipsByRelationErrors,
+ GetHashlistsByIdRelationshipsByRelationResponse,
+ GetHashlistsByIdRelationshipsByRelationResponses,
+ GetHashlistsByIdResponse,
+ GetHashlistsByIdResponses,
+ GetHashlistsCountData,
+ GetHashlistsCountError,
+ GetHashlistsCountErrors,
+ GetHashlistsCountResponse,
+ GetHashlistsCountResponses,
+ GetHashlistsData,
+ GetHashlistsError,
+ GetHashlistsErrors,
+ GetHashlistsResponse,
+ GetHashlistsResponses,
+ GetHashtypesByIdData,
+ GetHashtypesByIdError,
+ GetHashtypesByIdErrors,
+ GetHashtypesByIdResponse,
+ GetHashtypesByIdResponses,
+ GetHashtypesCountData,
+ GetHashtypesCountError,
+ GetHashtypesCountErrors,
+ GetHashtypesCountResponse,
+ GetHashtypesCountResponses,
+ GetHashtypesData,
+ GetHashtypesError,
+ GetHashtypesErrors,
+ GetHashtypesResponse,
+ GetHashtypesResponses,
+ GetHealthcheckagentsByIdByRelationData,
+ GetHealthcheckagentsByIdByRelationError,
+ GetHealthcheckagentsByIdByRelationErrors,
+ GetHealthcheckagentsByIdByRelationResponse,
+ GetHealthcheckagentsByIdByRelationResponses,
+ GetHealthcheckagentsByIdData,
+ GetHealthcheckagentsByIdError,
+ GetHealthcheckagentsByIdErrors,
+ GetHealthcheckagentsByIdRelationshipsByRelationData,
+ GetHealthcheckagentsByIdRelationshipsByRelationError,
+ GetHealthcheckagentsByIdRelationshipsByRelationErrors,
+ GetHealthcheckagentsByIdRelationshipsByRelationResponse,
+ GetHealthcheckagentsByIdRelationshipsByRelationResponses,
+ GetHealthcheckagentsByIdResponse,
+ GetHealthcheckagentsByIdResponses,
+ GetHealthcheckagentsCountData,
+ GetHealthcheckagentsCountError,
+ GetHealthcheckagentsCountErrors,
+ GetHealthcheckagentsCountResponse,
+ GetHealthcheckagentsCountResponses,
+ GetHealthcheckagentsData,
+ GetHealthcheckagentsError,
+ GetHealthcheckagentsErrors,
+ GetHealthcheckagentsResponse,
+ GetHealthcheckagentsResponses,
+ GetHealthchecksByIdByRelationData,
+ GetHealthchecksByIdByRelationError,
+ GetHealthchecksByIdByRelationErrors,
+ GetHealthchecksByIdByRelationResponse,
+ GetHealthchecksByIdByRelationResponses,
+ GetHealthchecksByIdData,
+ GetHealthchecksByIdError,
+ GetHealthchecksByIdErrors,
+ GetHealthchecksByIdRelationshipsByRelationData,
+ GetHealthchecksByIdRelationshipsByRelationError,
+ GetHealthchecksByIdRelationshipsByRelationErrors,
+ GetHealthchecksByIdRelationshipsByRelationResponse,
+ GetHealthchecksByIdRelationshipsByRelationResponses,
+ GetHealthchecksByIdResponse,
+ GetHealthchecksByIdResponses,
+ GetHealthchecksCountData,
+ GetHealthchecksCountError,
+ GetHealthchecksCountErrors,
+ GetHealthchecksCountResponse,
+ GetHealthchecksCountResponses,
+ GetHealthchecksData,
+ GetHealthchecksError,
+ GetHealthchecksErrors,
+ GetHealthchecksResponse,
+ GetHealthchecksResponses,
+ GetImportFileData,
+ GetImportFileResponses,
+ GetLogentriesByIdData,
+ GetLogentriesByIdError,
+ GetLogentriesByIdErrors,
+ GetLogentriesByIdResponse,
+ GetLogentriesByIdResponses,
+ GetLogentriesCountData,
+ GetLogentriesCountError,
+ GetLogentriesCountErrors,
+ GetLogentriesCountResponse,
+ GetLogentriesCountResponses,
+ GetLogentriesData,
+ GetLogentriesError,
+ GetLogentriesErrors,
+ GetLogentriesResponse,
+ GetLogentriesResponses,
+ GetNotificationsByIdByRelationData,
+ GetNotificationsByIdByRelationError,
+ GetNotificationsByIdByRelationErrors,
+ GetNotificationsByIdByRelationResponse,
+ GetNotificationsByIdByRelationResponses,
+ GetNotificationsByIdData,
+ GetNotificationsByIdError,
+ GetNotificationsByIdErrors,
+ GetNotificationsByIdRelationshipsByRelationData,
+ GetNotificationsByIdRelationshipsByRelationError,
+ GetNotificationsByIdRelationshipsByRelationErrors,
+ GetNotificationsByIdRelationshipsByRelationResponse,
+ GetNotificationsByIdRelationshipsByRelationResponses,
+ GetNotificationsByIdResponse,
+ GetNotificationsByIdResponses,
+ GetNotificationsCountData,
+ GetNotificationsCountError,
+ GetNotificationsCountErrors,
+ GetNotificationsCountResponse,
+ GetNotificationsCountResponses,
+ GetNotificationsData,
+ GetNotificationsError,
+ GetNotificationsErrors,
+ GetNotificationsResponse,
+ GetNotificationsResponses,
+ GetPreprocessorsByIdData,
+ GetPreprocessorsByIdError,
+ GetPreprocessorsByIdErrors,
+ GetPreprocessorsByIdResponse,
+ GetPreprocessorsByIdResponses,
+ GetPreprocessorsCountData,
+ GetPreprocessorsCountError,
+ GetPreprocessorsCountErrors,
+ GetPreprocessorsCountResponse,
+ GetPreprocessorsCountResponses,
+ GetPreprocessorsData,
+ GetPreprocessorsError,
+ GetPreprocessorsErrors,
+ GetPreprocessorsResponse,
+ GetPreprocessorsResponses,
+ GetPretasksByIdByRelationData,
+ GetPretasksByIdByRelationError,
+ GetPretasksByIdByRelationErrors,
+ GetPretasksByIdByRelationResponse,
+ GetPretasksByIdByRelationResponses,
+ GetPretasksByIdData,
+ GetPretasksByIdError,
+ GetPretasksByIdErrors,
+ GetPretasksByIdRelationshipsByRelationData,
+ GetPretasksByIdRelationshipsByRelationError,
+ GetPretasksByIdRelationshipsByRelationErrors,
+ GetPretasksByIdRelationshipsByRelationResponse,
+ GetPretasksByIdRelationshipsByRelationResponses,
+ GetPretasksByIdResponse,
+ GetPretasksByIdResponses,
+ GetPretasksCountData,
+ GetPretasksCountError,
+ GetPretasksCountErrors,
+ GetPretasksCountResponse,
+ GetPretasksCountResponses,
+ GetPretasksData,
+ GetPretasksError,
+ GetPretasksErrors,
+ GetPretasksResponse,
+ GetPretasksResponses,
+ GetSpeedsByIdByRelationData,
+ GetSpeedsByIdByRelationError,
+ GetSpeedsByIdByRelationErrors,
+ GetSpeedsByIdByRelationResponse,
+ GetSpeedsByIdByRelationResponses,
+ GetSpeedsByIdData,
+ GetSpeedsByIdError,
+ GetSpeedsByIdErrors,
+ GetSpeedsByIdRelationshipsByRelationData,
+ GetSpeedsByIdRelationshipsByRelationError,
+ GetSpeedsByIdRelationshipsByRelationErrors,
+ GetSpeedsByIdRelationshipsByRelationResponse,
+ GetSpeedsByIdRelationshipsByRelationResponses,
+ GetSpeedsByIdResponse,
+ GetSpeedsByIdResponses,
+ GetSpeedsCountData,
+ GetSpeedsCountError,
+ GetSpeedsCountErrors,
+ GetSpeedsCountResponse,
+ GetSpeedsCountResponses,
+ GetSpeedsData,
+ GetSpeedsError,
+ GetSpeedsErrors,
+ GetSpeedsResponse,
+ GetSpeedsResponses,
+ GetSupertasksByIdByRelationData,
+ GetSupertasksByIdByRelationError,
+ GetSupertasksByIdByRelationErrors,
+ GetSupertasksByIdByRelationResponse,
+ GetSupertasksByIdByRelationResponses,
+ GetSupertasksByIdData,
+ GetSupertasksByIdError,
+ GetSupertasksByIdErrors,
+ GetSupertasksByIdRelationshipsByRelationData,
+ GetSupertasksByIdRelationshipsByRelationError,
+ GetSupertasksByIdRelationshipsByRelationErrors,
+ GetSupertasksByIdRelationshipsByRelationResponse,
+ GetSupertasksByIdRelationshipsByRelationResponses,
+ GetSupertasksByIdResponse,
+ GetSupertasksByIdResponses,
+ GetSupertasksCountData,
+ GetSupertasksCountError,
+ GetSupertasksCountErrors,
+ GetSupertasksCountResponse,
+ GetSupertasksCountResponses,
+ GetSupertasksData,
+ GetSupertasksError,
+ GetSupertasksErrors,
+ GetSupertasksResponse,
+ GetSupertasksResponses,
+ GetTasksByIdByRelationData,
+ GetTasksByIdByRelationError,
+ GetTasksByIdByRelationErrors,
+ GetTasksByIdByRelationResponse,
+ GetTasksByIdByRelationResponses,
+ GetTasksByIdData,
+ GetTasksByIdError,
+ GetTasksByIdErrors,
+ GetTasksByIdRelationshipsByRelationData,
+ GetTasksByIdRelationshipsByRelationError,
+ GetTasksByIdRelationshipsByRelationErrors,
+ GetTasksByIdRelationshipsByRelationResponse,
+ GetTasksByIdRelationshipsByRelationResponses,
+ GetTasksByIdResponse,
+ GetTasksByIdResponses,
+ GetTasksCountData,
+ GetTasksCountError,
+ GetTasksCountErrors,
+ GetTasksCountResponse,
+ GetTasksCountResponses,
+ GetTasksData,
+ GetTasksError,
+ GetTasksErrors,
+ GetTasksResponse,
+ GetTasksResponses,
+ GetTaskwrappersByIdByRelationData,
+ GetTaskwrappersByIdByRelationError,
+ GetTaskwrappersByIdByRelationErrors,
+ GetTaskwrappersByIdByRelationResponse,
+ GetTaskwrappersByIdByRelationResponses,
+ GetTaskwrappersByIdData,
+ GetTaskwrappersByIdError,
+ GetTaskwrappersByIdErrors,
+ GetTaskwrappersByIdRelationshipsByRelationData,
+ GetTaskwrappersByIdRelationshipsByRelationError,
+ GetTaskwrappersByIdRelationshipsByRelationErrors,
+ GetTaskwrappersByIdRelationshipsByRelationResponse,
+ GetTaskwrappersByIdRelationshipsByRelationResponses,
+ GetTaskwrappersByIdResponse,
+ GetTaskwrappersByIdResponses,
+ GetTaskwrappersCountData,
+ GetTaskwrappersCountError,
+ GetTaskwrappersCountErrors,
+ GetTaskwrappersCountResponse,
+ GetTaskwrappersCountResponses,
+ GetTaskwrappersData,
+ GetTaskwrappersError,
+ GetTaskwrappersErrors,
+ GetTaskwrappersResponse,
+ GetTaskwrappersResponses,
+ GetUsersByIdByRelationData,
+ GetUsersByIdByRelationError,
+ GetUsersByIdByRelationErrors,
+ GetUsersByIdByRelationResponse,
+ GetUsersByIdByRelationResponses,
+ GetUsersByIdData,
+ GetUsersByIdError,
+ GetUsersByIdErrors,
+ GetUsersByIdRelationshipsByRelationData,
+ GetUsersByIdRelationshipsByRelationError,
+ GetUsersByIdRelationshipsByRelationErrors,
+ GetUsersByIdRelationshipsByRelationResponse,
+ GetUsersByIdRelationshipsByRelationResponses,
+ GetUsersByIdResponse,
+ GetUsersByIdResponses,
+ GetUsersCountData,
+ GetUsersCountError,
+ GetUsersCountErrors,
+ GetUsersCountResponse,
+ GetUsersCountResponses,
+ GetUsersData,
+ GetUsersError,
+ GetUsersErrors,
+ GetUsersResponse,
+ GetUsersResponses,
+ GetVouchersByIdData,
+ GetVouchersByIdError,
+ GetVouchersByIdErrors,
+ GetVouchersByIdResponse,
+ GetVouchersByIdResponses,
+ GetVouchersCountData,
+ GetVouchersCountError,
+ GetVouchersCountErrors,
+ GetVouchersCountResponse,
+ GetVouchersCountResponses,
+ GetVouchersData,
+ GetVouchersError,
+ GetVouchersErrors,
+ GetVouchersResponse,
+ GetVouchersResponses,
+ GlobalPermissionGroupCreate,
+ GlobalPermissionGroupListResponse,
+ GlobalPermissionGroupPatch,
+ GlobalPermissionGroupPostPatchResponse,
+ GlobalPermissionGroupRelationUserMembers,
+ GlobalPermissionGroupRelationUserMembersGetResponse,
+ GlobalPermissionGroupResponse,
+ HashlistCreate,
+ HashlistListResponse,
+ HashlistPatch,
+ HashlistPostPatchResponse,
+ HashlistRelationTasks,
+ HashlistRelationTasksGetResponse,
+ HashlistResponse,
+ HashListResponse,
+ HashlistSingleResponse,
+ HashRelationHashlist,
+ HashRelationHashlistGetResponse,
+ HashResponse,
+ HashTypeCreate,
+ HashTypeListResponse,
+ HashTypePatch,
+ HashTypePostPatchResponse,
+ HashTypeResponse,
+ HeadImportFileById09aF32Data,
+ HeadImportFileById09aF32Responses,
+ HealthCheckAgentListResponse,
+ HealthCheckAgentRelationHealthCheck,
+ HealthCheckAgentRelationHealthCheckGetResponse,
+ HealthCheckAgentResponse,
+ HealthCheckCreate,
+ HealthCheckListResponse,
+ HealthCheckPatch,
+ HealthCheckPostPatchResponse,
+ HealthCheckRelationHealthCheckAgents,
+ HealthCheckRelationHealthCheckAgentsGetResponse,
+ HealthCheckResponse,
+ ImportCrackedHashesHelperApi,
+ ImportCrackedHashesHelperApiResponse,
+ ImportFileHelperApi,
+ LogEntryCreate,
+ LogEntryListResponse,
+ LogEntryPatch,
+ LogEntryPostPatchResponse,
+ LogEntryResponse,
+ MaskSupertaskBuilderHelperApi,
+ NotFoundResponse,
+ NotificationSettingCreate,
+ NotificationSettingListResponse,
+ NotificationSettingPatch,
+ NotificationSettingPostPatchResponse,
+ NotificationSettingRelationUser,
+ NotificationSettingRelationUserGetResponse,
+ NotificationSettingResponse,
+ PatchAccessgroupsByIdData,
+ PatchAccessgroupsByIdError,
+ PatchAccessgroupsByIdErrors,
+ PatchAccessgroupsByIdRelationshipsByRelationData,
+ PatchAccessgroupsByIdRelationshipsByRelationError,
+ PatchAccessgroupsByIdRelationshipsByRelationErrors,
+ PatchAccessgroupsByIdRelationshipsByRelationResponse,
+ PatchAccessgroupsByIdRelationshipsByRelationResponses,
+ PatchAccessgroupsByIdResponse,
+ PatchAccessgroupsByIdResponses,
+ PatchAccessgroupsData,
+ PatchAccessgroupsError,
+ PatchAccessgroupsErrors,
+ PatchAccessgroupsResponses,
+ PatchAgentassignmentsByIdData,
+ PatchAgentassignmentsByIdError,
+ PatchAgentassignmentsByIdErrors,
+ PatchAgentassignmentsByIdRelationshipsByRelationData,
+ PatchAgentassignmentsByIdRelationshipsByRelationError,
+ PatchAgentassignmentsByIdRelationshipsByRelationErrors,
+ PatchAgentassignmentsByIdRelationshipsByRelationResponse,
+ PatchAgentassignmentsByIdRelationshipsByRelationResponses,
+ PatchAgentassignmentsByIdResponse,
+ PatchAgentassignmentsByIdResponses,
+ PatchAgentassignmentsData,
+ PatchAgentassignmentsError,
+ PatchAgentassignmentsErrors,
+ PatchAgentassignmentsResponses,
+ PatchAgentbinariesByIdData,
+ PatchAgentbinariesByIdError,
+ PatchAgentbinariesByIdErrors,
+ PatchAgentbinariesByIdResponse,
+ PatchAgentbinariesByIdResponses,
+ PatchAgentbinariesData,
+ PatchAgentbinariesError,
+ PatchAgentbinariesErrors,
+ PatchAgentbinariesResponses,
+ PatchAgenterrorsByIdRelationshipsByRelationData,
+ PatchAgenterrorsByIdRelationshipsByRelationError,
+ PatchAgenterrorsByIdRelationshipsByRelationErrors,
+ PatchAgenterrorsByIdRelationshipsByRelationResponse,
+ PatchAgenterrorsByIdRelationshipsByRelationResponses,
+ PatchAgentsByIdData,
+ PatchAgentsByIdError,
+ PatchAgentsByIdErrors,
+ PatchAgentsByIdRelationshipsByRelationData,
+ PatchAgentsByIdRelationshipsByRelationError,
+ PatchAgentsByIdRelationshipsByRelationErrors,
+ PatchAgentsByIdRelationshipsByRelationResponse,
+ PatchAgentsByIdRelationshipsByRelationResponses,
+ PatchAgentsByIdResponse,
+ PatchAgentsByIdResponses,
+ PatchAgentsData,
+ PatchAgentsError,
+ PatchAgentsErrors,
+ PatchAgentsResponses,
+ PatchApiTokensByIdData,
+ PatchApiTokensByIdError,
+ PatchApiTokensByIdErrors,
+ PatchApiTokensByIdRelationshipsByRelationData,
+ PatchApiTokensByIdRelationshipsByRelationError,
+ PatchApiTokensByIdRelationshipsByRelationErrors,
+ PatchApiTokensByIdRelationshipsByRelationResponse,
+ PatchApiTokensByIdRelationshipsByRelationResponses,
+ PatchApiTokensByIdResponse,
+ PatchApiTokensByIdResponses,
+ PatchApiTokensData,
+ PatchApiTokensError,
+ PatchApiTokensErrors,
+ PatchApiTokensResponses,
+ PatchChunksByIdRelationshipsByRelationData,
+ PatchChunksByIdRelationshipsByRelationError,
+ PatchChunksByIdRelationshipsByRelationErrors,
+ PatchChunksByIdRelationshipsByRelationResponse,
+ PatchChunksByIdRelationshipsByRelationResponses,
+ PatchConfigsByIdData,
+ PatchConfigsByIdError,
+ PatchConfigsByIdErrors,
+ PatchConfigsByIdRelationshipsByRelationData,
+ PatchConfigsByIdRelationshipsByRelationError,
+ PatchConfigsByIdRelationshipsByRelationErrors,
+ PatchConfigsByIdRelationshipsByRelationResponse,
+ PatchConfigsByIdRelationshipsByRelationResponses,
+ PatchConfigsByIdResponse,
+ PatchConfigsByIdResponses,
+ PatchConfigsData,
+ PatchConfigsError,
+ PatchConfigsErrors,
+ PatchConfigsResponses,
+ PatchCrackersByIdData,
+ PatchCrackersByIdError,
+ PatchCrackersByIdErrors,
+ PatchCrackersByIdRelationshipsByRelationData,
+ PatchCrackersByIdRelationshipsByRelationError,
+ PatchCrackersByIdRelationshipsByRelationErrors,
+ PatchCrackersByIdRelationshipsByRelationResponse,
+ PatchCrackersByIdRelationshipsByRelationResponses,
+ PatchCrackersByIdResponse,
+ PatchCrackersByIdResponses,
+ PatchCrackersData,
+ PatchCrackersError,
+ PatchCrackersErrors,
+ PatchCrackersResponses,
+ PatchCrackertypesByIdData,
+ PatchCrackertypesByIdError,
+ PatchCrackertypesByIdErrors,
+ PatchCrackertypesByIdRelationshipsByRelationData,
+ PatchCrackertypesByIdRelationshipsByRelationError,
+ PatchCrackertypesByIdRelationshipsByRelationErrors,
+ PatchCrackertypesByIdRelationshipsByRelationResponse,
+ PatchCrackertypesByIdRelationshipsByRelationResponses,
+ PatchCrackertypesByIdResponse,
+ PatchCrackertypesByIdResponses,
+ PatchCrackertypesData,
+ PatchCrackertypesError,
+ PatchCrackertypesErrors,
+ PatchCrackertypesResponses,
+ PatchCurrentUserData,
+ PatchCurrentUserResponses,
+ PatchFilesByIdData,
+ PatchFilesByIdError,
+ PatchFilesByIdErrors,
+ PatchFilesByIdRelationshipsByRelationData,
+ PatchFilesByIdRelationshipsByRelationError,
+ PatchFilesByIdRelationshipsByRelationErrors,
+ PatchFilesByIdRelationshipsByRelationResponse,
+ PatchFilesByIdRelationshipsByRelationResponses,
+ PatchFilesByIdResponse,
+ PatchFilesByIdResponses,
+ PatchFilesData,
+ PatchFilesError,
+ PatchFilesErrors,
+ PatchFilesResponses,
+ PatchGlobalpermissiongroupsByIdData,
+ PatchGlobalpermissiongroupsByIdError,
+ PatchGlobalpermissiongroupsByIdErrors,
+ PatchGlobalpermissiongroupsByIdRelationshipsByRelationData,
+ PatchGlobalpermissiongroupsByIdRelationshipsByRelationError,
+ PatchGlobalpermissiongroupsByIdRelationshipsByRelationErrors,
+ PatchGlobalpermissiongroupsByIdRelationshipsByRelationResponse,
+ PatchGlobalpermissiongroupsByIdRelationshipsByRelationResponses,
+ PatchGlobalpermissiongroupsByIdResponse,
+ PatchGlobalpermissiongroupsByIdResponses,
+ PatchGlobalpermissiongroupsData,
+ PatchGlobalpermissiongroupsError,
+ PatchGlobalpermissiongroupsErrors,
+ PatchGlobalpermissiongroupsResponses,
+ PatchHashesByIdRelationshipsByRelationData,
+ PatchHashesByIdRelationshipsByRelationError,
+ PatchHashesByIdRelationshipsByRelationErrors,
+ PatchHashesByIdRelationshipsByRelationResponse,
+ PatchHashesByIdRelationshipsByRelationResponses,
+ PatchHashlistsByIdData,
+ PatchHashlistsByIdError,
+ PatchHashlistsByIdErrors,
+ PatchHashlistsByIdRelationshipsByRelationData,
+ PatchHashlistsByIdRelationshipsByRelationError,
+ PatchHashlistsByIdRelationshipsByRelationErrors,
+ PatchHashlistsByIdRelationshipsByRelationResponse,
+ PatchHashlistsByIdRelationshipsByRelationResponses,
+ PatchHashlistsByIdResponse,
+ PatchHashlistsByIdResponses,
+ PatchHashlistsData,
+ PatchHashlistsError,
+ PatchHashlistsErrors,
+ PatchHashlistsResponses,
+ PatchHashtypesByIdData,
+ PatchHashtypesByIdError,
+ PatchHashtypesByIdErrors,
+ PatchHashtypesByIdResponse,
+ PatchHashtypesByIdResponses,
+ PatchHashtypesData,
+ PatchHashtypesError,
+ PatchHashtypesErrors,
+ PatchHashtypesResponses,
+ PatchHealthcheckagentsByIdRelationshipsByRelationData,
+ PatchHealthcheckagentsByIdRelationshipsByRelationError,
+ PatchHealthcheckagentsByIdRelationshipsByRelationErrors,
+ PatchHealthcheckagentsByIdRelationshipsByRelationResponse,
+ PatchHealthcheckagentsByIdRelationshipsByRelationResponses,
+ PatchHealthchecksByIdData,
+ PatchHealthchecksByIdError,
+ PatchHealthchecksByIdErrors,
+ PatchHealthchecksByIdRelationshipsByRelationData,
+ PatchHealthchecksByIdRelationshipsByRelationError,
+ PatchHealthchecksByIdRelationshipsByRelationErrors,
+ PatchHealthchecksByIdRelationshipsByRelationResponse,
+ PatchHealthchecksByIdRelationshipsByRelationResponses,
+ PatchHealthchecksByIdResponse,
+ PatchHealthchecksByIdResponses,
+ PatchHealthchecksData,
+ PatchHealthchecksError,
+ PatchHealthchecksErrors,
+ PatchHealthchecksResponses,
+ PatchImportFileById09aF32Data,
+ PatchImportFileById09aF32Response,
+ PatchImportFileById09aF32Responses,
+ PatchLogentriesByIdData,
+ PatchLogentriesByIdError,
+ PatchLogentriesByIdErrors,
+ PatchLogentriesByIdResponse,
+ PatchLogentriesByIdResponses,
+ PatchLogentriesData,
+ PatchLogentriesError,
+ PatchLogentriesErrors,
+ PatchLogentriesResponses,
+ PatchNotificationsByIdData,
+ PatchNotificationsByIdError,
+ PatchNotificationsByIdErrors,
+ PatchNotificationsByIdRelationshipsByRelationData,
+ PatchNotificationsByIdRelationshipsByRelationError,
+ PatchNotificationsByIdRelationshipsByRelationErrors,
+ PatchNotificationsByIdRelationshipsByRelationResponse,
+ PatchNotificationsByIdRelationshipsByRelationResponses,
+ PatchNotificationsByIdResponse,
+ PatchNotificationsByIdResponses,
+ PatchNotificationsData,
+ PatchNotificationsError,
+ PatchNotificationsErrors,
+ PatchNotificationsResponses,
+ PatchPreprocessorsByIdData,
+ PatchPreprocessorsByIdError,
+ PatchPreprocessorsByIdErrors,
+ PatchPreprocessorsByIdResponse,
+ PatchPreprocessorsByIdResponses,
+ PatchPreprocessorsData,
+ PatchPreprocessorsError,
+ PatchPreprocessorsErrors,
+ PatchPreprocessorsResponses,
+ PatchPretasksByIdData,
+ PatchPretasksByIdError,
+ PatchPretasksByIdErrors,
+ PatchPretasksByIdRelationshipsByRelationData,
+ PatchPretasksByIdRelationshipsByRelationError,
+ PatchPretasksByIdRelationshipsByRelationErrors,
+ PatchPretasksByIdRelationshipsByRelationResponse,
+ PatchPretasksByIdRelationshipsByRelationResponses,
+ PatchPretasksByIdResponse,
+ PatchPretasksByIdResponses,
+ PatchPretasksData,
+ PatchPretasksError,
+ PatchPretasksErrors,
+ PatchPretasksResponses,
+ PatchSpeedsByIdRelationshipsByRelationData,
+ PatchSpeedsByIdRelationshipsByRelationError,
+ PatchSpeedsByIdRelationshipsByRelationErrors,
+ PatchSpeedsByIdRelationshipsByRelationResponse,
+ PatchSpeedsByIdRelationshipsByRelationResponses,
+ PatchSupertasksByIdData,
+ PatchSupertasksByIdError,
+ PatchSupertasksByIdErrors,
+ PatchSupertasksByIdRelationshipsByRelationData,
+ PatchSupertasksByIdRelationshipsByRelationError,
+ PatchSupertasksByIdRelationshipsByRelationErrors,
+ PatchSupertasksByIdRelationshipsByRelationResponse,
+ PatchSupertasksByIdRelationshipsByRelationResponses,
+ PatchSupertasksByIdResponse,
+ PatchSupertasksByIdResponses,
+ PatchSupertasksData,
+ PatchSupertasksError,
+ PatchSupertasksErrors,
+ PatchSupertasksResponses,
+ PatchTasksByIdData,
+ PatchTasksByIdError,
+ PatchTasksByIdErrors,
+ PatchTasksByIdRelationshipsByRelationData,
+ PatchTasksByIdRelationshipsByRelationError,
+ PatchTasksByIdRelationshipsByRelationErrors,
+ PatchTasksByIdRelationshipsByRelationResponse,
+ PatchTasksByIdRelationshipsByRelationResponses,
+ PatchTasksByIdResponse,
+ PatchTasksByIdResponses,
+ PatchTasksData,
+ PatchTasksError,
+ PatchTasksErrors,
+ PatchTasksResponses,
+ PatchTaskwrappersByIdData,
+ PatchTaskwrappersByIdError,
+ PatchTaskwrappersByIdErrors,
+ PatchTaskwrappersByIdRelationshipsByRelationData,
+ PatchTaskwrappersByIdRelationshipsByRelationError,
+ PatchTaskwrappersByIdRelationshipsByRelationErrors,
+ PatchTaskwrappersByIdRelationshipsByRelationResponse,
+ PatchTaskwrappersByIdRelationshipsByRelationResponses,
+ PatchTaskwrappersByIdResponse,
+ PatchTaskwrappersByIdResponses,
+ PatchTaskwrappersData,
+ PatchTaskwrappersError,
+ PatchTaskwrappersErrors,
+ PatchTaskwrappersResponses,
+ PatchUsersByIdData,
+ PatchUsersByIdError,
+ PatchUsersByIdErrors,
+ PatchUsersByIdRelationshipsByRelationData,
+ PatchUsersByIdRelationshipsByRelationError,
+ PatchUsersByIdRelationshipsByRelationErrors,
+ PatchUsersByIdRelationshipsByRelationResponse,
+ PatchUsersByIdRelationshipsByRelationResponses,
+ PatchUsersByIdResponse,
+ PatchUsersByIdResponses,
+ PatchUsersData,
+ PatchUsersError,
+ PatchUsersErrors,
+ PatchUsersResponses,
+ PatchVouchersByIdData,
+ PatchVouchersByIdError,
+ PatchVouchersByIdErrors,
+ PatchVouchersByIdResponse,
+ PatchVouchersByIdResponses,
+ PatchVouchersData,
+ PatchVouchersError,
+ PatchVouchersErrors,
+ PatchVouchersResponses,
+ PostAbortChunkData,
+ PostAbortChunkResponse,
+ PostAbortChunkResponses,
+ PostAccessgroupsByIdRelationshipsByRelationData,
+ PostAccessgroupsByIdRelationshipsByRelationError,
+ PostAccessgroupsByIdRelationshipsByRelationErrors,
+ PostAccessgroupsByIdRelationshipsByRelationResponse,
+ PostAccessgroupsByIdRelationshipsByRelationResponses,
+ PostAccessgroupsData,
+ PostAccessgroupsError,
+ PostAccessgroupsErrors,
+ PostAccessgroupsResponse,
+ PostAccessgroupsResponses,
+ PostAgentassignmentsData,
+ PostAgentassignmentsError,
+ PostAgentassignmentsErrors,
+ PostAgentassignmentsResponse,
+ PostAgentassignmentsResponses,
+ PostAgentbinariesData,
+ PostAgentbinariesError,
+ PostAgentbinariesErrors,
+ PostAgentbinariesResponse,
+ PostAgentbinariesResponses,
+ PostAgentsByIdRelationshipsByRelationData,
+ PostAgentsByIdRelationshipsByRelationError,
+ PostAgentsByIdRelationshipsByRelationErrors,
+ PostAgentsByIdRelationshipsByRelationResponse,
+ PostAgentsByIdRelationshipsByRelationResponses,
+ PostApiTokensData,
+ PostApiTokensError,
+ PostApiTokensErrors,
+ PostApiTokensResponse,
+ PostApiTokensResponses,
+ PostAssignAgentData,
+ PostAssignAgentResponse,
+ PostAssignAgentResponses,
+ PostBulkSupertaskBuilderData,
+ PostBulkSupertaskBuilderResponse,
+ PostBulkSupertaskBuilderResponses,
+ PostChangeOwnPasswordData,
+ PostChangeOwnPasswordResponse,
+ PostChangeOwnPasswordResponses,
+ PostCrackersByIdRelationshipsByRelationData,
+ PostCrackersByIdRelationshipsByRelationError,
+ PostCrackersByIdRelationshipsByRelationErrors,
+ PostCrackersByIdRelationshipsByRelationResponse,
+ PostCrackersByIdRelationshipsByRelationResponses,
+ PostCrackersData,
+ PostCrackersError,
+ PostCrackersErrors,
+ PostCrackersResponse,
+ PostCrackersResponses,
+ PostCrackertypesByIdRelationshipsByRelationData,
+ PostCrackertypesByIdRelationshipsByRelationError,
+ PostCrackertypesByIdRelationshipsByRelationErrors,
+ PostCrackertypesByIdRelationshipsByRelationResponse,
+ PostCrackertypesByIdRelationshipsByRelationResponses,
+ PostCrackertypesData,
+ PostCrackertypesError,
+ PostCrackertypesErrors,
+ PostCrackertypesResponse,
+ PostCrackertypesResponses,
+ PostCreateSuperHashlistData,
+ PostCreateSuperHashlistResponse,
+ PostCreateSuperHashlistResponses,
+ PostCreateSupertaskData,
+ PostCreateSupertaskResponse,
+ PostCreateSupertaskResponses,
+ PostExportCrackedHashesData,
+ PostExportCrackedHashesResponse,
+ PostExportCrackedHashesResponses,
+ PostExportLeftHashesData,
+ PostExportLeftHashesResponse,
+ PostExportLeftHashesResponses,
+ PostExportWordlistData,
+ PostExportWordlistResponse,
+ PostExportWordlistResponses,
+ PostFilesData,
+ PostFilesError,
+ PostFilesErrors,
+ PostFilesResponse,
+ PostFilesResponses,
+ PostGlobalpermissiongroupsByIdRelationshipsByRelationData,
+ PostGlobalpermissiongroupsByIdRelationshipsByRelationError,
+ PostGlobalpermissiongroupsByIdRelationshipsByRelationErrors,
+ PostGlobalpermissiongroupsByIdRelationshipsByRelationResponse,
+ PostGlobalpermissiongroupsByIdRelationshipsByRelationResponses,
+ PostGlobalpermissiongroupsData,
+ PostGlobalpermissiongroupsError,
+ PostGlobalpermissiongroupsErrors,
+ PostGlobalpermissiongroupsResponse,
+ PostGlobalpermissiongroupsResponses,
+ PostHashlistsByIdRelationshipsByRelationData,
+ PostHashlistsByIdRelationshipsByRelationError,
+ PostHashlistsByIdRelationshipsByRelationErrors,
+ PostHashlistsByIdRelationshipsByRelationResponse,
+ PostHashlistsByIdRelationshipsByRelationResponses,
+ PostHashlistsData,
+ PostHashlistsError,
+ PostHashlistsErrors,
+ PostHashlistsResponse,
+ PostHashlistsResponses,
+ PostHashtypesData,
+ PostHashtypesError,
+ PostHashtypesErrors,
+ PostHashtypesResponse,
+ PostHashtypesResponses,
+ PostHealthchecksByIdRelationshipsByRelationData,
+ PostHealthchecksByIdRelationshipsByRelationError,
+ PostHealthchecksByIdRelationshipsByRelationErrors,
+ PostHealthchecksByIdRelationshipsByRelationResponse,
+ PostHealthchecksByIdRelationshipsByRelationResponses,
+ PostHealthchecksData,
+ PostHealthchecksError,
+ PostHealthchecksErrors,
+ PostHealthchecksResponse,
+ PostHealthchecksResponses,
+ PostImportCrackedHashesData,
+ PostImportCrackedHashesResponse,
+ PostImportCrackedHashesResponses,
+ PostImportFileData,
+ PostImportFileResponse,
+ PostImportFileResponses,
+ PostLogentriesData,
+ PostLogentriesError,
+ PostLogentriesErrors,
+ PostLogentriesResponse,
+ PostLogentriesResponses,
+ PostMaskSupertaskBuilderData,
+ PostMaskSupertaskBuilderResponse,
+ PostMaskSupertaskBuilderResponses,
+ PostNotificationsData,
+ PostNotificationsError,
+ PostNotificationsErrors,
+ PostNotificationsResponse,
+ PostNotificationsResponses,
+ PostPreprocessorsData,
+ PostPreprocessorsError,
+ PostPreprocessorsErrors,
+ PostPreprocessorsResponse,
+ PostPreprocessorsResponses,
+ PostPretasksByIdRelationshipsByRelationData,
+ PostPretasksByIdRelationshipsByRelationError,
+ PostPretasksByIdRelationshipsByRelationErrors,
+ PostPretasksByIdRelationshipsByRelationResponse,
+ PostPretasksByIdRelationshipsByRelationResponses,
+ PostPretasksData,
+ PostPretasksError,
+ PostPretasksErrors,
+ PostPretasksResponse,
+ PostPretasksResponses,
+ PostPurgeTaskData,
+ PostPurgeTaskResponse,
+ PostPurgeTaskResponses,
+ PostRebuildChunkCacheData,
+ PostRebuildChunkCacheResponse,
+ PostRebuildChunkCacheResponses,
+ PostRecountFileLinesData,
+ PostRecountFileLinesResponse,
+ PostRecountFileLinesResponses,
+ PostRescanGlobalFilesData,
+ PostRescanGlobalFilesResponse,
+ PostRescanGlobalFilesResponses,
+ PostResetChunkData,
+ PostResetChunkResponse,
+ PostResetChunkResponses,
+ PostResetUserPasswordData,
+ PostResetUserPasswordResponse,
+ PostResetUserPasswordResponses,
+ PostSearchHashesData,
+ PostSearchHashesResponse,
+ PostSearchHashesResponses,
+ PostSetUserPasswordData,
+ PostSetUserPasswordResponse,
+ PostSetUserPasswordResponses,
+ PostSupertasksByIdRelationshipsByRelationData,
+ PostSupertasksByIdRelationshipsByRelationError,
+ PostSupertasksByIdRelationshipsByRelationErrors,
+ PostSupertasksByIdRelationshipsByRelationResponse,
+ PostSupertasksByIdRelationshipsByRelationResponses,
+ PostSupertasksData,
+ PostSupertasksError,
+ PostSupertasksErrors,
+ PostSupertasksResponse,
+ PostSupertasksResponses,
+ PostTasksByIdRelationshipsByRelationData,
+ PostTasksByIdRelationshipsByRelationError,
+ PostTasksByIdRelationshipsByRelationErrors,
+ PostTasksByIdRelationshipsByRelationResponse,
+ PostTasksByIdRelationshipsByRelationResponses,
+ PostTasksData,
+ PostTasksError,
+ PostTasksErrors,
+ PostTasksResponse,
+ PostTasksResponses,
+ PostTaskwrappersByIdRelationshipsByRelationData,
+ PostTaskwrappersByIdRelationshipsByRelationError,
+ PostTaskwrappersByIdRelationshipsByRelationErrors,
+ PostTaskwrappersByIdRelationshipsByRelationResponse,
+ PostTaskwrappersByIdRelationshipsByRelationResponses,
+ PostTokenData,
+ PostTokenError,
+ PostTokenErrors,
+ PostTokenResponse,
+ PostTokenResponses,
+ PostUnassignAgentData,
+ PostUnassignAgentResponse,
+ PostUnassignAgentResponses,
+ PostUsersByIdRelationshipsByRelationData,
+ PostUsersByIdRelationshipsByRelationError,
+ PostUsersByIdRelationshipsByRelationErrors,
+ PostUsersByIdRelationshipsByRelationResponse,
+ PostUsersByIdRelationshipsByRelationResponses,
+ PostUsersData,
+ PostUsersError,
+ PostUsersErrors,
+ PostUsersResponse,
+ PostUsersResponses,
+ PostVouchersData,
+ PostVouchersError,
+ PostVouchersErrors,
+ PostVouchersResponse,
+ PostVouchersResponses,
+ PreprocessorCreate,
+ PreprocessorListResponse,
+ PreprocessorPatch,
+ PreprocessorPostPatchResponse,
+ PreprocessorResponse,
+ PreTaskCreate,
+ PreTaskListResponse,
+ PreTaskPatch,
+ PreTaskPostPatchResponse,
+ PreTaskRelationPretaskFiles,
+ PreTaskRelationPretaskFilesGetResponse,
+ PreTaskResponse,
+ PurgeTaskHelperApi,
+ PurgeTaskHelperApiResponse,
+ RebuildChunkCacheHelperApi,
+ RebuildChunkCacheHelperApiResponse,
+ RecountFileLinesHelperApi,
+ RescanGlobalFilesHelperApi,
+ RescanGlobalFilesHelperApiResponse,
+ ResetChunkHelperApi,
+ ResetChunkHelperApiResponse,
+ ResetUserPasswordHelperApi,
+ ResetUserPasswordHelperApiResponse,
+ SearchHashesHelperApi,
+ SearchHashesHelperApiResponse,
+ SetUserPasswordHelperApi,
+ SetUserPasswordHelperApiResponse,
+ SpeedListResponse,
+ SpeedRelationTask,
+ SpeedRelationTaskGetResponse,
+ SpeedResponse,
+ SupertaskCreate,
+ SupertaskListResponse,
+ SupertaskPatch,
+ SupertaskPostPatchResponse,
+ SupertaskRelationPretasks,
+ SupertaskRelationPretasksGetResponse,
+ SupertaskResponse,
+ SupertaskSingleResponse,
+ TaskCreate,
+ TaskListResponse,
+ TaskPatch,
+ TaskPostPatchResponse,
+ TaskRelationSpeeds,
+ TaskRelationSpeedsGetResponse,
+ TaskResponse,
+ TaskWrapperListResponse,
+ TaskWrapperPatch,
+ TaskWrapperPostPatchResponse,
+ TaskWrapperRelationTasks,
+ TaskWrapperRelationTasksGetResponse,
+ TaskWrapperResponse,
+ TaskWrapperSingleResponse,
+ Token,
+ TokenRequest,
+ UnassignAgentHelperApi,
+ UnassignAgentHelperApiResponse,
+ UserCreate,
+ UserListResponse,
+ UserPatch,
+ UserPostPatchResponse,
+ UserRelationAccessGroups,
+ UserRelationAccessGroupsGetResponse,
+ UserResponse,
+ VoucherCreate,
+ VoucherListResponse,
+ VoucherPatch,
+ VoucherPostPatchResponse,
+ VoucherResponse
+} from './types.gen';
diff --git a/src/generated/api/types.gen.ts b/src/generated/api/types.gen.ts
new file mode 100644
index 000000000..85798b28b
--- /dev/null
+++ b/src/generated/api/types.gen.ts
@@ -0,0 +1,18084 @@
+// This file is auto-generated by @hey-api/openapi-ts
+
+export type ClientOptions = {
+ baseUrl: `${string}://${string}` | (string & {});
+};
+
+export type ErrorResponse = {
+ title?: string;
+ type?: string;
+ status: number;
+};
+
+export type NotFoundResponse = {
+ message: string;
+ exception?: {
+ type?: string;
+ code?: number;
+ message?: string;
+ file?: string;
+ line?: number;
+ };
+};
+
+export type AccessGroupCreate = {
+ data: {
+ type: 'accessGroup';
+ attributes: {
+ groupName: string;
+ };
+ };
+};
+
+export type AccessGroupPatch = {
+ data: {
+ type: 'accessGroup';
+ attributes: {
+ groupName?: string;
+ };
+ };
+};
+
+export type AccessGroupResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ links?: {
+ self: string;
+ first?: string;
+ last?: string;
+ next?: string | null;
+ previous?: string | null;
+ };
+ data: {
+ id: number;
+ type: 'accessGroup';
+ attributes: {
+ groupName: string;
+ };
+ };
+ relationships?: {
+ agentMembers: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'agent';
+ id: number;
+ }>;
+ };
+ userMembers: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'user';
+ id: number;
+ }>;
+ };
+ };
+ included?: Array<
+ | {
+ id: number;
+ type: 'user';
+ attributes: {
+ name: string;
+ email: string;
+ isValid: boolean;
+ isComputedPassword: boolean;
+ lastLoginDate: number;
+ registeredSince: number;
+ sessionLifetime: number;
+ globalPermissionGroupId: number;
+ yubikey: string;
+ otp1: string;
+ otp2: string;
+ otp3: string;
+ otp4: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'agent';
+ attributes: {
+ agentName: string;
+ uid: string;
+ os: 0 | 1 | 2;
+ devices: string;
+ cmdPars: string;
+ ignoreErrors: 0 | 1 | 2;
+ isActive: boolean;
+ isTrusted: boolean;
+ token: string;
+ lastAct: string;
+ lastTime: number;
+ lastIp: string;
+ userId: number | null;
+ cpuOnly: boolean;
+ clientSignature: string;
+ };
+ }
+ >;
+};
+
+export type AccessGroupPostPatchResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ data: {
+ id: number;
+ type: 'accessGroup';
+ attributes: {
+ groupName: string;
+ };
+ };
+};
+
+export type AccessGroupListResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ links?: {
+ self: string;
+ first?: string;
+ last?: string;
+ next?: string | null;
+ previous?: string | null;
+ };
+ data: Array<{
+ id: number;
+ type: 'accessGroup';
+ attributes: {
+ groupName: string;
+ };
+ }>;
+ relationships?: {
+ agentMembers: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'agent';
+ id: number;
+ }>;
+ };
+ userMembers: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'user';
+ id: number;
+ }>;
+ };
+ };
+ included?: Array<
+ | {
+ id: number;
+ type: 'user';
+ attributes: {
+ name: string;
+ email: string;
+ isValid: boolean;
+ isComputedPassword: boolean;
+ lastLoginDate: number;
+ registeredSince: number;
+ sessionLifetime: number;
+ globalPermissionGroupId: number;
+ yubikey: string;
+ otp1: string;
+ otp2: string;
+ otp3: string;
+ otp4: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'agent';
+ attributes: {
+ agentName: string;
+ uid: string;
+ os: 0 | 1 | 2;
+ devices: string;
+ cmdPars: string;
+ ignoreErrors: 0 | 1 | 2;
+ isActive: boolean;
+ isTrusted: boolean;
+ token: string;
+ lastAct: string;
+ lastTime: number;
+ lastIp: string;
+ userId: number | null;
+ cpuOnly: boolean;
+ clientSignature: string;
+ };
+ }
+ >;
+};
+
+export type AccessGroupRelationAgentMembers = {
+ data: Array<{
+ type: 'agentMembers';
+ id: number;
+ }>;
+};
+
+export type AccessGroupRelationAgentMembersGetResponse = {
+ data: Array<{
+ type: 'agentMembers';
+ id: number;
+ }>;
+};
+
+export type AgentPatch = {
+ data: {
+ type: 'agent';
+ attributes: {
+ agentName?: string;
+ cmdPars?: string;
+ cpuOnly?: boolean;
+ ignoreErrors?: 0 | 1 | 2;
+ isActive?: boolean;
+ isTrusted?: boolean;
+ os?: 0 | 1 | 2;
+ uid?: string;
+ userId?: number | null;
+ };
+ };
+};
+
+export type AgentResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ links?: {
+ self: string;
+ first?: string;
+ last?: string;
+ next?: string | null;
+ previous?: string | null;
+ };
+ data: {
+ id: number;
+ type: 'agent';
+ attributes: {
+ agentName: string;
+ uid: string;
+ os: 0 | 1 | 2;
+ devices: string;
+ cmdPars: string;
+ ignoreErrors: 0 | 1 | 2;
+ isActive: boolean;
+ isTrusted: boolean;
+ token: string;
+ lastAct: string;
+ lastTime: number;
+ lastIp: string;
+ userId: number | null;
+ cpuOnly: boolean;
+ clientSignature: string;
+ };
+ };
+ relationships?: {
+ accessGroups: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'accessGroup';
+ id: number;
+ }>;
+ };
+ agentErrors: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'agentError';
+ id: number;
+ }>;
+ };
+ agentStats: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'agentStat';
+ id: number;
+ }>;
+ };
+ assignments: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'agentAssignment';
+ id: number;
+ }>;
+ };
+ chunks: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'chunk';
+ id: number;
+ }>;
+ };
+ tasks: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'task';
+ id: number;
+ }>;
+ };
+ user: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: {
+ type: 'user';
+ id: number;
+ } | null;
+ };
+ };
+ included?: Array<
+ | {
+ id: number;
+ type: 'user';
+ attributes: {
+ name: string;
+ email: string;
+ isValid: boolean;
+ isComputedPassword: boolean;
+ lastLoginDate: number;
+ registeredSince: number;
+ sessionLifetime: number;
+ globalPermissionGroupId: number;
+ yubikey: string;
+ otp1: string;
+ otp2: string;
+ otp3: string;
+ otp4: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'accessGroup';
+ attributes: {
+ groupName: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'agentStat';
+ attributes: {
+ agentId: number;
+ statType: 1 | 2 | 3;
+ time: number;
+ value: Array;
+ };
+ }
+ | {
+ id: number;
+ type: 'agentError';
+ attributes: {
+ agentId: number;
+ taskId: number;
+ chunkId: number;
+ time: number;
+ error: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'chunk';
+ attributes: {
+ taskId: number;
+ skip: number;
+ length: number;
+ agentId: number;
+ dispatchTime: number;
+ solveTime: number;
+ checkpoint: number;
+ progress: number;
+ state: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
+ cracked: number;
+ speed: number;
+ };
+ }
+ | {
+ id: number;
+ type: 'task';
+ attributes: {
+ taskName: string;
+ attackCmd: string;
+ chunkTime: number;
+ statusTimer: number;
+ keyspace: number;
+ keyspaceProgress: number;
+ priority: number;
+ maxAgents: number;
+ color: string | null;
+ isSmall: boolean;
+ isCpuTask: boolean;
+ useNewBench: boolean;
+ skipKeyspace: number;
+ crackerBinaryId: number;
+ crackerBinaryTypeId: number;
+ taskWrapperId: number;
+ isArchived: boolean;
+ notes: string;
+ staticChunks: number;
+ chunkSize: number;
+ forcePipe: boolean;
+ preprocessorId: number;
+ preprocessorCommand: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'agentAssignment';
+ attributes: {
+ taskId: number;
+ agentId: number;
+ benchmark: string;
+ };
+ }
+ >;
+};
+
+export type AgentPostPatchResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ data: {
+ id: number;
+ type: 'agent';
+ attributes: {
+ agentName: string;
+ uid: string;
+ os: 0 | 1 | 2;
+ devices: string;
+ cmdPars: string;
+ ignoreErrors: 0 | 1 | 2;
+ isActive: boolean;
+ isTrusted: boolean;
+ token: string;
+ lastAct: string;
+ lastTime: number;
+ lastIp: string;
+ userId: number | null;
+ cpuOnly: boolean;
+ clientSignature: string;
+ };
+ };
+};
+
+export type AgentListResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ links?: {
+ self: string;
+ first?: string;
+ last?: string;
+ next?: string | null;
+ previous?: string | null;
+ };
+ data: Array<{
+ id: number;
+ type: 'agent';
+ attributes: {
+ agentName: string;
+ uid: string;
+ os: 0 | 1 | 2;
+ devices: string;
+ cmdPars: string;
+ ignoreErrors: 0 | 1 | 2;
+ isActive: boolean;
+ isTrusted: boolean;
+ token: string;
+ lastAct: string;
+ lastTime: number;
+ lastIp: string;
+ userId: number | null;
+ cpuOnly: boolean;
+ clientSignature: string;
+ };
+ }>;
+ relationships?: {
+ accessGroups: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'accessGroup';
+ id: number;
+ }>;
+ };
+ agentErrors: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'agentError';
+ id: number;
+ }>;
+ };
+ agentStats: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'agentStat';
+ id: number;
+ }>;
+ };
+ assignments: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'agentAssignment';
+ id: number;
+ }>;
+ };
+ chunks: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'chunk';
+ id: number;
+ }>;
+ };
+ tasks: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: Array<{
+ type: 'task';
+ id: number;
+ }>;
+ };
+ user: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: {
+ type: 'user';
+ id: number;
+ } | null;
+ };
+ };
+ included?: Array<
+ | {
+ id: number;
+ type: 'user';
+ attributes: {
+ name: string;
+ email: string;
+ isValid: boolean;
+ isComputedPassword: boolean;
+ lastLoginDate: number;
+ registeredSince: number;
+ sessionLifetime: number;
+ globalPermissionGroupId: number;
+ yubikey: string;
+ otp1: string;
+ otp2: string;
+ otp3: string;
+ otp4: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'accessGroup';
+ attributes: {
+ groupName: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'agentStat';
+ attributes: {
+ agentId: number;
+ statType: 1 | 2 | 3;
+ time: number;
+ value: Array;
+ };
+ }
+ | {
+ id: number;
+ type: 'agentError';
+ attributes: {
+ agentId: number;
+ taskId: number;
+ chunkId: number;
+ time: number;
+ error: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'chunk';
+ attributes: {
+ taskId: number;
+ skip: number;
+ length: number;
+ agentId: number;
+ dispatchTime: number;
+ solveTime: number;
+ checkpoint: number;
+ progress: number;
+ state: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
+ cracked: number;
+ speed: number;
+ };
+ }
+ | {
+ id: number;
+ type: 'task';
+ attributes: {
+ taskName: string;
+ attackCmd: string;
+ chunkTime: number;
+ statusTimer: number;
+ keyspace: number;
+ keyspaceProgress: number;
+ priority: number;
+ maxAgents: number;
+ color: string | null;
+ isSmall: boolean;
+ isCpuTask: boolean;
+ useNewBench: boolean;
+ skipKeyspace: number;
+ crackerBinaryId: number;
+ crackerBinaryTypeId: number;
+ taskWrapperId: number;
+ isArchived: boolean;
+ notes: string;
+ staticChunks: number;
+ chunkSize: number;
+ forcePipe: boolean;
+ preprocessorId: number;
+ preprocessorCommand: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'agentAssignment';
+ attributes: {
+ taskId: number;
+ agentId: number;
+ benchmark: string;
+ };
+ }
+ >;
+};
+
+export type AgentRelationAssignments = {
+ data: Array<{
+ type: 'assignments';
+ id: number;
+ }>;
+};
+
+export type AgentRelationAssignmentsGetResponse = {
+ data: Array<{
+ type: 'assignments';
+ id: number;
+ }>;
+};
+
+export type AgentAssignmentCreate = {
+ data: {
+ type: 'agentAssignment';
+ attributes: {
+ taskId: number;
+ agentId: number;
+ benchmark: string;
+ };
+ };
+};
+
+export type AgentAssignmentPatch = {
+ data: {
+ type: 'agentAssignment';
+ attributes: {
+ benchmark?: string;
+ };
+ };
+};
+
+export type AgentAssignmentResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ links?: {
+ self: string;
+ first?: string;
+ last?: string;
+ next?: string | null;
+ previous?: string | null;
+ };
+ data: {
+ id: number;
+ type: 'agentAssignment';
+ attributes: {
+ taskId: number;
+ agentId: number;
+ benchmark: string;
+ };
+ };
+ relationships?: {
+ agent: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: {
+ type: 'agent';
+ id: number;
+ } | null;
+ };
+ task: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: {
+ type: 'task';
+ id: number;
+ } | null;
+ };
+ };
+ included?: Array<
+ | {
+ id: number;
+ type: 'agent';
+ attributes: {
+ agentName: string;
+ uid: string;
+ os: 0 | 1 | 2;
+ devices: string;
+ cmdPars: string;
+ ignoreErrors: 0 | 1 | 2;
+ isActive: boolean;
+ isTrusted: boolean;
+ token: string;
+ lastAct: string;
+ lastTime: number;
+ lastIp: string;
+ userId: number | null;
+ cpuOnly: boolean;
+ clientSignature: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'task';
+ attributes: {
+ taskName: string;
+ attackCmd: string;
+ chunkTime: number;
+ statusTimer: number;
+ keyspace: number;
+ keyspaceProgress: number;
+ priority: number;
+ maxAgents: number;
+ color: string | null;
+ isSmall: boolean;
+ isCpuTask: boolean;
+ useNewBench: boolean;
+ skipKeyspace: number;
+ crackerBinaryId: number;
+ crackerBinaryTypeId: number;
+ taskWrapperId: number;
+ isArchived: boolean;
+ notes: string;
+ staticChunks: number;
+ chunkSize: number;
+ forcePipe: boolean;
+ preprocessorId: number;
+ preprocessorCommand: string;
+ };
+ }
+ >;
+};
+
+export type AgentAssignmentPostPatchResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ data: {
+ id: number;
+ type: 'agentAssignment';
+ attributes: {
+ taskId: number;
+ agentId: number;
+ benchmark: string;
+ };
+ };
+};
+
+export type AgentAssignmentListResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ links?: {
+ self: string;
+ first?: string;
+ last?: string;
+ next?: string | null;
+ previous?: string | null;
+ };
+ data: Array<{
+ id: number;
+ type: 'agentAssignment';
+ attributes: {
+ taskId: number;
+ agentId: number;
+ benchmark: string;
+ };
+ }>;
+ relationships?: {
+ agent: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: {
+ type: 'agent';
+ id: number;
+ } | null;
+ };
+ task: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: {
+ type: 'task';
+ id: number;
+ } | null;
+ };
+ };
+ included?: Array<
+ | {
+ id: number;
+ type: 'agent';
+ attributes: {
+ agentName: string;
+ uid: string;
+ os: 0 | 1 | 2;
+ devices: string;
+ cmdPars: string;
+ ignoreErrors: 0 | 1 | 2;
+ isActive: boolean;
+ isTrusted: boolean;
+ token: string;
+ lastAct: string;
+ lastTime: number;
+ lastIp: string;
+ userId: number | null;
+ cpuOnly: boolean;
+ clientSignature: string;
+ };
+ }
+ | {
+ id: number;
+ type: 'task';
+ attributes: {
+ taskName: string;
+ attackCmd: string;
+ chunkTime: number;
+ statusTimer: number;
+ keyspace: number;
+ keyspaceProgress: number;
+ priority: number;
+ maxAgents: number;
+ color: string | null;
+ isSmall: boolean;
+ isCpuTask: boolean;
+ useNewBench: boolean;
+ skipKeyspace: number;
+ crackerBinaryId: number;
+ crackerBinaryTypeId: number;
+ taskWrapperId: number;
+ isArchived: boolean;
+ notes: string;
+ staticChunks: number;
+ chunkSize: number;
+ forcePipe: boolean;
+ preprocessorId: number;
+ preprocessorCommand: string;
+ };
+ }
+ >;
+};
+
+export type AgentAssignmentRelationTask = {
+ data: {
+ type: 'task';
+ id: number;
+ };
+};
+
+export type AgentAssignmentRelationTaskGetResponse = {
+ data: {
+ type: 'task';
+ id: number;
+ };
+};
+
+export type AgentBinaryCreate = {
+ data: {
+ type: 'agentBinary';
+ attributes: {
+ binaryType: string;
+ version: string;
+ operatingSystems: string;
+ filename: string;
+ updateTrack: string;
+ };
+ };
+};
+
+export type AgentBinaryPatch = {
+ data: {
+ type: 'agentBinary';
+ attributes: {
+ binaryType?: string;
+ filename?: string;
+ operatingSystems?: string;
+ updateTrack?: string;
+ version?: string;
+ };
+ };
+};
+
+export type AgentBinaryResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ links?: {
+ self: string;
+ first?: string;
+ last?: string;
+ next?: string | null;
+ previous?: string | null;
+ };
+ data: {
+ id: number;
+ type: 'agentBinary';
+ attributes: {
+ binaryType: string;
+ version: string;
+ operatingSystems: string;
+ filename: string;
+ updateTrack: string;
+ updateAvailable: string;
+ };
+ };
+ relationships?: {
+ [key: string]: unknown;
+ };
+ included?: Array;
+};
+
+export type AgentBinaryPostPatchResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ data: {
+ id: number;
+ type: 'agentBinary';
+ attributes: {
+ binaryType: string;
+ version: string;
+ operatingSystems: string;
+ filename: string;
+ updateTrack: string;
+ updateAvailable: string;
+ };
+ };
+};
+
+export type AgentBinaryListResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ links?: {
+ self: string;
+ first?: string;
+ last?: string;
+ next?: string | null;
+ previous?: string | null;
+ };
+ data: Array<{
+ id: number;
+ type: 'agentBinary';
+ attributes: {
+ binaryType: string;
+ version: string;
+ operatingSystems: string;
+ filename: string;
+ updateTrack: string;
+ updateAvailable: string;
+ };
+ }>;
+ relationships?: {
+ [key: string]: unknown;
+ };
+ included?: Array;
+};
+
+export type AgentErrorResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array;
+ };
+ links?: {
+ self: string;
+ first?: string;
+ last?: string;
+ next?: string | null;
+ previous?: string | null;
+ };
+ data: {
+ id: number;
+ type: 'agentError';
+ attributes: {
+ agentId: number;
+ taskId: number;
+ chunkId: number;
+ time: number;
+ error: string;
+ };
+ };
+ relationships?: {
+ task: {
+ links: {
+ self: string;
+ related: string;
+ };
+ data?: {
+ type: 'task';
+ id: number;
+ } | null;
+ };
+ };
+ included?: Array<{
+ id: number;
+ type: 'task';
+ attributes: {
+ taskName: string;
+ attackCmd: string;
+ chunkTime: number;
+ statusTimer: number;
+ keyspace: number;
+ keyspaceProgress: number;
+ priority: number;
+ maxAgents: number;
+ color: string | null;
+ isSmall: boolean;
+ isCpuTask: boolean;
+ useNewBench: boolean;
+ skipKeyspace: number;
+ crackerBinaryId: number;
+ crackerBinaryTypeId: number;
+ taskWrapperId: number;
+ isArchived: boolean;
+ notes: string;
+ staticChunks: number;
+ chunkSize: number;
+ forcePipe: boolean;
+ preprocessorId: number;
+ preprocessorCommand: string;
+ };
+ }>;
+};
+
+export type AgentErrorListResponse = {
+ jsonapi: {
+ version: string;
+ ext?: Array