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; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + 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 AgentErrorRelationTask = { + data: { + type: 'task'; + id: number; + }; +}; + +export type AgentErrorRelationTaskGetResponse = { + data: { + type: 'task'; + id: number; + }; +}; + +export type AgentStatResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'agentStat'; + attributes: { + agentId: number; + statType: 1 | 2 | 3; + time: number; + value: Array; + }; + }; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type AgentStatListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'agentStat'; + attributes: { + agentId: number; + statType: 1 | 2 | 3; + time: number; + value: Array; + }; + }>; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type ApiTokenCreate = { + data: { + type: 'apiToken'; + attributes: { + scopes: Array; + startValid: number; + endValid: number; + userId: number; + isRevoked: boolean; + }; + }; +}; + +export type ApiTokenPatch = { + data: { + type: 'apiToken'; + attributes: { + isRevoked?: boolean; + }; + }; +}; + +export type ApiTokenResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'apiToken'; + attributes: { + startValid: number; + endValid: number; + userId: number; + isRevoked: boolean; + token: string; + }; + }; + relationships?: { + 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; + }; + }>; +}; + +export type ApiTokenPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'apiToken'; + attributes: { + startValid: number; + endValid: number; + userId: number; + isRevoked: boolean; + token: string; + }; + }; +}; + +export type ApiTokenListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'apiToken'; + attributes: { + startValid: number; + endValid: number; + userId: number; + isRevoked: boolean; + token: string; + }; + }>; + relationships?: { + 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; + }; + }>; +}; + +export type ApiTokenRelationUser = { + data: { + type: 'user'; + id: number; + }; +}; + +export type ApiTokenRelationUserGetResponse = { + data: { + type: 'user'; + id: number; + }; +}; + +export type ChunkResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + 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; + }; + }; + 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 ChunkListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + 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; + }; + }>; + 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 ChunkRelationTask = { + data: { + type: 'task'; + id: number; + }; +}; + +export type ChunkRelationTaskGetResponse = { + data: { + type: 'task'; + id: number; + }; +}; + +export type ConfigPatch = { + data: { + type: 'config'; + attributes: { + item?: string; + value?: string; + }; + }; +}; + +export type ConfigResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'config'; + attributes: { + configSectionId: number; + item: string; + value: string; + }; + }; + relationships?: { + configSection: { + links: { + self: string; + related: string; + }; + data?: { + type: 'configSection'; + id: number; + } | null; + }; + }; + included?: Array<{ + id: number; + type: 'configSection'; + attributes: { + sectionName: string; + }; + }>; +}; + +export type ConfigPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'config'; + attributes: { + configSectionId: number; + item: string; + value: string; + }; + }; +}; + +export type ConfigListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'config'; + attributes: { + configSectionId: number; + item: string; + value: string; + }; + }>; + relationships?: { + configSection: { + links: { + self: string; + related: string; + }; + data?: { + type: 'configSection'; + id: number; + } | null; + }; + }; + included?: Array<{ + id: number; + type: 'configSection'; + attributes: { + sectionName: string; + }; + }>; +}; + +export type ConfigRelationConfigSection = { + data: { + type: 'configSection'; + id: number; + }; +}; + +export type ConfigRelationConfigSectionGetResponse = { + data: { + type: 'configSection'; + id: number; + }; +}; + +export type ConfigSectionResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'configSection'; + attributes: { + sectionName: string; + }; + }; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type ConfigSectionListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'configSection'; + attributes: { + sectionName: string; + }; + }>; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type CrackerBinaryCreate = { + data: { + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: string; + }; + }; +}; + +export type CrackerBinaryPatch = { + data: { + type: 'crackerBinary'; + attributes: { + binaryName?: string; + downloadUrl?: string; + version?: string; + }; + }; +}; + +export type CrackerBinaryResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: string; + }; + }; + relationships?: { + crackerBinaryType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'crackerBinaryType'; + id: number; + } | null; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'crackerBinaryType'; + attributes: { + typeName: string; + isChunkingAvailable: boolean; + }; + } + | { + 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 CrackerBinaryPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: string; + }; + }; +}; + +export type CrackerBinaryListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: string; + }; + }>; + relationships?: { + crackerBinaryType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'crackerBinaryType'; + id: number; + } | null; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'crackerBinaryType'; + attributes: { + typeName: string; + isChunkingAvailable: boolean; + }; + } + | { + 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 CrackerBinaryRelationTasks = { + data: Array<{ + type: 'tasks'; + id: number; + }>; +}; + +export type CrackerBinaryRelationTasksGetResponse = { + data: Array<{ + type: 'tasks'; + id: number; + }>; +}; + +export type CrackerBinaryTypeCreate = { + data: { + type: 'crackerBinaryType'; + attributes: { + typeName: string; + }; + }; +}; + +export type CrackerBinaryTypePatch = { + data: { + type: 'crackerBinaryType'; + attributes: { + isChunkingAvailable?: boolean; + typeName?: string; + }; + }; +}; + +export type CrackerBinaryTypeResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'crackerBinaryType'; + attributes: { + typeName: string; + isChunkingAvailable: boolean; + }; + }; + relationships?: { + crackerVersions: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'crackerBinary'; + id: number; + }>; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: 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 CrackerBinaryTypePostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'crackerBinaryType'; + attributes: { + typeName: string; + isChunkingAvailable: boolean; + }; + }; +}; + +export type CrackerBinaryTypeListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'crackerBinaryType'; + attributes: { + typeName: string; + isChunkingAvailable: boolean; + }; + }>; + relationships?: { + crackerVersions: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'crackerBinary'; + id: number; + }>; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: 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 CrackerBinaryTypeRelationTasks = { + data: Array<{ + type: 'tasks'; + id: number; + }>; +}; + +export type CrackerBinaryTypeRelationTasksGetResponse = { + data: Array<{ + type: 'tasks'; + id: number; + }>; +}; + +export type FileCreate = { + data: { + type: 'file'; + attributes: { + sourceType: string; + sourceData: string; + filename: string; + isSecret: boolean; + fileType: 0 | 1 | 2 | 100; + accessGroupId: number; + }; + }; +}; + +export type FilePatch = { + data: { + type: 'file'; + attributes: { + accessGroupId?: number; + fileType?: 0 | 1 | 2 | 100; + filename?: string; + isSecret?: boolean; + }; + }; +}; + +export type FileResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'file'; + attributes: { + filename: string; + size: number; + isSecret: boolean; + fileType: 0 | 1 | 2 | 100; + accessGroupId: number; + lineCount: number; + }; + }; + relationships?: { + accessGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'accessGroup'; + id: number; + } | null; + }; + }; + included?: Array<{ + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + }>; +}; + +export type FileSingleResponse = { + data: { + id: number; + type: 'file'; + attributes: { + filename: string; + size: number; + isSecret: boolean; + fileType: 0 | 1 | 2 | 100; + accessGroupId: number; + lineCount: number; + }; + }; + relationships?: { + accessGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'accessGroup'; + id: number; + } | null; + }; + }; + included?: Array<{ + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + }>; +}; + +export type FilePostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'file'; + attributes: { + filename: string; + size: number; + isSecret: boolean; + fileType: 0 | 1 | 2 | 100; + accessGroupId: number; + lineCount: number; + }; + }; +}; + +export type FileListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'file'; + attributes: { + filename: string; + size: number; + isSecret: boolean; + fileType: 0 | 1 | 2 | 100; + accessGroupId: number; + lineCount: number; + }; + }>; + relationships?: { + accessGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'accessGroup'; + id: number; + } | null; + }; + }; + included?: Array<{ + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + }>; +}; + +export type FileRelationAccessGroup = { + data: { + type: 'accessGroup'; + id: number; + }; +}; + +export type FileRelationAccessGroupGetResponse = { + data: { + type: 'accessGroup'; + id: number; + }; +}; + +export type GlobalPermissionGroupCreate = { + data: { + type: 'globalPermissionGroup'; + attributes: { + name: string; + permissions: { + [key: string]: boolean; + }; + }; + }; +}; + +export type GlobalPermissionGroupPatch = { + data: { + type: 'globalPermissionGroup'; + attributes: { + name?: string; + permissions?: { + [key: string]: boolean; + }; + }; + }; +}; + +export type GlobalPermissionGroupResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'globalPermissionGroup'; + attributes: { + name: string; + permissions: { + [key: string]: boolean; + }; + }; + }; + relationships?: { + 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; + }; + }>; +}; + +export type GlobalPermissionGroupPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'globalPermissionGroup'; + attributes: { + name: string; + permissions: { + [key: string]: boolean; + }; + }; + }; +}; + +export type GlobalPermissionGroupListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'globalPermissionGroup'; + attributes: { + name: string; + permissions: { + [key: string]: boolean; + }; + }; + }>; + relationships?: { + 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; + }; + }>; +}; + +export type GlobalPermissionGroupRelationUserMembers = { + data: Array<{ + type: 'userMembers'; + id: number; + }>; +}; + +export type GlobalPermissionGroupRelationUserMembersGetResponse = { + data: Array<{ + type: 'userMembers'; + id: number; + }>; +}; + +export type HashResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'hash'; + attributes: { + hashlistId: number; + hash: string; + salt: string; + plaintext: string; + timeCracked: number; + chunkId: number; + isCracked: boolean; + crackPos: number; + }; + }; + relationships?: { + chunk: { + links: { + self: string; + related: string; + }; + data?: { + type: 'chunk'; + id: number; + } | null; + }; + hashlist: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashlist'; + id: number; + } | null; + }; + }; + included?: Array< + | { + 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: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + >; +}; + +export type HashListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'hash'; + attributes: { + hashlistId: number; + hash: string; + salt: string; + plaintext: string; + timeCracked: number; + chunkId: number; + isCracked: boolean; + crackPos: number; + }; + }>; + relationships?: { + chunk: { + links: { + self: string; + related: string; + }; + data?: { + type: 'chunk'; + id: number; + } | null; + }; + hashlist: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashlist'; + id: number; + } | null; + }; + }; + included?: Array< + | { + 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: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + >; +}; + +export type HashRelationHashlist = { + data: { + type: 'hashlist'; + id: number; + }; +}; + +export type HashRelationHashlistGetResponse = { + data: { + type: 'hashlist'; + id: number; + }; +}; + +export type HashlistCreate = { + data: { + type: 'hashlist'; + attributes: { + hashlistSeperator?: string | null; + sourceType: string; + sourceData: string; + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator?: string | null; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + }; +}; + +export type HashlistPatch = { + data: { + type: 'hashlist'; + attributes: { + accessGroupId?: number; + isArchived?: boolean; + isSecret?: boolean; + name?: string; + notes?: string; + }; + }; +}; + +export type HashlistResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + }; + relationships?: { + accessGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'accessGroup'; + id: number; + } | null; + }; + hashType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashType'; + id: number; + } | null; + }; + hashes: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'hash'; + id: number; + }>; + }; + hashlists: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'hashlist'; + id: number; + }>; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + } + | { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + } + | { + id: number; + type: 'hash'; + attributes: { + hashlistId: number; + hash: string; + salt: string; + plaintext: string; + timeCracked: number; + chunkId: number; + isCracked: boolean; + crackPos: number; + }; + } + | { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + | { + 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 HashlistSingleResponse = { + data: { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + }; + relationships?: { + accessGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'accessGroup'; + id: number; + } | null; + }; + hashType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashType'; + id: number; + } | null; + }; + hashes: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'hash'; + id: number; + }>; + }; + hashlists: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'hashlist'; + id: number; + }>; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + } + | { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + } + | { + id: number; + type: 'hash'; + attributes: { + hashlistId: number; + hash: string; + salt: string; + plaintext: string; + timeCracked: number; + chunkId: number; + isCracked: boolean; + crackPos: number; + }; + } + | { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + | { + 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 HashlistPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + }; +}; + +export type HashlistListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + }>; + relationships?: { + accessGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'accessGroup'; + id: number; + } | null; + }; + hashType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashType'; + id: number; + } | null; + }; + hashes: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'hash'; + id: number; + }>; + }; + hashlists: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'hashlist'; + id: number; + }>; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + } + | { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + } + | { + id: number; + type: 'hash'; + attributes: { + hashlistId: number; + hash: string; + salt: string; + plaintext: string; + timeCracked: number; + chunkId: number; + isCracked: boolean; + crackPos: number; + }; + } + | { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + | { + 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 HashlistRelationTasks = { + data: Array<{ + type: 'tasks'; + id: number; + }>; +}; + +export type HashlistRelationTasksGetResponse = { + data: Array<{ + type: 'tasks'; + id: number; + }>; +}; + +export type HashTypeCreate = { + data: { + type: 'hashType'; + attributes: { + hashTypeId: number; + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + }; +}; + +export type HashTypePatch = { + data: { + type: 'hashType'; + attributes: { + description?: string; + isSalted?: boolean; + isSlowHash?: boolean; + }; + }; +}; + +export type HashTypeResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + }; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type HashTypePostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + }; +}; + +export type HashTypeListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + }>; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type HealthCheckAgentResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'healthCheckAgent'; + attributes: { + healthCheckId: number; + agentId: number; + status: -1 | 0 | 1; + cracked: number; + numGpus: number; + start: number; + end: number; + errors: string; + }; + }; + relationships?: { + agent: { + links: { + self: string; + related: string; + }; + data?: { + type: 'agent'; + id: number; + } | null; + }; + healthCheck: { + links: { + self: string; + related: string; + }; + data?: { + type: 'healthCheck'; + 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: 'healthCheck'; + attributes: { + time: number; + status: -1 | 0 | 1; + checkType: 0 | 3200; + hashtypeId: number; + crackerBinaryId: number; + expectedCracks: number; + attackCmd: string; + }; + } + >; +}; + +export type HealthCheckAgentListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'healthCheckAgent'; + attributes: { + healthCheckId: number; + agentId: number; + status: -1 | 0 | 1; + cracked: number; + numGpus: number; + start: number; + end: number; + errors: string; + }; + }>; + relationships?: { + agent: { + links: { + self: string; + related: string; + }; + data?: { + type: 'agent'; + id: number; + } | null; + }; + healthCheck: { + links: { + self: string; + related: string; + }; + data?: { + type: 'healthCheck'; + 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: 'healthCheck'; + attributes: { + time: number; + status: -1 | 0 | 1; + checkType: 0 | 3200; + hashtypeId: number; + crackerBinaryId: number; + expectedCracks: number; + attackCmd: string; + }; + } + >; +}; + +export type HealthCheckAgentRelationHealthCheck = { + data: { + type: 'healthCheck'; + id: number; + }; +}; + +export type HealthCheckAgentRelationHealthCheckGetResponse = { + data: { + type: 'healthCheck'; + id: number; + }; +}; + +export type HealthCheckCreate = { + data: { + type: 'healthCheck'; + attributes: { + checkType: 0 | 3200; + hashtypeId: number; + crackerBinaryId: number; + }; + }; +}; + +export type HealthCheckPatch = { + data: { + type: 'healthCheck'; + attributes: { + checkType?: 0 | 3200; + }; + }; +}; + +export type HealthCheckResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'healthCheck'; + attributes: { + time: number; + status: -1 | 0 | 1; + checkType: 0 | 3200; + hashtypeId: number; + crackerBinaryId: number; + expectedCracks: number; + attackCmd: string; + }; + }; + relationships?: { + crackerBinary: { + links: { + self: string; + related: string; + }; + data?: { + type: 'crackerBinary'; + id: number; + } | null; + }; + hashType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashType'; + id: number; + } | null; + }; + healthCheckAgents: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'healthCheckAgent'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: string; + }; + } + | { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + } + | { + id: number; + type: 'healthCheckAgent'; + attributes: { + healthCheckId: number; + agentId: number; + status: -1 | 0 | 1; + cracked: number; + numGpus: number; + start: number; + end: number; + errors: string; + }; + } + >; +}; + +export type HealthCheckPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'healthCheck'; + attributes: { + time: number; + status: -1 | 0 | 1; + checkType: 0 | 3200; + hashtypeId: number; + crackerBinaryId: number; + expectedCracks: number; + attackCmd: string; + }; + }; +}; + +export type HealthCheckListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'healthCheck'; + attributes: { + time: number; + status: -1 | 0 | 1; + checkType: 0 | 3200; + hashtypeId: number; + crackerBinaryId: number; + expectedCracks: number; + attackCmd: string; + }; + }>; + relationships?: { + crackerBinary: { + links: { + self: string; + related: string; + }; + data?: { + type: 'crackerBinary'; + id: number; + } | null; + }; + hashType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashType'; + id: number; + } | null; + }; + healthCheckAgents: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'healthCheckAgent'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: string; + }; + } + | { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + } + | { + id: number; + type: 'healthCheckAgent'; + attributes: { + healthCheckId: number; + agentId: number; + status: -1 | 0 | 1; + cracked: number; + numGpus: number; + start: number; + end: number; + errors: string; + }; + } + >; +}; + +export type HealthCheckRelationHealthCheckAgents = { + data: Array<{ + type: 'healthCheckAgents'; + id: number; + }>; +}; + +export type HealthCheckRelationHealthCheckAgentsGetResponse = { + data: Array<{ + type: 'healthCheckAgents'; + id: number; + }>; +}; + +export type LogEntryCreate = { + data: { + type: 'logEntry'; + attributes: { + [key: string]: unknown; + }; + }; +}; + +export type LogEntryPatch = { + data: { + type: 'logEntry'; + attributes: { + [key: string]: unknown; + }; + }; +}; + +export type LogEntryResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'logEntry'; + attributes: { + issuer: 'API' | 'User'; + issuerId: string; + level: 'warning' | 'error' | 'fatal error' | 'information'; + message: string; + time: number; + }; + }; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type LogEntryPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'logEntry'; + attributes: { + issuer: 'API' | 'User'; + issuerId: string; + level: 'warning' | 'error' | 'fatal error' | 'information'; + message: string; + time: number; + }; + }; +}; + +export type LogEntryListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'logEntry'; + attributes: { + issuer: 'API' | 'User'; + issuerId: string; + level: 'warning' | 'error' | 'fatal error' | 'information'; + message: string; + time: number; + }; + }>; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type NotificationSettingCreate = { + data: { + type: 'notificationSetting'; + attributes: { + actionFilter: string; + action: 'createNotification' | 'setActive' | 'deleteNotification'; + notification: + | 'taskComplete' + | 'agentError' + | 'ownAgentError' + | 'logError' + | 'newTask' + | 'newHashlist' + | 'hashlistAllCracked' + | 'hashlistCrackedHash' + | 'userCreated' + | 'userDeleted' + | 'userLoginFailed' + | 'logWarn' + | 'logFatal' + | 'newAgent' + | 'deleteTask' + | 'deleteHashlist' + | 'deleteAgent'; + receiver: string; + }; + }; +}; + +export type NotificationSettingPatch = { + data: { + type: 'notificationSetting'; + attributes: { + action?: 'createNotification' | 'setActive' | 'deleteNotification'; + isActive?: boolean; + notification?: + | 'taskComplete' + | 'agentError' + | 'ownAgentError' + | 'logError' + | 'newTask' + | 'newHashlist' + | 'hashlistAllCracked' + | 'hashlistCrackedHash' + | 'userCreated' + | 'userDeleted' + | 'userLoginFailed' + | 'logWarn' + | 'logFatal' + | 'newAgent' + | 'deleteTask' + | 'deleteHashlist' + | 'deleteAgent'; + receiver?: string; + }; + }; +}; + +export type NotificationSettingResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'notificationSetting'; + attributes: { + action: 'createNotification' | 'setActive' | 'deleteNotification'; + objectId: number; + notification: + | 'taskComplete' + | 'agentError' + | 'ownAgentError' + | 'logError' + | 'newTask' + | 'newHashlist' + | 'hashlistAllCracked' + | 'hashlistCrackedHash' + | 'userCreated' + | 'userDeleted' + | 'userLoginFailed' + | 'logWarn' + | 'logFatal' + | 'newAgent' + | 'deleteTask' + | 'deleteHashlist' + | 'deleteAgent'; + userId: number; + receiver: string; + isActive: boolean; + }; + }; + relationships?: { + 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; + }; + }>; +}; + +export type NotificationSettingPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'notificationSetting'; + attributes: { + action: 'createNotification' | 'setActive' | 'deleteNotification'; + objectId: number; + notification: + | 'taskComplete' + | 'agentError' + | 'ownAgentError' + | 'logError' + | 'newTask' + | 'newHashlist' + | 'hashlistAllCracked' + | 'hashlistCrackedHash' + | 'userCreated' + | 'userDeleted' + | 'userLoginFailed' + | 'logWarn' + | 'logFatal' + | 'newAgent' + | 'deleteTask' + | 'deleteHashlist' + | 'deleteAgent'; + userId: number; + receiver: string; + isActive: boolean; + }; + }; +}; + +export type NotificationSettingListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'notificationSetting'; + attributes: { + action: 'createNotification' | 'setActive' | 'deleteNotification'; + objectId: number; + notification: + | 'taskComplete' + | 'agentError' + | 'ownAgentError' + | 'logError' + | 'newTask' + | 'newHashlist' + | 'hashlistAllCracked' + | 'hashlistCrackedHash' + | 'userCreated' + | 'userDeleted' + | 'userLoginFailed' + | 'logWarn' + | 'logFatal' + | 'newAgent' + | 'deleteTask' + | 'deleteHashlist' + | 'deleteAgent'; + userId: number; + receiver: string; + isActive: boolean; + }; + }>; + relationships?: { + 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; + }; + }>; +}; + +export type NotificationSettingRelationUser = { + data: { + type: 'user'; + id: number; + }; +}; + +export type NotificationSettingRelationUserGetResponse = { + data: { + type: 'user'; + id: number; + }; +}; + +export type PreprocessorCreate = { + data: { + type: 'preprocessor'; + attributes: { + name: string; + url: string; + binaryName: string; + keyspaceCommand: string; + skipCommand: string; + limitCommand: string; + }; + }; +}; + +export type PreprocessorPatch = { + data: { + type: 'preprocessor'; + attributes: { + binaryName?: string; + keyspaceCommand?: string; + limitCommand?: string; + name?: string; + skipCommand?: string; + url?: string; + }; + }; +}; + +export type PreprocessorResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'preprocessor'; + attributes: { + name: string; + url: string; + binaryName: string; + keyspaceCommand: string; + skipCommand: string; + limitCommand: string; + }; + }; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type PreprocessorPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'preprocessor'; + attributes: { + name: string; + url: string; + binaryName: string; + keyspaceCommand: string; + skipCommand: string; + limitCommand: string; + }; + }; +}; + +export type PreprocessorListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'preprocessor'; + attributes: { + name: string; + url: string; + binaryName: string; + keyspaceCommand: string; + skipCommand: string; + limitCommand: string; + }; + }>; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type PreTaskCreate = { + data: { + type: 'preTask'; + attributes: { + files: Array; + taskName: string; + attackCmd: string; + chunkTime: number; + statusTimer: number; + color: string; + isSmall: boolean; + isCpuTask: boolean; + useNewBench: boolean; + priority: number; + maxAgents: number; + isMaskImport: boolean; + crackerBinaryTypeId: number; + }; + }; +}; + +export type PreTaskPatch = { + data: { + type: 'preTask'; + attributes: { + attackCmd?: string; + chunkTime?: number; + color?: string; + crackerBinaryTypeId?: number; + isCpuTask?: boolean; + isMaskImport?: boolean; + isSmall?: boolean; + maxAgents?: number; + priority?: number; + statusTimer?: number; + taskName?: string; + }; + }; +}; + +export type PreTaskResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'preTask'; + attributes: { + taskName: string; + attackCmd: string; + chunkTime: number; + statusTimer: number; + color: string; + isSmall: boolean; + isCpuTask: boolean; + useNewBench: boolean; + priority: number; + maxAgents: number; + isMaskImport: boolean; + crackerBinaryTypeId: number; + auxiliaryKeyspace: number; + }; + }; + relationships?: { + pretaskFiles: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'file'; + id: number; + }>; + }; + }; + included?: Array<{ + id: number; + type: 'file'; + attributes: { + filename: string; + size: number; + isSecret: boolean; + fileType: 0 | 1 | 2 | 100; + accessGroupId: number; + lineCount: number; + }; + }>; +}; + +export type PreTaskPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'preTask'; + attributes: { + taskName: string; + attackCmd: string; + chunkTime: number; + statusTimer: number; + color: string; + isSmall: boolean; + isCpuTask: boolean; + useNewBench: boolean; + priority: number; + maxAgents: number; + isMaskImport: boolean; + crackerBinaryTypeId: number; + auxiliaryKeyspace: number; + }; + }; +}; + +export type PreTaskListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'preTask'; + attributes: { + taskName: string; + attackCmd: string; + chunkTime: number; + statusTimer: number; + color: string; + isSmall: boolean; + isCpuTask: boolean; + useNewBench: boolean; + priority: number; + maxAgents: number; + isMaskImport: boolean; + crackerBinaryTypeId: number; + auxiliaryKeyspace: number; + }; + }>; + relationships?: { + pretaskFiles: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'file'; + id: number; + }>; + }; + }; + included?: Array<{ + id: number; + type: 'file'; + attributes: { + filename: string; + size: number; + isSecret: boolean; + fileType: 0 | 1 | 2 | 100; + accessGroupId: number; + lineCount: number; + }; + }>; +}; + +export type PreTaskRelationPretaskFiles = { + data: Array<{ + type: 'pretaskFiles'; + id: number; + }>; +}; + +export type PreTaskRelationPretaskFilesGetResponse = { + data: Array<{ + type: 'pretaskFiles'; + id: number; + }>; +}; + +export type SpeedResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'speed'; + attributes: { + agentId: number; + taskId: number; + speed: number; + time: number; + }; + }; + 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 SpeedListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'speed'; + attributes: { + agentId: number; + taskId: number; + speed: number; + time: number; + }; + }>; + 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 SpeedRelationTask = { + data: { + type: 'task'; + id: number; + }; +}; + +export type SpeedRelationTaskGetResponse = { + data: { + type: 'task'; + id: number; + }; +}; + +export type SupertaskCreate = { + data: { + type: 'supertask'; + attributes: { + pretasks: Array; + supertaskName: string; + }; + }; +}; + +export type SupertaskPatch = { + data: { + type: 'supertask'; + attributes: { + supertaskName?: string; + }; + }; +}; + +export type SupertaskResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'supertask'; + attributes: { + supertaskName: string; + }; + }; + relationships?: { + pretasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'preTask'; + id: number; + }>; + }; + }; + included?: Array<{ + id: number; + type: 'preTask'; + attributes: { + taskName: string; + attackCmd: string; + chunkTime: number; + statusTimer: number; + color: string; + isSmall: boolean; + isCpuTask: boolean; + useNewBench: boolean; + priority: number; + maxAgents: number; + isMaskImport: boolean; + crackerBinaryTypeId: number; + }; + }>; +}; + +export type SupertaskSingleResponse = { + data: { + id: number; + type: 'supertask'; + attributes: { + supertaskName: string; + }; + }; + relationships?: { + pretasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'preTask'; + id: number; + }>; + }; + }; + included?: Array<{ + id: number; + type: 'preTask'; + attributes: { + taskName: string; + attackCmd: string; + chunkTime: number; + statusTimer: number; + color: string; + isSmall: boolean; + isCpuTask: boolean; + useNewBench: boolean; + priority: number; + maxAgents: number; + isMaskImport: boolean; + crackerBinaryTypeId: number; + }; + }>; +}; + +export type SupertaskPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'supertask'; + attributes: { + supertaskName: string; + }; + }; +}; + +export type SupertaskListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'supertask'; + attributes: { + supertaskName: string; + }; + }>; + relationships?: { + pretasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'preTask'; + id: number; + }>; + }; + }; + included?: Array<{ + id: number; + type: 'preTask'; + attributes: { + taskName: string; + attackCmd: string; + chunkTime: number; + statusTimer: number; + color: string; + isSmall: boolean; + isCpuTask: boolean; + useNewBench: boolean; + priority: number; + maxAgents: number; + isMaskImport: boolean; + crackerBinaryTypeId: number; + }; + }>; +}; + +export type SupertaskRelationPretasks = { + data: Array<{ + type: 'pretasks'; + id: number; + }>; +}; + +export type SupertaskRelationPretasksGetResponse = { + data: Array<{ + type: 'pretasks'; + id: number; + }>; +}; + +export type TaskCreate = { + data: { + type: 'task'; + attributes: { + hashlistId: number; + files: Array; + taskName: string; + attackCmd: string; + chunkTime: number; + statusTimer: number; + priority: number; + maxAgents: number; + color?: string | null; + isSmall: boolean; + isCpuTask: boolean; + useNewBench: boolean; + skipKeyspace: number; + crackerBinaryId: number; + crackerBinaryTypeId: number; + isArchived: boolean; + notes: string; + staticChunks: number; + chunkSize: number; + forcePipe: boolean; + preprocessorId: number; + preprocessorCommand: string; + }; + }; +}; + +export type TaskPatch = { + data: { + type: 'task'; + attributes: { + attackCmd?: string; + chunkTime?: number; + color?: string | null; + isArchived?: boolean; + isCpuTask?: boolean; + isSmall?: boolean; + maxAgents?: number; + notes?: string; + priority?: number; + statusTimer?: number; + taskName?: string; + }; + }; +}; + +export type TaskResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + 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; + activeAgents: number; + dispatched: string; + searched: string; + status: 0 | 1 | 2 | 3; + estimatedTime: number; + timeSpent: number; + currentSpeed: number; + cprogress: number; + }; + }; + relationships?: { + assignedAgents: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'agent'; + id: number; + }>; + }; + crackerBinary: { + links: { + self: string; + related: string; + }; + data?: { + type: 'crackerBinary'; + id: number; + } | null; + }; + crackerBinaryType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'crackerBinaryType'; + id: number; + } | null; + }; + files: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'file'; + id: number; + }>; + }; + hashlist: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashlist'; + id: number; + } | null; + }; + speeds: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'speed'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: string; + }; + } + | { + id: number; + type: 'crackerBinaryType'; + attributes: { + typeName: string; + isChunkingAvailable: boolean; + }; + } + | { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + | { + 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: 'file'; + attributes: { + filename: string; + size: number; + isSecret: boolean; + fileType: 0 | 1 | 2 | 100; + accessGroupId: number; + lineCount: number; + }; + } + | { + id: number; + type: 'speed'; + attributes: { + agentId: number; + taskId: number; + speed: number; + time: number; + }; + } + >; +}; + +export type TaskPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + 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; + activeAgents: number; + dispatched: string; + searched: string; + status: 0 | 1 | 2 | 3; + estimatedTime: number; + timeSpent: number; + currentSpeed: number; + cprogress: number; + }; + }; +}; + +export type TaskListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: 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; + activeAgents: number; + dispatched: string; + searched: string; + status: 0 | 1 | 2 | 3; + estimatedTime: number; + timeSpent: number; + currentSpeed: number; + cprogress: number; + }; + }>; + relationships?: { + assignedAgents: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'agent'; + id: number; + }>; + }; + crackerBinary: { + links: { + self: string; + related: string; + }; + data?: { + type: 'crackerBinary'; + id: number; + } | null; + }; + crackerBinaryType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'crackerBinaryType'; + id: number; + } | null; + }; + files: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'file'; + id: number; + }>; + }; + hashlist: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashlist'; + id: number; + } | null; + }; + speeds: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'speed'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'crackerBinary'; + attributes: { + crackerBinaryTypeId: number; + version: string; + downloadUrl: string; + binaryName: string; + }; + } + | { + id: number; + type: 'crackerBinaryType'; + attributes: { + typeName: string; + isChunkingAvailable: boolean; + }; + } + | { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + | { + 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: 'file'; + attributes: { + filename: string; + size: number; + isSecret: boolean; + fileType: 0 | 1 | 2 | 100; + accessGroupId: number; + lineCount: number; + }; + } + | { + id: number; + type: 'speed'; + attributes: { + agentId: number; + taskId: number; + speed: number; + time: number; + }; + } + >; +}; + +export type TaskRelationSpeeds = { + data: Array<{ + type: 'speeds'; + id: number; + }>; +}; + +export type TaskRelationSpeedsGetResponse = { + data: Array<{ + type: 'speeds'; + id: number; + }>; +}; + +export type TaskWrapperPatch = { + data: { + type: 'taskWrapper'; + attributes: { + accessGroupId?: number; + isArchived?: boolean; + maxAgents?: number; + priority?: number; + taskWrapperName?: string; + }; + }; +}; + +export type TaskWrapperResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'taskWrapper'; + attributes: { + priority: number; + maxAgents: number; + taskType: 0 | 1; + hashlistId: number; + accessGroupId: number; + taskWrapperName: string; + isArchived: boolean; + cracked: number; + }; + }; + relationships?: { + accessGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'accessGroup'; + id: number; + } | null; + }; + hashType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashType'; + id: number; + } | null; + }; + hashlist: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashlist'; + id: number; + } | null; + }; + task: { + links: { + self: string; + related: string; + }; + data?: { + type: 'task'; + id: number; + } | null; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + } + | { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + | { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + } + | { + 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 TaskWrapperSingleResponse = { + data: { + id: number; + type: 'taskWrapper'; + attributes: { + priority: number; + maxAgents: number; + taskType: 0 | 1; + hashlistId: number; + accessGroupId: number; + taskWrapperName: string; + isArchived: boolean; + cracked: number; + }; + }; + relationships?: { + accessGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'accessGroup'; + id: number; + } | null; + }; + hashType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashType'; + id: number; + } | null; + }; + hashlist: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashlist'; + id: number; + } | null; + }; + task: { + links: { + self: string; + related: string; + }; + data?: { + type: 'task'; + id: number; + } | null; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + } + | { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + | { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + } + | { + 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 TaskWrapperPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'taskWrapper'; + attributes: { + priority: number; + maxAgents: number; + taskType: 0 | 1; + hashlistId: number; + accessGroupId: number; + taskWrapperName: string; + isArchived: boolean; + cracked: number; + }; + }; +}; + +export type TaskWrapperListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'taskWrapper'; + attributes: { + priority: number; + maxAgents: number; + taskType: 0 | 1; + hashlistId: number; + accessGroupId: number; + taskWrapperName: string; + isArchived: boolean; + cracked: number; + }; + }>; + relationships?: { + accessGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'accessGroup'; + id: number; + } | null; + }; + hashType: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashType'; + id: number; + } | null; + }; + hashlist: { + links: { + self: string; + related: string; + }; + data?: { + type: 'hashlist'; + id: number; + } | null; + }; + task: { + links: { + self: string; + related: string; + }; + data?: { + type: 'task'; + id: number; + } | null; + }; + tasks: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'task'; + id: number; + }>; + }; + }; + included?: Array< + | { + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + } + | { + id: number; + type: 'hashlist'; + attributes: { + name: string; + format: 0 | 1 | 2 | 3; + hashTypeId: number; + hashCount: number; + separator: string | null; + cracked: number; + isSecret: boolean; + isHexSalt: boolean; + isSalted: boolean; + accessGroupId: number; + notes: string; + useBrain: boolean; + brainFeatures: number; + isArchived: boolean; + }; + } + | { + id: number; + type: 'hashType'; + attributes: { + description: string; + isSalted: boolean; + isSlowHash: boolean; + }; + } + | { + 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 TaskWrapperRelationTasks = { + data: Array<{ + type: 'tasks'; + id: number; + }>; +}; + +export type TaskWrapperRelationTasksGetResponse = { + data: Array<{ + type: 'tasks'; + id: number; + }>; +}; + +export type UserCreate = { + data: { + type: 'user'; + attributes: { + name: string; + email: string; + globalPermissionGroupId: number; + }; + }; +}; + +export type UserPatch = { + data: { + type: 'user'; + attributes: { + email?: string; + globalPermissionGroupId?: number; + isValid?: boolean; + sessionLifetime?: number; + }; + }; +}; + +export type UserResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + 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; + }; + }; + relationships?: { + accessGroups: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'accessGroup'; + id: number; + }>; + }; + globalPermissionGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'globalPermissionGroup'; + id: number; + } | null; + }; + }; + included?: Array< + | { + id: number; + type: 'globalPermissionGroup'; + attributes: { + name: string; + permissions: { + [key: string]: boolean; + }; + }; + } + | { + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + } + >; +}; + +export type UserPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + 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; + }; + }; +}; + +export type UserListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: 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; + }; + }>; + relationships?: { + accessGroups: { + links: { + self: string; + related: string; + }; + data?: Array<{ + type: 'accessGroup'; + id: number; + }>; + }; + globalPermissionGroup: { + links: { + self: string; + related: string; + }; + data?: { + type: 'globalPermissionGroup'; + id: number; + } | null; + }; + }; + included?: Array< + | { + id: number; + type: 'globalPermissionGroup'; + attributes: { + name: string; + permissions: { + [key: string]: boolean; + }; + }; + } + | { + id: number; + type: 'accessGroup'; + attributes: { + groupName: string; + }; + } + >; +}; + +export type UserRelationAccessGroups = { + data: Array<{ + type: 'accessGroups'; + id: number; + }>; +}; + +export type UserRelationAccessGroupsGetResponse = { + data: Array<{ + type: 'accessGroups'; + id: number; + }>; +}; + +export type VoucherCreate = { + data: { + type: 'voucher'; + attributes: { + voucher: string; + }; + }; +}; + +export type VoucherPatch = { + data: { + type: 'voucher'; + attributes: { + voucher?: string; + }; + }; +}; + +export type VoucherResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: { + id: number; + type: 'voucher'; + attributes: { + voucher: string; + time: number; + }; + }; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type VoucherPostPatchResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + data: { + id: number; + type: 'voucher'; + attributes: { + voucher: string; + time: number; + }; + }; +}; + +export type VoucherListResponse = { + jsonapi: { + version: string; + ext?: Array; + }; + links?: { + self: string; + first?: string; + last?: string; + next?: string | null; + previous?: string | null; + }; + data: Array<{ + id: number; + type: 'voucher'; + attributes: { + voucher: string; + time: number; + }; + }>; + relationships?: { + [key: string]: unknown; + }; + included?: Array; +}; + +export type AbortChunkHelperApi = { + chunkId?: number; +}; + +export type AbortChunkHelperApiResponse = Array<{ + Abort?: string; +}>; + +export type AssignAgentHelperApi = { + agentId?: number; + taskId?: number; +}; + +export type AssignAgentHelperApiResponse = Array<{ + Assign?: string; +}>; + +export type BulkSupertaskBuilderHelperApi = { + name?: string; + isCpu?: boolean; + isSmall?: boolean; + crackerBinaryTypeId?: number; + benchtype?: string; + command?: string; + maxAgents?: number; + basefiles?: Array; + iterfiles?: Array; +}; + +export type ChangeOwnPasswordHelperApi = { + oldPassword?: string; + newPassword?: string; + confirmPassword?: string; +}; + +export type ChangeOwnPasswordHelperApiResponse = Array<{ + 'Change password'?: string; +}>; + +export type CreateSuperHashlistHelperApi = { + hashlistIds?: Array; + name?: string; +}; + +export type CreateSupertaskHelperApi = { + supertaskTemplateId?: number; + hashlistId?: number; + crackerVersionId?: number; +}; + +export type ExportCrackedHashesHelperApi = { + hashlistId?: number; +}; + +export type ExportLeftHashesHelperApi = { + hashlistId?: number; +}; + +export type ExportWordlistHelperApi = { + hashlistId?: number; +}; + +export type ImportCrackedHashesHelperApi = { + hashlistId?: number; + sourceType?: string; + sourceData?: string; + separator?: string; + overwrite?: number; +}; + +export type ImportCrackedHashesHelperApiResponse = Array<{ + totalLines?: number; + newCracked?: number; + alreadyCracked?: number; + invalid?: number; + notFound?: number; + processTime?: number; + tooLongPlaintexts?: number; +}>; + +export type ImportFileHelperApi = { + [key: string]: unknown; +}; + +export type MaskSupertaskBuilderHelperApi = { + name?: string; + isCpu?: boolean; + isSmall?: boolean; + optimized?: boolean; + crackerBinaryTypeId?: number; + benchtype?: string; + masks?: string; + maxAgents?: number; +}; + +export type PurgeTaskHelperApi = { + taskId?: number; +}; + +export type PurgeTaskHelperApiResponse = Array<{ + Purge?: string; +}>; + +export type RebuildChunkCacheHelperApi = { + [key: string]: unknown; +}; + +export type RebuildChunkCacheHelperApiResponse = Array<{ + Rebuild?: string; +}>; + +export type RecountFileLinesHelperApi = { + fileId?: number; +}; + +export type RescanGlobalFilesHelperApi = { + [key: string]: unknown; +}; + +export type RescanGlobalFilesHelperApiResponse = Array<{ + Rescan?: string; +}>; + +export type ResetChunkHelperApi = { + chunkId?: number; +}; + +export type ResetChunkHelperApiResponse = Array<{ + Reset?: string; +}>; + +export type ResetUserPasswordHelperApi = { + email?: string; + username?: string; +}; + +export type ResetUserPasswordHelperApiResponse = Array<{ + Reset?: string; +}>; + +export type SearchHashesHelperApi = { + searchData?: string; + separator?: string; + isSalted?: boolean; +}; + +export type SearchHashesHelperApiResponse = Array<{ + 0?: { + [key: string]: unknown; + }; + 1?: { + [key: string]: unknown; + }; +}>; + +export type SetUserPasswordHelperApi = { + userId?: number; + password?: string; +}; + +export type SetUserPasswordHelperApiResponse = Array<{ + 'Set password'?: string; +}>; + +export type UnassignAgentHelperApi = { + agentId?: number; +}; + +export type UnassignAgentHelperApiResponse = Array<{ + Unassign?: string; +}>; + +export type Token = { + token: string; + expires: number; +}; + +export type TokenRequest = Array; + +export type DeleteAccessgroupsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/accessgroups'; +}; + +export type DeleteAccessgroupsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteAccessgroupsError = DeleteAccessgroupsErrors[keyof DeleteAccessgroupsErrors]; + +export type DeleteAccessgroupsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetAccessgroupsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/accessgroups'; +}; + +export type GetAccessgroupsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAccessgroupsError = GetAccessgroupsErrors[keyof GetAccessgroupsErrors]; + +export type GetAccessgroupsResponses = { + /** + * successful operation + */ + 200: AccessGroupListResponse; +}; + +export type GetAccessgroupsResponse = GetAccessgroupsResponses[keyof GetAccessgroupsResponses]; + +export type PatchAccessgroupsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/accessgroups'; +}; + +export type PatchAccessgroupsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchAccessgroupsError = PatchAccessgroupsErrors[keyof PatchAccessgroupsErrors]; + +export type PatchAccessgroupsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostAccessgroupsData = { + body: AccessGroupCreate; + path?: never; + query?: never; + url: '/api/v2/ui/accessgroups'; +}; + +export type PostAccessgroupsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostAccessgroupsError = PostAccessgroupsErrors[keyof PostAccessgroupsErrors]; + +export type PostAccessgroupsResponses = { + /** + * successful operation + */ + 201: AccessGroupPostPatchResponse; +}; + +export type PostAccessgroupsResponse = PostAccessgroupsResponses[keyof PostAccessgroupsResponses]; + +export type GetAccessgroupsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/accessgroups/count'; +}; + +export type GetAccessgroupsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAccessgroupsCountError = GetAccessgroupsCountErrors[keyof GetAccessgroupsCountErrors]; + +export type GetAccessgroupsCountResponses = { + /** + * successful operation + */ + 200: AccessGroupListResponse; +}; + +export type GetAccessgroupsCountResponse = GetAccessgroupsCountResponses[keyof GetAccessgroupsCountResponses]; + +export type GetAccessgroupsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/accessgroups/{id}/{relation}'; +}; + +export type GetAccessgroupsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAccessgroupsByIdByRelationError = + GetAccessgroupsByIdByRelationErrors[keyof GetAccessgroupsByIdByRelationErrors]; + +export type GetAccessgroupsByIdByRelationResponses = { + /** + * successful operation + */ + 200: AccessGroupRelationAgentMembersGetResponse; +}; + +export type GetAccessgroupsByIdByRelationResponse = + GetAccessgroupsByIdByRelationResponses[keyof GetAccessgroupsByIdByRelationResponses]; + +export type DeleteAccessgroupsByIdRelationshipsByRelationData = { + body: AccessGroupRelationAgentMembers; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/accessgroups/{id}/relationships/{relation}'; +}; + +export type DeleteAccessgroupsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteAccessgroupsByIdRelationshipsByRelationError = + DeleteAccessgroupsByIdRelationshipsByRelationErrors[keyof DeleteAccessgroupsByIdRelationshipsByRelationErrors]; + +export type DeleteAccessgroupsByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteAccessgroupsByIdRelationshipsByRelationResponse = + DeleteAccessgroupsByIdRelationshipsByRelationResponses[keyof DeleteAccessgroupsByIdRelationshipsByRelationResponses]; + +export type GetAccessgroupsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/accessgroups/{id}/relationships/{relation}'; +}; + +export type GetAccessgroupsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAccessgroupsByIdRelationshipsByRelationError = + GetAccessgroupsByIdRelationshipsByRelationErrors[keyof GetAccessgroupsByIdRelationshipsByRelationErrors]; + +export type GetAccessgroupsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: AccessGroupResponse; +}; + +export type GetAccessgroupsByIdRelationshipsByRelationResponse = + GetAccessgroupsByIdRelationshipsByRelationResponses[keyof GetAccessgroupsByIdRelationshipsByRelationResponses]; + +export type PatchAccessgroupsByIdRelationshipsByRelationData = { + body: AccessGroupRelationAgentMembers; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/accessgroups/{id}/relationships/{relation}'; +}; + +export type PatchAccessgroupsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchAccessgroupsByIdRelationshipsByRelationError = + PatchAccessgroupsByIdRelationshipsByRelationErrors[keyof PatchAccessgroupsByIdRelationshipsByRelationErrors]; + +export type PatchAccessgroupsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchAccessgroupsByIdRelationshipsByRelationResponse = + PatchAccessgroupsByIdRelationshipsByRelationResponses[keyof PatchAccessgroupsByIdRelationshipsByRelationResponses]; + +export type PostAccessgroupsByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/accessgroups/{id}/relationships/{relation}'; +}; + +export type PostAccessgroupsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostAccessgroupsByIdRelationshipsByRelationError = + PostAccessgroupsByIdRelationshipsByRelationErrors[keyof PostAccessgroupsByIdRelationshipsByRelationErrors]; + +export type PostAccessgroupsByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostAccessgroupsByIdRelationshipsByRelationResponse = + PostAccessgroupsByIdRelationshipsByRelationResponses[keyof PostAccessgroupsByIdRelationshipsByRelationResponses]; + +export type DeleteAccessgroupsByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/accessgroups/{id}'; +}; + +export type DeleteAccessgroupsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteAccessgroupsByIdError = DeleteAccessgroupsByIdErrors[keyof DeleteAccessgroupsByIdErrors]; + +export type DeleteAccessgroupsByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteAccessgroupsByIdResponse = DeleteAccessgroupsByIdResponses[keyof DeleteAccessgroupsByIdResponses]; + +export type GetAccessgroupsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/accessgroups/{id}'; +}; + +export type GetAccessgroupsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAccessgroupsByIdError = GetAccessgroupsByIdErrors[keyof GetAccessgroupsByIdErrors]; + +export type GetAccessgroupsByIdResponses = { + /** + * successful operation + */ + 200: AccessGroupResponse; +}; + +export type GetAccessgroupsByIdResponse = GetAccessgroupsByIdResponses[keyof GetAccessgroupsByIdResponses]; + +export type PatchAccessgroupsByIdData = { + body: AccessGroupPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/accessgroups/{id}'; +}; + +export type PatchAccessgroupsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchAccessgroupsByIdError = PatchAccessgroupsByIdErrors[keyof PatchAccessgroupsByIdErrors]; + +export type PatchAccessgroupsByIdResponses = { + /** + * successful operation + */ + 200: AccessGroupPostPatchResponse; +}; + +export type PatchAccessgroupsByIdResponse = PatchAccessgroupsByIdResponses[keyof PatchAccessgroupsByIdResponses]; + +export type DeleteAgentsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/agents'; +}; + +export type DeleteAgentsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteAgentsError = DeleteAgentsErrors[keyof DeleteAgentsErrors]; + +export type DeleteAgentsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetAgentsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agents'; +}; + +export type GetAgentsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgentsError = GetAgentsErrors[keyof GetAgentsErrors]; + +export type GetAgentsResponses = { + /** + * successful operation + */ + 200: AgentListResponse; +}; + +export type GetAgentsResponse = GetAgentsResponses[keyof GetAgentsResponses]; + +export type PatchAgentsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/agents'; +}; + +export type PatchAgentsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchAgentsError = PatchAgentsErrors[keyof PatchAgentsErrors]; + +export type PatchAgentsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetAgentsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agents/count'; +}; + +export type GetAgentsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgentsCountError = GetAgentsCountErrors[keyof GetAgentsCountErrors]; + +export type GetAgentsCountResponses = { + /** + * successful operation + */ + 200: AgentListResponse; +}; + +export type GetAgentsCountResponse = GetAgentsCountResponses[keyof GetAgentsCountResponses]; + +export type GetAgentsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agents/{id}/{relation}'; +}; + +export type GetAgentsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgentsByIdByRelationError = GetAgentsByIdByRelationErrors[keyof GetAgentsByIdByRelationErrors]; + +export type GetAgentsByIdByRelationResponses = { + /** + * successful operation + */ + 200: AgentRelationAssignmentsGetResponse; +}; + +export type GetAgentsByIdByRelationResponse = GetAgentsByIdByRelationResponses[keyof GetAgentsByIdByRelationResponses]; + +export type DeleteAgentsByIdRelationshipsByRelationData = { + body: AgentRelationAssignments; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agents/{id}/relationships/{relation}'; +}; + +export type DeleteAgentsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteAgentsByIdRelationshipsByRelationError = + DeleteAgentsByIdRelationshipsByRelationErrors[keyof DeleteAgentsByIdRelationshipsByRelationErrors]; + +export type DeleteAgentsByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteAgentsByIdRelationshipsByRelationResponse = + DeleteAgentsByIdRelationshipsByRelationResponses[keyof DeleteAgentsByIdRelationshipsByRelationResponses]; + +export type GetAgentsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agents/{id}/relationships/{relation}'; +}; + +export type GetAgentsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgentsByIdRelationshipsByRelationError = + GetAgentsByIdRelationshipsByRelationErrors[keyof GetAgentsByIdRelationshipsByRelationErrors]; + +export type GetAgentsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: AgentResponse; +}; + +export type GetAgentsByIdRelationshipsByRelationResponse = + GetAgentsByIdRelationshipsByRelationResponses[keyof GetAgentsByIdRelationshipsByRelationResponses]; + +export type PatchAgentsByIdRelationshipsByRelationData = { + body: AgentRelationAssignments; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agents/{id}/relationships/{relation}'; +}; + +export type PatchAgentsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchAgentsByIdRelationshipsByRelationError = + PatchAgentsByIdRelationshipsByRelationErrors[keyof PatchAgentsByIdRelationshipsByRelationErrors]; + +export type PatchAgentsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchAgentsByIdRelationshipsByRelationResponse = + PatchAgentsByIdRelationshipsByRelationResponses[keyof PatchAgentsByIdRelationshipsByRelationResponses]; + +export type PostAgentsByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agents/{id}/relationships/{relation}'; +}; + +export type PostAgentsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostAgentsByIdRelationshipsByRelationError = + PostAgentsByIdRelationshipsByRelationErrors[keyof PostAgentsByIdRelationshipsByRelationErrors]; + +export type PostAgentsByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostAgentsByIdRelationshipsByRelationResponse = + PostAgentsByIdRelationshipsByRelationResponses[keyof PostAgentsByIdRelationshipsByRelationResponses]; + +export type DeleteAgentsByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/agents/{id}'; +}; + +export type DeleteAgentsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteAgentsByIdError = DeleteAgentsByIdErrors[keyof DeleteAgentsByIdErrors]; + +export type DeleteAgentsByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteAgentsByIdResponse = DeleteAgentsByIdResponses[keyof DeleteAgentsByIdResponses]; + +export type GetAgentsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/agents/{id}'; +}; + +export type GetAgentsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgentsByIdError = GetAgentsByIdErrors[keyof GetAgentsByIdErrors]; + +export type GetAgentsByIdResponses = { + /** + * successful operation + */ + 200: AgentResponse; +}; + +export type GetAgentsByIdResponse = GetAgentsByIdResponses[keyof GetAgentsByIdResponses]; + +export type PatchAgentsByIdData = { + body: AgentPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/agents/{id}'; +}; + +export type PatchAgentsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchAgentsByIdError = PatchAgentsByIdErrors[keyof PatchAgentsByIdErrors]; + +export type PatchAgentsByIdResponses = { + /** + * successful operation + */ + 200: AgentPostPatchResponse; +}; + +export type PatchAgentsByIdResponse = PatchAgentsByIdResponses[keyof PatchAgentsByIdResponses]; + +export type DeleteAgentassignmentsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/agentassignments'; +}; + +export type DeleteAgentassignmentsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteAgentassignmentsError = DeleteAgentassignmentsErrors[keyof DeleteAgentassignmentsErrors]; + +export type DeleteAgentassignmentsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetAgentassignmentsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agentassignments'; +}; + +export type GetAgentassignmentsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgentassignmentsError = GetAgentassignmentsErrors[keyof GetAgentassignmentsErrors]; + +export type GetAgentassignmentsResponses = { + /** + * successful operation + */ + 200: AgentAssignmentListResponse; +}; + +export type GetAgentassignmentsResponse = GetAgentassignmentsResponses[keyof GetAgentassignmentsResponses]; + +export type PatchAgentassignmentsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/agentassignments'; +}; + +export type PatchAgentassignmentsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchAgentassignmentsError = PatchAgentassignmentsErrors[keyof PatchAgentassignmentsErrors]; + +export type PatchAgentassignmentsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostAgentassignmentsData = { + body: AgentAssignmentCreate; + path?: never; + query?: never; + url: '/api/v2/ui/agentassignments'; +}; + +export type PostAgentassignmentsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostAgentassignmentsError = PostAgentassignmentsErrors[keyof PostAgentassignmentsErrors]; + +export type PostAgentassignmentsResponses = { + /** + * successful operation + */ + 201: AgentAssignmentPostPatchResponse; +}; + +export type PostAgentassignmentsResponse = PostAgentassignmentsResponses[keyof PostAgentassignmentsResponses]; + +export type GetAgentassignmentsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agentassignments/count'; +}; + +export type GetAgentassignmentsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgentassignmentsCountError = GetAgentassignmentsCountErrors[keyof GetAgentassignmentsCountErrors]; + +export type GetAgentassignmentsCountResponses = { + /** + * successful operation + */ + 200: AgentAssignmentListResponse; +}; + +export type GetAgentassignmentsCountResponse = + GetAgentassignmentsCountResponses[keyof GetAgentassignmentsCountResponses]; + +export type GetAgentassignmentsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agentassignments/{id}/{relation}'; +}; + +export type GetAgentassignmentsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgentassignmentsByIdByRelationError = + GetAgentassignmentsByIdByRelationErrors[keyof GetAgentassignmentsByIdByRelationErrors]; + +export type GetAgentassignmentsByIdByRelationResponses = { + /** + * successful operation + */ + 200: AgentAssignmentRelationTaskGetResponse; +}; + +export type GetAgentassignmentsByIdByRelationResponse = + GetAgentassignmentsByIdByRelationResponses[keyof GetAgentassignmentsByIdByRelationResponses]; + +export type GetAgentassignmentsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agentassignments/{id}/relationships/{relation}'; +}; + +export type GetAgentassignmentsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgentassignmentsByIdRelationshipsByRelationError = + GetAgentassignmentsByIdRelationshipsByRelationErrors[keyof GetAgentassignmentsByIdRelationshipsByRelationErrors]; + +export type GetAgentassignmentsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: AgentAssignmentResponse; +}; + +export type GetAgentassignmentsByIdRelationshipsByRelationResponse = + GetAgentassignmentsByIdRelationshipsByRelationResponses[keyof GetAgentassignmentsByIdRelationshipsByRelationResponses]; + +export type PatchAgentassignmentsByIdRelationshipsByRelationData = { + body: AgentAssignmentRelationTask; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agentassignments/{id}/relationships/{relation}'; +}; + +export type PatchAgentassignmentsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchAgentassignmentsByIdRelationshipsByRelationError = + PatchAgentassignmentsByIdRelationshipsByRelationErrors[keyof PatchAgentassignmentsByIdRelationshipsByRelationErrors]; + +export type PatchAgentassignmentsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchAgentassignmentsByIdRelationshipsByRelationResponse = + PatchAgentassignmentsByIdRelationshipsByRelationResponses[keyof PatchAgentassignmentsByIdRelationshipsByRelationResponses]; + +export type DeleteAgentassignmentsByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/agentassignments/{id}'; +}; + +export type DeleteAgentassignmentsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteAgentassignmentsByIdError = DeleteAgentassignmentsByIdErrors[keyof DeleteAgentassignmentsByIdErrors]; + +export type DeleteAgentassignmentsByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteAgentassignmentsByIdResponse = + DeleteAgentassignmentsByIdResponses[keyof DeleteAgentassignmentsByIdResponses]; + +export type GetAgentassignmentsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/agentassignments/{id}'; +}; + +export type GetAgentassignmentsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgentassignmentsByIdError = GetAgentassignmentsByIdErrors[keyof GetAgentassignmentsByIdErrors]; + +export type GetAgentassignmentsByIdResponses = { + /** + * successful operation + */ + 200: AgentAssignmentResponse; +}; + +export type GetAgentassignmentsByIdResponse = GetAgentassignmentsByIdResponses[keyof GetAgentassignmentsByIdResponses]; + +export type PatchAgentassignmentsByIdData = { + body: AgentAssignmentPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/agentassignments/{id}'; +}; + +export type PatchAgentassignmentsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchAgentassignmentsByIdError = PatchAgentassignmentsByIdErrors[keyof PatchAgentassignmentsByIdErrors]; + +export type PatchAgentassignmentsByIdResponses = { + /** + * successful operation + */ + 200: AgentAssignmentPostPatchResponse; +}; + +export type PatchAgentassignmentsByIdResponse = + PatchAgentassignmentsByIdResponses[keyof PatchAgentassignmentsByIdResponses]; + +export type DeleteAgentbinariesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/agentbinaries'; +}; + +export type DeleteAgentbinariesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteAgentbinariesError = DeleteAgentbinariesErrors[keyof DeleteAgentbinariesErrors]; + +export type DeleteAgentbinariesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetAgentbinariesData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agentbinaries'; +}; + +export type GetAgentbinariesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgentbinariesError = GetAgentbinariesErrors[keyof GetAgentbinariesErrors]; + +export type GetAgentbinariesResponses = { + /** + * successful operation + */ + 200: AgentBinaryListResponse; +}; + +export type GetAgentbinariesResponse = GetAgentbinariesResponses[keyof GetAgentbinariesResponses]; + +export type PatchAgentbinariesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/agentbinaries'; +}; + +export type PatchAgentbinariesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchAgentbinariesError = PatchAgentbinariesErrors[keyof PatchAgentbinariesErrors]; + +export type PatchAgentbinariesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostAgentbinariesData = { + body: AgentBinaryCreate; + path?: never; + query?: never; + url: '/api/v2/ui/agentbinaries'; +}; + +export type PostAgentbinariesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostAgentbinariesError = PostAgentbinariesErrors[keyof PostAgentbinariesErrors]; + +export type PostAgentbinariesResponses = { + /** + * successful operation + */ + 201: AgentBinaryPostPatchResponse; +}; + +export type PostAgentbinariesResponse = PostAgentbinariesResponses[keyof PostAgentbinariesResponses]; + +export type GetAgentbinariesCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agentbinaries/count'; +}; + +export type GetAgentbinariesCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgentbinariesCountError = GetAgentbinariesCountErrors[keyof GetAgentbinariesCountErrors]; + +export type GetAgentbinariesCountResponses = { + /** + * successful operation + */ + 200: AgentBinaryListResponse; +}; + +export type GetAgentbinariesCountResponse = GetAgentbinariesCountResponses[keyof GetAgentbinariesCountResponses]; + +export type DeleteAgentbinariesByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/agentbinaries/{id}'; +}; + +export type DeleteAgentbinariesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteAgentbinariesByIdError = DeleteAgentbinariesByIdErrors[keyof DeleteAgentbinariesByIdErrors]; + +export type DeleteAgentbinariesByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteAgentbinariesByIdResponse = DeleteAgentbinariesByIdResponses[keyof DeleteAgentbinariesByIdResponses]; + +export type GetAgentbinariesByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/agentbinaries/{id}'; +}; + +export type GetAgentbinariesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgentbinariesByIdError = GetAgentbinariesByIdErrors[keyof GetAgentbinariesByIdErrors]; + +export type GetAgentbinariesByIdResponses = { + /** + * successful operation + */ + 200: AgentBinaryResponse; +}; + +export type GetAgentbinariesByIdResponse = GetAgentbinariesByIdResponses[keyof GetAgentbinariesByIdResponses]; + +export type PatchAgentbinariesByIdData = { + body: AgentBinaryPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/agentbinaries/{id}'; +}; + +export type PatchAgentbinariesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchAgentbinariesByIdError = PatchAgentbinariesByIdErrors[keyof PatchAgentbinariesByIdErrors]; + +export type PatchAgentbinariesByIdResponses = { + /** + * successful operation + */ + 200: AgentBinaryPostPatchResponse; +}; + +export type PatchAgentbinariesByIdResponse = PatchAgentbinariesByIdResponses[keyof PatchAgentbinariesByIdResponses]; + +export type DeleteAgenterrorsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/agenterrors'; +}; + +export type DeleteAgenterrorsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteAgenterrorsError = DeleteAgenterrorsErrors[keyof DeleteAgenterrorsErrors]; + +export type DeleteAgenterrorsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetAgenterrorsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agenterrors'; +}; + +export type GetAgenterrorsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgenterrorsError = GetAgenterrorsErrors[keyof GetAgenterrorsErrors]; + +export type GetAgenterrorsResponses = { + /** + * successful operation + */ + 200: AgentErrorListResponse; +}; + +export type GetAgenterrorsResponse = GetAgenterrorsResponses[keyof GetAgenterrorsResponses]; + +export type GetAgenterrorsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agenterrors/count'; +}; + +export type GetAgenterrorsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgenterrorsCountError = GetAgenterrorsCountErrors[keyof GetAgenterrorsCountErrors]; + +export type GetAgenterrorsCountResponses = { + /** + * successful operation + */ + 200: AgentErrorListResponse; +}; + +export type GetAgenterrorsCountResponse = GetAgenterrorsCountResponses[keyof GetAgenterrorsCountResponses]; + +export type GetAgenterrorsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agenterrors/{id}/{relation}'; +}; + +export type GetAgenterrorsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgenterrorsByIdByRelationError = + GetAgenterrorsByIdByRelationErrors[keyof GetAgenterrorsByIdByRelationErrors]; + +export type GetAgenterrorsByIdByRelationResponses = { + /** + * successful operation + */ + 200: AgentErrorRelationTaskGetResponse; +}; + +export type GetAgenterrorsByIdByRelationResponse = + GetAgenterrorsByIdByRelationResponses[keyof GetAgenterrorsByIdByRelationResponses]; + +export type GetAgenterrorsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agenterrors/{id}/relationships/{relation}'; +}; + +export type GetAgenterrorsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgenterrorsByIdRelationshipsByRelationError = + GetAgenterrorsByIdRelationshipsByRelationErrors[keyof GetAgenterrorsByIdRelationshipsByRelationErrors]; + +export type GetAgenterrorsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: AgentErrorResponse; +}; + +export type GetAgenterrorsByIdRelationshipsByRelationResponse = + GetAgenterrorsByIdRelationshipsByRelationResponses[keyof GetAgenterrorsByIdRelationshipsByRelationResponses]; + +export type PatchAgenterrorsByIdRelationshipsByRelationData = { + body: AgentErrorRelationTask; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/agenterrors/{id}/relationships/{relation}'; +}; + +export type PatchAgenterrorsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchAgenterrorsByIdRelationshipsByRelationError = + PatchAgenterrorsByIdRelationshipsByRelationErrors[keyof PatchAgenterrorsByIdRelationshipsByRelationErrors]; + +export type PatchAgenterrorsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchAgenterrorsByIdRelationshipsByRelationResponse = + PatchAgenterrorsByIdRelationshipsByRelationResponses[keyof PatchAgenterrorsByIdRelationshipsByRelationResponses]; + +export type DeleteAgenterrorsByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/agenterrors/{id}'; +}; + +export type DeleteAgenterrorsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteAgenterrorsByIdError = DeleteAgenterrorsByIdErrors[keyof DeleteAgenterrorsByIdErrors]; + +export type DeleteAgenterrorsByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteAgenterrorsByIdResponse = DeleteAgenterrorsByIdResponses[keyof DeleteAgenterrorsByIdResponses]; + +export type GetAgenterrorsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/agenterrors/{id}'; +}; + +export type GetAgenterrorsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgenterrorsByIdError = GetAgenterrorsByIdErrors[keyof GetAgenterrorsByIdErrors]; + +export type GetAgenterrorsByIdResponses = { + /** + * successful operation + */ + 200: AgentErrorResponse; +}; + +export type GetAgenterrorsByIdResponse = GetAgenterrorsByIdResponses[keyof GetAgenterrorsByIdResponses]; + +export type DeleteAgentstatsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/agentstats'; +}; + +export type DeleteAgentstatsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteAgentstatsError = DeleteAgentstatsErrors[keyof DeleteAgentstatsErrors]; + +export type DeleteAgentstatsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetAgentstatsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agentstats'; +}; + +export type GetAgentstatsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgentstatsError = GetAgentstatsErrors[keyof GetAgentstatsErrors]; + +export type GetAgentstatsResponses = { + /** + * successful operation + */ + 200: AgentStatListResponse; +}; + +export type GetAgentstatsResponse = GetAgentstatsResponses[keyof GetAgentstatsResponses]; + +export type GetAgentstatsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/agentstats/count'; +}; + +export type GetAgentstatsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetAgentstatsCountError = GetAgentstatsCountErrors[keyof GetAgentstatsCountErrors]; + +export type GetAgentstatsCountResponses = { + /** + * successful operation + */ + 200: AgentStatListResponse; +}; + +export type GetAgentstatsCountResponse = GetAgentstatsCountResponses[keyof GetAgentstatsCountResponses]; + +export type DeleteAgentstatsByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/agentstats/{id}'; +}; + +export type DeleteAgentstatsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteAgentstatsByIdError = DeleteAgentstatsByIdErrors[keyof DeleteAgentstatsByIdErrors]; + +export type DeleteAgentstatsByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteAgentstatsByIdResponse = DeleteAgentstatsByIdResponses[keyof DeleteAgentstatsByIdResponses]; + +export type GetAgentstatsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/agentstats/{id}'; +}; + +export type GetAgentstatsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetAgentstatsByIdError = GetAgentstatsByIdErrors[keyof GetAgentstatsByIdErrors]; + +export type GetAgentstatsByIdResponses = { + /** + * successful operation + */ + 200: AgentStatResponse; +}; + +export type GetAgentstatsByIdResponse = GetAgentstatsByIdResponses[keyof GetAgentstatsByIdResponses]; + +export type DeleteApiTokensData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/apiTokens'; +}; + +export type DeleteApiTokensErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteApiTokensError = DeleteApiTokensErrors[keyof DeleteApiTokensErrors]; + +export type DeleteApiTokensResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetApiTokensData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/apiTokens'; +}; + +export type GetApiTokensErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetApiTokensError = GetApiTokensErrors[keyof GetApiTokensErrors]; + +export type GetApiTokensResponses = { + /** + * successful operation + */ + 200: ApiTokenListResponse; +}; + +export type GetApiTokensResponse = GetApiTokensResponses[keyof GetApiTokensResponses]; + +export type PatchApiTokensData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/apiTokens'; +}; + +export type PatchApiTokensErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchApiTokensError = PatchApiTokensErrors[keyof PatchApiTokensErrors]; + +export type PatchApiTokensResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostApiTokensData = { + body: ApiTokenCreate; + path?: never; + query?: never; + url: '/api/v2/ui/apiTokens'; +}; + +export type PostApiTokensErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostApiTokensError = PostApiTokensErrors[keyof PostApiTokensErrors]; + +export type PostApiTokensResponses = { + /** + * successful operation + */ + 201: ApiTokenPostPatchResponse; +}; + +export type PostApiTokensResponse = PostApiTokensResponses[keyof PostApiTokensResponses]; + +export type GetApiTokensCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/apiTokens/count'; +}; + +export type GetApiTokensCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetApiTokensCountError = GetApiTokensCountErrors[keyof GetApiTokensCountErrors]; + +export type GetApiTokensCountResponses = { + /** + * successful operation + */ + 200: ApiTokenListResponse; +}; + +export type GetApiTokensCountResponse = GetApiTokensCountResponses[keyof GetApiTokensCountResponses]; + +export type GetApiTokensByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/apiTokens/{id}/{relation}'; +}; + +export type GetApiTokensByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetApiTokensByIdByRelationError = GetApiTokensByIdByRelationErrors[keyof GetApiTokensByIdByRelationErrors]; + +export type GetApiTokensByIdByRelationResponses = { + /** + * successful operation + */ + 200: ApiTokenRelationUserGetResponse; +}; + +export type GetApiTokensByIdByRelationResponse = + GetApiTokensByIdByRelationResponses[keyof GetApiTokensByIdByRelationResponses]; + +export type GetApiTokensByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/apiTokens/{id}/relationships/{relation}'; +}; + +export type GetApiTokensByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetApiTokensByIdRelationshipsByRelationError = + GetApiTokensByIdRelationshipsByRelationErrors[keyof GetApiTokensByIdRelationshipsByRelationErrors]; + +export type GetApiTokensByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: ApiTokenResponse; +}; + +export type GetApiTokensByIdRelationshipsByRelationResponse = + GetApiTokensByIdRelationshipsByRelationResponses[keyof GetApiTokensByIdRelationshipsByRelationResponses]; + +export type PatchApiTokensByIdRelationshipsByRelationData = { + body: ApiTokenRelationUser; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/apiTokens/{id}/relationships/{relation}'; +}; + +export type PatchApiTokensByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchApiTokensByIdRelationshipsByRelationError = + PatchApiTokensByIdRelationshipsByRelationErrors[keyof PatchApiTokensByIdRelationshipsByRelationErrors]; + +export type PatchApiTokensByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchApiTokensByIdRelationshipsByRelationResponse = + PatchApiTokensByIdRelationshipsByRelationResponses[keyof PatchApiTokensByIdRelationshipsByRelationResponses]; + +export type DeleteApiTokensByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/apiTokens/{id}'; +}; + +export type DeleteApiTokensByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteApiTokensByIdError = DeleteApiTokensByIdErrors[keyof DeleteApiTokensByIdErrors]; + +export type DeleteApiTokensByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteApiTokensByIdResponse = DeleteApiTokensByIdResponses[keyof DeleteApiTokensByIdResponses]; + +export type GetApiTokensByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/apiTokens/{id}'; +}; + +export type GetApiTokensByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetApiTokensByIdError = GetApiTokensByIdErrors[keyof GetApiTokensByIdErrors]; + +export type GetApiTokensByIdResponses = { + /** + * successful operation + */ + 200: ApiTokenResponse; +}; + +export type GetApiTokensByIdResponse = GetApiTokensByIdResponses[keyof GetApiTokensByIdResponses]; + +export type PatchApiTokensByIdData = { + body: ApiTokenPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/apiTokens/{id}'; +}; + +export type PatchApiTokensByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchApiTokensByIdError = PatchApiTokensByIdErrors[keyof PatchApiTokensByIdErrors]; + +export type PatchApiTokensByIdResponses = { + /** + * successful operation + */ + 200: ApiTokenPostPatchResponse; +}; + +export type PatchApiTokensByIdResponse = PatchApiTokensByIdResponses[keyof PatchApiTokensByIdResponses]; + +export type GetChunksData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/chunks'; +}; + +export type GetChunksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetChunksError = GetChunksErrors[keyof GetChunksErrors]; + +export type GetChunksResponses = { + /** + * successful operation + */ + 200: ChunkListResponse; +}; + +export type GetChunksResponse = GetChunksResponses[keyof GetChunksResponses]; + +export type GetChunksCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/chunks/count'; +}; + +export type GetChunksCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetChunksCountError = GetChunksCountErrors[keyof GetChunksCountErrors]; + +export type GetChunksCountResponses = { + /** + * successful operation + */ + 200: ChunkListResponse; +}; + +export type GetChunksCountResponse = GetChunksCountResponses[keyof GetChunksCountResponses]; + +export type GetChunksByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/chunks/{id}/{relation}'; +}; + +export type GetChunksByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetChunksByIdByRelationError = GetChunksByIdByRelationErrors[keyof GetChunksByIdByRelationErrors]; + +export type GetChunksByIdByRelationResponses = { + /** + * successful operation + */ + 200: ChunkRelationTaskGetResponse; +}; + +export type GetChunksByIdByRelationResponse = GetChunksByIdByRelationResponses[keyof GetChunksByIdByRelationResponses]; + +export type GetChunksByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/chunks/{id}/relationships/{relation}'; +}; + +export type GetChunksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetChunksByIdRelationshipsByRelationError = + GetChunksByIdRelationshipsByRelationErrors[keyof GetChunksByIdRelationshipsByRelationErrors]; + +export type GetChunksByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: ChunkResponse; +}; + +export type GetChunksByIdRelationshipsByRelationResponse = + GetChunksByIdRelationshipsByRelationResponses[keyof GetChunksByIdRelationshipsByRelationResponses]; + +export type PatchChunksByIdRelationshipsByRelationData = { + body: ChunkRelationTask; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/chunks/{id}/relationships/{relation}'; +}; + +export type PatchChunksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchChunksByIdRelationshipsByRelationError = + PatchChunksByIdRelationshipsByRelationErrors[keyof PatchChunksByIdRelationshipsByRelationErrors]; + +export type PatchChunksByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchChunksByIdRelationshipsByRelationResponse = + PatchChunksByIdRelationshipsByRelationResponses[keyof PatchChunksByIdRelationshipsByRelationResponses]; + +export type GetChunksByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/chunks/{id}'; +}; + +export type GetChunksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetChunksByIdError = GetChunksByIdErrors[keyof GetChunksByIdErrors]; + +export type GetChunksByIdResponses = { + /** + * successful operation + */ + 200: ChunkResponse; +}; + +export type GetChunksByIdResponse = GetChunksByIdResponses[keyof GetChunksByIdResponses]; + +export type GetConfigsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/configs'; +}; + +export type GetConfigsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetConfigsError = GetConfigsErrors[keyof GetConfigsErrors]; + +export type GetConfigsResponses = { + /** + * successful operation + */ + 200: ConfigListResponse; +}; + +export type GetConfigsResponse = GetConfigsResponses[keyof GetConfigsResponses]; + +export type PatchConfigsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/configs'; +}; + +export type PatchConfigsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchConfigsError = PatchConfigsErrors[keyof PatchConfigsErrors]; + +export type PatchConfigsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetConfigsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/configs/count'; +}; + +export type GetConfigsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetConfigsCountError = GetConfigsCountErrors[keyof GetConfigsCountErrors]; + +export type GetConfigsCountResponses = { + /** + * successful operation + */ + 200: ConfigListResponse; +}; + +export type GetConfigsCountResponse = GetConfigsCountResponses[keyof GetConfigsCountResponses]; + +export type GetConfigsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/configs/{id}/{relation}'; +}; + +export type GetConfigsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetConfigsByIdByRelationError = GetConfigsByIdByRelationErrors[keyof GetConfigsByIdByRelationErrors]; + +export type GetConfigsByIdByRelationResponses = { + /** + * successful operation + */ + 200: ConfigRelationConfigSectionGetResponse; +}; + +export type GetConfigsByIdByRelationResponse = + GetConfigsByIdByRelationResponses[keyof GetConfigsByIdByRelationResponses]; + +export type GetConfigsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/configs/{id}/relationships/{relation}'; +}; + +export type GetConfigsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetConfigsByIdRelationshipsByRelationError = + GetConfigsByIdRelationshipsByRelationErrors[keyof GetConfigsByIdRelationshipsByRelationErrors]; + +export type GetConfigsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: ConfigResponse; +}; + +export type GetConfigsByIdRelationshipsByRelationResponse = + GetConfigsByIdRelationshipsByRelationResponses[keyof GetConfigsByIdRelationshipsByRelationResponses]; + +export type PatchConfigsByIdRelationshipsByRelationData = { + body: ConfigRelationConfigSection; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/configs/{id}/relationships/{relation}'; +}; + +export type PatchConfigsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchConfigsByIdRelationshipsByRelationError = + PatchConfigsByIdRelationshipsByRelationErrors[keyof PatchConfigsByIdRelationshipsByRelationErrors]; + +export type PatchConfigsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchConfigsByIdRelationshipsByRelationResponse = + PatchConfigsByIdRelationshipsByRelationResponses[keyof PatchConfigsByIdRelationshipsByRelationResponses]; + +export type GetConfigsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/configs/{id}'; +}; + +export type GetConfigsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetConfigsByIdError = GetConfigsByIdErrors[keyof GetConfigsByIdErrors]; + +export type GetConfigsByIdResponses = { + /** + * successful operation + */ + 200: ConfigResponse; +}; + +export type GetConfigsByIdResponse = GetConfigsByIdResponses[keyof GetConfigsByIdResponses]; + +export type PatchConfigsByIdData = { + body: ConfigPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/configs/{id}'; +}; + +export type PatchConfigsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchConfigsByIdError = PatchConfigsByIdErrors[keyof PatchConfigsByIdErrors]; + +export type PatchConfigsByIdResponses = { + /** + * successful operation + */ + 200: ConfigPostPatchResponse; +}; + +export type PatchConfigsByIdResponse = PatchConfigsByIdResponses[keyof PatchConfigsByIdResponses]; + +export type GetConfigsectionsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/configsections'; +}; + +export type GetConfigsectionsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetConfigsectionsError = GetConfigsectionsErrors[keyof GetConfigsectionsErrors]; + +export type GetConfigsectionsResponses = { + /** + * successful operation + */ + 200: ConfigSectionListResponse; +}; + +export type GetConfigsectionsResponse = GetConfigsectionsResponses[keyof GetConfigsectionsResponses]; + +export type GetConfigsectionsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/configsections/count'; +}; + +export type GetConfigsectionsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetConfigsectionsCountError = GetConfigsectionsCountErrors[keyof GetConfigsectionsCountErrors]; + +export type GetConfigsectionsCountResponses = { + /** + * successful operation + */ + 200: ConfigSectionListResponse; +}; + +export type GetConfigsectionsCountResponse = GetConfigsectionsCountResponses[keyof GetConfigsectionsCountResponses]; + +export type GetConfigsectionsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/configsections/{id}'; +}; + +export type GetConfigsectionsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetConfigsectionsByIdError = GetConfigsectionsByIdErrors[keyof GetConfigsectionsByIdErrors]; + +export type GetConfigsectionsByIdResponses = { + /** + * successful operation + */ + 200: ConfigSectionResponse; +}; + +export type GetConfigsectionsByIdResponse = GetConfigsectionsByIdResponses[keyof GetConfigsectionsByIdResponses]; + +export type DeleteCrackersData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/crackers'; +}; + +export type DeleteCrackersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteCrackersError = DeleteCrackersErrors[keyof DeleteCrackersErrors]; + +export type DeleteCrackersResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetCrackersData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/crackers'; +}; + +export type GetCrackersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetCrackersError = GetCrackersErrors[keyof GetCrackersErrors]; + +export type GetCrackersResponses = { + /** + * successful operation + */ + 200: CrackerBinaryListResponse; +}; + +export type GetCrackersResponse = GetCrackersResponses[keyof GetCrackersResponses]; + +export type PatchCrackersData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/crackers'; +}; + +export type PatchCrackersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchCrackersError = PatchCrackersErrors[keyof PatchCrackersErrors]; + +export type PatchCrackersResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostCrackersData = { + body: CrackerBinaryCreate; + path?: never; + query?: never; + url: '/api/v2/ui/crackers'; +}; + +export type PostCrackersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostCrackersError = PostCrackersErrors[keyof PostCrackersErrors]; + +export type PostCrackersResponses = { + /** + * successful operation + */ + 201: CrackerBinaryPostPatchResponse; +}; + +export type PostCrackersResponse = PostCrackersResponses[keyof PostCrackersResponses]; + +export type GetCrackersCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/crackers/count'; +}; + +export type GetCrackersCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetCrackersCountError = GetCrackersCountErrors[keyof GetCrackersCountErrors]; + +export type GetCrackersCountResponses = { + /** + * successful operation + */ + 200: CrackerBinaryListResponse; +}; + +export type GetCrackersCountResponse = GetCrackersCountResponses[keyof GetCrackersCountResponses]; + +export type GetCrackersByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackers/{id}/{relation}'; +}; + +export type GetCrackersByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetCrackersByIdByRelationError = GetCrackersByIdByRelationErrors[keyof GetCrackersByIdByRelationErrors]; + +export type GetCrackersByIdByRelationResponses = { + /** + * successful operation + */ + 200: CrackerBinaryRelationTasksGetResponse; +}; + +export type GetCrackersByIdByRelationResponse = + GetCrackersByIdByRelationResponses[keyof GetCrackersByIdByRelationResponses]; + +export type DeleteCrackersByIdRelationshipsByRelationData = { + body: CrackerBinaryRelationTasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackers/{id}/relationships/{relation}'; +}; + +export type DeleteCrackersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteCrackersByIdRelationshipsByRelationError = + DeleteCrackersByIdRelationshipsByRelationErrors[keyof DeleteCrackersByIdRelationshipsByRelationErrors]; + +export type DeleteCrackersByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteCrackersByIdRelationshipsByRelationResponse = + DeleteCrackersByIdRelationshipsByRelationResponses[keyof DeleteCrackersByIdRelationshipsByRelationResponses]; + +export type GetCrackersByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackers/{id}/relationships/{relation}'; +}; + +export type GetCrackersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetCrackersByIdRelationshipsByRelationError = + GetCrackersByIdRelationshipsByRelationErrors[keyof GetCrackersByIdRelationshipsByRelationErrors]; + +export type GetCrackersByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: CrackerBinaryResponse; +}; + +export type GetCrackersByIdRelationshipsByRelationResponse = + GetCrackersByIdRelationshipsByRelationResponses[keyof GetCrackersByIdRelationshipsByRelationResponses]; + +export type PatchCrackersByIdRelationshipsByRelationData = { + body: CrackerBinaryRelationTasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackers/{id}/relationships/{relation}'; +}; + +export type PatchCrackersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchCrackersByIdRelationshipsByRelationError = + PatchCrackersByIdRelationshipsByRelationErrors[keyof PatchCrackersByIdRelationshipsByRelationErrors]; + +export type PatchCrackersByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchCrackersByIdRelationshipsByRelationResponse = + PatchCrackersByIdRelationshipsByRelationResponses[keyof PatchCrackersByIdRelationshipsByRelationResponses]; + +export type PostCrackersByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackers/{id}/relationships/{relation}'; +}; + +export type PostCrackersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostCrackersByIdRelationshipsByRelationError = + PostCrackersByIdRelationshipsByRelationErrors[keyof PostCrackersByIdRelationshipsByRelationErrors]; + +export type PostCrackersByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostCrackersByIdRelationshipsByRelationResponse = + PostCrackersByIdRelationshipsByRelationResponses[keyof PostCrackersByIdRelationshipsByRelationResponses]; + +export type DeleteCrackersByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/crackers/{id}'; +}; + +export type DeleteCrackersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteCrackersByIdError = DeleteCrackersByIdErrors[keyof DeleteCrackersByIdErrors]; + +export type DeleteCrackersByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteCrackersByIdResponse = DeleteCrackersByIdResponses[keyof DeleteCrackersByIdResponses]; + +export type GetCrackersByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/crackers/{id}'; +}; + +export type GetCrackersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetCrackersByIdError = GetCrackersByIdErrors[keyof GetCrackersByIdErrors]; + +export type GetCrackersByIdResponses = { + /** + * successful operation + */ + 200: CrackerBinaryResponse; +}; + +export type GetCrackersByIdResponse = GetCrackersByIdResponses[keyof GetCrackersByIdResponses]; + +export type PatchCrackersByIdData = { + body: CrackerBinaryPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/crackers/{id}'; +}; + +export type PatchCrackersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchCrackersByIdError = PatchCrackersByIdErrors[keyof PatchCrackersByIdErrors]; + +export type PatchCrackersByIdResponses = { + /** + * successful operation + */ + 200: CrackerBinaryPostPatchResponse; +}; + +export type PatchCrackersByIdResponse = PatchCrackersByIdResponses[keyof PatchCrackersByIdResponses]; + +export type DeleteCrackertypesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/crackertypes'; +}; + +export type DeleteCrackertypesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteCrackertypesError = DeleteCrackertypesErrors[keyof DeleteCrackertypesErrors]; + +export type DeleteCrackertypesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetCrackertypesData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/crackertypes'; +}; + +export type GetCrackertypesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetCrackertypesError = GetCrackertypesErrors[keyof GetCrackertypesErrors]; + +export type GetCrackertypesResponses = { + /** + * successful operation + */ + 200: CrackerBinaryTypeListResponse; +}; + +export type GetCrackertypesResponse = GetCrackertypesResponses[keyof GetCrackertypesResponses]; + +export type PatchCrackertypesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/crackertypes'; +}; + +export type PatchCrackertypesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchCrackertypesError = PatchCrackertypesErrors[keyof PatchCrackertypesErrors]; + +export type PatchCrackertypesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostCrackertypesData = { + body: CrackerBinaryTypeCreate; + path?: never; + query?: never; + url: '/api/v2/ui/crackertypes'; +}; + +export type PostCrackertypesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostCrackertypesError = PostCrackertypesErrors[keyof PostCrackertypesErrors]; + +export type PostCrackertypesResponses = { + /** + * successful operation + */ + 201: CrackerBinaryTypePostPatchResponse; +}; + +export type PostCrackertypesResponse = PostCrackertypesResponses[keyof PostCrackertypesResponses]; + +export type GetCrackertypesCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/crackertypes/count'; +}; + +export type GetCrackertypesCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetCrackertypesCountError = GetCrackertypesCountErrors[keyof GetCrackertypesCountErrors]; + +export type GetCrackertypesCountResponses = { + /** + * successful operation + */ + 200: CrackerBinaryTypeListResponse; +}; + +export type GetCrackertypesCountResponse = GetCrackertypesCountResponses[keyof GetCrackertypesCountResponses]; + +export type GetCrackertypesByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackertypes/{id}/{relation}'; +}; + +export type GetCrackertypesByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetCrackertypesByIdByRelationError = + GetCrackertypesByIdByRelationErrors[keyof GetCrackertypesByIdByRelationErrors]; + +export type GetCrackertypesByIdByRelationResponses = { + /** + * successful operation + */ + 200: CrackerBinaryTypeRelationTasksGetResponse; +}; + +export type GetCrackertypesByIdByRelationResponse = + GetCrackertypesByIdByRelationResponses[keyof GetCrackertypesByIdByRelationResponses]; + +export type DeleteCrackertypesByIdRelationshipsByRelationData = { + body: CrackerBinaryTypeRelationTasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackertypes/{id}/relationships/{relation}'; +}; + +export type DeleteCrackertypesByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteCrackertypesByIdRelationshipsByRelationError = + DeleteCrackertypesByIdRelationshipsByRelationErrors[keyof DeleteCrackertypesByIdRelationshipsByRelationErrors]; + +export type DeleteCrackertypesByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteCrackertypesByIdRelationshipsByRelationResponse = + DeleteCrackertypesByIdRelationshipsByRelationResponses[keyof DeleteCrackertypesByIdRelationshipsByRelationResponses]; + +export type GetCrackertypesByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackertypes/{id}/relationships/{relation}'; +}; + +export type GetCrackertypesByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetCrackertypesByIdRelationshipsByRelationError = + GetCrackertypesByIdRelationshipsByRelationErrors[keyof GetCrackertypesByIdRelationshipsByRelationErrors]; + +export type GetCrackertypesByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: CrackerBinaryTypeResponse; +}; + +export type GetCrackertypesByIdRelationshipsByRelationResponse = + GetCrackertypesByIdRelationshipsByRelationResponses[keyof GetCrackertypesByIdRelationshipsByRelationResponses]; + +export type PatchCrackertypesByIdRelationshipsByRelationData = { + body: CrackerBinaryTypeRelationTasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackertypes/{id}/relationships/{relation}'; +}; + +export type PatchCrackertypesByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchCrackertypesByIdRelationshipsByRelationError = + PatchCrackertypesByIdRelationshipsByRelationErrors[keyof PatchCrackertypesByIdRelationshipsByRelationErrors]; + +export type PatchCrackertypesByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchCrackertypesByIdRelationshipsByRelationResponse = + PatchCrackertypesByIdRelationshipsByRelationResponses[keyof PatchCrackertypesByIdRelationshipsByRelationResponses]; + +export type PostCrackertypesByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/crackertypes/{id}/relationships/{relation}'; +}; + +export type PostCrackertypesByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostCrackertypesByIdRelationshipsByRelationError = + PostCrackertypesByIdRelationshipsByRelationErrors[keyof PostCrackertypesByIdRelationshipsByRelationErrors]; + +export type PostCrackertypesByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostCrackertypesByIdRelationshipsByRelationResponse = + PostCrackertypesByIdRelationshipsByRelationResponses[keyof PostCrackertypesByIdRelationshipsByRelationResponses]; + +export type DeleteCrackertypesByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/crackertypes/{id}'; +}; + +export type DeleteCrackertypesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteCrackertypesByIdError = DeleteCrackertypesByIdErrors[keyof DeleteCrackertypesByIdErrors]; + +export type DeleteCrackertypesByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteCrackertypesByIdResponse = DeleteCrackertypesByIdResponses[keyof DeleteCrackertypesByIdResponses]; + +export type GetCrackertypesByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/crackertypes/{id}'; +}; + +export type GetCrackertypesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetCrackertypesByIdError = GetCrackertypesByIdErrors[keyof GetCrackertypesByIdErrors]; + +export type GetCrackertypesByIdResponses = { + /** + * successful operation + */ + 200: CrackerBinaryTypeResponse; +}; + +export type GetCrackertypesByIdResponse = GetCrackertypesByIdResponses[keyof GetCrackertypesByIdResponses]; + +export type PatchCrackertypesByIdData = { + body: CrackerBinaryTypePatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/crackertypes/{id}'; +}; + +export type PatchCrackertypesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchCrackertypesByIdError = PatchCrackertypesByIdErrors[keyof PatchCrackertypesByIdErrors]; + +export type PatchCrackertypesByIdResponses = { + /** + * successful operation + */ + 200: CrackerBinaryTypePostPatchResponse; +}; + +export type PatchCrackertypesByIdResponse = PatchCrackertypesByIdResponses[keyof PatchCrackertypesByIdResponses]; + +export type DeleteFilesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/files'; +}; + +export type DeleteFilesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteFilesError = DeleteFilesErrors[keyof DeleteFilesErrors]; + +export type DeleteFilesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetFilesData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/files'; +}; + +export type GetFilesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetFilesError = GetFilesErrors[keyof GetFilesErrors]; + +export type GetFilesResponses = { + /** + * successful operation + */ + 200: FileListResponse; +}; + +export type GetFilesResponse = GetFilesResponses[keyof GetFilesResponses]; + +export type PatchFilesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/files'; +}; + +export type PatchFilesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchFilesError = PatchFilesErrors[keyof PatchFilesErrors]; + +export type PatchFilesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostFilesData = { + body: FileCreate; + path?: never; + query?: never; + url: '/api/v2/ui/files'; +}; + +export type PostFilesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostFilesError = PostFilesErrors[keyof PostFilesErrors]; + +export type PostFilesResponses = { + /** + * successful operation + */ + 201: FilePostPatchResponse; +}; + +export type PostFilesResponse = PostFilesResponses[keyof PostFilesResponses]; + +export type GetFilesCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/files/count'; +}; + +export type GetFilesCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetFilesCountError = GetFilesCountErrors[keyof GetFilesCountErrors]; + +export type GetFilesCountResponses = { + /** + * successful operation + */ + 200: FileListResponse; +}; + +export type GetFilesCountResponse = GetFilesCountResponses[keyof GetFilesCountResponses]; + +export type GetFilesByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/files/{id}/{relation}'; +}; + +export type GetFilesByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetFilesByIdByRelationError = GetFilesByIdByRelationErrors[keyof GetFilesByIdByRelationErrors]; + +export type GetFilesByIdByRelationResponses = { + /** + * successful operation + */ + 200: FileRelationAccessGroupGetResponse; +}; + +export type GetFilesByIdByRelationResponse = GetFilesByIdByRelationResponses[keyof GetFilesByIdByRelationResponses]; + +export type GetFilesByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/files/{id}/relationships/{relation}'; +}; + +export type GetFilesByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetFilesByIdRelationshipsByRelationError = + GetFilesByIdRelationshipsByRelationErrors[keyof GetFilesByIdRelationshipsByRelationErrors]; + +export type GetFilesByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: FileResponse; +}; + +export type GetFilesByIdRelationshipsByRelationResponse = + GetFilesByIdRelationshipsByRelationResponses[keyof GetFilesByIdRelationshipsByRelationResponses]; + +export type PatchFilesByIdRelationshipsByRelationData = { + body: FileRelationAccessGroup; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/files/{id}/relationships/{relation}'; +}; + +export type PatchFilesByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchFilesByIdRelationshipsByRelationError = + PatchFilesByIdRelationshipsByRelationErrors[keyof PatchFilesByIdRelationshipsByRelationErrors]; + +export type PatchFilesByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchFilesByIdRelationshipsByRelationResponse = + PatchFilesByIdRelationshipsByRelationResponses[keyof PatchFilesByIdRelationshipsByRelationResponses]; + +export type DeleteFilesByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/files/{id}'; +}; + +export type DeleteFilesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteFilesByIdError = DeleteFilesByIdErrors[keyof DeleteFilesByIdErrors]; + +export type DeleteFilesByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteFilesByIdResponse = DeleteFilesByIdResponses[keyof DeleteFilesByIdResponses]; + +export type GetFilesByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/files/{id}'; +}; + +export type GetFilesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetFilesByIdError = GetFilesByIdErrors[keyof GetFilesByIdErrors]; + +export type GetFilesByIdResponses = { + /** + * successful operation + */ + 200: FileResponse; +}; + +export type GetFilesByIdResponse = GetFilesByIdResponses[keyof GetFilesByIdResponses]; + +export type PatchFilesByIdData = { + body: FilePatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/files/{id}'; +}; + +export type PatchFilesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchFilesByIdError = PatchFilesByIdErrors[keyof PatchFilesByIdErrors]; + +export type PatchFilesByIdResponses = { + /** + * successful operation + */ + 200: FilePostPatchResponse; +}; + +export type PatchFilesByIdResponse = PatchFilesByIdResponses[keyof PatchFilesByIdResponses]; + +export type DeleteGlobalpermissiongroupsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/globalpermissiongroups'; +}; + +export type DeleteGlobalpermissiongroupsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteGlobalpermissiongroupsError = + DeleteGlobalpermissiongroupsErrors[keyof DeleteGlobalpermissiongroupsErrors]; + +export type DeleteGlobalpermissiongroupsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetGlobalpermissiongroupsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/globalpermissiongroups'; +}; + +export type GetGlobalpermissiongroupsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetGlobalpermissiongroupsError = GetGlobalpermissiongroupsErrors[keyof GetGlobalpermissiongroupsErrors]; + +export type GetGlobalpermissiongroupsResponses = { + /** + * successful operation + */ + 200: GlobalPermissionGroupListResponse; +}; + +export type GetGlobalpermissiongroupsResponse = + GetGlobalpermissiongroupsResponses[keyof GetGlobalpermissiongroupsResponses]; + +export type PatchGlobalpermissiongroupsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/globalpermissiongroups'; +}; + +export type PatchGlobalpermissiongroupsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchGlobalpermissiongroupsError = + PatchGlobalpermissiongroupsErrors[keyof PatchGlobalpermissiongroupsErrors]; + +export type PatchGlobalpermissiongroupsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostGlobalpermissiongroupsData = { + body: GlobalPermissionGroupCreate; + path?: never; + query?: never; + url: '/api/v2/ui/globalpermissiongroups'; +}; + +export type PostGlobalpermissiongroupsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostGlobalpermissiongroupsError = PostGlobalpermissiongroupsErrors[keyof PostGlobalpermissiongroupsErrors]; + +export type PostGlobalpermissiongroupsResponses = { + /** + * successful operation + */ + 201: GlobalPermissionGroupPostPatchResponse; +}; + +export type PostGlobalpermissiongroupsResponse = + PostGlobalpermissiongroupsResponses[keyof PostGlobalpermissiongroupsResponses]; + +export type GetGlobalpermissiongroupsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/globalpermissiongroups/count'; +}; + +export type GetGlobalpermissiongroupsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetGlobalpermissiongroupsCountError = + GetGlobalpermissiongroupsCountErrors[keyof GetGlobalpermissiongroupsCountErrors]; + +export type GetGlobalpermissiongroupsCountResponses = { + /** + * successful operation + */ + 200: GlobalPermissionGroupListResponse; +}; + +export type GetGlobalpermissiongroupsCountResponse = + GetGlobalpermissiongroupsCountResponses[keyof GetGlobalpermissiongroupsCountResponses]; + +export type GetGlobalpermissiongroupsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/globalpermissiongroups/{id}/{relation}'; +}; + +export type GetGlobalpermissiongroupsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetGlobalpermissiongroupsByIdByRelationError = + GetGlobalpermissiongroupsByIdByRelationErrors[keyof GetGlobalpermissiongroupsByIdByRelationErrors]; + +export type GetGlobalpermissiongroupsByIdByRelationResponses = { + /** + * successful operation + */ + 200: GlobalPermissionGroupRelationUserMembersGetResponse; +}; + +export type GetGlobalpermissiongroupsByIdByRelationResponse = + GetGlobalpermissiongroupsByIdByRelationResponses[keyof GetGlobalpermissiongroupsByIdByRelationResponses]; + +export type DeleteGlobalpermissiongroupsByIdRelationshipsByRelationData = { + body: GlobalPermissionGroupRelationUserMembers; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/globalpermissiongroups/{id}/relationships/{relation}'; +}; + +export type DeleteGlobalpermissiongroupsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteGlobalpermissiongroupsByIdRelationshipsByRelationError = + DeleteGlobalpermissiongroupsByIdRelationshipsByRelationErrors[keyof DeleteGlobalpermissiongroupsByIdRelationshipsByRelationErrors]; + +export type DeleteGlobalpermissiongroupsByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteGlobalpermissiongroupsByIdRelationshipsByRelationResponse = + DeleteGlobalpermissiongroupsByIdRelationshipsByRelationResponses[keyof DeleteGlobalpermissiongroupsByIdRelationshipsByRelationResponses]; + +export type GetGlobalpermissiongroupsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/globalpermissiongroups/{id}/relationships/{relation}'; +}; + +export type GetGlobalpermissiongroupsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetGlobalpermissiongroupsByIdRelationshipsByRelationError = + GetGlobalpermissiongroupsByIdRelationshipsByRelationErrors[keyof GetGlobalpermissiongroupsByIdRelationshipsByRelationErrors]; + +export type GetGlobalpermissiongroupsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: GlobalPermissionGroupResponse; +}; + +export type GetGlobalpermissiongroupsByIdRelationshipsByRelationResponse = + GetGlobalpermissiongroupsByIdRelationshipsByRelationResponses[keyof GetGlobalpermissiongroupsByIdRelationshipsByRelationResponses]; + +export type PatchGlobalpermissiongroupsByIdRelationshipsByRelationData = { + body: GlobalPermissionGroupRelationUserMembers; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/globalpermissiongroups/{id}/relationships/{relation}'; +}; + +export type PatchGlobalpermissiongroupsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchGlobalpermissiongroupsByIdRelationshipsByRelationError = + PatchGlobalpermissiongroupsByIdRelationshipsByRelationErrors[keyof PatchGlobalpermissiongroupsByIdRelationshipsByRelationErrors]; + +export type PatchGlobalpermissiongroupsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchGlobalpermissiongroupsByIdRelationshipsByRelationResponse = + PatchGlobalpermissiongroupsByIdRelationshipsByRelationResponses[keyof PatchGlobalpermissiongroupsByIdRelationshipsByRelationResponses]; + +export type PostGlobalpermissiongroupsByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/globalpermissiongroups/{id}/relationships/{relation}'; +}; + +export type PostGlobalpermissiongroupsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostGlobalpermissiongroupsByIdRelationshipsByRelationError = + PostGlobalpermissiongroupsByIdRelationshipsByRelationErrors[keyof PostGlobalpermissiongroupsByIdRelationshipsByRelationErrors]; + +export type PostGlobalpermissiongroupsByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostGlobalpermissiongroupsByIdRelationshipsByRelationResponse = + PostGlobalpermissiongroupsByIdRelationshipsByRelationResponses[keyof PostGlobalpermissiongroupsByIdRelationshipsByRelationResponses]; + +export type DeleteGlobalpermissiongroupsByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/globalpermissiongroups/{id}'; +}; + +export type DeleteGlobalpermissiongroupsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteGlobalpermissiongroupsByIdError = + DeleteGlobalpermissiongroupsByIdErrors[keyof DeleteGlobalpermissiongroupsByIdErrors]; + +export type DeleteGlobalpermissiongroupsByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteGlobalpermissiongroupsByIdResponse = + DeleteGlobalpermissiongroupsByIdResponses[keyof DeleteGlobalpermissiongroupsByIdResponses]; + +export type GetGlobalpermissiongroupsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/globalpermissiongroups/{id}'; +}; + +export type GetGlobalpermissiongroupsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetGlobalpermissiongroupsByIdError = + GetGlobalpermissiongroupsByIdErrors[keyof GetGlobalpermissiongroupsByIdErrors]; + +export type GetGlobalpermissiongroupsByIdResponses = { + /** + * successful operation + */ + 200: GlobalPermissionGroupResponse; +}; + +export type GetGlobalpermissiongroupsByIdResponse = + GetGlobalpermissiongroupsByIdResponses[keyof GetGlobalpermissiongroupsByIdResponses]; + +export type PatchGlobalpermissiongroupsByIdData = { + body: GlobalPermissionGroupPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/globalpermissiongroups/{id}'; +}; + +export type PatchGlobalpermissiongroupsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchGlobalpermissiongroupsByIdError = + PatchGlobalpermissiongroupsByIdErrors[keyof PatchGlobalpermissiongroupsByIdErrors]; + +export type PatchGlobalpermissiongroupsByIdResponses = { + /** + * successful operation + */ + 200: GlobalPermissionGroupPostPatchResponse; +}; + +export type PatchGlobalpermissiongroupsByIdResponse = + PatchGlobalpermissiongroupsByIdResponses[keyof PatchGlobalpermissiongroupsByIdResponses]; + +export type GetHashesData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/hashes'; +}; + +export type GetHashesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHashesError = GetHashesErrors[keyof GetHashesErrors]; + +export type GetHashesResponses = { + /** + * successful operation + */ + 200: HashListResponse; +}; + +export type GetHashesResponse = GetHashesResponses[keyof GetHashesResponses]; + +export type GetHashesCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/hashes/count'; +}; + +export type GetHashesCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHashesCountError = GetHashesCountErrors[keyof GetHashesCountErrors]; + +export type GetHashesCountResponses = { + /** + * successful operation + */ + 200: HashListResponse; +}; + +export type GetHashesCountResponse = GetHashesCountResponses[keyof GetHashesCountResponses]; + +export type GetHashesByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/hashes/{id}/{relation}'; +}; + +export type GetHashesByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHashesByIdByRelationError = GetHashesByIdByRelationErrors[keyof GetHashesByIdByRelationErrors]; + +export type GetHashesByIdByRelationResponses = { + /** + * successful operation + */ + 200: HashRelationHashlistGetResponse; +}; + +export type GetHashesByIdByRelationResponse = GetHashesByIdByRelationResponses[keyof GetHashesByIdByRelationResponses]; + +export type GetHashesByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/hashes/{id}/relationships/{relation}'; +}; + +export type GetHashesByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHashesByIdRelationshipsByRelationError = + GetHashesByIdRelationshipsByRelationErrors[keyof GetHashesByIdRelationshipsByRelationErrors]; + +export type GetHashesByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: HashResponse; +}; + +export type GetHashesByIdRelationshipsByRelationResponse = + GetHashesByIdRelationshipsByRelationResponses[keyof GetHashesByIdRelationshipsByRelationResponses]; + +export type PatchHashesByIdRelationshipsByRelationData = { + body: HashRelationHashlist; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/hashes/{id}/relationships/{relation}'; +}; + +export type PatchHashesByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchHashesByIdRelationshipsByRelationError = + PatchHashesByIdRelationshipsByRelationErrors[keyof PatchHashesByIdRelationshipsByRelationErrors]; + +export type PatchHashesByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchHashesByIdRelationshipsByRelationResponse = + PatchHashesByIdRelationshipsByRelationResponses[keyof PatchHashesByIdRelationshipsByRelationResponses]; + +export type GetHashesByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/hashes/{id}'; +}; + +export type GetHashesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHashesByIdError = GetHashesByIdErrors[keyof GetHashesByIdErrors]; + +export type GetHashesByIdResponses = { + /** + * successful operation + */ + 200: HashResponse; +}; + +export type GetHashesByIdResponse = GetHashesByIdResponses[keyof GetHashesByIdResponses]; + +export type DeleteHashlistsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/hashlists'; +}; + +export type DeleteHashlistsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteHashlistsError = DeleteHashlistsErrors[keyof DeleteHashlistsErrors]; + +export type DeleteHashlistsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetHashlistsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/hashlists'; +}; + +export type GetHashlistsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHashlistsError = GetHashlistsErrors[keyof GetHashlistsErrors]; + +export type GetHashlistsResponses = { + /** + * successful operation + */ + 200: HashlistListResponse; +}; + +export type GetHashlistsResponse = GetHashlistsResponses[keyof GetHashlistsResponses]; + +export type PatchHashlistsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/hashlists'; +}; + +export type PatchHashlistsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchHashlistsError = PatchHashlistsErrors[keyof PatchHashlistsErrors]; + +export type PatchHashlistsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostHashlistsData = { + body: HashlistCreate; + path?: never; + query?: never; + url: '/api/v2/ui/hashlists'; +}; + +export type PostHashlistsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostHashlistsError = PostHashlistsErrors[keyof PostHashlistsErrors]; + +export type PostHashlistsResponses = { + /** + * successful operation + */ + 201: HashlistPostPatchResponse; +}; + +export type PostHashlistsResponse = PostHashlistsResponses[keyof PostHashlistsResponses]; + +export type GetHashlistsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/hashlists/count'; +}; + +export type GetHashlistsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHashlistsCountError = GetHashlistsCountErrors[keyof GetHashlistsCountErrors]; + +export type GetHashlistsCountResponses = { + /** + * successful operation + */ + 200: HashlistListResponse; +}; + +export type GetHashlistsCountResponse = GetHashlistsCountResponses[keyof GetHashlistsCountResponses]; + +export type GetHashlistsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/hashlists/{id}/{relation}'; +}; + +export type GetHashlistsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHashlistsByIdByRelationError = GetHashlistsByIdByRelationErrors[keyof GetHashlistsByIdByRelationErrors]; + +export type GetHashlistsByIdByRelationResponses = { + /** + * successful operation + */ + 200: HashlistRelationTasksGetResponse; +}; + +export type GetHashlistsByIdByRelationResponse = + GetHashlistsByIdByRelationResponses[keyof GetHashlistsByIdByRelationResponses]; + +export type DeleteHashlistsByIdRelationshipsByRelationData = { + body: HashlistRelationTasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/hashlists/{id}/relationships/{relation}'; +}; + +export type DeleteHashlistsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteHashlistsByIdRelationshipsByRelationError = + DeleteHashlistsByIdRelationshipsByRelationErrors[keyof DeleteHashlistsByIdRelationshipsByRelationErrors]; + +export type DeleteHashlistsByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteHashlistsByIdRelationshipsByRelationResponse = + DeleteHashlistsByIdRelationshipsByRelationResponses[keyof DeleteHashlistsByIdRelationshipsByRelationResponses]; + +export type GetHashlistsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/hashlists/{id}/relationships/{relation}'; +}; + +export type GetHashlistsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHashlistsByIdRelationshipsByRelationError = + GetHashlistsByIdRelationshipsByRelationErrors[keyof GetHashlistsByIdRelationshipsByRelationErrors]; + +export type GetHashlistsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: HashlistResponse; +}; + +export type GetHashlistsByIdRelationshipsByRelationResponse = + GetHashlistsByIdRelationshipsByRelationResponses[keyof GetHashlistsByIdRelationshipsByRelationResponses]; + +export type PatchHashlistsByIdRelationshipsByRelationData = { + body: HashlistRelationTasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/hashlists/{id}/relationships/{relation}'; +}; + +export type PatchHashlistsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchHashlistsByIdRelationshipsByRelationError = + PatchHashlistsByIdRelationshipsByRelationErrors[keyof PatchHashlistsByIdRelationshipsByRelationErrors]; + +export type PatchHashlistsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchHashlistsByIdRelationshipsByRelationResponse = + PatchHashlistsByIdRelationshipsByRelationResponses[keyof PatchHashlistsByIdRelationshipsByRelationResponses]; + +export type PostHashlistsByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/hashlists/{id}/relationships/{relation}'; +}; + +export type PostHashlistsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostHashlistsByIdRelationshipsByRelationError = + PostHashlistsByIdRelationshipsByRelationErrors[keyof PostHashlistsByIdRelationshipsByRelationErrors]; + +export type PostHashlistsByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostHashlistsByIdRelationshipsByRelationResponse = + PostHashlistsByIdRelationshipsByRelationResponses[keyof PostHashlistsByIdRelationshipsByRelationResponses]; + +export type DeleteHashlistsByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/hashlists/{id}'; +}; + +export type DeleteHashlistsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteHashlistsByIdError = DeleteHashlistsByIdErrors[keyof DeleteHashlistsByIdErrors]; + +export type DeleteHashlistsByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteHashlistsByIdResponse = DeleteHashlistsByIdResponses[keyof DeleteHashlistsByIdResponses]; + +export type GetHashlistsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/hashlists/{id}'; +}; + +export type GetHashlistsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHashlistsByIdError = GetHashlistsByIdErrors[keyof GetHashlistsByIdErrors]; + +export type GetHashlistsByIdResponses = { + /** + * successful operation + */ + 200: HashlistResponse; +}; + +export type GetHashlistsByIdResponse = GetHashlistsByIdResponses[keyof GetHashlistsByIdResponses]; + +export type PatchHashlistsByIdData = { + body: HashlistPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/hashlists/{id}'; +}; + +export type PatchHashlistsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchHashlistsByIdError = PatchHashlistsByIdErrors[keyof PatchHashlistsByIdErrors]; + +export type PatchHashlistsByIdResponses = { + /** + * successful operation + */ + 200: HashlistPostPatchResponse; +}; + +export type PatchHashlistsByIdResponse = PatchHashlistsByIdResponses[keyof PatchHashlistsByIdResponses]; + +export type DeleteHashtypesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/hashtypes'; +}; + +export type DeleteHashtypesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteHashtypesError = DeleteHashtypesErrors[keyof DeleteHashtypesErrors]; + +export type DeleteHashtypesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetHashtypesData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/hashtypes'; +}; + +export type GetHashtypesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHashtypesError = GetHashtypesErrors[keyof GetHashtypesErrors]; + +export type GetHashtypesResponses = { + /** + * successful operation + */ + 200: HashTypeListResponse; +}; + +export type GetHashtypesResponse = GetHashtypesResponses[keyof GetHashtypesResponses]; + +export type PatchHashtypesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/hashtypes'; +}; + +export type PatchHashtypesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchHashtypesError = PatchHashtypesErrors[keyof PatchHashtypesErrors]; + +export type PatchHashtypesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostHashtypesData = { + body: HashTypeCreate; + path?: never; + query?: never; + url: '/api/v2/ui/hashtypes'; +}; + +export type PostHashtypesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostHashtypesError = PostHashtypesErrors[keyof PostHashtypesErrors]; + +export type PostHashtypesResponses = { + /** + * successful operation + */ + 201: HashTypePostPatchResponse; +}; + +export type PostHashtypesResponse = PostHashtypesResponses[keyof PostHashtypesResponses]; + +export type GetHashtypesCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/hashtypes/count'; +}; + +export type GetHashtypesCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHashtypesCountError = GetHashtypesCountErrors[keyof GetHashtypesCountErrors]; + +export type GetHashtypesCountResponses = { + /** + * successful operation + */ + 200: HashTypeListResponse; +}; + +export type GetHashtypesCountResponse = GetHashtypesCountResponses[keyof GetHashtypesCountResponses]; + +export type DeleteHashtypesByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/hashtypes/{id}'; +}; + +export type DeleteHashtypesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteHashtypesByIdError = DeleteHashtypesByIdErrors[keyof DeleteHashtypesByIdErrors]; + +export type DeleteHashtypesByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteHashtypesByIdResponse = DeleteHashtypesByIdResponses[keyof DeleteHashtypesByIdResponses]; + +export type GetHashtypesByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/hashtypes/{id}'; +}; + +export type GetHashtypesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHashtypesByIdError = GetHashtypesByIdErrors[keyof GetHashtypesByIdErrors]; + +export type GetHashtypesByIdResponses = { + /** + * successful operation + */ + 200: HashTypeResponse; +}; + +export type GetHashtypesByIdResponse = GetHashtypesByIdResponses[keyof GetHashtypesByIdResponses]; + +export type PatchHashtypesByIdData = { + body: HashTypePatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/hashtypes/{id}'; +}; + +export type PatchHashtypesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchHashtypesByIdError = PatchHashtypesByIdErrors[keyof PatchHashtypesByIdErrors]; + +export type PatchHashtypesByIdResponses = { + /** + * successful operation + */ + 200: HashTypePostPatchResponse; +}; + +export type PatchHashtypesByIdResponse = PatchHashtypesByIdResponses[keyof PatchHashtypesByIdResponses]; + +export type GetHealthcheckagentsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/healthcheckagents'; +}; + +export type GetHealthcheckagentsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHealthcheckagentsError = GetHealthcheckagentsErrors[keyof GetHealthcheckagentsErrors]; + +export type GetHealthcheckagentsResponses = { + /** + * successful operation + */ + 200: HealthCheckAgentListResponse; +}; + +export type GetHealthcheckagentsResponse = GetHealthcheckagentsResponses[keyof GetHealthcheckagentsResponses]; + +export type GetHealthcheckagentsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/healthcheckagents/count'; +}; + +export type GetHealthcheckagentsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHealthcheckagentsCountError = GetHealthcheckagentsCountErrors[keyof GetHealthcheckagentsCountErrors]; + +export type GetHealthcheckagentsCountResponses = { + /** + * successful operation + */ + 200: HealthCheckAgentListResponse; +}; + +export type GetHealthcheckagentsCountResponse = + GetHealthcheckagentsCountResponses[keyof GetHealthcheckagentsCountResponses]; + +export type GetHealthcheckagentsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/healthcheckagents/{id}/{relation}'; +}; + +export type GetHealthcheckagentsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHealthcheckagentsByIdByRelationError = + GetHealthcheckagentsByIdByRelationErrors[keyof GetHealthcheckagentsByIdByRelationErrors]; + +export type GetHealthcheckagentsByIdByRelationResponses = { + /** + * successful operation + */ + 200: HealthCheckAgentRelationHealthCheckGetResponse; +}; + +export type GetHealthcheckagentsByIdByRelationResponse = + GetHealthcheckagentsByIdByRelationResponses[keyof GetHealthcheckagentsByIdByRelationResponses]; + +export type GetHealthcheckagentsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/healthcheckagents/{id}/relationships/{relation}'; +}; + +export type GetHealthcheckagentsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHealthcheckagentsByIdRelationshipsByRelationError = + GetHealthcheckagentsByIdRelationshipsByRelationErrors[keyof GetHealthcheckagentsByIdRelationshipsByRelationErrors]; + +export type GetHealthcheckagentsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: HealthCheckAgentResponse; +}; + +export type GetHealthcheckagentsByIdRelationshipsByRelationResponse = + GetHealthcheckagentsByIdRelationshipsByRelationResponses[keyof GetHealthcheckagentsByIdRelationshipsByRelationResponses]; + +export type PatchHealthcheckagentsByIdRelationshipsByRelationData = { + body: HealthCheckAgentRelationHealthCheck; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/healthcheckagents/{id}/relationships/{relation}'; +}; + +export type PatchHealthcheckagentsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchHealthcheckagentsByIdRelationshipsByRelationError = + PatchHealthcheckagentsByIdRelationshipsByRelationErrors[keyof PatchHealthcheckagentsByIdRelationshipsByRelationErrors]; + +export type PatchHealthcheckagentsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchHealthcheckagentsByIdRelationshipsByRelationResponse = + PatchHealthcheckagentsByIdRelationshipsByRelationResponses[keyof PatchHealthcheckagentsByIdRelationshipsByRelationResponses]; + +export type GetHealthcheckagentsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/healthcheckagents/{id}'; +}; + +export type GetHealthcheckagentsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHealthcheckagentsByIdError = GetHealthcheckagentsByIdErrors[keyof GetHealthcheckagentsByIdErrors]; + +export type GetHealthcheckagentsByIdResponses = { + /** + * successful operation + */ + 200: HealthCheckAgentResponse; +}; + +export type GetHealthcheckagentsByIdResponse = + GetHealthcheckagentsByIdResponses[keyof GetHealthcheckagentsByIdResponses]; + +export type DeleteHealthchecksData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/healthchecks'; +}; + +export type DeleteHealthchecksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteHealthchecksError = DeleteHealthchecksErrors[keyof DeleteHealthchecksErrors]; + +export type DeleteHealthchecksResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetHealthchecksData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/healthchecks'; +}; + +export type GetHealthchecksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHealthchecksError = GetHealthchecksErrors[keyof GetHealthchecksErrors]; + +export type GetHealthchecksResponses = { + /** + * successful operation + */ + 200: HealthCheckListResponse; +}; + +export type GetHealthchecksResponse = GetHealthchecksResponses[keyof GetHealthchecksResponses]; + +export type PatchHealthchecksData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/healthchecks'; +}; + +export type PatchHealthchecksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchHealthchecksError = PatchHealthchecksErrors[keyof PatchHealthchecksErrors]; + +export type PatchHealthchecksResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostHealthchecksData = { + body: HealthCheckCreate; + path?: never; + query?: never; + url: '/api/v2/ui/healthchecks'; +}; + +export type PostHealthchecksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostHealthchecksError = PostHealthchecksErrors[keyof PostHealthchecksErrors]; + +export type PostHealthchecksResponses = { + /** + * successful operation + */ + 201: HealthCheckPostPatchResponse; +}; + +export type PostHealthchecksResponse = PostHealthchecksResponses[keyof PostHealthchecksResponses]; + +export type GetHealthchecksCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/healthchecks/count'; +}; + +export type GetHealthchecksCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetHealthchecksCountError = GetHealthchecksCountErrors[keyof GetHealthchecksCountErrors]; + +export type GetHealthchecksCountResponses = { + /** + * successful operation + */ + 200: HealthCheckListResponse; +}; + +export type GetHealthchecksCountResponse = GetHealthchecksCountResponses[keyof GetHealthchecksCountResponses]; + +export type GetHealthchecksByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/healthchecks/{id}/{relation}'; +}; + +export type GetHealthchecksByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHealthchecksByIdByRelationError = + GetHealthchecksByIdByRelationErrors[keyof GetHealthchecksByIdByRelationErrors]; + +export type GetHealthchecksByIdByRelationResponses = { + /** + * successful operation + */ + 200: HealthCheckRelationHealthCheckAgentsGetResponse; +}; + +export type GetHealthchecksByIdByRelationResponse = + GetHealthchecksByIdByRelationResponses[keyof GetHealthchecksByIdByRelationResponses]; + +export type DeleteHealthchecksByIdRelationshipsByRelationData = { + body: HealthCheckRelationHealthCheckAgents; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/healthchecks/{id}/relationships/{relation}'; +}; + +export type DeleteHealthchecksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteHealthchecksByIdRelationshipsByRelationError = + DeleteHealthchecksByIdRelationshipsByRelationErrors[keyof DeleteHealthchecksByIdRelationshipsByRelationErrors]; + +export type DeleteHealthchecksByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteHealthchecksByIdRelationshipsByRelationResponse = + DeleteHealthchecksByIdRelationshipsByRelationResponses[keyof DeleteHealthchecksByIdRelationshipsByRelationResponses]; + +export type GetHealthchecksByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/healthchecks/{id}/relationships/{relation}'; +}; + +export type GetHealthchecksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHealthchecksByIdRelationshipsByRelationError = + GetHealthchecksByIdRelationshipsByRelationErrors[keyof GetHealthchecksByIdRelationshipsByRelationErrors]; + +export type GetHealthchecksByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: HealthCheckResponse; +}; + +export type GetHealthchecksByIdRelationshipsByRelationResponse = + GetHealthchecksByIdRelationshipsByRelationResponses[keyof GetHealthchecksByIdRelationshipsByRelationResponses]; + +export type PatchHealthchecksByIdRelationshipsByRelationData = { + body: HealthCheckRelationHealthCheckAgents; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/healthchecks/{id}/relationships/{relation}'; +}; + +export type PatchHealthchecksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchHealthchecksByIdRelationshipsByRelationError = + PatchHealthchecksByIdRelationshipsByRelationErrors[keyof PatchHealthchecksByIdRelationshipsByRelationErrors]; + +export type PatchHealthchecksByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchHealthchecksByIdRelationshipsByRelationResponse = + PatchHealthchecksByIdRelationshipsByRelationResponses[keyof PatchHealthchecksByIdRelationshipsByRelationResponses]; + +export type PostHealthchecksByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/healthchecks/{id}/relationships/{relation}'; +}; + +export type PostHealthchecksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostHealthchecksByIdRelationshipsByRelationError = + PostHealthchecksByIdRelationshipsByRelationErrors[keyof PostHealthchecksByIdRelationshipsByRelationErrors]; + +export type PostHealthchecksByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostHealthchecksByIdRelationshipsByRelationResponse = + PostHealthchecksByIdRelationshipsByRelationResponses[keyof PostHealthchecksByIdRelationshipsByRelationResponses]; + +export type DeleteHealthchecksByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/healthchecks/{id}'; +}; + +export type DeleteHealthchecksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteHealthchecksByIdError = DeleteHealthchecksByIdErrors[keyof DeleteHealthchecksByIdErrors]; + +export type DeleteHealthchecksByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteHealthchecksByIdResponse = DeleteHealthchecksByIdResponses[keyof DeleteHealthchecksByIdResponses]; + +export type GetHealthchecksByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/healthchecks/{id}'; +}; + +export type GetHealthchecksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetHealthchecksByIdError = GetHealthchecksByIdErrors[keyof GetHealthchecksByIdErrors]; + +export type GetHealthchecksByIdResponses = { + /** + * successful operation + */ + 200: HealthCheckResponse; +}; + +export type GetHealthchecksByIdResponse = GetHealthchecksByIdResponses[keyof GetHealthchecksByIdResponses]; + +export type PatchHealthchecksByIdData = { + body: HealthCheckPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/healthchecks/{id}'; +}; + +export type PatchHealthchecksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchHealthchecksByIdError = PatchHealthchecksByIdErrors[keyof PatchHealthchecksByIdErrors]; + +export type PatchHealthchecksByIdResponses = { + /** + * successful operation + */ + 200: HealthCheckPostPatchResponse; +}; + +export type PatchHealthchecksByIdResponse = PatchHealthchecksByIdResponses[keyof PatchHealthchecksByIdResponses]; + +export type DeleteLogentriesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/logentries'; +}; + +export type DeleteLogentriesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteLogentriesError = DeleteLogentriesErrors[keyof DeleteLogentriesErrors]; + +export type DeleteLogentriesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetLogentriesData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/logentries'; +}; + +export type GetLogentriesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetLogentriesError = GetLogentriesErrors[keyof GetLogentriesErrors]; + +export type GetLogentriesResponses = { + /** + * successful operation + */ + 200: LogEntryListResponse; +}; + +export type GetLogentriesResponse = GetLogentriesResponses[keyof GetLogentriesResponses]; + +export type PatchLogentriesData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/logentries'; +}; + +export type PatchLogentriesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchLogentriesError = PatchLogentriesErrors[keyof PatchLogentriesErrors]; + +export type PatchLogentriesResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostLogentriesData = { + body: LogEntryCreate; + path?: never; + query?: never; + url: '/api/v2/ui/logentries'; +}; + +export type PostLogentriesErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostLogentriesError = PostLogentriesErrors[keyof PostLogentriesErrors]; + +export type PostLogentriesResponses = { + /** + * successful operation + */ + 201: LogEntryPostPatchResponse; +}; + +export type PostLogentriesResponse = PostLogentriesResponses[keyof PostLogentriesResponses]; + +export type GetLogentriesCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/logentries/count'; +}; + +export type GetLogentriesCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetLogentriesCountError = GetLogentriesCountErrors[keyof GetLogentriesCountErrors]; + +export type GetLogentriesCountResponses = { + /** + * successful operation + */ + 200: LogEntryListResponse; +}; + +export type GetLogentriesCountResponse = GetLogentriesCountResponses[keyof GetLogentriesCountResponses]; + +export type DeleteLogentriesByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/logentries/{id}'; +}; + +export type DeleteLogentriesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteLogentriesByIdError = DeleteLogentriesByIdErrors[keyof DeleteLogentriesByIdErrors]; + +export type DeleteLogentriesByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteLogentriesByIdResponse = DeleteLogentriesByIdResponses[keyof DeleteLogentriesByIdResponses]; + +export type GetLogentriesByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/logentries/{id}'; +}; + +export type GetLogentriesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetLogentriesByIdError = GetLogentriesByIdErrors[keyof GetLogentriesByIdErrors]; + +export type GetLogentriesByIdResponses = { + /** + * successful operation + */ + 200: LogEntryResponse; +}; + +export type GetLogentriesByIdResponse = GetLogentriesByIdResponses[keyof GetLogentriesByIdResponses]; + +export type PatchLogentriesByIdData = { + body: LogEntryPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/logentries/{id}'; +}; + +export type PatchLogentriesByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchLogentriesByIdError = PatchLogentriesByIdErrors[keyof PatchLogentriesByIdErrors]; + +export type PatchLogentriesByIdResponses = { + /** + * successful operation + */ + 200: LogEntryPostPatchResponse; +}; + +export type PatchLogentriesByIdResponse = PatchLogentriesByIdResponses[keyof PatchLogentriesByIdResponses]; + +export type DeleteNotificationsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/notifications'; +}; + +export type DeleteNotificationsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteNotificationsError = DeleteNotificationsErrors[keyof DeleteNotificationsErrors]; + +export type DeleteNotificationsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetNotificationsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/notifications'; +}; + +export type GetNotificationsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetNotificationsError = GetNotificationsErrors[keyof GetNotificationsErrors]; + +export type GetNotificationsResponses = { + /** + * successful operation + */ + 200: NotificationSettingListResponse; +}; + +export type GetNotificationsResponse = GetNotificationsResponses[keyof GetNotificationsResponses]; + +export type PatchNotificationsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/notifications'; +}; + +export type PatchNotificationsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchNotificationsError = PatchNotificationsErrors[keyof PatchNotificationsErrors]; + +export type PatchNotificationsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostNotificationsData = { + body: NotificationSettingCreate; + path?: never; + query?: never; + url: '/api/v2/ui/notifications'; +}; + +export type PostNotificationsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostNotificationsError = PostNotificationsErrors[keyof PostNotificationsErrors]; + +export type PostNotificationsResponses = { + /** + * successful operation + */ + 201: NotificationSettingPostPatchResponse; +}; + +export type PostNotificationsResponse = PostNotificationsResponses[keyof PostNotificationsResponses]; + +export type GetNotificationsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/notifications/count'; +}; + +export type GetNotificationsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetNotificationsCountError = GetNotificationsCountErrors[keyof GetNotificationsCountErrors]; + +export type GetNotificationsCountResponses = { + /** + * successful operation + */ + 200: NotificationSettingListResponse; +}; + +export type GetNotificationsCountResponse = GetNotificationsCountResponses[keyof GetNotificationsCountResponses]; + +export type GetNotificationsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/notifications/{id}/{relation}'; +}; + +export type GetNotificationsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetNotificationsByIdByRelationError = + GetNotificationsByIdByRelationErrors[keyof GetNotificationsByIdByRelationErrors]; + +export type GetNotificationsByIdByRelationResponses = { + /** + * successful operation + */ + 200: NotificationSettingRelationUserGetResponse; +}; + +export type GetNotificationsByIdByRelationResponse = + GetNotificationsByIdByRelationResponses[keyof GetNotificationsByIdByRelationResponses]; + +export type GetNotificationsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/notifications/{id}/relationships/{relation}'; +}; + +export type GetNotificationsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetNotificationsByIdRelationshipsByRelationError = + GetNotificationsByIdRelationshipsByRelationErrors[keyof GetNotificationsByIdRelationshipsByRelationErrors]; + +export type GetNotificationsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: NotificationSettingResponse; +}; + +export type GetNotificationsByIdRelationshipsByRelationResponse = + GetNotificationsByIdRelationshipsByRelationResponses[keyof GetNotificationsByIdRelationshipsByRelationResponses]; + +export type PatchNotificationsByIdRelationshipsByRelationData = { + body: NotificationSettingRelationUser; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/notifications/{id}/relationships/{relation}'; +}; + +export type PatchNotificationsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchNotificationsByIdRelationshipsByRelationError = + PatchNotificationsByIdRelationshipsByRelationErrors[keyof PatchNotificationsByIdRelationshipsByRelationErrors]; + +export type PatchNotificationsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchNotificationsByIdRelationshipsByRelationResponse = + PatchNotificationsByIdRelationshipsByRelationResponses[keyof PatchNotificationsByIdRelationshipsByRelationResponses]; + +export type DeleteNotificationsByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/notifications/{id}'; +}; + +export type DeleteNotificationsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteNotificationsByIdError = DeleteNotificationsByIdErrors[keyof DeleteNotificationsByIdErrors]; + +export type DeleteNotificationsByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteNotificationsByIdResponse = DeleteNotificationsByIdResponses[keyof DeleteNotificationsByIdResponses]; + +export type GetNotificationsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/notifications/{id}'; +}; + +export type GetNotificationsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetNotificationsByIdError = GetNotificationsByIdErrors[keyof GetNotificationsByIdErrors]; + +export type GetNotificationsByIdResponses = { + /** + * successful operation + */ + 200: NotificationSettingResponse; +}; + +export type GetNotificationsByIdResponse = GetNotificationsByIdResponses[keyof GetNotificationsByIdResponses]; + +export type PatchNotificationsByIdData = { + body: NotificationSettingPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/notifications/{id}'; +}; + +export type PatchNotificationsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchNotificationsByIdError = PatchNotificationsByIdErrors[keyof PatchNotificationsByIdErrors]; + +export type PatchNotificationsByIdResponses = { + /** + * successful operation + */ + 200: NotificationSettingPostPatchResponse; +}; + +export type PatchNotificationsByIdResponse = PatchNotificationsByIdResponses[keyof PatchNotificationsByIdResponses]; + +export type DeletePreprocessorsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/preprocessors'; +}; + +export type DeletePreprocessorsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeletePreprocessorsError = DeletePreprocessorsErrors[keyof DeletePreprocessorsErrors]; + +export type DeletePreprocessorsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetPreprocessorsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/preprocessors'; +}; + +export type GetPreprocessorsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetPreprocessorsError = GetPreprocessorsErrors[keyof GetPreprocessorsErrors]; + +export type GetPreprocessorsResponses = { + /** + * successful operation + */ + 200: PreprocessorListResponse; +}; + +export type GetPreprocessorsResponse = GetPreprocessorsResponses[keyof GetPreprocessorsResponses]; + +export type PatchPreprocessorsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/preprocessors'; +}; + +export type PatchPreprocessorsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchPreprocessorsError = PatchPreprocessorsErrors[keyof PatchPreprocessorsErrors]; + +export type PatchPreprocessorsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostPreprocessorsData = { + body: PreprocessorCreate; + path?: never; + query?: never; + url: '/api/v2/ui/preprocessors'; +}; + +export type PostPreprocessorsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostPreprocessorsError = PostPreprocessorsErrors[keyof PostPreprocessorsErrors]; + +export type PostPreprocessorsResponses = { + /** + * successful operation + */ + 201: PreprocessorPostPatchResponse; +}; + +export type PostPreprocessorsResponse = PostPreprocessorsResponses[keyof PostPreprocessorsResponses]; + +export type GetPreprocessorsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/preprocessors/count'; +}; + +export type GetPreprocessorsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetPreprocessorsCountError = GetPreprocessorsCountErrors[keyof GetPreprocessorsCountErrors]; + +export type GetPreprocessorsCountResponses = { + /** + * successful operation + */ + 200: PreprocessorListResponse; +}; + +export type GetPreprocessorsCountResponse = GetPreprocessorsCountResponses[keyof GetPreprocessorsCountResponses]; + +export type DeletePreprocessorsByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/preprocessors/{id}'; +}; + +export type DeletePreprocessorsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeletePreprocessorsByIdError = DeletePreprocessorsByIdErrors[keyof DeletePreprocessorsByIdErrors]; + +export type DeletePreprocessorsByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeletePreprocessorsByIdResponse = DeletePreprocessorsByIdResponses[keyof DeletePreprocessorsByIdResponses]; + +export type GetPreprocessorsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/preprocessors/{id}'; +}; + +export type GetPreprocessorsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetPreprocessorsByIdError = GetPreprocessorsByIdErrors[keyof GetPreprocessorsByIdErrors]; + +export type GetPreprocessorsByIdResponses = { + /** + * successful operation + */ + 200: PreprocessorResponse; +}; + +export type GetPreprocessorsByIdResponse = GetPreprocessorsByIdResponses[keyof GetPreprocessorsByIdResponses]; + +export type PatchPreprocessorsByIdData = { + body: PreprocessorPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/preprocessors/{id}'; +}; + +export type PatchPreprocessorsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchPreprocessorsByIdError = PatchPreprocessorsByIdErrors[keyof PatchPreprocessorsByIdErrors]; + +export type PatchPreprocessorsByIdResponses = { + /** + * successful operation + */ + 200: PreprocessorPostPatchResponse; +}; + +export type PatchPreprocessorsByIdResponse = PatchPreprocessorsByIdResponses[keyof PatchPreprocessorsByIdResponses]; + +export type DeletePretasksData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/pretasks'; +}; + +export type DeletePretasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeletePretasksError = DeletePretasksErrors[keyof DeletePretasksErrors]; + +export type DeletePretasksResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetPretasksData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/pretasks'; +}; + +export type GetPretasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetPretasksError = GetPretasksErrors[keyof GetPretasksErrors]; + +export type GetPretasksResponses = { + /** + * successful operation + */ + 200: PreTaskListResponse; +}; + +export type GetPretasksResponse = GetPretasksResponses[keyof GetPretasksResponses]; + +export type PatchPretasksData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/pretasks'; +}; + +export type PatchPretasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchPretasksError = PatchPretasksErrors[keyof PatchPretasksErrors]; + +export type PatchPretasksResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostPretasksData = { + body: PreTaskCreate; + path?: never; + query?: never; + url: '/api/v2/ui/pretasks'; +}; + +export type PostPretasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostPretasksError = PostPretasksErrors[keyof PostPretasksErrors]; + +export type PostPretasksResponses = { + /** + * successful operation + */ + 201: PreTaskPostPatchResponse; +}; + +export type PostPretasksResponse = PostPretasksResponses[keyof PostPretasksResponses]; + +export type GetPretasksCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/pretasks/count'; +}; + +export type GetPretasksCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetPretasksCountError = GetPretasksCountErrors[keyof GetPretasksCountErrors]; + +export type GetPretasksCountResponses = { + /** + * successful operation + */ + 200: PreTaskListResponse; +}; + +export type GetPretasksCountResponse = GetPretasksCountResponses[keyof GetPretasksCountResponses]; + +export type GetPretasksByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/pretasks/{id}/{relation}'; +}; + +export type GetPretasksByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetPretasksByIdByRelationError = GetPretasksByIdByRelationErrors[keyof GetPretasksByIdByRelationErrors]; + +export type GetPretasksByIdByRelationResponses = { + /** + * successful operation + */ + 200: PreTaskRelationPretaskFilesGetResponse; +}; + +export type GetPretasksByIdByRelationResponse = + GetPretasksByIdByRelationResponses[keyof GetPretasksByIdByRelationResponses]; + +export type DeletePretasksByIdRelationshipsByRelationData = { + body: PreTaskRelationPretaskFiles; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/pretasks/{id}/relationships/{relation}'; +}; + +export type DeletePretasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeletePretasksByIdRelationshipsByRelationError = + DeletePretasksByIdRelationshipsByRelationErrors[keyof DeletePretasksByIdRelationshipsByRelationErrors]; + +export type DeletePretasksByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeletePretasksByIdRelationshipsByRelationResponse = + DeletePretasksByIdRelationshipsByRelationResponses[keyof DeletePretasksByIdRelationshipsByRelationResponses]; + +export type GetPretasksByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/pretasks/{id}/relationships/{relation}'; +}; + +export type GetPretasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetPretasksByIdRelationshipsByRelationError = + GetPretasksByIdRelationshipsByRelationErrors[keyof GetPretasksByIdRelationshipsByRelationErrors]; + +export type GetPretasksByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: PreTaskResponse; +}; + +export type GetPretasksByIdRelationshipsByRelationResponse = + GetPretasksByIdRelationshipsByRelationResponses[keyof GetPretasksByIdRelationshipsByRelationResponses]; + +export type PatchPretasksByIdRelationshipsByRelationData = { + body: PreTaskRelationPretaskFiles; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/pretasks/{id}/relationships/{relation}'; +}; + +export type PatchPretasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchPretasksByIdRelationshipsByRelationError = + PatchPretasksByIdRelationshipsByRelationErrors[keyof PatchPretasksByIdRelationshipsByRelationErrors]; + +export type PatchPretasksByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchPretasksByIdRelationshipsByRelationResponse = + PatchPretasksByIdRelationshipsByRelationResponses[keyof PatchPretasksByIdRelationshipsByRelationResponses]; + +export type PostPretasksByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/pretasks/{id}/relationships/{relation}'; +}; + +export type PostPretasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostPretasksByIdRelationshipsByRelationError = + PostPretasksByIdRelationshipsByRelationErrors[keyof PostPretasksByIdRelationshipsByRelationErrors]; + +export type PostPretasksByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostPretasksByIdRelationshipsByRelationResponse = + PostPretasksByIdRelationshipsByRelationResponses[keyof PostPretasksByIdRelationshipsByRelationResponses]; + +export type DeletePretasksByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/pretasks/{id}'; +}; + +export type DeletePretasksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeletePretasksByIdError = DeletePretasksByIdErrors[keyof DeletePretasksByIdErrors]; + +export type DeletePretasksByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeletePretasksByIdResponse = DeletePretasksByIdResponses[keyof DeletePretasksByIdResponses]; + +export type GetPretasksByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/pretasks/{id}'; +}; + +export type GetPretasksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetPretasksByIdError = GetPretasksByIdErrors[keyof GetPretasksByIdErrors]; + +export type GetPretasksByIdResponses = { + /** + * successful operation + */ + 200: PreTaskResponse; +}; + +export type GetPretasksByIdResponse = GetPretasksByIdResponses[keyof GetPretasksByIdResponses]; + +export type PatchPretasksByIdData = { + body: PreTaskPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/pretasks/{id}'; +}; + +export type PatchPretasksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchPretasksByIdError = PatchPretasksByIdErrors[keyof PatchPretasksByIdErrors]; + +export type PatchPretasksByIdResponses = { + /** + * successful operation + */ + 200: PreTaskPostPatchResponse; +}; + +export type PatchPretasksByIdResponse = PatchPretasksByIdResponses[keyof PatchPretasksByIdResponses]; + +export type GetSpeedsData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/speeds'; +}; + +export type GetSpeedsErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetSpeedsError = GetSpeedsErrors[keyof GetSpeedsErrors]; + +export type GetSpeedsResponses = { + /** + * successful operation + */ + 200: SpeedListResponse; +}; + +export type GetSpeedsResponse = GetSpeedsResponses[keyof GetSpeedsResponses]; + +export type GetSpeedsCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/speeds/count'; +}; + +export type GetSpeedsCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetSpeedsCountError = GetSpeedsCountErrors[keyof GetSpeedsCountErrors]; + +export type GetSpeedsCountResponses = { + /** + * successful operation + */ + 200: SpeedListResponse; +}; + +export type GetSpeedsCountResponse = GetSpeedsCountResponses[keyof GetSpeedsCountResponses]; + +export type GetSpeedsByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/speeds/{id}/{relation}'; +}; + +export type GetSpeedsByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetSpeedsByIdByRelationError = GetSpeedsByIdByRelationErrors[keyof GetSpeedsByIdByRelationErrors]; + +export type GetSpeedsByIdByRelationResponses = { + /** + * successful operation + */ + 200: SpeedRelationTaskGetResponse; +}; + +export type GetSpeedsByIdByRelationResponse = GetSpeedsByIdByRelationResponses[keyof GetSpeedsByIdByRelationResponses]; + +export type GetSpeedsByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/speeds/{id}/relationships/{relation}'; +}; + +export type GetSpeedsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetSpeedsByIdRelationshipsByRelationError = + GetSpeedsByIdRelationshipsByRelationErrors[keyof GetSpeedsByIdRelationshipsByRelationErrors]; + +export type GetSpeedsByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: SpeedResponse; +}; + +export type GetSpeedsByIdRelationshipsByRelationResponse = + GetSpeedsByIdRelationshipsByRelationResponses[keyof GetSpeedsByIdRelationshipsByRelationResponses]; + +export type PatchSpeedsByIdRelationshipsByRelationData = { + body: SpeedRelationTask; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/speeds/{id}/relationships/{relation}'; +}; + +export type PatchSpeedsByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchSpeedsByIdRelationshipsByRelationError = + PatchSpeedsByIdRelationshipsByRelationErrors[keyof PatchSpeedsByIdRelationshipsByRelationErrors]; + +export type PatchSpeedsByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchSpeedsByIdRelationshipsByRelationResponse = + PatchSpeedsByIdRelationshipsByRelationResponses[keyof PatchSpeedsByIdRelationshipsByRelationResponses]; + +export type GetSpeedsByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/speeds/{id}'; +}; + +export type GetSpeedsByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetSpeedsByIdError = GetSpeedsByIdErrors[keyof GetSpeedsByIdErrors]; + +export type GetSpeedsByIdResponses = { + /** + * successful operation + */ + 200: SpeedResponse; +}; + +export type GetSpeedsByIdResponse = GetSpeedsByIdResponses[keyof GetSpeedsByIdResponses]; + +export type DeleteSupertasksData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/supertasks'; +}; + +export type DeleteSupertasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteSupertasksError = DeleteSupertasksErrors[keyof DeleteSupertasksErrors]; + +export type DeleteSupertasksResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetSupertasksData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/supertasks'; +}; + +export type GetSupertasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetSupertasksError = GetSupertasksErrors[keyof GetSupertasksErrors]; + +export type GetSupertasksResponses = { + /** + * successful operation + */ + 200: SupertaskListResponse; +}; + +export type GetSupertasksResponse = GetSupertasksResponses[keyof GetSupertasksResponses]; + +export type PatchSupertasksData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/supertasks'; +}; + +export type PatchSupertasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchSupertasksError = PatchSupertasksErrors[keyof PatchSupertasksErrors]; + +export type PatchSupertasksResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostSupertasksData = { + body: SupertaskCreate; + path?: never; + query?: never; + url: '/api/v2/ui/supertasks'; +}; + +export type PostSupertasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostSupertasksError = PostSupertasksErrors[keyof PostSupertasksErrors]; + +export type PostSupertasksResponses = { + /** + * successful operation + */ + 201: SupertaskPostPatchResponse; +}; + +export type PostSupertasksResponse = PostSupertasksResponses[keyof PostSupertasksResponses]; + +export type GetSupertasksCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/supertasks/count'; +}; + +export type GetSupertasksCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetSupertasksCountError = GetSupertasksCountErrors[keyof GetSupertasksCountErrors]; + +export type GetSupertasksCountResponses = { + /** + * successful operation + */ + 200: SupertaskListResponse; +}; + +export type GetSupertasksCountResponse = GetSupertasksCountResponses[keyof GetSupertasksCountResponses]; + +export type GetSupertasksByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/supertasks/{id}/{relation}'; +}; + +export type GetSupertasksByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetSupertasksByIdByRelationError = + GetSupertasksByIdByRelationErrors[keyof GetSupertasksByIdByRelationErrors]; + +export type GetSupertasksByIdByRelationResponses = { + /** + * successful operation + */ + 200: SupertaskRelationPretasksGetResponse; +}; + +export type GetSupertasksByIdByRelationResponse = + GetSupertasksByIdByRelationResponses[keyof GetSupertasksByIdByRelationResponses]; + +export type DeleteSupertasksByIdRelationshipsByRelationData = { + body: SupertaskRelationPretasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/supertasks/{id}/relationships/{relation}'; +}; + +export type DeleteSupertasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteSupertasksByIdRelationshipsByRelationError = + DeleteSupertasksByIdRelationshipsByRelationErrors[keyof DeleteSupertasksByIdRelationshipsByRelationErrors]; + +export type DeleteSupertasksByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteSupertasksByIdRelationshipsByRelationResponse = + DeleteSupertasksByIdRelationshipsByRelationResponses[keyof DeleteSupertasksByIdRelationshipsByRelationResponses]; + +export type GetSupertasksByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/supertasks/{id}/relationships/{relation}'; +}; + +export type GetSupertasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetSupertasksByIdRelationshipsByRelationError = + GetSupertasksByIdRelationshipsByRelationErrors[keyof GetSupertasksByIdRelationshipsByRelationErrors]; + +export type GetSupertasksByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: SupertaskResponse; +}; + +export type GetSupertasksByIdRelationshipsByRelationResponse = + GetSupertasksByIdRelationshipsByRelationResponses[keyof GetSupertasksByIdRelationshipsByRelationResponses]; + +export type PatchSupertasksByIdRelationshipsByRelationData = { + body: SupertaskRelationPretasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/supertasks/{id}/relationships/{relation}'; +}; + +export type PatchSupertasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchSupertasksByIdRelationshipsByRelationError = + PatchSupertasksByIdRelationshipsByRelationErrors[keyof PatchSupertasksByIdRelationshipsByRelationErrors]; + +export type PatchSupertasksByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchSupertasksByIdRelationshipsByRelationResponse = + PatchSupertasksByIdRelationshipsByRelationResponses[keyof PatchSupertasksByIdRelationshipsByRelationResponses]; + +export type PostSupertasksByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/supertasks/{id}/relationships/{relation}'; +}; + +export type PostSupertasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostSupertasksByIdRelationshipsByRelationError = + PostSupertasksByIdRelationshipsByRelationErrors[keyof PostSupertasksByIdRelationshipsByRelationErrors]; + +export type PostSupertasksByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostSupertasksByIdRelationshipsByRelationResponse = + PostSupertasksByIdRelationshipsByRelationResponses[keyof PostSupertasksByIdRelationshipsByRelationResponses]; + +export type DeleteSupertasksByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/supertasks/{id}'; +}; + +export type DeleteSupertasksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteSupertasksByIdError = DeleteSupertasksByIdErrors[keyof DeleteSupertasksByIdErrors]; + +export type DeleteSupertasksByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteSupertasksByIdResponse = DeleteSupertasksByIdResponses[keyof DeleteSupertasksByIdResponses]; + +export type GetSupertasksByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/supertasks/{id}'; +}; + +export type GetSupertasksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetSupertasksByIdError = GetSupertasksByIdErrors[keyof GetSupertasksByIdErrors]; + +export type GetSupertasksByIdResponses = { + /** + * successful operation + */ + 200: SupertaskResponse; +}; + +export type GetSupertasksByIdResponse = GetSupertasksByIdResponses[keyof GetSupertasksByIdResponses]; + +export type PatchSupertasksByIdData = { + body: SupertaskPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/supertasks/{id}'; +}; + +export type PatchSupertasksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchSupertasksByIdError = PatchSupertasksByIdErrors[keyof PatchSupertasksByIdErrors]; + +export type PatchSupertasksByIdResponses = { + /** + * successful operation + */ + 200: SupertaskPostPatchResponse; +}; + +export type PatchSupertasksByIdResponse = PatchSupertasksByIdResponses[keyof PatchSupertasksByIdResponses]; + +export type DeleteTasksData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/tasks'; +}; + +export type DeleteTasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteTasksError = DeleteTasksErrors[keyof DeleteTasksErrors]; + +export type DeleteTasksResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetTasksData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/tasks'; +}; + +export type GetTasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetTasksError = GetTasksErrors[keyof GetTasksErrors]; + +export type GetTasksResponses = { + /** + * successful operation + */ + 200: TaskListResponse; +}; + +export type GetTasksResponse = GetTasksResponses[keyof GetTasksResponses]; + +export type PatchTasksData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/tasks'; +}; + +export type PatchTasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchTasksError = PatchTasksErrors[keyof PatchTasksErrors]; + +export type PatchTasksResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostTasksData = { + body: TaskCreate; + path?: never; + query?: never; + url: '/api/v2/ui/tasks'; +}; + +export type PostTasksErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostTasksError = PostTasksErrors[keyof PostTasksErrors]; + +export type PostTasksResponses = { + /** + * successful operation + */ + 201: TaskPostPatchResponse; +}; + +export type PostTasksResponse = PostTasksResponses[keyof PostTasksResponses]; + +export type GetTasksCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/tasks/count'; +}; + +export type GetTasksCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetTasksCountError = GetTasksCountErrors[keyof GetTasksCountErrors]; + +export type GetTasksCountResponses = { + /** + * successful operation + */ + 200: TaskListResponse; +}; + +export type GetTasksCountResponse = GetTasksCountResponses[keyof GetTasksCountResponses]; + +export type GetTasksByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/tasks/{id}/{relation}'; +}; + +export type GetTasksByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetTasksByIdByRelationError = GetTasksByIdByRelationErrors[keyof GetTasksByIdByRelationErrors]; + +export type GetTasksByIdByRelationResponses = { + /** + * successful operation + */ + 200: TaskRelationSpeedsGetResponse; +}; + +export type GetTasksByIdByRelationResponse = GetTasksByIdByRelationResponses[keyof GetTasksByIdByRelationResponses]; + +export type DeleteTasksByIdRelationshipsByRelationData = { + body: TaskRelationSpeeds; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/tasks/{id}/relationships/{relation}'; +}; + +export type DeleteTasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteTasksByIdRelationshipsByRelationError = + DeleteTasksByIdRelationshipsByRelationErrors[keyof DeleteTasksByIdRelationshipsByRelationErrors]; + +export type DeleteTasksByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteTasksByIdRelationshipsByRelationResponse = + DeleteTasksByIdRelationshipsByRelationResponses[keyof DeleteTasksByIdRelationshipsByRelationResponses]; + +export type GetTasksByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/tasks/{id}/relationships/{relation}'; +}; + +export type GetTasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetTasksByIdRelationshipsByRelationError = + GetTasksByIdRelationshipsByRelationErrors[keyof GetTasksByIdRelationshipsByRelationErrors]; + +export type GetTasksByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: TaskResponse; +}; + +export type GetTasksByIdRelationshipsByRelationResponse = + GetTasksByIdRelationshipsByRelationResponses[keyof GetTasksByIdRelationshipsByRelationResponses]; + +export type PatchTasksByIdRelationshipsByRelationData = { + body: TaskRelationSpeeds; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/tasks/{id}/relationships/{relation}'; +}; + +export type PatchTasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchTasksByIdRelationshipsByRelationError = + PatchTasksByIdRelationshipsByRelationErrors[keyof PatchTasksByIdRelationshipsByRelationErrors]; + +export type PatchTasksByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchTasksByIdRelationshipsByRelationResponse = + PatchTasksByIdRelationshipsByRelationResponses[keyof PatchTasksByIdRelationshipsByRelationResponses]; + +export type PostTasksByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/tasks/{id}/relationships/{relation}'; +}; + +export type PostTasksByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostTasksByIdRelationshipsByRelationError = + PostTasksByIdRelationshipsByRelationErrors[keyof PostTasksByIdRelationshipsByRelationErrors]; + +export type PostTasksByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostTasksByIdRelationshipsByRelationResponse = + PostTasksByIdRelationshipsByRelationResponses[keyof PostTasksByIdRelationshipsByRelationResponses]; + +export type DeleteTasksByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/tasks/{id}'; +}; + +export type DeleteTasksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteTasksByIdError = DeleteTasksByIdErrors[keyof DeleteTasksByIdErrors]; + +export type DeleteTasksByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteTasksByIdResponse = DeleteTasksByIdResponses[keyof DeleteTasksByIdResponses]; + +export type GetTasksByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/tasks/{id}'; +}; + +export type GetTasksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetTasksByIdError = GetTasksByIdErrors[keyof GetTasksByIdErrors]; + +export type GetTasksByIdResponses = { + /** + * successful operation + */ + 200: TaskResponse; +}; + +export type GetTasksByIdResponse = GetTasksByIdResponses[keyof GetTasksByIdResponses]; + +export type PatchTasksByIdData = { + body: TaskPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/tasks/{id}'; +}; + +export type PatchTasksByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchTasksByIdError = PatchTasksByIdErrors[keyof PatchTasksByIdErrors]; + +export type PatchTasksByIdResponses = { + /** + * successful operation + */ + 200: TaskPostPatchResponse; +}; + +export type PatchTasksByIdResponse = PatchTasksByIdResponses[keyof PatchTasksByIdResponses]; + +export type DeleteTaskwrappersData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/taskwrappers'; +}; + +export type DeleteTaskwrappersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteTaskwrappersError = DeleteTaskwrappersErrors[keyof DeleteTaskwrappersErrors]; + +export type DeleteTaskwrappersResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetTaskwrappersData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/taskwrappers'; +}; + +export type GetTaskwrappersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetTaskwrappersError = GetTaskwrappersErrors[keyof GetTaskwrappersErrors]; + +export type GetTaskwrappersResponses = { + /** + * successful operation + */ + 200: TaskWrapperListResponse; +}; + +export type GetTaskwrappersResponse = GetTaskwrappersResponses[keyof GetTaskwrappersResponses]; + +export type PatchTaskwrappersData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/taskwrappers'; +}; + +export type PatchTaskwrappersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchTaskwrappersError = PatchTaskwrappersErrors[keyof PatchTaskwrappersErrors]; + +export type PatchTaskwrappersResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetTaskwrappersCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/taskwrappers/count'; +}; + +export type GetTaskwrappersCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetTaskwrappersCountError = GetTaskwrappersCountErrors[keyof GetTaskwrappersCountErrors]; + +export type GetTaskwrappersCountResponses = { + /** + * successful operation + */ + 200: TaskWrapperListResponse; +}; + +export type GetTaskwrappersCountResponse = GetTaskwrappersCountResponses[keyof GetTaskwrappersCountResponses]; + +export type GetTaskwrappersByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/taskwrappers/{id}/{relation}'; +}; + +export type GetTaskwrappersByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetTaskwrappersByIdByRelationError = + GetTaskwrappersByIdByRelationErrors[keyof GetTaskwrappersByIdByRelationErrors]; + +export type GetTaskwrappersByIdByRelationResponses = { + /** + * successful operation + */ + 200: TaskWrapperRelationTasksGetResponse; +}; + +export type GetTaskwrappersByIdByRelationResponse = + GetTaskwrappersByIdByRelationResponses[keyof GetTaskwrappersByIdByRelationResponses]; + +export type DeleteTaskwrappersByIdRelationshipsByRelationData = { + body: TaskWrapperRelationTasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/taskwrappers/{id}/relationships/{relation}'; +}; + +export type DeleteTaskwrappersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteTaskwrappersByIdRelationshipsByRelationError = + DeleteTaskwrappersByIdRelationshipsByRelationErrors[keyof DeleteTaskwrappersByIdRelationshipsByRelationErrors]; + +export type DeleteTaskwrappersByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteTaskwrappersByIdRelationshipsByRelationResponse = + DeleteTaskwrappersByIdRelationshipsByRelationResponses[keyof DeleteTaskwrappersByIdRelationshipsByRelationResponses]; + +export type GetTaskwrappersByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/taskwrappers/{id}/relationships/{relation}'; +}; + +export type GetTaskwrappersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetTaskwrappersByIdRelationshipsByRelationError = + GetTaskwrappersByIdRelationshipsByRelationErrors[keyof GetTaskwrappersByIdRelationshipsByRelationErrors]; + +export type GetTaskwrappersByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: TaskWrapperResponse; +}; + +export type GetTaskwrappersByIdRelationshipsByRelationResponse = + GetTaskwrappersByIdRelationshipsByRelationResponses[keyof GetTaskwrappersByIdRelationshipsByRelationResponses]; + +export type PatchTaskwrappersByIdRelationshipsByRelationData = { + body: TaskWrapperRelationTasks; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/taskwrappers/{id}/relationships/{relation}'; +}; + +export type PatchTaskwrappersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchTaskwrappersByIdRelationshipsByRelationError = + PatchTaskwrappersByIdRelationshipsByRelationErrors[keyof PatchTaskwrappersByIdRelationshipsByRelationErrors]; + +export type PatchTaskwrappersByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchTaskwrappersByIdRelationshipsByRelationResponse = + PatchTaskwrappersByIdRelationshipsByRelationResponses[keyof PatchTaskwrappersByIdRelationshipsByRelationResponses]; + +export type PostTaskwrappersByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/taskwrappers/{id}/relationships/{relation}'; +}; + +export type PostTaskwrappersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostTaskwrappersByIdRelationshipsByRelationError = + PostTaskwrappersByIdRelationshipsByRelationErrors[keyof PostTaskwrappersByIdRelationshipsByRelationErrors]; + +export type PostTaskwrappersByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostTaskwrappersByIdRelationshipsByRelationResponse = + PostTaskwrappersByIdRelationshipsByRelationResponses[keyof PostTaskwrappersByIdRelationshipsByRelationResponses]; + +export type DeleteTaskwrappersByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/taskwrappers/{id}'; +}; + +export type DeleteTaskwrappersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteTaskwrappersByIdError = DeleteTaskwrappersByIdErrors[keyof DeleteTaskwrappersByIdErrors]; + +export type DeleteTaskwrappersByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteTaskwrappersByIdResponse = DeleteTaskwrappersByIdResponses[keyof DeleteTaskwrappersByIdResponses]; + +export type GetTaskwrappersByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/taskwrappers/{id}'; +}; + +export type GetTaskwrappersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetTaskwrappersByIdError = GetTaskwrappersByIdErrors[keyof GetTaskwrappersByIdErrors]; + +export type GetTaskwrappersByIdResponses = { + /** + * successful operation + */ + 200: TaskWrapperResponse; +}; + +export type GetTaskwrappersByIdResponse = GetTaskwrappersByIdResponses[keyof GetTaskwrappersByIdResponses]; + +export type PatchTaskwrappersByIdData = { + body: TaskWrapperPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/taskwrappers/{id}'; +}; + +export type PatchTaskwrappersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchTaskwrappersByIdError = PatchTaskwrappersByIdErrors[keyof PatchTaskwrappersByIdErrors]; + +export type PatchTaskwrappersByIdResponses = { + /** + * successful operation + */ + 200: TaskWrapperPostPatchResponse; +}; + +export type PatchTaskwrappersByIdResponse = PatchTaskwrappersByIdResponses[keyof PatchTaskwrappersByIdResponses]; + +export type DeleteUsersData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/users'; +}; + +export type DeleteUsersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteUsersError = DeleteUsersErrors[keyof DeleteUsersErrors]; + +export type DeleteUsersResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetUsersData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/users'; +}; + +export type GetUsersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetUsersError = GetUsersErrors[keyof GetUsersErrors]; + +export type GetUsersResponses = { + /** + * successful operation + */ + 200: UserListResponse; +}; + +export type GetUsersResponse = GetUsersResponses[keyof GetUsersResponses]; + +export type PatchUsersData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/users'; +}; + +export type PatchUsersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchUsersError = PatchUsersErrors[keyof PatchUsersErrors]; + +export type PatchUsersResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostUsersData = { + body: UserCreate; + path?: never; + query?: never; + url: '/api/v2/ui/users'; +}; + +export type PostUsersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostUsersError = PostUsersErrors[keyof PostUsersErrors]; + +export type PostUsersResponses = { + /** + * successful operation + */ + 201: UserPostPatchResponse; +}; + +export type PostUsersResponse = PostUsersResponses[keyof PostUsersResponses]; + +export type GetUsersCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/users/count'; +}; + +export type GetUsersCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetUsersCountError = GetUsersCountErrors[keyof GetUsersCountErrors]; + +export type GetUsersCountResponses = { + /** + * successful operation + */ + 200: UserListResponse; +}; + +export type GetUsersCountResponse = GetUsersCountResponses[keyof GetUsersCountResponses]; + +export type GetUsersByIdByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/users/{id}/{relation}'; +}; + +export type GetUsersByIdByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetUsersByIdByRelationError = GetUsersByIdByRelationErrors[keyof GetUsersByIdByRelationErrors]; + +export type GetUsersByIdByRelationResponses = { + /** + * successful operation + */ + 200: UserRelationAccessGroupsGetResponse; +}; + +export type GetUsersByIdByRelationResponse = GetUsersByIdByRelationResponses[keyof GetUsersByIdByRelationResponses]; + +export type DeleteUsersByIdRelationshipsByRelationData = { + body: UserRelationAccessGroups; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/users/{id}/relationships/{relation}'; +}; + +export type DeleteUsersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteUsersByIdRelationshipsByRelationError = + DeleteUsersByIdRelationshipsByRelationErrors[keyof DeleteUsersByIdRelationshipsByRelationErrors]; + +export type DeleteUsersByIdRelationshipsByRelationResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteUsersByIdRelationshipsByRelationResponse = + DeleteUsersByIdRelationshipsByRelationResponses[keyof DeleteUsersByIdRelationshipsByRelationResponses]; + +export type GetUsersByIdRelationshipsByRelationData = { + body?: never; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/users/{id}/relationships/{relation}'; +}; + +export type GetUsersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetUsersByIdRelationshipsByRelationError = + GetUsersByIdRelationshipsByRelationErrors[keyof GetUsersByIdRelationshipsByRelationErrors]; + +export type GetUsersByIdRelationshipsByRelationResponses = { + /** + * successful operation + */ + 200: UserResponse; +}; + +export type GetUsersByIdRelationshipsByRelationResponse = + GetUsersByIdRelationshipsByRelationResponses[keyof GetUsersByIdRelationshipsByRelationResponses]; + +export type PatchUsersByIdRelationshipsByRelationData = { + body: UserRelationAccessGroups; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/users/{id}/relationships/{relation}'; +}; + +export type PatchUsersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchUsersByIdRelationshipsByRelationError = + PatchUsersByIdRelationshipsByRelationErrors[keyof PatchUsersByIdRelationshipsByRelationErrors]; + +export type PatchUsersByIdRelationshipsByRelationResponses = { + /** + * Successfull operation + */ + 204: void; +}; + +export type PatchUsersByIdRelationshipsByRelationResponse = + PatchUsersByIdRelationshipsByRelationResponses[keyof PatchUsersByIdRelationshipsByRelationResponses]; + +export type PostUsersByIdRelationshipsByRelationData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + relation: string; + }; + query?: never; + url: '/api/v2/ui/users/{id}/relationships/{relation}'; +}; + +export type PostUsersByIdRelationshipsByRelationErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostUsersByIdRelationshipsByRelationError = + PostUsersByIdRelationshipsByRelationErrors[keyof PostUsersByIdRelationshipsByRelationErrors]; + +export type PostUsersByIdRelationshipsByRelationResponses = { + /** + * successfully created + */ + 204: void; +}; + +export type PostUsersByIdRelationshipsByRelationResponse = + PostUsersByIdRelationshipsByRelationResponses[keyof PostUsersByIdRelationshipsByRelationResponses]; + +export type DeleteUsersByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/users/{id}'; +}; + +export type DeleteUsersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteUsersByIdError = DeleteUsersByIdErrors[keyof DeleteUsersByIdErrors]; + +export type DeleteUsersByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteUsersByIdResponse = DeleteUsersByIdResponses[keyof DeleteUsersByIdResponses]; + +export type GetUsersByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/users/{id}'; +}; + +export type GetUsersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetUsersByIdError = GetUsersByIdErrors[keyof GetUsersByIdErrors]; + +export type GetUsersByIdResponses = { + /** + * successful operation + */ + 200: UserResponse; +}; + +export type GetUsersByIdResponse = GetUsersByIdResponses[keyof GetUsersByIdResponses]; + +export type PatchUsersByIdData = { + body: UserPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/users/{id}'; +}; + +export type PatchUsersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchUsersByIdError = PatchUsersByIdErrors[keyof PatchUsersByIdErrors]; + +export type PatchUsersByIdResponses = { + /** + * successful operation + */ + 200: UserPostPatchResponse; +}; + +export type PatchUsersByIdResponse = PatchUsersByIdResponses[keyof PatchUsersByIdResponses]; + +export type DeleteVouchersData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/vouchers'; +}; + +export type DeleteVouchersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type DeleteVouchersError = DeleteVouchersErrors[keyof DeleteVouchersErrors]; + +export type DeleteVouchersResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetVouchersData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/vouchers'; +}; + +export type GetVouchersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetVouchersError = GetVouchersErrors[keyof GetVouchersErrors]; + +export type GetVouchersResponses = { + /** + * successful operation + */ + 200: VoucherListResponse; +}; + +export type GetVouchersResponse = GetVouchersResponses[keyof GetVouchersResponses]; + +export type PatchVouchersData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/ui/vouchers'; +}; + +export type PatchVouchersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PatchVouchersError = PatchVouchersErrors[keyof PatchVouchersErrors]; + +export type PatchVouchersResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostVouchersData = { + body: VoucherCreate; + path?: never; + query?: never; + url: '/api/v2/ui/vouchers'; +}; + +export type PostVouchersErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type PostVouchersError = PostVouchersErrors[keyof PostVouchersErrors]; + +export type PostVouchersResponses = { + /** + * successful operation + */ + 201: VoucherPostPatchResponse; +}; + +export type PostVouchersResponse = PostVouchersResponses[keyof PostVouchersResponses]; + +export type GetVouchersCountData = { + body?: never; + path?: never; + query?: { + /** + * Pointer to paginate to retrieve the data after the value provided + */ + 'page[after]'?: number; + /** + * Pointer to paginate to retrieve the data before the value provided + */ + 'page[before]'?: number; + /** + * Amout of data to retrieve inside a single page + */ + 'page[size]'?: number; + /** + * Filters results using a query + */ + filter?: { + [key: string]: unknown; + }; + /** + * Items to include, comma seperated. Possible options: Array + */ + include?: string; + }; + url: '/api/v2/ui/vouchers/count'; +}; + +export type GetVouchersCountErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; +}; + +export type GetVouchersCountError = GetVouchersCountErrors[keyof GetVouchersCountErrors]; + +export type GetVouchersCountResponses = { + /** + * successful operation + */ + 200: VoucherListResponse; +}; + +export type GetVouchersCountResponse = GetVouchersCountResponses[keyof GetVouchersCountResponses]; + +export type DeleteVouchersByIdData = { + body: { + [key: string]: unknown; + }; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/vouchers/{id}'; +}; + +export type DeleteVouchersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type DeleteVouchersByIdError = DeleteVouchersByIdErrors[keyof DeleteVouchersByIdErrors]; + +export type DeleteVouchersByIdResponses = { + /** + * successfully deleted + */ + 204: void; +}; + +export type DeleteVouchersByIdResponse = DeleteVouchersByIdResponses[keyof DeleteVouchersByIdResponses]; + +export type GetVouchersByIdData = { + body?: never; + path: { + id: number; + }; + query?: { + /** + * Items to include. Comma seperated + */ + include?: string; + }; + url: '/api/v2/ui/vouchers/{id}'; +}; + +export type GetVouchersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type GetVouchersByIdError = GetVouchersByIdErrors[keyof GetVouchersByIdErrors]; + +export type GetVouchersByIdResponses = { + /** + * successful operation + */ + 200: VoucherResponse; +}; + +export type GetVouchersByIdResponse = GetVouchersByIdResponses[keyof GetVouchersByIdResponses]; + +export type PatchVouchersByIdData = { + body: VoucherPatch; + path: { + id: number; + }; + query?: never; + url: '/api/v2/ui/vouchers/{id}'; +}; + +export type PatchVouchersByIdErrors = { + /** + * Invalid request + */ + 400: ErrorResponse; + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PatchVouchersByIdError = PatchVouchersByIdErrors[keyof PatchVouchersByIdErrors]; + +export type PatchVouchersByIdResponses = { + /** + * successful operation + */ + 200: VoucherPostPatchResponse; +}; + +export type PatchVouchersByIdResponse = PatchVouchersByIdResponses[keyof PatchVouchersByIdResponses]; + +export type PostAbortChunkData = { + /** + * ChunkID is the ID of the chunk that needs to be aborted.
+ */ + body: AbortChunkHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/abortChunk'; +}; + +export type PostAbortChunkResponses = { + /** + * successful operation + */ + 200: AbortChunkHelperApiResponse; +}; + +export type PostAbortChunkResponse = PostAbortChunkResponses[keyof PostAbortChunkResponses]; + +export type PostAssignAgentData = { + /** + * 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.
+ */ + body: AssignAgentHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/assignAgent'; +}; + +export type PostAssignAgentResponses = { + /** + * successful operation + */ + 200: AssignAgentHelperApiResponse; +}; + +export type PostAssignAgentResponse = PostAssignAgentResponses[keyof PostAssignAgentResponses]; + +export type PostBulkSupertaskBuilderData = { + body: BulkSupertaskBuilderHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/bulkSupertaskBuilder'; +}; + +export type PostBulkSupertaskBuilderResponses = { + /** + * successful operation + */ + 200: SupertaskSingleResponse; +}; + +export type PostBulkSupertaskBuilderResponse = + PostBulkSupertaskBuilderResponses[keyof PostBulkSupertaskBuilderResponses]; + +export type PostChangeOwnPasswordData = { + /** + * 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.
+ */ + body: ChangeOwnPasswordHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/changeOwnPassword'; +}; + +export type PostChangeOwnPasswordResponses = { + /** + * successful operation + */ + 200: ChangeOwnPasswordHelperApiResponse; +}; + +export type PostChangeOwnPasswordResponse = PostChangeOwnPasswordResponses[keyof PostChangeOwnPasswordResponses]; + +export type PostCreateSuperHashlistData = { + /** + * 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.
+ */ + body: CreateSuperHashlistHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/createSuperHashlist'; +}; + +export type PostCreateSuperHashlistResponses = { + /** + * successful operation + */ + 200: HashlistSingleResponse; +}; + +export type PostCreateSuperHashlistResponse = PostCreateSuperHashlistResponses[keyof PostCreateSuperHashlistResponses]; + +export type PostCreateSupertaskData = { + /** + * 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.
+ */ + body: CreateSupertaskHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/createSupertask'; +}; + +export type PostCreateSupertaskResponses = { + /** + * successful operation + */ + 200: TaskWrapperSingleResponse; +}; + +export type PostCreateSupertaskResponse = PostCreateSupertaskResponses[keyof PostCreateSupertaskResponses]; + +export type GetCurrentUserData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/helper/currentUser'; +}; + +export type GetCurrentUserResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PatchCurrentUserData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/helper/currentUser'; +}; + +export type PatchCurrentUserResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostExportCrackedHashesData = { + /** + * hashlistId is the Id of the hashlist where you want to export the hashes of.
+ */ + body: ExportCrackedHashesHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/exportCrackedHashes'; +}; + +export type PostExportCrackedHashesResponses = { + /** + * successful operation + */ + 200: FileSingleResponse; +}; + +export type PostExportCrackedHashesResponse = PostExportCrackedHashesResponses[keyof PostExportCrackedHashesResponses]; + +export type PostExportLeftHashesData = { + /** + * hashlistId is the id of the hashlist where you want to export the uncracked hashes of.
+ */ + body: ExportLeftHashesHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/exportLeftHashes'; +}; + +export type PostExportLeftHashesResponses = { + /** + * successful operation + */ + 200: FileSingleResponse; +}; + +export type PostExportLeftHashesResponse = PostExportLeftHashesResponses[keyof PostExportLeftHashesResponses]; + +export type PostExportWordlistData = { + /** + * hashlistId is the Id of the hashlist where you want to export the wordlist of.
+ */ + body: ExportWordlistHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/exportWordlist'; +}; + +export type PostExportWordlistResponses = { + /** + * successful operation + */ + 200: FileSingleResponse; +}; + +export type PostExportWordlistResponse = PostExportWordlistResponses[keyof PostExportWordlistResponses]; + +export type GetGetAccessGroupsData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/helper/getAccessGroups'; +}; + +export type GetGetAccessGroupsResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetGetAgentBinaryData = { + body?: never; + path?: never; + query: { + /** + * The ID of the agent zip to download. + */ + agent: number; + }; + url: '/api/v2/helper/getAgentBinary'; +}; + +export type GetGetAgentBinaryResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetGetBestTasksAgentData = { + body?: never; + path?: never; + query: { + /** + * The ID of the agent. + */ + agent: number; + }; + url: '/api/v2/helper/getBestTasksAgent'; +}; + +export type GetGetBestTasksAgentResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetGetCracksOfTaskData = { + body?: never; + path?: never; + query: { + /** + * The ID of the task. + */ + task: number; + }; + url: '/api/v2/helper/getCracksOfTask'; +}; + +export type GetGetCracksOfTaskResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetGetFileData = { + body?: never; + path?: never; + query: { + /** + * The ID of the file to download. + */ + file: number; + }; + url: '/api/v2/helper/getFile'; +}; + +export type GetGetFileResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetGetTaskProgressImageData = { + body?: never; + path?: never; + query?: { + /** + * The ID of the supertask where you want to create the progress image of. + */ + supertask?: number; + /** + * The ID of the task where you want to create the progress image of. + */ + task?: number; + }; + url: '/api/v2/helper/getTaskProgressImage'; +}; + +export type GetGetTaskProgressImageResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type GetGetUserPermissionData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/helper/getUserPermission'; +}; + +export type GetGetUserPermissionResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostImportCrackedHashesData = { + /** + * 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.
+ */ + body: ImportCrackedHashesHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/importCrackedHashes'; +}; + +export type PostImportCrackedHashesResponses = { + /** + * successful operation + */ + 200: ImportCrackedHashesHelperApiResponse; +}; + +export type PostImportCrackedHashesResponse = PostImportCrackedHashesResponses[keyof PostImportCrackedHashesResponses]; + +export type GetImportFileData = { + body?: never; + path?: never; + query?: never; + url: '/api/v2/helper/importFile'; +}; + +export type GetImportFileResponses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type PostImportFileData = { + /** + * Import file has no POST parameters
+ */ + body: ImportFileHelperApi; + headers: { + /** + * The Upload-Metadata header contains one or more comma-separated key-value pairs. + * Each pair is formatted as ` `, where: + * - `key` is a string without spaces. + * - `value` is base64-encoded + */ + 'Upload-Metadata': string; + /** + * The total size of the upload in bytes. Must be a positive integer. + * Required if `Upload-Defer-Length` is not set. + */ + 'Upload-Length'?: number; + /** + * Indicates that the upload length is not known at creation time. + * Value must be `1`. If present, `Upload-Length` must be omitted. + */ + 'Upload-Defer-Length'?: number; + }; + path?: never; + query?: never; + url: '/api/v2/helper/importFile'; +}; + +export type PostImportFileResponses = { + /** + * successful operation + */ + 200: unknown; + /** + * successful operation + */ + 201: Blob | File; +}; + +export type PostImportFileResponse = PostImportFileResponses[keyof PostImportFileResponses]; + +export type DeleteImportFileById09aF32Data = { + body?: never; + path: { + 32: string; + id: number; + }; + query?: never; + url: '/api/v2/helper/importFile/{id}-[0-9a-f]{32}}'; +}; + +export type DeleteImportFileById09aF32Responses = { + /** + * successful operation + */ + 200: unknown; +}; + +export type HeadImportFileById09aF32Data = { + body?: never; + path: { + 32: string; + id: number; + }; + query?: never; + url: '/api/v2/helper/importFile/{id}-[0-9a-f]{32}}'; +}; + +export type HeadImportFileById09aF32Responses = { + /** + * successful request + */ + 200: unknown; +}; + +export type PatchImportFileById09aF32Data = { + /** + * The binary data to push to the file + */ + body: Blob | File; + headers: { + /** + * The Upload-Offset header's value MUST be equal to the current offset of the resource + */ + 'Upload-Offset': number; + 'Content-Type': 'application/offset+octet-stream'; + }; + path: { + 32: string; + id: number; + }; + query?: never; + url: '/api/v2/helper/importFile/{id}-[0-9a-f]{32}}'; +}; + +export type PatchImportFileById09aF32Responses = { + /** + * successful operation + */ + 200: unknown; + /** + * Chunk accepted + */ + 204: void; +}; + +export type PatchImportFileById09aF32Response = + PatchImportFileById09aF32Responses[keyof PatchImportFileById09aF32Responses]; + +export type PostMaskSupertaskBuilderData = { + body: MaskSupertaskBuilderHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/maskSupertaskBuilder'; +}; + +export type PostMaskSupertaskBuilderResponses = { + /** + * successful operation + */ + 200: SupertaskSingleResponse; +}; + +export type PostMaskSupertaskBuilderResponse = + PostMaskSupertaskBuilderResponses[keyof PostMaskSupertaskBuilderResponses]; + +export type PostPurgeTaskData = { + /** + * taskId is the id of the task that should be purged.
+ */ + body: PurgeTaskHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/purgeTask'; +}; + +export type PostPurgeTaskResponses = { + /** + * successful operation + */ + 200: PurgeTaskHelperApiResponse; +}; + +export type PostPurgeTaskResponse = PostPurgeTaskResponses[keyof PostPurgeTaskResponses]; + +export type PostRebuildChunkCacheData = { + body: RebuildChunkCacheHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/rebuildChunkCache'; +}; + +export type PostRebuildChunkCacheResponses = { + /** + * successful operation + */ + 200: RebuildChunkCacheHelperApiResponse; +}; + +export type PostRebuildChunkCacheResponse = PostRebuildChunkCacheResponses[keyof PostRebuildChunkCacheResponses]; + +export type PostRecountFileLinesData = { + /** + * FileId is the id of the file that needs to be recounted.
+ */ + body: RecountFileLinesHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/recountFileLines'; +}; + +export type PostRecountFileLinesResponses = { + /** + * successful operation + */ + 200: FileSingleResponse; +}; + +export type PostRecountFileLinesResponse = PostRecountFileLinesResponses[keyof PostRecountFileLinesResponses]; + +export type PostRescanGlobalFilesData = { + body: RescanGlobalFilesHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/rescanGlobalFiles'; +}; + +export type PostRescanGlobalFilesResponses = { + /** + * successful operation + */ + 200: RescanGlobalFilesHelperApiResponse; +}; + +export type PostRescanGlobalFilesResponse = PostRescanGlobalFilesResponses[keyof PostRescanGlobalFilesResponses]; + +export type PostResetChunkData = { + /** + * chunkId is the id of the chunk which you want to reset.
+ */ + body: ResetChunkHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/resetChunk'; +}; + +export type PostResetChunkResponses = { + /** + * successful operation + */ + 200: ResetChunkHelperApiResponse; +}; + +export type PostResetChunkResponse = PostResetChunkResponses[keyof PostResetChunkResponses]; + +export type PostResetUserPasswordData = { + body: ResetUserPasswordHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/resetUserPassword'; +}; + +export type PostResetUserPasswordResponses = { + /** + * successful operation + */ + 200: ResetUserPasswordHelperApiResponse; +}; + +export type PostResetUserPasswordResponse = PostResetUserPasswordResponses[keyof PostResetUserPasswordResponses]; + +export type PostSearchHashesData = { + body: SearchHashesHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/searchHashes'; +}; + +export type PostSearchHashesResponses = { + /** + * successful operation + */ + 200: SearchHashesHelperApiResponse; +}; + +export type PostSearchHashesResponse = PostSearchHashesResponses[keyof PostSearchHashesResponses]; + +export type PostSetUserPasswordData = { + /** + * 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.
+ */ + body: SetUserPasswordHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/setUserPassword'; +}; + +export type PostSetUserPasswordResponses = { + /** + * successful operation + */ + 200: SetUserPasswordHelperApiResponse; +}; + +export type PostSetUserPasswordResponse = PostSetUserPasswordResponses[keyof PostSetUserPasswordResponses]; + +export type PostUnassignAgentData = { + /** + * agentId is the id of the agent which you want to unassign.
+ */ + body: UnassignAgentHelperApi; + path?: never; + query?: never; + url: '/api/v2/helper/unassignAgent'; +}; + +export type PostUnassignAgentResponses = { + /** + * successful operation + */ + 200: UnassignAgentHelperApiResponse; +}; + +export type PostUnassignAgentResponse = PostUnassignAgentResponses[keyof PostUnassignAgentResponses]; + +export type PostTokenData = { + body: TokenRequest; + path?: never; + query?: never; + url: '/api/v2/auth/token'; +}; + +export type PostTokenErrors = { + /** + * Authentication failed + */ + 401: ErrorResponse; + /** + * Not Found + */ + 404: NotFoundResponse; +}; + +export type PostTokenError = PostTokenErrors[keyof PostTokenErrors]; + +export type PostTokenResponses = { + /** + * Success + */ + 200: Token; +}; + +export type PostTokenResponse = PostTokenResponses[keyof PostTokenResponses]; diff --git a/src/generated/api/zod.gen.ts b/src/generated/api/zod.gen.ts new file mode 100644 index 000000000..ba16541d5 --- /dev/null +++ b/src/generated/api/zod.gen.ts @@ -0,0 +1,12561 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod'; + +export const zErrorResponse = z.object({ + title: z.string().optional(), + type: z.string().optional(), + status: z.int() +}); + +export const zNotFoundResponse = z.object({ + message: z.string(), + exception: z + .object({ + type: z.string().optional(), + code: z.int().optional(), + message: z.string().optional(), + file: z.string().optional(), + line: z.int().optional() + }) + .optional() +}); + +export const zAccessGroupCreate = z.object({ + data: z.object({ + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }) +}); + +export const zAccessGroupPatch = z.object({ + data: z.object({ + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string().optional() + }) + }) +}); + +export const zAccessGroupResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/accessgroups?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/accessgroups?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/accessgroups?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/accessgroups?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/accessgroups?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }), + relationships: z + .object({ + agentMembers: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/accessgroups/relationships/agentMembers'), + related: z.string().default('/api/v2/ui/accessgroups/agentMembers') + }), + data: z + .array( + z.object({ + type: z.literal('agent'), + id: z.int() + }) + ) + .optional() + }), + userMembers: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/accessgroups/relationships/userMembers'), + related: z.string().default('/api/v2/ui/accessgroups/userMembers') + }), + data: z + .array( + z.object({ + type: z.literal('user'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zAccessGroupPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }) +}); + +export const zAccessGroupListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/accessgroups?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/accessgroups?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/accessgroups?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/accessgroups?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/accessgroups?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }) + ), + relationships: z + .object({ + agentMembers: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/accessgroups/relationships/agentMembers'), + related: z.string().default('/api/v2/ui/accessgroups/agentMembers') + }), + data: z + .array( + z.object({ + type: z.literal('agent'), + id: z.int() + }) + ) + .optional() + }), + userMembers: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/accessgroups/relationships/userMembers'), + related: z.string().default('/api/v2/ui/accessgroups/userMembers') + }), + data: z + .array( + z.object({ + type: z.literal('user'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zAccessGroupRelationAgentMembers = z.object({ + data: z.array( + z.object({ + type: z.literal('agentMembers'), + id: z.int().default(1) + }) + ) +}); + +export const zAccessGroupRelationAgentMembersGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('agentMembers'), + id: z.int().default(1) + }) + ) +}); + +export const zAgentPatch = z.object({ + data: z.object({ + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string().optional(), + cmdPars: z.string().optional(), + cpuOnly: z.boolean().optional(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]).optional(), + isActive: z.boolean().optional(), + isTrusted: z.boolean().optional(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]).optional(), + uid: z.string().optional(), + userId: z.int().nullish() + }) + }) +}); + +export const zAgentResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agents?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agents?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agents?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agents?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agents?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + relationships: z + .object({ + accessGroups: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/accessGroups'), + related: z.string().default('/api/v2/ui/agents/accessGroups') + }), + data: z + .array( + z.object({ + type: z.literal('accessGroup'), + id: z.int() + }) + ) + .optional() + }), + agentErrors: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/agentErrors'), + related: z.string().default('/api/v2/ui/agents/agentErrors') + }), + data: z + .array( + z.object({ + type: z.literal('agentError'), + id: z.int() + }) + ) + .optional() + }), + agentStats: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/agentStats'), + related: z.string().default('/api/v2/ui/agents/agentStats') + }), + data: z + .array( + z.object({ + type: z.literal('agentStat'), + id: z.int() + }) + ) + .optional() + }), + assignments: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/assignments'), + related: z.string().default('/api/v2/ui/agents/assignments') + }), + data: z + .array( + z.object({ + type: z.literal('agentAssignment'), + id: z.int() + }) + ) + .optional() + }), + chunks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/chunks'), + related: z.string().default('/api/v2/ui/agents/chunks') + }), + data: z + .array( + z.object({ + type: z.literal('chunk'), + id: z.int() + }) + ) + .optional() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/tasks'), + related: z.string().default('/api/v2/ui/agents/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }), + user: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/user'), + related: z.string().default('/api/v2/ui/agents/user') + }), + data: z + .object({ + type: z.literal('user'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('agentStat'), + attributes: z.object({ + agentId: z.int(), + statType: z.union([z.literal(1), z.literal(2), z.literal(3)]), + time: z.number(), + value: z.array(z.int()) + }) + }), + z.object({ + id: z.int(), + type: z.literal('agentError'), + attributes: z.object({ + agentId: z.int(), + taskId: z.int(), + chunkId: z.int(), + time: z.number(), + error: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('chunk'), + attributes: z.object({ + taskId: z.int(), + skip: z.int(), + length: z.int(), + agentId: z.int(), + dispatchTime: z.number(), + solveTime: z.number(), + checkpoint: z.number(), + progress: z.int(), + state: z.union([ + z.literal(0), + z.literal(1), + z.literal(2), + z.literal(3), + z.literal(4), + z.literal(5), + z.literal(6), + z.literal(7), + z.literal(8), + z.literal(9), + z.literal(10) + ]), + cracked: z.int(), + speed: z.number() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('agentAssignment'), + attributes: z.object({ + taskId: z.int(), + agentId: z.int(), + benchmark: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zAgentPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }) +}); + +export const zAgentListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agents?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agents?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agents?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agents?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agents?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }) + ), + relationships: z + .object({ + accessGroups: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/accessGroups'), + related: z.string().default('/api/v2/ui/agents/accessGroups') + }), + data: z + .array( + z.object({ + type: z.literal('accessGroup'), + id: z.int() + }) + ) + .optional() + }), + agentErrors: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/agentErrors'), + related: z.string().default('/api/v2/ui/agents/agentErrors') + }), + data: z + .array( + z.object({ + type: z.literal('agentError'), + id: z.int() + }) + ) + .optional() + }), + agentStats: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/agentStats'), + related: z.string().default('/api/v2/ui/agents/agentStats') + }), + data: z + .array( + z.object({ + type: z.literal('agentStat'), + id: z.int() + }) + ) + .optional() + }), + assignments: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/assignments'), + related: z.string().default('/api/v2/ui/agents/assignments') + }), + data: z + .array( + z.object({ + type: z.literal('agentAssignment'), + id: z.int() + }) + ) + .optional() + }), + chunks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/chunks'), + related: z.string().default('/api/v2/ui/agents/chunks') + }), + data: z + .array( + z.object({ + type: z.literal('chunk'), + id: z.int() + }) + ) + .optional() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/tasks'), + related: z.string().default('/api/v2/ui/agents/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }), + user: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agents/relationships/user'), + related: z.string().default('/api/v2/ui/agents/user') + }), + data: z + .object({ + type: z.literal('user'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('agentStat'), + attributes: z.object({ + agentId: z.int(), + statType: z.union([z.literal(1), z.literal(2), z.literal(3)]), + time: z.number(), + value: z.array(z.int()) + }) + }), + z.object({ + id: z.int(), + type: z.literal('agentError'), + attributes: z.object({ + agentId: z.int(), + taskId: z.int(), + chunkId: z.int(), + time: z.number(), + error: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('chunk'), + attributes: z.object({ + taskId: z.int(), + skip: z.int(), + length: z.int(), + agentId: z.int(), + dispatchTime: z.number(), + solveTime: z.number(), + checkpoint: z.number(), + progress: z.int(), + state: z.union([ + z.literal(0), + z.literal(1), + z.literal(2), + z.literal(3), + z.literal(4), + z.literal(5), + z.literal(6), + z.literal(7), + z.literal(8), + z.literal(9), + z.literal(10) + ]), + cracked: z.int(), + speed: z.number() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('agentAssignment'), + attributes: z.object({ + taskId: z.int(), + agentId: z.int(), + benchmark: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zAgentRelationAssignments = z.object({ + data: z.array( + z.object({ + type: z.literal('assignments'), + id: z.int().default(1) + }) + ) +}); + +export const zAgentRelationAssignmentsGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('assignments'), + id: z.int().default(1) + }) + ) +}); + +export const zAgentAssignmentCreate = z.object({ + data: z.object({ + type: z.literal('agentAssignment'), + attributes: z.object({ + taskId: z.int(), + agentId: z.int(), + benchmark: z.string() + }) + }) +}); + +export const zAgentAssignmentPatch = z.object({ + data: z.object({ + type: z.literal('agentAssignment'), + attributes: z.object({ + benchmark: z.string().optional() + }) + }) +}); + +export const zAgentAssignmentResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agentassignments?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agentassignments?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agentassignments?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agentassignments?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agentassignments?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('agentAssignment'), + attributes: z.object({ + taskId: z.int(), + agentId: z.int(), + benchmark: z.string() + }) + }), + relationships: z + .object({ + agent: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agentassignments/relationships/agent'), + related: z.string().default('/api/v2/ui/agentassignments/agent') + }), + data: z + .object({ + type: z.literal('agent'), + id: z.int() + }) + .nullish() + }), + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agentassignments/relationships/task'), + related: z.string().default('/api/v2/ui/agentassignments/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zAgentAssignmentPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('agentAssignment'), + attributes: z.object({ + taskId: z.int(), + agentId: z.int(), + benchmark: z.string() + }) + }) +}); + +export const zAgentAssignmentListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agentassignments?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agentassignments?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agentassignments?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agentassignments?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agentassignments?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('agentAssignment'), + attributes: z.object({ + taskId: z.int(), + agentId: z.int(), + benchmark: z.string() + }) + }) + ), + relationships: z + .object({ + agent: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agentassignments/relationships/agent'), + related: z.string().default('/api/v2/ui/agentassignments/agent') + }), + data: z + .object({ + type: z.literal('agent'), + id: z.int() + }) + .nullish() + }), + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agentassignments/relationships/task'), + related: z.string().default('/api/v2/ui/agentassignments/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zAgentAssignmentRelationTask = z.object({ + data: z.object({ + type: z.literal('task'), + id: z.int().default(1) + }) +}); + +export const zAgentAssignmentRelationTaskGetResponse = z.object({ + data: z.object({ + type: z.literal('task'), + id: z.int().default(1) + }) +}); + +export const zAgentBinaryCreate = z.object({ + data: z.object({ + type: z.literal('agentBinary'), + attributes: z.object({ + binaryType: z.string(), + version: z.string(), + operatingSystems: z.string(), + filename: z.string(), + updateTrack: z.string() + }) + }) +}); + +export const zAgentBinaryPatch = z.object({ + data: z.object({ + type: z.literal('agentBinary'), + attributes: z.object({ + binaryType: z.string().optional(), + filename: z.string().optional(), + operatingSystems: z.string().optional(), + updateTrack: z.string().optional(), + version: z.string().optional() + }) + }) +}); + +export const zAgentBinaryResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agentbinaries?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agentbinaries?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agentbinaries?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agentbinaries?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agentbinaries?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('agentBinary'), + attributes: z.object({ + binaryType: z.string(), + version: z.string(), + operatingSystems: z.string(), + filename: z.string(), + updateTrack: z.string(), + updateAvailable: z.string() + }) + }), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zAgentBinaryPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('agentBinary'), + attributes: z.object({ + binaryType: z.string(), + version: z.string(), + operatingSystems: z.string(), + filename: z.string(), + updateTrack: z.string(), + updateAvailable: z.string() + }) + }) +}); + +export const zAgentBinaryListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agentbinaries?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agentbinaries?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agentbinaries?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agentbinaries?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agentbinaries?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('agentBinary'), + attributes: z.object({ + binaryType: z.string(), + version: z.string(), + operatingSystems: z.string(), + filename: z.string(), + updateTrack: z.string(), + updateAvailable: z.string() + }) + }) + ), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zAgentErrorResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agenterrors?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agenterrors?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agenterrors?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agenterrors?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agenterrors?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('agentError'), + attributes: z.object({ + agentId: z.int(), + taskId: z.int(), + chunkId: z.int(), + time: z.number(), + error: z.string() + }) + }), + relationships: z + .object({ + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agenterrors/relationships/task'), + related: z.string().default('/api/v2/ui/agenterrors/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ) + .optional() +}); + +export const zAgentErrorListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agenterrors?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agenterrors?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agenterrors?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agenterrors?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agenterrors?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('agentError'), + attributes: z.object({ + agentId: z.int(), + taskId: z.int(), + chunkId: z.int(), + time: z.number(), + error: z.string() + }) + }) + ), + relationships: z + .object({ + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/agenterrors/relationships/task'), + related: z.string().default('/api/v2/ui/agenterrors/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ) + .optional() +}); + +export const zAgentErrorRelationTask = z.object({ + data: z.object({ + type: z.literal('task'), + id: z.int().default(1) + }) +}); + +export const zAgentErrorRelationTaskGetResponse = z.object({ + data: z.object({ + type: z.literal('task'), + id: z.int().default(1) + }) +}); + +export const zAgentStatResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agentstats?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agentstats?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agentstats?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agentstats?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agentstats?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('agentStat'), + attributes: z.object({ + agentId: z.int(), + statType: z.union([z.literal(1), z.literal(2), z.literal(3)]), + time: z.number(), + value: z.array(z.int()) + }) + }), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zAgentStatListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/agentstats?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/agentstats?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/agentstats?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/agentstats?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/agentstats?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('agentStat'), + attributes: z.object({ + agentId: z.int(), + statType: z.union([z.literal(1), z.literal(2), z.literal(3)]), + time: z.number(), + value: z.array(z.int()) + }) + }) + ), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zApiTokenCreate = z.object({ + data: z.object({ + type: z.literal('apiToken'), + attributes: z.object({ + scopes: z.array(z.int()), + startValid: z.number(), + endValid: z.number(), + userId: z.int(), + isRevoked: z.boolean() + }) + }) +}); + +export const zApiTokenPatch = z.object({ + data: z.object({ + type: z.literal('apiToken'), + attributes: z.object({ + isRevoked: z.boolean().optional() + }) + }) +}); + +export const zApiTokenResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/apiTokens?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/apiTokens?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/apiTokens?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/apiTokens?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/apiTokens?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('apiToken'), + attributes: z.object({ + startValid: z.number(), + endValid: z.number(), + userId: z.int(), + isRevoked: z.boolean(), + token: z.string() + }) + }), + relationships: z + .object({ + user: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/apiTokens/relationships/user'), + related: z.string().default('/api/v2/ui/apiTokens/user') + }), + data: z + .object({ + type: z.literal('user'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }) + ) + .optional() +}); + +export const zApiTokenPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('apiToken'), + attributes: z.object({ + startValid: z.number(), + endValid: z.number(), + userId: z.int(), + isRevoked: z.boolean(), + token: z.string() + }) + }) +}); + +export const zApiTokenListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/apiTokens?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/apiTokens?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/apiTokens?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/apiTokens?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/apiTokens?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('apiToken'), + attributes: z.object({ + startValid: z.number(), + endValid: z.number(), + userId: z.int(), + isRevoked: z.boolean(), + token: z.string() + }) + }) + ), + relationships: z + .object({ + user: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/apiTokens/relationships/user'), + related: z.string().default('/api/v2/ui/apiTokens/user') + }), + data: z + .object({ + type: z.literal('user'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }) + ) + .optional() +}); + +export const zApiTokenRelationUser = z.object({ + data: z.object({ + type: z.literal('user'), + id: z.int().default(1) + }) +}); + +export const zApiTokenRelationUserGetResponse = z.object({ + data: z.object({ + type: z.literal('user'), + id: z.int().default(1) + }) +}); + +export const zChunkResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/chunks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/chunks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/chunks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/chunks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/chunks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('chunk'), + attributes: z.object({ + taskId: z.int(), + skip: z.int(), + length: z.int(), + agentId: z.int(), + dispatchTime: z.number(), + solveTime: z.number(), + checkpoint: z.number(), + progress: z.int(), + state: z.union([ + z.literal(0), + z.literal(1), + z.literal(2), + z.literal(3), + z.literal(4), + z.literal(5), + z.literal(6), + z.literal(7), + z.literal(8), + z.literal(9), + z.literal(10) + ]), + cracked: z.int(), + speed: z.number() + }) + }), + relationships: z + .object({ + agent: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/chunks/relationships/agent'), + related: z.string().default('/api/v2/ui/chunks/agent') + }), + data: z + .object({ + type: z.literal('agent'), + id: z.int() + }) + .nullish() + }), + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/chunks/relationships/task'), + related: z.string().default('/api/v2/ui/chunks/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zChunkListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/chunks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/chunks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/chunks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/chunks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/chunks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('chunk'), + attributes: z.object({ + taskId: z.int(), + skip: z.int(), + length: z.int(), + agentId: z.int(), + dispatchTime: z.number(), + solveTime: z.number(), + checkpoint: z.number(), + progress: z.int(), + state: z.union([ + z.literal(0), + z.literal(1), + z.literal(2), + z.literal(3), + z.literal(4), + z.literal(5), + z.literal(6), + z.literal(7), + z.literal(8), + z.literal(9), + z.literal(10) + ]), + cracked: z.int(), + speed: z.number() + }) + }) + ), + relationships: z + .object({ + agent: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/chunks/relationships/agent'), + related: z.string().default('/api/v2/ui/chunks/agent') + }), + data: z + .object({ + type: z.literal('agent'), + id: z.int() + }) + .nullish() + }), + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/chunks/relationships/task'), + related: z.string().default('/api/v2/ui/chunks/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zChunkRelationTask = z.object({ + data: z.object({ + type: z.literal('task'), + id: z.int().default(1) + }) +}); + +export const zChunkRelationTaskGetResponse = z.object({ + data: z.object({ + type: z.literal('task'), + id: z.int().default(1) + }) +}); + +export const zConfigPatch = z.object({ + data: z.object({ + type: z.literal('config'), + attributes: z.object({ + item: z.string().optional(), + value: z.string().optional() + }) + }) +}); + +export const zConfigResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/configs?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/configs?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/configs?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/configs?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/configs?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('config'), + attributes: z.object({ + configSectionId: z.int(), + item: z.string(), + value: z.string() + }) + }), + relationships: z + .object({ + configSection: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/configs/relationships/configSection'), + related: z.string().default('/api/v2/ui/configs/configSection') + }), + data: z + .object({ + type: z.literal('configSection'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('configSection'), + attributes: z.object({ + sectionName: z.string() + }) + }) + ) + .optional() +}); + +export const zConfigPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('config'), + attributes: z.object({ + configSectionId: z.int(), + item: z.string(), + value: z.string() + }) + }) +}); + +export const zConfigListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/configs?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/configs?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/configs?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/configs?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/configs?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('config'), + attributes: z.object({ + configSectionId: z.int(), + item: z.string(), + value: z.string() + }) + }) + ), + relationships: z + .object({ + configSection: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/configs/relationships/configSection'), + related: z.string().default('/api/v2/ui/configs/configSection') + }), + data: z + .object({ + type: z.literal('configSection'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('configSection'), + attributes: z.object({ + sectionName: z.string() + }) + }) + ) + .optional() +}); + +export const zConfigRelationConfigSection = z.object({ + data: z.object({ + type: z.literal('configSection'), + id: z.int().default(1) + }) +}); + +export const zConfigRelationConfigSectionGetResponse = z.object({ + data: z.object({ + type: z.literal('configSection'), + id: z.int().default(1) + }) +}); + +export const zConfigSectionResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/configsections?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/configsections?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/configsections?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/configsections?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/configsections?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('configSection'), + attributes: z.object({ + sectionName: z.string() + }) + }), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zConfigSectionListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/configsections?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/configsections?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/configsections?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/configsections?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/configsections?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('configSection'), + attributes: z.object({ + sectionName: z.string() + }) + }) + ), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zCrackerBinaryCreate = z.object({ + data: z.object({ + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }) +}); + +export const zCrackerBinaryPatch = z.object({ + data: z.object({ + type: z.literal('crackerBinary'), + attributes: z.object({ + binaryName: z.string().optional(), + downloadUrl: z.string().optional(), + version: z.string().optional() + }) + }) +}); + +export const zCrackerBinaryResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/crackers?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/crackers?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/crackers?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/crackers?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/crackers?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }), + relationships: z + .object({ + crackerBinaryType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/crackers/relationships/crackerBinaryType'), + related: z.string().default('/api/v2/ui/crackers/crackerBinaryType') + }), + data: z + .object({ + type: z.literal('crackerBinaryType'), + id: z.int() + }) + .nullish() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/crackers/relationships/tasks'), + related: z.string().default('/api/v2/ui/crackers/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('crackerBinaryType'), + attributes: z.object({ + typeName: z.string(), + isChunkingAvailable: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zCrackerBinaryPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }) +}); + +export const zCrackerBinaryListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/crackers?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/crackers?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/crackers?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/crackers?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/crackers?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }) + ), + relationships: z + .object({ + crackerBinaryType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/crackers/relationships/crackerBinaryType'), + related: z.string().default('/api/v2/ui/crackers/crackerBinaryType') + }), + data: z + .object({ + type: z.literal('crackerBinaryType'), + id: z.int() + }) + .nullish() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/crackers/relationships/tasks'), + related: z.string().default('/api/v2/ui/crackers/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('crackerBinaryType'), + attributes: z.object({ + typeName: z.string(), + isChunkingAvailable: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zCrackerBinaryRelationTasks = z.object({ + data: z.array( + z.object({ + type: z.literal('tasks'), + id: z.int().default(1) + }) + ) +}); + +export const zCrackerBinaryRelationTasksGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('tasks'), + id: z.int().default(1) + }) + ) +}); + +export const zCrackerBinaryTypeCreate = z.object({ + data: z.object({ + type: z.literal('crackerBinaryType'), + attributes: z.object({ + typeName: z.string() + }) + }) +}); + +export const zCrackerBinaryTypePatch = z.object({ + data: z.object({ + type: z.literal('crackerBinaryType'), + attributes: z.object({ + isChunkingAvailable: z.boolean().optional(), + typeName: z.string().optional() + }) + }) +}); + +export const zCrackerBinaryTypeResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/crackertypes?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/crackertypes?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/crackertypes?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/crackertypes?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/crackertypes?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('crackerBinaryType'), + attributes: z.object({ + typeName: z.string(), + isChunkingAvailable: z.boolean() + }) + }), + relationships: z + .object({ + crackerVersions: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/crackertypes/relationships/crackerVersions'), + related: z.string().default('/api/v2/ui/crackertypes/crackerVersions') + }), + data: z + .array( + z.object({ + type: z.literal('crackerBinary'), + id: z.int() + }) + ) + .optional() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/crackertypes/relationships/tasks'), + related: z.string().default('/api/v2/ui/crackertypes/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zCrackerBinaryTypePostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('crackerBinaryType'), + attributes: z.object({ + typeName: z.string(), + isChunkingAvailable: z.boolean() + }) + }) +}); + +export const zCrackerBinaryTypeListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/crackertypes?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/crackertypes?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/crackertypes?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/crackertypes?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/crackertypes?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('crackerBinaryType'), + attributes: z.object({ + typeName: z.string(), + isChunkingAvailable: z.boolean() + }) + }) + ), + relationships: z + .object({ + crackerVersions: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/crackertypes/relationships/crackerVersions'), + related: z.string().default('/api/v2/ui/crackertypes/crackerVersions') + }), + data: z + .array( + z.object({ + type: z.literal('crackerBinary'), + id: z.int() + }) + ) + .optional() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/crackertypes/relationships/tasks'), + related: z.string().default('/api/v2/ui/crackertypes/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zCrackerBinaryTypeRelationTasks = z.object({ + data: z.array( + z.object({ + type: z.literal('tasks'), + id: z.int().default(1) + }) + ) +}); + +export const zCrackerBinaryTypeRelationTasksGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('tasks'), + id: z.int().default(1) + }) + ) +}); + +export const zFileCreate = z.object({ + data: z.object({ + type: z.literal('file'), + attributes: z.object({ + sourceType: z.string(), + sourceData: z.string(), + filename: z.string(), + isSecret: z.boolean(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]), + accessGroupId: z.int() + }) + }) +}); + +export const zFilePatch = z.object({ + data: z.object({ + type: z.literal('file'), + attributes: z.object({ + accessGroupId: z.int().optional(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]).optional(), + filename: z.string().optional(), + isSecret: z.boolean().optional() + }) + }) +}); + +export const zFileResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/files?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/files?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/files?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/files?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/files?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('file'), + attributes: z.object({ + filename: z.string(), + size: z.number(), + isSecret: z.boolean(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]), + accessGroupId: z.int(), + lineCount: z.number() + }) + }), + relationships: z + .object({ + accessGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/files/relationships/accessGroup'), + related: z.string().default('/api/v2/ui/files/accessGroup') + }), + data: z + .object({ + type: z.literal('accessGroup'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }) + ) + .optional() +}); + +export const zFileSingleResponse = z.object({ + data: z.object({ + id: z.int(), + type: z.literal('file'), + attributes: z.object({ + filename: z.string(), + size: z.number(), + isSecret: z.boolean(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]), + accessGroupId: z.int(), + lineCount: z.number() + }) + }), + relationships: z + .object({ + accessGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/files/relationships/accessGroup'), + related: z.string().default('/api/v2/ui/files/accessGroup') + }), + data: z + .object({ + type: z.literal('accessGroup'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }) + ) + .optional() +}); + +export const zFilePostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('file'), + attributes: z.object({ + filename: z.string(), + size: z.number(), + isSecret: z.boolean(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]), + accessGroupId: z.int(), + lineCount: z.number() + }) + }) +}); + +export const zFileListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/files?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/files?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/files?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/files?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/files?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('file'), + attributes: z.object({ + filename: z.string(), + size: z.number(), + isSecret: z.boolean(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]), + accessGroupId: z.int(), + lineCount: z.number() + }) + }) + ), + relationships: z + .object({ + accessGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/files/relationships/accessGroup'), + related: z.string().default('/api/v2/ui/files/accessGroup') + }), + data: z + .object({ + type: z.literal('accessGroup'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }) + ) + .optional() +}); + +export const zFileRelationAccessGroup = z.object({ + data: z.object({ + type: z.literal('accessGroup'), + id: z.int().default(1) + }) +}); + +export const zFileRelationAccessGroupGetResponse = z.object({ + data: z.object({ + type: z.literal('accessGroup'), + id: z.int().default(1) + }) +}); + +export const zGlobalPermissionGroupCreate = z.object({ + data: z.object({ + type: z.literal('globalPermissionGroup'), + attributes: z.object({ + name: z.string(), + permissions: z.record(z.string(), z.boolean()) + }) + }) +}); + +export const zGlobalPermissionGroupPatch = z.object({ + data: z.object({ + type: z.literal('globalPermissionGroup'), + attributes: z.object({ + name: z.string().optional(), + permissions: z.record(z.string(), z.boolean()).optional() + }) + }) +}); + +export const zGlobalPermissionGroupResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/globalpermissiongroups?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/globalpermissiongroups?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/globalpermissiongroups?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/globalpermissiongroups?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/globalpermissiongroups?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('globalPermissionGroup'), + attributes: z.object({ + name: z.string(), + permissions: z.record(z.string(), z.boolean()) + }) + }), + relationships: z + .object({ + userMembers: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/globalpermissiongroups/relationships/userMembers'), + related: z.string().default('/api/v2/ui/globalpermissiongroups/userMembers') + }), + data: z + .array( + z.object({ + type: z.literal('user'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }) + ) + .optional() +}); + +export const zGlobalPermissionGroupPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('globalPermissionGroup'), + attributes: z.object({ + name: z.string(), + permissions: z.record(z.string(), z.boolean()) + }) + }) +}); + +export const zGlobalPermissionGroupListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/globalpermissiongroups?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/globalpermissiongroups?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/globalpermissiongroups?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/globalpermissiongroups?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/globalpermissiongroups?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('globalPermissionGroup'), + attributes: z.object({ + name: z.string(), + permissions: z.record(z.string(), z.boolean()) + }) + }) + ), + relationships: z + .object({ + userMembers: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/globalpermissiongroups/relationships/userMembers'), + related: z.string().default('/api/v2/ui/globalpermissiongroups/userMembers') + }), + data: z + .array( + z.object({ + type: z.literal('user'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }) + ) + .optional() +}); + +export const zGlobalPermissionGroupRelationUserMembers = z.object({ + data: z.array( + z.object({ + type: z.literal('userMembers'), + id: z.int().default(1) + }) + ) +}); + +export const zGlobalPermissionGroupRelationUserMembersGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('userMembers'), + id: z.int().default(1) + }) + ) +}); + +export const zHashResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/hashes?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/hashes?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/hashes?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/hashes?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/hashes?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('hash'), + attributes: z.object({ + hashlistId: z.int(), + hash: z.string(), + salt: z.string(), + plaintext: z.string(), + timeCracked: z.number(), + chunkId: z.int(), + isCracked: z.boolean(), + crackPos: z.number() + }) + }), + relationships: z + .object({ + chunk: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashes/relationships/chunk'), + related: z.string().default('/api/v2/ui/hashes/chunk') + }), + data: z + .object({ + type: z.literal('chunk'), + id: z.int() + }) + .nullish() + }), + hashlist: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashes/relationships/hashlist'), + related: z.string().default('/api/v2/ui/hashes/hashlist') + }), + data: z + .object({ + type: z.literal('hashlist'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('chunk'), + attributes: z.object({ + taskId: z.int(), + skip: z.int(), + length: z.int(), + agentId: z.int(), + dispatchTime: z.number(), + solveTime: z.number(), + checkpoint: z.number(), + progress: z.int(), + state: z.union([ + z.literal(0), + z.literal(1), + z.literal(2), + z.literal(3), + z.literal(4), + z.literal(5), + z.literal(6), + z.literal(7), + z.literal(8), + z.literal(9), + z.literal(10) + ]), + cracked: z.int(), + speed: z.number() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }) + ]) + ) + .optional() +}); + +export const zHashListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/hashes?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/hashes?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/hashes?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/hashes?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/hashes?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('hash'), + attributes: z.object({ + hashlistId: z.int(), + hash: z.string(), + salt: z.string(), + plaintext: z.string(), + timeCracked: z.number(), + chunkId: z.int(), + isCracked: z.boolean(), + crackPos: z.number() + }) + }) + ), + relationships: z + .object({ + chunk: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashes/relationships/chunk'), + related: z.string().default('/api/v2/ui/hashes/chunk') + }), + data: z + .object({ + type: z.literal('chunk'), + id: z.int() + }) + .nullish() + }), + hashlist: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashes/relationships/hashlist'), + related: z.string().default('/api/v2/ui/hashes/hashlist') + }), + data: z + .object({ + type: z.literal('hashlist'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('chunk'), + attributes: z.object({ + taskId: z.int(), + skip: z.int(), + length: z.int(), + agentId: z.int(), + dispatchTime: z.number(), + solveTime: z.number(), + checkpoint: z.number(), + progress: z.int(), + state: z.union([ + z.literal(0), + z.literal(1), + z.literal(2), + z.literal(3), + z.literal(4), + z.literal(5), + z.literal(6), + z.literal(7), + z.literal(8), + z.literal(9), + z.literal(10) + ]), + cracked: z.int(), + speed: z.number() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }) + ]) + ) + .optional() +}); + +export const zHashRelationHashlist = z.object({ + data: z.object({ + type: z.literal('hashlist'), + id: z.int().default(1) + }) +}); + +export const zHashRelationHashlistGetResponse = z.object({ + data: z.object({ + type: z.literal('hashlist'), + id: z.int().default(1) + }) +}); + +export const zHashlistCreate = z.object({ + data: z.object({ + type: z.literal('hashlist'), + attributes: z.object({ + hashlistSeperator: z.string().nullish(), + sourceType: z.string(), + sourceData: z.string(), + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullish(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }) +}); + +export const zHashlistPatch = z.object({ + data: z.object({ + type: z.literal('hashlist'), + attributes: z.object({ + accessGroupId: z.int().optional(), + isArchived: z.boolean().optional(), + isSecret: z.boolean().optional(), + name: z.string().optional(), + notes: z.string().optional() + }) + }) +}); + +export const zHashlistResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/hashlists?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/hashlists?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/hashlists?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/hashlists?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/hashlists?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + relationships: z + .object({ + accessGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/accessGroup'), + related: z.string().default('/api/v2/ui/hashlists/accessGroup') + }), + data: z + .object({ + type: z.literal('accessGroup'), + id: z.int() + }) + .nullish() + }), + hashType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/hashType'), + related: z.string().default('/api/v2/ui/hashlists/hashType') + }), + data: z + .object({ + type: z.literal('hashType'), + id: z.int() + }) + .nullish() + }), + hashes: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/hashes'), + related: z.string().default('/api/v2/ui/hashlists/hashes') + }), + data: z + .array( + z.object({ + type: z.literal('hash'), + id: z.int() + }) + ) + .optional() + }), + hashlists: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/hashlists'), + related: z.string().default('/api/v2/ui/hashlists/hashlists') + }), + data: z + .array( + z.object({ + type: z.literal('hashlist'), + id: z.int() + }) + ) + .optional() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/tasks'), + related: z.string().default('/api/v2/ui/hashlists/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hash'), + attributes: z.object({ + hashlistId: z.int(), + hash: z.string(), + salt: z.string(), + plaintext: z.string(), + timeCracked: z.number(), + chunkId: z.int(), + isCracked: z.boolean(), + crackPos: z.number() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zHashlistSingleResponse = z.object({ + data: z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + relationships: z + .object({ + accessGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/accessGroup'), + related: z.string().default('/api/v2/ui/hashlists/accessGroup') + }), + data: z + .object({ + type: z.literal('accessGroup'), + id: z.int() + }) + .nullish() + }), + hashType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/hashType'), + related: z.string().default('/api/v2/ui/hashlists/hashType') + }), + data: z + .object({ + type: z.literal('hashType'), + id: z.int() + }) + .nullish() + }), + hashes: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/hashes'), + related: z.string().default('/api/v2/ui/hashlists/hashes') + }), + data: z + .array( + z.object({ + type: z.literal('hash'), + id: z.int() + }) + ) + .optional() + }), + hashlists: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/hashlists'), + related: z.string().default('/api/v2/ui/hashlists/hashlists') + }), + data: z + .array( + z.object({ + type: z.literal('hashlist'), + id: z.int() + }) + ) + .optional() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/tasks'), + related: z.string().default('/api/v2/ui/hashlists/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hash'), + attributes: z.object({ + hashlistId: z.int(), + hash: z.string(), + salt: z.string(), + plaintext: z.string(), + timeCracked: z.number(), + chunkId: z.int(), + isCracked: z.boolean(), + crackPos: z.number() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zHashlistPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }) +}); + +export const zHashlistListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/hashlists?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/hashlists?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/hashlists?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/hashlists?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/hashlists?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }) + ), + relationships: z + .object({ + accessGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/accessGroup'), + related: z.string().default('/api/v2/ui/hashlists/accessGroup') + }), + data: z + .object({ + type: z.literal('accessGroup'), + id: z.int() + }) + .nullish() + }), + hashType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/hashType'), + related: z.string().default('/api/v2/ui/hashlists/hashType') + }), + data: z + .object({ + type: z.literal('hashType'), + id: z.int() + }) + .nullish() + }), + hashes: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/hashes'), + related: z.string().default('/api/v2/ui/hashlists/hashes') + }), + data: z + .array( + z.object({ + type: z.literal('hash'), + id: z.int() + }) + ) + .optional() + }), + hashlists: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/hashlists'), + related: z.string().default('/api/v2/ui/hashlists/hashlists') + }), + data: z + .array( + z.object({ + type: z.literal('hashlist'), + id: z.int() + }) + ) + .optional() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/hashlists/relationships/tasks'), + related: z.string().default('/api/v2/ui/hashlists/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hash'), + attributes: z.object({ + hashlistId: z.int(), + hash: z.string(), + salt: z.string(), + plaintext: z.string(), + timeCracked: z.number(), + chunkId: z.int(), + isCracked: z.boolean(), + crackPos: z.number() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zHashlistRelationTasks = z.object({ + data: z.array( + z.object({ + type: z.literal('tasks'), + id: z.int().default(1) + }) + ) +}); + +export const zHashlistRelationTasksGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('tasks'), + id: z.int().default(1) + }) + ) +}); + +export const zHashTypeCreate = z.object({ + data: z.object({ + type: z.literal('hashType'), + attributes: z.object({ + hashTypeId: z.int(), + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }) +}); + +export const zHashTypePatch = z.object({ + data: z.object({ + type: z.literal('hashType'), + attributes: z.object({ + description: z.string().optional(), + isSalted: z.boolean().optional(), + isSlowHash: z.boolean().optional() + }) + }) +}); + +export const zHashTypeResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/hashtypes?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/hashtypes?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/hashtypes?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/hashtypes?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/hashtypes?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zHashTypePostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }) +}); + +export const zHashTypeListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/hashtypes?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/hashtypes?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/hashtypes?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/hashtypes?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/hashtypes?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }) + ), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zHealthCheckAgentResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/healthcheckagents?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/healthcheckagents?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/healthcheckagents?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/healthcheckagents?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/healthcheckagents?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('healthCheckAgent'), + attributes: z.object({ + healthCheckId: z.int(), + agentId: z.int(), + status: z.union([z.literal(-1), z.literal(0), z.literal(1)]), + cracked: z.int(), + numGpus: z.int(), + start: z.number(), + end: z.number(), + errors: z.string() + }) + }), + relationships: z + .object({ + agent: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthcheckagents/relationships/agent'), + related: z.string().default('/api/v2/ui/healthcheckagents/agent') + }), + data: z + .object({ + type: z.literal('agent'), + id: z.int() + }) + .nullish() + }), + healthCheck: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthcheckagents/relationships/healthCheck'), + related: z.string().default('/api/v2/ui/healthcheckagents/healthCheck') + }), + data: z + .object({ + type: z.literal('healthCheck'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('healthCheck'), + attributes: z.object({ + time: z.number(), + status: z.union([z.literal(-1), z.literal(0), z.literal(1)]), + checkType: z.union([z.literal(0), z.literal(3200)]), + hashtypeId: z.int(), + crackerBinaryId: z.int(), + expectedCracks: z.int(), + attackCmd: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zHealthCheckAgentListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/healthcheckagents?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/healthcheckagents?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/healthcheckagents?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/healthcheckagents?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/healthcheckagents?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('healthCheckAgent'), + attributes: z.object({ + healthCheckId: z.int(), + agentId: z.int(), + status: z.union([z.literal(-1), z.literal(0), z.literal(1)]), + cracked: z.int(), + numGpus: z.int(), + start: z.number(), + end: z.number(), + errors: z.string() + }) + }) + ), + relationships: z + .object({ + agent: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthcheckagents/relationships/agent'), + related: z.string().default('/api/v2/ui/healthcheckagents/agent') + }), + data: z + .object({ + type: z.literal('agent'), + id: z.int() + }) + .nullish() + }), + healthCheck: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthcheckagents/relationships/healthCheck'), + related: z.string().default('/api/v2/ui/healthcheckagents/healthCheck') + }), + data: z + .object({ + type: z.literal('healthCheck'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('healthCheck'), + attributes: z.object({ + time: z.number(), + status: z.union([z.literal(-1), z.literal(0), z.literal(1)]), + checkType: z.union([z.literal(0), z.literal(3200)]), + hashtypeId: z.int(), + crackerBinaryId: z.int(), + expectedCracks: z.int(), + attackCmd: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zHealthCheckAgentRelationHealthCheck = z.object({ + data: z.object({ + type: z.literal('healthCheck'), + id: z.int().default(1) + }) +}); + +export const zHealthCheckAgentRelationHealthCheckGetResponse = z.object({ + data: z.object({ + type: z.literal('healthCheck'), + id: z.int().default(1) + }) +}); + +export const zHealthCheckCreate = z.object({ + data: z.object({ + type: z.literal('healthCheck'), + attributes: z.object({ + checkType: z.union([z.literal(0), z.literal(3200)]), + hashtypeId: z.int(), + crackerBinaryId: z.int() + }) + }) +}); + +export const zHealthCheckPatch = z.object({ + data: z.object({ + type: z.literal('healthCheck'), + attributes: z.object({ + checkType: z.union([z.literal(0), z.literal(3200)]).optional() + }) + }) +}); + +export const zHealthCheckResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/healthchecks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/healthchecks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/healthchecks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/healthchecks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/healthchecks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('healthCheck'), + attributes: z.object({ + time: z.number(), + status: z.union([z.literal(-1), z.literal(0), z.literal(1)]), + checkType: z.union([z.literal(0), z.literal(3200)]), + hashtypeId: z.int(), + crackerBinaryId: z.int(), + expectedCracks: z.int(), + attackCmd: z.string() + }) + }), + relationships: z + .object({ + crackerBinary: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthchecks/relationships/crackerBinary'), + related: z.string().default('/api/v2/ui/healthchecks/crackerBinary') + }), + data: z + .object({ + type: z.literal('crackerBinary'), + id: z.int() + }) + .nullish() + }), + hashType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthchecks/relationships/hashType'), + related: z.string().default('/api/v2/ui/healthchecks/hashType') + }), + data: z + .object({ + type: z.literal('hashType'), + id: z.int() + }) + .nullish() + }), + healthCheckAgents: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthchecks/relationships/healthCheckAgents'), + related: z.string().default('/api/v2/ui/healthchecks/healthCheckAgents') + }), + data: z + .array( + z.object({ + type: z.literal('healthCheckAgent'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('healthCheckAgent'), + attributes: z.object({ + healthCheckId: z.int(), + agentId: z.int(), + status: z.union([z.literal(-1), z.literal(0), z.literal(1)]), + cracked: z.int(), + numGpus: z.int(), + start: z.number(), + end: z.number(), + errors: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zHealthCheckPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('healthCheck'), + attributes: z.object({ + time: z.number(), + status: z.union([z.literal(-1), z.literal(0), z.literal(1)]), + checkType: z.union([z.literal(0), z.literal(3200)]), + hashtypeId: z.int(), + crackerBinaryId: z.int(), + expectedCracks: z.int(), + attackCmd: z.string() + }) + }) +}); + +export const zHealthCheckListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/healthchecks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/healthchecks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/healthchecks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/healthchecks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/healthchecks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('healthCheck'), + attributes: z.object({ + time: z.number(), + status: z.union([z.literal(-1), z.literal(0), z.literal(1)]), + checkType: z.union([z.literal(0), z.literal(3200)]), + hashtypeId: z.int(), + crackerBinaryId: z.int(), + expectedCracks: z.int(), + attackCmd: z.string() + }) + }) + ), + relationships: z + .object({ + crackerBinary: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthchecks/relationships/crackerBinary'), + related: z.string().default('/api/v2/ui/healthchecks/crackerBinary') + }), + data: z + .object({ + type: z.literal('crackerBinary'), + id: z.int() + }) + .nullish() + }), + hashType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthchecks/relationships/hashType'), + related: z.string().default('/api/v2/ui/healthchecks/hashType') + }), + data: z + .object({ + type: z.literal('hashType'), + id: z.int() + }) + .nullish() + }), + healthCheckAgents: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/healthchecks/relationships/healthCheckAgents'), + related: z.string().default('/api/v2/ui/healthchecks/healthCheckAgents') + }), + data: z + .array( + z.object({ + type: z.literal('healthCheckAgent'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('healthCheckAgent'), + attributes: z.object({ + healthCheckId: z.int(), + agentId: z.int(), + status: z.union([z.literal(-1), z.literal(0), z.literal(1)]), + cracked: z.int(), + numGpus: z.int(), + start: z.number(), + end: z.number(), + errors: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zHealthCheckRelationHealthCheckAgents = z.object({ + data: z.array( + z.object({ + type: z.literal('healthCheckAgents'), + id: z.int().default(1) + }) + ) +}); + +export const zHealthCheckRelationHealthCheckAgentsGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('healthCheckAgents'), + id: z.int().default(1) + }) + ) +}); + +export const zLogEntryCreate = z.object({ + data: z.object({ + type: z.literal('logEntry'), + attributes: z.record(z.string(), z.unknown()) + }) +}); + +export const zLogEntryPatch = z.object({ + data: z.object({ + type: z.literal('logEntry'), + attributes: z.record(z.string(), z.unknown()) + }) +}); + +export const zLogEntryResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/logentries?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/logentries?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/logentries?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/logentries?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/logentries?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('logEntry'), + attributes: z.object({ + issuer: z.union([z.literal('API'), z.literal('User')]), + issuerId: z.string(), + level: z.union([z.literal('warning'), z.literal('error'), z.literal('fatal error'), z.literal('information')]), + message: z.string(), + time: z.number() + }) + }), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zLogEntryPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('logEntry'), + attributes: z.object({ + issuer: z.union([z.literal('API'), z.literal('User')]), + issuerId: z.string(), + level: z.union([z.literal('warning'), z.literal('error'), z.literal('fatal error'), z.literal('information')]), + message: z.string(), + time: z.number() + }) + }) +}); + +export const zLogEntryListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/logentries?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/logentries?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/logentries?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/logentries?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/logentries?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('logEntry'), + attributes: z.object({ + issuer: z.union([z.literal('API'), z.literal('User')]), + issuerId: z.string(), + level: z.union([z.literal('warning'), z.literal('error'), z.literal('fatal error'), z.literal('information')]), + message: z.string(), + time: z.number() + }) + }) + ), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zNotificationSettingCreate = z.object({ + data: z.object({ + type: z.literal('notificationSetting'), + attributes: z.object({ + actionFilter: z.string(), + action: z.union([z.literal('createNotification'), z.literal('setActive'), z.literal('deleteNotification')]), + notification: z.union([ + z.literal('taskComplete'), + z.literal('agentError'), + z.literal('ownAgentError'), + z.literal('logError'), + z.literal('newTask'), + z.literal('newHashlist'), + z.literal('hashlistAllCracked'), + z.literal('hashlistCrackedHash'), + z.literal('userCreated'), + z.literal('userDeleted'), + z.literal('userLoginFailed'), + z.literal('logWarn'), + z.literal('logFatal'), + z.literal('newAgent'), + z.literal('deleteTask'), + z.literal('deleteHashlist'), + z.literal('deleteAgent') + ]), + receiver: z.string() + }) + }) +}); + +export const zNotificationSettingPatch = z.object({ + data: z.object({ + type: z.literal('notificationSetting'), + attributes: z.object({ + action: z + .union([z.literal('createNotification'), z.literal('setActive'), z.literal('deleteNotification')]) + .optional(), + isActive: z.boolean().optional(), + notification: z + .union([ + z.literal('taskComplete'), + z.literal('agentError'), + z.literal('ownAgentError'), + z.literal('logError'), + z.literal('newTask'), + z.literal('newHashlist'), + z.literal('hashlistAllCracked'), + z.literal('hashlistCrackedHash'), + z.literal('userCreated'), + z.literal('userDeleted'), + z.literal('userLoginFailed'), + z.literal('logWarn'), + z.literal('logFatal'), + z.literal('newAgent'), + z.literal('deleteTask'), + z.literal('deleteHashlist'), + z.literal('deleteAgent') + ]) + .optional(), + receiver: z.string().optional() + }) + }) +}); + +export const zNotificationSettingResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/notifications?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/notifications?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/notifications?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/notifications?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/notifications?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('notificationSetting'), + attributes: z.object({ + action: z.union([z.literal('createNotification'), z.literal('setActive'), z.literal('deleteNotification')]), + objectId: z.int(), + notification: z.union([ + z.literal('taskComplete'), + z.literal('agentError'), + z.literal('ownAgentError'), + z.literal('logError'), + z.literal('newTask'), + z.literal('newHashlist'), + z.literal('hashlistAllCracked'), + z.literal('hashlistCrackedHash'), + z.literal('userCreated'), + z.literal('userDeleted'), + z.literal('userLoginFailed'), + z.literal('logWarn'), + z.literal('logFatal'), + z.literal('newAgent'), + z.literal('deleteTask'), + z.literal('deleteHashlist'), + z.literal('deleteAgent') + ]), + userId: z.int(), + receiver: z.string(), + isActive: z.boolean() + }) + }), + relationships: z + .object({ + user: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/notifications/relationships/user'), + related: z.string().default('/api/v2/ui/notifications/user') + }), + data: z + .object({ + type: z.literal('user'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }) + ) + .optional() +}); + +export const zNotificationSettingPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('notificationSetting'), + attributes: z.object({ + action: z.union([z.literal('createNotification'), z.literal('setActive'), z.literal('deleteNotification')]), + objectId: z.int(), + notification: z.union([ + z.literal('taskComplete'), + z.literal('agentError'), + z.literal('ownAgentError'), + z.literal('logError'), + z.literal('newTask'), + z.literal('newHashlist'), + z.literal('hashlistAllCracked'), + z.literal('hashlistCrackedHash'), + z.literal('userCreated'), + z.literal('userDeleted'), + z.literal('userLoginFailed'), + z.literal('logWarn'), + z.literal('logFatal'), + z.literal('newAgent'), + z.literal('deleteTask'), + z.literal('deleteHashlist'), + z.literal('deleteAgent') + ]), + userId: z.int(), + receiver: z.string(), + isActive: z.boolean() + }) + }) +}); + +export const zNotificationSettingListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/notifications?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/notifications?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/notifications?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/notifications?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/notifications?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('notificationSetting'), + attributes: z.object({ + action: z.union([z.literal('createNotification'), z.literal('setActive'), z.literal('deleteNotification')]), + objectId: z.int(), + notification: z.union([ + z.literal('taskComplete'), + z.literal('agentError'), + z.literal('ownAgentError'), + z.literal('logError'), + z.literal('newTask'), + z.literal('newHashlist'), + z.literal('hashlistAllCracked'), + z.literal('hashlistCrackedHash'), + z.literal('userCreated'), + z.literal('userDeleted'), + z.literal('userLoginFailed'), + z.literal('logWarn'), + z.literal('logFatal'), + z.literal('newAgent'), + z.literal('deleteTask'), + z.literal('deleteHashlist'), + z.literal('deleteAgent') + ]), + userId: z.int(), + receiver: z.string(), + isActive: z.boolean() + }) + }) + ), + relationships: z + .object({ + user: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/notifications/relationships/user'), + related: z.string().default('/api/v2/ui/notifications/user') + }), + data: z + .object({ + type: z.literal('user'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }) + ) + .optional() +}); + +export const zNotificationSettingRelationUser = z.object({ + data: z.object({ + type: z.literal('user'), + id: z.int().default(1) + }) +}); + +export const zNotificationSettingRelationUserGetResponse = z.object({ + data: z.object({ + type: z.literal('user'), + id: z.int().default(1) + }) +}); + +export const zPreprocessorCreate = z.object({ + data: z.object({ + type: z.literal('preprocessor'), + attributes: z.object({ + name: z.string(), + url: z.string(), + binaryName: z.string(), + keyspaceCommand: z.string(), + skipCommand: z.string(), + limitCommand: z.string() + }) + }) +}); + +export const zPreprocessorPatch = z.object({ + data: z.object({ + type: z.literal('preprocessor'), + attributes: z.object({ + binaryName: z.string().optional(), + keyspaceCommand: z.string().optional(), + limitCommand: z.string().optional(), + name: z.string().optional(), + skipCommand: z.string().optional(), + url: z.string().optional() + }) + }) +}); + +export const zPreprocessorResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/preprocessors?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/preprocessors?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/preprocessors?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/preprocessors?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/preprocessors?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('preprocessor'), + attributes: z.object({ + name: z.string(), + url: z.string(), + binaryName: z.string(), + keyspaceCommand: z.string(), + skipCommand: z.string(), + limitCommand: z.string() + }) + }), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zPreprocessorPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('preprocessor'), + attributes: z.object({ + name: z.string(), + url: z.string(), + binaryName: z.string(), + keyspaceCommand: z.string(), + skipCommand: z.string(), + limitCommand: z.string() + }) + }) +}); + +export const zPreprocessorListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/preprocessors?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/preprocessors?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/preprocessors?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/preprocessors?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/preprocessors?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('preprocessor'), + attributes: z.object({ + name: z.string(), + url: z.string(), + binaryName: z.string(), + keyspaceCommand: z.string(), + skipCommand: z.string(), + limitCommand: z.string() + }) + }) + ), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zPreTaskCreate = z.object({ + data: z.object({ + type: z.literal('preTask'), + attributes: z.object({ + files: z.array(z.int()), + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + color: z.string(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + priority: z.int(), + maxAgents: z.int(), + isMaskImport: z.boolean(), + crackerBinaryTypeId: z.int() + }) + }) +}); + +export const zPreTaskPatch = z.object({ + data: z.object({ + type: z.literal('preTask'), + attributes: z.object({ + attackCmd: z.string().optional(), + chunkTime: z.int().optional(), + color: z.string().optional(), + crackerBinaryTypeId: z.int().optional(), + isCpuTask: z.boolean().optional(), + isMaskImport: z.boolean().optional(), + isSmall: z.boolean().optional(), + maxAgents: z.int().optional(), + priority: z.int().optional(), + statusTimer: z.int().optional(), + taskName: z.string().optional() + }) + }) +}); + +export const zPreTaskResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/pretasks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/pretasks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/pretasks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/pretasks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/pretasks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('preTask'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + color: z.string(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + priority: z.int(), + maxAgents: z.int(), + isMaskImport: z.boolean(), + crackerBinaryTypeId: z.int(), + auxiliaryKeyspace: z.int() + }) + }), + relationships: z + .object({ + pretaskFiles: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/pretasks/relationships/pretaskFiles'), + related: z.string().default('/api/v2/ui/pretasks/pretaskFiles') + }), + data: z + .array( + z.object({ + type: z.literal('file'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('file'), + attributes: z.object({ + filename: z.string(), + size: z.number(), + isSecret: z.boolean(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]), + accessGroupId: z.int(), + lineCount: z.number() + }) + }) + ) + .optional() +}); + +export const zPreTaskPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('preTask'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + color: z.string(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + priority: z.int(), + maxAgents: z.int(), + isMaskImport: z.boolean(), + crackerBinaryTypeId: z.int(), + auxiliaryKeyspace: z.int() + }) + }) +}); + +export const zPreTaskListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/pretasks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/pretasks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/pretasks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/pretasks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/pretasks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('preTask'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + color: z.string(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + priority: z.int(), + maxAgents: z.int(), + isMaskImport: z.boolean(), + crackerBinaryTypeId: z.int(), + auxiliaryKeyspace: z.int() + }) + }) + ), + relationships: z + .object({ + pretaskFiles: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/pretasks/relationships/pretaskFiles'), + related: z.string().default('/api/v2/ui/pretasks/pretaskFiles') + }), + data: z + .array( + z.object({ + type: z.literal('file'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('file'), + attributes: z.object({ + filename: z.string(), + size: z.number(), + isSecret: z.boolean(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]), + accessGroupId: z.int(), + lineCount: z.number() + }) + }) + ) + .optional() +}); + +export const zPreTaskRelationPretaskFiles = z.object({ + data: z.array( + z.object({ + type: z.literal('pretaskFiles'), + id: z.int().default(1) + }) + ) +}); + +export const zPreTaskRelationPretaskFilesGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('pretaskFiles'), + id: z.int().default(1) + }) + ) +}); + +export const zSpeedResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/speeds?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/speeds?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/speeds?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/speeds?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/speeds?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('speed'), + attributes: z.object({ + agentId: z.int(), + taskId: z.int(), + speed: z.number(), + time: z.number() + }) + }), + relationships: z + .object({ + agent: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/speeds/relationships/agent'), + related: z.string().default('/api/v2/ui/speeds/agent') + }), + data: z + .object({ + type: z.literal('agent'), + id: z.int() + }) + .nullish() + }), + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/speeds/relationships/task'), + related: z.string().default('/api/v2/ui/speeds/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zSpeedListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/speeds?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/speeds?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/speeds?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/speeds?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/speeds?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('speed'), + attributes: z.object({ + agentId: z.int(), + taskId: z.int(), + speed: z.number(), + time: z.number() + }) + }) + ), + relationships: z + .object({ + agent: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/speeds/relationships/agent'), + related: z.string().default('/api/v2/ui/speeds/agent') + }), + data: z + .object({ + type: z.literal('agent'), + id: z.int() + }) + .nullish() + }), + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/speeds/relationships/task'), + related: z.string().default('/api/v2/ui/speeds/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zSpeedRelationTask = z.object({ + data: z.object({ + type: z.literal('task'), + id: z.int().default(1) + }) +}); + +export const zSpeedRelationTaskGetResponse = z.object({ + data: z.object({ + type: z.literal('task'), + id: z.int().default(1) + }) +}); + +export const zSupertaskCreate = z.object({ + data: z.object({ + type: z.literal('supertask'), + attributes: z.object({ + pretasks: z.array(z.int()), + supertaskName: z.string() + }) + }) +}); + +export const zSupertaskPatch = z.object({ + data: z.object({ + type: z.literal('supertask'), + attributes: z.object({ + supertaskName: z.string().optional() + }) + }) +}); + +export const zSupertaskResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/supertasks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/supertasks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/supertasks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/supertasks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/supertasks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('supertask'), + attributes: z.object({ + supertaskName: z.string() + }) + }), + relationships: z + .object({ + pretasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/supertasks/relationships/pretasks'), + related: z.string().default('/api/v2/ui/supertasks/pretasks') + }), + data: z + .array( + z.object({ + type: z.literal('preTask'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('preTask'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + color: z.string(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + priority: z.int(), + maxAgents: z.int(), + isMaskImport: z.boolean(), + crackerBinaryTypeId: z.int() + }) + }) + ) + .optional() +}); + +export const zSupertaskSingleResponse = z.object({ + data: z.object({ + id: z.int(), + type: z.literal('supertask'), + attributes: z.object({ + supertaskName: z.string() + }) + }), + relationships: z + .object({ + pretasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/supertasks/relationships/pretasks'), + related: z.string().default('/api/v2/ui/supertasks/pretasks') + }), + data: z + .array( + z.object({ + type: z.literal('preTask'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('preTask'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + color: z.string(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + priority: z.int(), + maxAgents: z.int(), + isMaskImport: z.boolean(), + crackerBinaryTypeId: z.int() + }) + }) + ) + .optional() +}); + +export const zSupertaskPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('supertask'), + attributes: z.object({ + supertaskName: z.string() + }) + }) +}); + +export const zSupertaskListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/supertasks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/supertasks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/supertasks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/supertasks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/supertasks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('supertask'), + attributes: z.object({ + supertaskName: z.string() + }) + }) + ), + relationships: z + .object({ + pretasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/supertasks/relationships/pretasks'), + related: z.string().default('/api/v2/ui/supertasks/pretasks') + }), + data: z + .array( + z.object({ + type: z.literal('preTask'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.object({ + id: z.int(), + type: z.literal('preTask'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + color: z.string(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + priority: z.int(), + maxAgents: z.int(), + isMaskImport: z.boolean(), + crackerBinaryTypeId: z.int() + }) + }) + ) + .optional() +}); + +export const zSupertaskRelationPretasks = z.object({ + data: z.array( + z.object({ + type: z.literal('pretasks'), + id: z.int().default(1) + }) + ) +}); + +export const zSupertaskRelationPretasksGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('pretasks'), + id: z.int().default(1) + }) + ) +}); + +export const zTaskCreate = z.object({ + data: z.object({ + type: z.literal('task'), + attributes: z.object({ + hashlistId: z.int(), + files: z.array(z.int()), + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullish(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) +}); + +export const zTaskPatch = z.object({ + data: z.object({ + type: z.literal('task'), + attributes: z.object({ + attackCmd: z.string().optional(), + chunkTime: z.int().optional(), + color: z.string().nullish(), + isArchived: z.boolean().optional(), + isCpuTask: z.boolean().optional(), + isSmall: z.boolean().optional(), + maxAgents: z.int().optional(), + notes: z.string().optional(), + priority: z.int().optional(), + statusTimer: z.int().optional(), + taskName: z.string().optional() + }) + }) +}); + +export const zTaskResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/tasks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/tasks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/tasks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/tasks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/tasks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string(), + activeAgents: z.int(), + dispatched: z.string(), + searched: z.string(), + status: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + estimatedTime: z.int(), + timeSpent: z.int(), + currentSpeed: z.int(), + cprogress: z.int() + }) + }), + relationships: z + .object({ + assignedAgents: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/assignedAgents'), + related: z.string().default('/api/v2/ui/tasks/assignedAgents') + }), + data: z + .array( + z.object({ + type: z.literal('agent'), + id: z.int() + }) + ) + .optional() + }), + crackerBinary: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/crackerBinary'), + related: z.string().default('/api/v2/ui/tasks/crackerBinary') + }), + data: z + .object({ + type: z.literal('crackerBinary'), + id: z.int() + }) + .nullish() + }), + crackerBinaryType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/crackerBinaryType'), + related: z.string().default('/api/v2/ui/tasks/crackerBinaryType') + }), + data: z + .object({ + type: z.literal('crackerBinaryType'), + id: z.int() + }) + .nullish() + }), + files: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/files'), + related: z.string().default('/api/v2/ui/tasks/files') + }), + data: z + .array( + z.object({ + type: z.literal('file'), + id: z.int() + }) + ) + .optional() + }), + hashlist: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/hashlist'), + related: z.string().default('/api/v2/ui/tasks/hashlist') + }), + data: z + .object({ + type: z.literal('hashlist'), + id: z.int() + }) + .nullish() + }), + speeds: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/speeds'), + related: z.string().default('/api/v2/ui/tasks/speeds') + }), + data: z + .array( + z.object({ + type: z.literal('speed'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('crackerBinaryType'), + attributes: z.object({ + typeName: z.string(), + isChunkingAvailable: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('file'), + attributes: z.object({ + filename: z.string(), + size: z.number(), + isSecret: z.boolean(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]), + accessGroupId: z.int(), + lineCount: z.number() + }) + }), + z.object({ + id: z.int(), + type: z.literal('speed'), + attributes: z.object({ + agentId: z.int(), + taskId: z.int(), + speed: z.number(), + time: z.number() + }) + }) + ]) + ) + .optional() +}); + +export const zTaskPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string(), + activeAgents: z.int(), + dispatched: z.string(), + searched: z.string(), + status: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + estimatedTime: z.int(), + timeSpent: z.int(), + currentSpeed: z.int(), + cprogress: z.int() + }) + }) +}); + +export const zTaskListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/tasks?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/tasks?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/tasks?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/tasks?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/tasks?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string(), + activeAgents: z.int(), + dispatched: z.string(), + searched: z.string(), + status: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + estimatedTime: z.int(), + timeSpent: z.int(), + currentSpeed: z.int(), + cprogress: z.int() + }) + }) + ), + relationships: z + .object({ + assignedAgents: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/assignedAgents'), + related: z.string().default('/api/v2/ui/tasks/assignedAgents') + }), + data: z + .array( + z.object({ + type: z.literal('agent'), + id: z.int() + }) + ) + .optional() + }), + crackerBinary: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/crackerBinary'), + related: z.string().default('/api/v2/ui/tasks/crackerBinary') + }), + data: z + .object({ + type: z.literal('crackerBinary'), + id: z.int() + }) + .nullish() + }), + crackerBinaryType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/crackerBinaryType'), + related: z.string().default('/api/v2/ui/tasks/crackerBinaryType') + }), + data: z + .object({ + type: z.literal('crackerBinaryType'), + id: z.int() + }) + .nullish() + }), + files: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/files'), + related: z.string().default('/api/v2/ui/tasks/files') + }), + data: z + .array( + z.object({ + type: z.literal('file'), + id: z.int() + }) + ) + .optional() + }), + hashlist: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/hashlist'), + related: z.string().default('/api/v2/ui/tasks/hashlist') + }), + data: z + .object({ + type: z.literal('hashlist'), + id: z.int() + }) + .nullish() + }), + speeds: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/tasks/relationships/speeds'), + related: z.string().default('/api/v2/ui/tasks/speeds') + }), + data: z + .array( + z.object({ + type: z.literal('speed'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('crackerBinary'), + attributes: z.object({ + crackerBinaryTypeId: z.int(), + version: z.string(), + downloadUrl: z.string(), + binaryName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('crackerBinaryType'), + attributes: z.object({ + typeName: z.string(), + isChunkingAvailable: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('agent'), + attributes: z.object({ + agentName: z.string(), + uid: z.string(), + os: z.union([z.literal(0), z.literal(1), z.literal(2)]), + devices: z.string(), + cmdPars: z.string(), + ignoreErrors: z.union([z.literal(0), z.literal(1), z.literal(2)]), + isActive: z.boolean(), + isTrusted: z.boolean(), + token: z.string(), + lastAct: z.string(), + lastTime: z.number(), + lastIp: z.string(), + userId: z.int().nullable(), + cpuOnly: z.boolean(), + clientSignature: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('file'), + attributes: z.object({ + filename: z.string(), + size: z.number(), + isSecret: z.boolean(), + fileType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(100)]), + accessGroupId: z.int(), + lineCount: z.number() + }) + }), + z.object({ + id: z.int(), + type: z.literal('speed'), + attributes: z.object({ + agentId: z.int(), + taskId: z.int(), + speed: z.number(), + time: z.number() + }) + }) + ]) + ) + .optional() +}); + +export const zTaskRelationSpeeds = z.object({ + data: z.array( + z.object({ + type: z.literal('speeds'), + id: z.int().default(1) + }) + ) +}); + +export const zTaskRelationSpeedsGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('speeds'), + id: z.int().default(1) + }) + ) +}); + +export const zTaskWrapperPatch = z.object({ + data: z.object({ + type: z.literal('taskWrapper'), + attributes: z.object({ + accessGroupId: z.int().optional(), + isArchived: z.boolean().optional(), + maxAgents: z.int().optional(), + priority: z.int().optional(), + taskWrapperName: z.string().optional() + }) + }) +}); + +export const zTaskWrapperResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/taskwrappers?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/taskwrappers?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/taskwrappers?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/taskwrappers?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/taskwrappers?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('taskWrapper'), + attributes: z.object({ + priority: z.int(), + maxAgents: z.int(), + taskType: z.union([z.literal(0), z.literal(1)]), + hashlistId: z.int(), + accessGroupId: z.int(), + taskWrapperName: z.string(), + isArchived: z.boolean(), + cracked: z.int() + }) + }), + relationships: z + .object({ + accessGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/accessGroup'), + related: z.string().default('/api/v2/ui/taskwrappers/accessGroup') + }), + data: z + .object({ + type: z.literal('accessGroup'), + id: z.int() + }) + .nullish() + }), + hashType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/hashType'), + related: z.string().default('/api/v2/ui/taskwrappers/hashType') + }), + data: z + .object({ + type: z.literal('hashType'), + id: z.int() + }) + .nullish() + }), + hashlist: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/hashlist'), + related: z.string().default('/api/v2/ui/taskwrappers/hashlist') + }), + data: z + .object({ + type: z.literal('hashlist'), + id: z.int() + }) + .nullish() + }), + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/task'), + related: z.string().default('/api/v2/ui/taskwrappers/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/tasks'), + related: z.string().default('/api/v2/ui/taskwrappers/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zTaskWrapperSingleResponse = z.object({ + data: z.object({ + id: z.int(), + type: z.literal('taskWrapper'), + attributes: z.object({ + priority: z.int(), + maxAgents: z.int(), + taskType: z.union([z.literal(0), z.literal(1)]), + hashlistId: z.int(), + accessGroupId: z.int(), + taskWrapperName: z.string(), + isArchived: z.boolean(), + cracked: z.int() + }) + }), + relationships: z + .object({ + accessGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/accessGroup'), + related: z.string().default('/api/v2/ui/taskwrappers/accessGroup') + }), + data: z + .object({ + type: z.literal('accessGroup'), + id: z.int() + }) + .nullish() + }), + hashType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/hashType'), + related: z.string().default('/api/v2/ui/taskwrappers/hashType') + }), + data: z + .object({ + type: z.literal('hashType'), + id: z.int() + }) + .nullish() + }), + hashlist: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/hashlist'), + related: z.string().default('/api/v2/ui/taskwrappers/hashlist') + }), + data: z + .object({ + type: z.literal('hashlist'), + id: z.int() + }) + .nullish() + }), + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/task'), + related: z.string().default('/api/v2/ui/taskwrappers/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/tasks'), + related: z.string().default('/api/v2/ui/taskwrappers/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zTaskWrapperPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('taskWrapper'), + attributes: z.object({ + priority: z.int(), + maxAgents: z.int(), + taskType: z.union([z.literal(0), z.literal(1)]), + hashlistId: z.int(), + accessGroupId: z.int(), + taskWrapperName: z.string(), + isArchived: z.boolean(), + cracked: z.int() + }) + }) +}); + +export const zTaskWrapperListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/taskwrappers?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/taskwrappers?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/taskwrappers?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/taskwrappers?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/taskwrappers?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('taskWrapper'), + attributes: z.object({ + priority: z.int(), + maxAgents: z.int(), + taskType: z.union([z.literal(0), z.literal(1)]), + hashlistId: z.int(), + accessGroupId: z.int(), + taskWrapperName: z.string(), + isArchived: z.boolean(), + cracked: z.int() + }) + }) + ), + relationships: z + .object({ + accessGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/accessGroup'), + related: z.string().default('/api/v2/ui/taskwrappers/accessGroup') + }), + data: z + .object({ + type: z.literal('accessGroup'), + id: z.int() + }) + .nullish() + }), + hashType: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/hashType'), + related: z.string().default('/api/v2/ui/taskwrappers/hashType') + }), + data: z + .object({ + type: z.literal('hashType'), + id: z.int() + }) + .nullish() + }), + hashlist: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/hashlist'), + related: z.string().default('/api/v2/ui/taskwrappers/hashlist') + }), + data: z + .object({ + type: z.literal('hashlist'), + id: z.int() + }) + .nullish() + }), + task: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/task'), + related: z.string().default('/api/v2/ui/taskwrappers/task') + }), + data: z + .object({ + type: z.literal('task'), + id: z.int() + }) + .nullish() + }), + tasks: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/taskwrappers/relationships/tasks'), + related: z.string().default('/api/v2/ui/taskwrappers/tasks') + }), + data: z + .array( + z.object({ + type: z.literal('task'), + id: z.int() + }) + ) + .optional() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashlist'), + attributes: z.object({ + name: z.string(), + format: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]), + hashTypeId: z.int(), + hashCount: z.int(), + separator: z.string().nullable(), + cracked: z.int(), + isSecret: z.boolean(), + isHexSalt: z.boolean(), + isSalted: z.boolean(), + accessGroupId: z.int(), + notes: z.string(), + useBrain: z.boolean(), + brainFeatures: z.int(), + isArchived: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('hashType'), + attributes: z.object({ + description: z.string(), + isSalted: z.boolean(), + isSlowHash: z.boolean() + }) + }), + z.object({ + id: z.int(), + type: z.literal('task'), + attributes: z.object({ + taskName: z.string(), + attackCmd: z.string(), + chunkTime: z.int(), + statusTimer: z.int(), + keyspace: z.number(), + keyspaceProgress: z.number(), + priority: z.int(), + maxAgents: z.int(), + color: z.string().nullable(), + isSmall: z.boolean(), + isCpuTask: z.boolean(), + useNewBench: z.boolean(), + skipKeyspace: z.number(), + crackerBinaryId: z.int(), + crackerBinaryTypeId: z.int(), + taskWrapperId: z.int(), + isArchived: z.boolean(), + notes: z.string(), + staticChunks: z.int(), + chunkSize: z.number(), + forcePipe: z.boolean(), + preprocessorId: z.int(), + preprocessorCommand: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zTaskWrapperRelationTasks = z.object({ + data: z.array( + z.object({ + type: z.literal('tasks'), + id: z.int().default(1) + }) + ) +}); + +export const zTaskWrapperRelationTasksGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('tasks'), + id: z.int().default(1) + }) + ) +}); + +export const zUserCreate = z.object({ + data: z.object({ + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + globalPermissionGroupId: z.int() + }) + }) +}); + +export const zUserPatch = z.object({ + data: z.object({ + type: z.literal('user'), + attributes: z.object({ + email: z.string().optional(), + globalPermissionGroupId: z.int().optional(), + isValid: z.boolean().optional(), + sessionLifetime: z.int().optional() + }) + }) +}); + +export const zUserResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/users?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/users?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/users?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/users?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/users?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }), + relationships: z + .object({ + accessGroups: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/users/relationships/accessGroups'), + related: z.string().default('/api/v2/ui/users/accessGroups') + }), + data: z + .array( + z.object({ + type: z.literal('accessGroup'), + id: z.int() + }) + ) + .optional() + }), + globalPermissionGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/users/relationships/globalPermissionGroup'), + related: z.string().default('/api/v2/ui/users/globalPermissionGroup') + }), + data: z + .object({ + type: z.literal('globalPermissionGroup'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('globalPermissionGroup'), + attributes: z.object({ + name: z.string(), + permissions: z.record(z.string(), z.boolean()) + }) + }), + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zUserPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }) +}); + +export const zUserListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/users?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/users?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/users?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/users?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/users?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('user'), + attributes: z.object({ + name: z.string(), + email: z.string(), + isValid: z.boolean(), + isComputedPassword: z.boolean(), + lastLoginDate: z.number(), + registeredSince: z.number(), + sessionLifetime: z.int(), + globalPermissionGroupId: z.int(), + yubikey: z.string(), + otp1: z.string(), + otp2: z.string(), + otp3: z.string(), + otp4: z.string() + }) + }) + ), + relationships: z + .object({ + accessGroups: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/users/relationships/accessGroups'), + related: z.string().default('/api/v2/ui/users/accessGroups') + }), + data: z + .array( + z.object({ + type: z.literal('accessGroup'), + id: z.int() + }) + ) + .optional() + }), + globalPermissionGroup: z.object({ + links: z.object({ + self: z.string().default('/api/v2/ui/users/relationships/globalPermissionGroup'), + related: z.string().default('/api/v2/ui/users/globalPermissionGroup') + }), + data: z + .object({ + type: z.literal('globalPermissionGroup'), + id: z.int() + }) + .nullish() + }) + }) + .optional(), + included: z + .array( + z.union([ + z.object({ + id: z.int(), + type: z.literal('globalPermissionGroup'), + attributes: z.object({ + name: z.string(), + permissions: z.record(z.string(), z.boolean()) + }) + }), + z.object({ + id: z.int(), + type: z.literal('accessGroup'), + attributes: z.object({ + groupName: z.string() + }) + }) + ]) + ) + .optional() +}); + +export const zUserRelationAccessGroups = z.object({ + data: z.array( + z.object({ + type: z.literal('accessGroups'), + id: z.int().default(1) + }) + ) +}); + +export const zUserRelationAccessGroupsGetResponse = z.object({ + data: z.array( + z.object({ + type: z.literal('accessGroups'), + id: z.int().default(1) + }) + ) +}); + +export const zVoucherCreate = z.object({ + data: z.object({ + type: z.literal('voucher'), + attributes: z.object({ + voucher: z.string() + }) + }) +}); + +export const zVoucherPatch = z.object({ + data: z.object({ + type: z.literal('voucher'), + attributes: z.object({ + voucher: z.string().optional() + }) + }) +}); + +export const zVoucherResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/vouchers?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/vouchers?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/vouchers?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/vouchers?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/vouchers?page[size]=25&page[before]=25') + }) + .optional(), + data: z.object({ + id: z.int(), + type: z.literal('voucher'), + attributes: z.object({ + voucher: z.string(), + time: z.number() + }) + }), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zVoucherPostPatchResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + data: z.object({ + id: z.int(), + type: z.literal('voucher'), + attributes: z.object({ + voucher: z.string(), + time: z.number() + }) + }) +}); + +export const zVoucherListResponse = z.object({ + jsonapi: z.object({ + version: z.string().default('1.1'), + ext: z.array(z.string()).optional().default(['https://jsonapi.org/profiles/ethanresnick/cursor-pagination']) + }), + links: z + .object({ + self: z.string().default('/api/v2/ui/vouchers?page[size]=25'), + first: z.string().optional().default('/api/v2/ui/vouchers?page[size]=25&page[after]=0'), + last: z.string().optional().default('/api/v2/ui/vouchers?page[size]=25&page[before]=500'), + next: z.string().nullish().default('/api/v2/ui/vouchers?page[size]=25&page[after]=25'), + previous: z.string().nullish().default('/api/v2/ui/vouchers?page[size]=25&page[before]=25') + }) + .optional(), + data: z.array( + z.object({ + id: z.int(), + type: z.literal('voucher'), + attributes: z.object({ + voucher: z.string(), + time: z.number() + }) + }) + ), + relationships: z.record(z.string(), z.unknown()).optional(), + included: z.array(z.unknown()).optional() +}); + +export const zAbortChunkHelperApi = z.object({ + chunkId: z.int().optional() +}); + +export const zAbortChunkHelperApiResponse = z.array( + z.object({ + Abort: z.string().optional().default('Success') + }) +); + +export const zAssignAgentHelperApi = z.object({ + agentId: z.int().optional(), + taskId: z.int().optional() +}); + +export const zAssignAgentHelperApiResponse = z.array( + z.object({ + Assign: z.string().optional().default('Success') + }) +); + +export const zBulkSupertaskBuilderHelperApi = z.object({ + name: z.string().optional(), + isCpu: z.boolean().optional(), + isSmall: z.boolean().optional(), + crackerBinaryTypeId: z.int().optional(), + benchtype: z.string().optional(), + command: z.string().optional(), + maxAgents: z.int().optional(), + basefiles: z.array(z.int()).optional(), + iterfiles: z.array(z.int()).optional() +}); + +export const zChangeOwnPasswordHelperApi = z.object({ + oldPassword: z.string().optional(), + newPassword: z.string().optional(), + confirmPassword: z.string().optional() +}); + +export const zChangeOwnPasswordHelperApiResponse = z.array( + z.object({ + 'Change password': z.string().optional().default('Password succesfully updated!') + }) +); + +export const zCreateSuperHashlistHelperApi = z.object({ + hashlistIds: z.array(z.int()).optional(), + name: z.string().optional() +}); + +export const zCreateSupertaskHelperApi = z.object({ + supertaskTemplateId: z.int().optional(), + hashlistId: z.int().optional(), + crackerVersionId: z.int().optional() +}); + +export const zExportCrackedHashesHelperApi = z.object({ + hashlistId: z.int().optional() +}); + +export const zExportLeftHashesHelperApi = z.object({ + hashlistId: z.int().optional() +}); + +export const zExportWordlistHelperApi = z.object({ + hashlistId: z.int().optional() +}); + +export const zImportCrackedHashesHelperApi = z.object({ + hashlistId: z.int().optional(), + sourceType: z.string().optional(), + sourceData: z.string().optional(), + separator: z.string().optional(), + overwrite: z.int().optional() +}); + +export const zImportCrackedHashesHelperApiResponse = z.array( + z.object({ + totalLines: z.int().optional().default(100), + newCracked: z.int().optional().default(5), + alreadyCracked: z.int().optional().default(2), + invalid: z.int().optional().default(1), + notFound: z.int().optional().default(1), + processTime: z.int().optional().default(60), + tooLongPlaintexts: z.int().optional().default(4) + }) +); + +export const zImportFileHelperApi = z.record(z.string(), z.unknown()); + +export const zMaskSupertaskBuilderHelperApi = z.object({ + name: z.string().optional(), + isCpu: z.boolean().optional(), + isSmall: z.boolean().optional(), + optimized: z.boolean().optional(), + crackerBinaryTypeId: z.int().optional(), + benchtype: z.string().optional(), + masks: z.string().optional(), + maxAgents: z.int().optional() +}); + +export const zPurgeTaskHelperApi = z.object({ + taskId: z.int().optional() +}); + +export const zPurgeTaskHelperApiResponse = z.array( + z.object({ + Purge: z.string().optional().default('Success') + }) +); + +export const zRebuildChunkCacheHelperApi = z.record(z.string(), z.unknown()); + +export const zRebuildChunkCacheHelperApiResponse = z.array( + z.object({ + Rebuild: z.string().optional().default('Success') + }) +); + +export const zRecountFileLinesHelperApi = z.object({ + fileId: z.int().optional() +}); + +export const zRescanGlobalFilesHelperApi = z.record(z.string(), z.unknown()); + +export const zRescanGlobalFilesHelperApiResponse = z.array( + z.object({ + Rescan: z.string().optional().default('Success') + }) +); + +export const zResetChunkHelperApi = z.object({ + chunkId: z.int().optional() +}); + +export const zResetChunkHelperApiResponse = z.array( + z.object({ + Reset: z.string().optional().default('Success') + }) +); + +export const zResetUserPasswordHelperApi = z.object({ + email: z.string().optional(), + username: z.string().optional() +}); + +export const zResetUserPasswordHelperApiResponse = z.array( + z.object({ + Reset: z.string().optional().default('Success') + }) +); + +export const zSearchHashesHelperApi = z.object({ + searchData: z.string().optional(), + separator: z.string().optional(), + isSalted: z.boolean().optional() +}); + +export const zSearchHashesHelperApiResponse = z.array( + z.object({ + 0: z.record(z.string(), z.unknown()).optional().default({ found: false, query: '12345678' }), + 1: z + .record(z.string(), z.unknown()) + .optional() + .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' } + } + } + } + ] + }) + }) +); + +export const zSetUserPasswordHelperApi = z.object({ + userId: z.int().optional(), + password: z.string().optional() +}); + +export const zSetUserPasswordHelperApiResponse = z.array( + z.object({ + 'Set password': z.string().optional().default('Success') + }) +); + +export const zUnassignAgentHelperApi = z.object({ + agentId: z.int().optional() +}); + +export const zUnassignAgentHelperApiResponse = z.array( + z.object({ + Unassign: z.string().optional().default('Success') + }) +); + +export const zToken = z.object({ + token: z.string(), + expires: z.int() +}); + +export const zTokenRequest = z.array(z.string()); + +export const zDeleteAccessgroupsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetAccessgroupsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAccessgroupsResponse = zAccessGroupListResponse; + +export const zPatchAccessgroupsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostAccessgroupsData = z.object({ + body: zAccessGroupCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostAccessgroupsResponse = zAccessGroupPostPatchResponse; + +export const zGetAccessgroupsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAccessgroupsCountResponse = zAccessGroupListResponse; + +export const zGetAccessgroupsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetAccessgroupsByIdByRelationResponse = zAccessGroupRelationAgentMembersGetResponse; + +export const zDeleteAccessgroupsByIdRelationshipsByRelationData = z.object({ + body: zAccessGroupRelationAgentMembers, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteAccessgroupsByIdRelationshipsByRelationResponse = z.void(); + +export const zGetAccessgroupsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetAccessgroupsByIdRelationshipsByRelationResponse = zAccessGroupResponse; + +export const zPatchAccessgroupsByIdRelationshipsByRelationData = z.object({ + body: zAccessGroupRelationAgentMembers, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchAccessgroupsByIdRelationshipsByRelationResponse = z.void(); + +export const zPostAccessgroupsByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostAccessgroupsByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteAccessgroupsByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteAccessgroupsByIdResponse = z.void(); + +export const zGetAccessgroupsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAccessgroupsByIdResponse = zAccessGroupResponse; + +export const zPatchAccessgroupsByIdData = z.object({ + body: zAccessGroupPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchAccessgroupsByIdResponse = zAccessGroupPostPatchResponse; + +export const zDeleteAgentsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetAgentsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentsResponse = zAgentListResponse; + +export const zPatchAgentsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetAgentsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentsCountResponse = zAgentListResponse; + +export const zGetAgentsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetAgentsByIdByRelationResponse = zAgentRelationAssignmentsGetResponse; + +export const zDeleteAgentsByIdRelationshipsByRelationData = z.object({ + body: zAgentRelationAssignments, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteAgentsByIdRelationshipsByRelationResponse = z.void(); + +export const zGetAgentsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetAgentsByIdRelationshipsByRelationResponse = zAgentResponse; + +export const zPatchAgentsByIdRelationshipsByRelationData = z.object({ + body: zAgentRelationAssignments, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchAgentsByIdRelationshipsByRelationResponse = z.void(); + +export const zPostAgentsByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostAgentsByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteAgentsByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteAgentsByIdResponse = z.void(); + +export const zGetAgentsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentsByIdResponse = zAgentResponse; + +export const zPatchAgentsByIdData = z.object({ + body: zAgentPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchAgentsByIdResponse = zAgentPostPatchResponse; + +export const zDeleteAgentassignmentsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetAgentassignmentsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentassignmentsResponse = zAgentAssignmentListResponse; + +export const zPatchAgentassignmentsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostAgentassignmentsData = z.object({ + body: zAgentAssignmentCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostAgentassignmentsResponse = zAgentAssignmentPostPatchResponse; + +export const zGetAgentassignmentsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentassignmentsCountResponse = zAgentAssignmentListResponse; + +export const zGetAgentassignmentsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetAgentassignmentsByIdByRelationResponse = zAgentAssignmentRelationTaskGetResponse; + +export const zGetAgentassignmentsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetAgentassignmentsByIdRelationshipsByRelationResponse = zAgentAssignmentResponse; + +export const zPatchAgentassignmentsByIdRelationshipsByRelationData = z.object({ + body: zAgentAssignmentRelationTask, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchAgentassignmentsByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteAgentassignmentsByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteAgentassignmentsByIdResponse = z.void(); + +export const zGetAgentassignmentsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentassignmentsByIdResponse = zAgentAssignmentResponse; + +export const zPatchAgentassignmentsByIdData = z.object({ + body: zAgentAssignmentPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchAgentassignmentsByIdResponse = zAgentAssignmentPostPatchResponse; + +export const zDeleteAgentbinariesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetAgentbinariesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentbinariesResponse = zAgentBinaryListResponse; + +export const zPatchAgentbinariesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostAgentbinariesData = z.object({ + body: zAgentBinaryCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostAgentbinariesResponse = zAgentBinaryPostPatchResponse; + +export const zGetAgentbinariesCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentbinariesCountResponse = zAgentBinaryListResponse; + +export const zDeleteAgentbinariesByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteAgentbinariesByIdResponse = z.void(); + +export const zGetAgentbinariesByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentbinariesByIdResponse = zAgentBinaryResponse; + +export const zPatchAgentbinariesByIdData = z.object({ + body: zAgentBinaryPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchAgentbinariesByIdResponse = zAgentBinaryPostPatchResponse; + +export const zDeleteAgenterrorsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetAgenterrorsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgenterrorsResponse = zAgentErrorListResponse; + +export const zGetAgenterrorsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgenterrorsCountResponse = zAgentErrorListResponse; + +export const zGetAgenterrorsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetAgenterrorsByIdByRelationResponse = zAgentErrorRelationTaskGetResponse; + +export const zGetAgenterrorsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetAgenterrorsByIdRelationshipsByRelationResponse = zAgentErrorResponse; + +export const zPatchAgenterrorsByIdRelationshipsByRelationData = z.object({ + body: zAgentErrorRelationTask, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchAgenterrorsByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteAgenterrorsByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteAgenterrorsByIdResponse = z.void(); + +export const zGetAgenterrorsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgenterrorsByIdResponse = zAgentErrorResponse; + +export const zDeleteAgentstatsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetAgentstatsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentstatsResponse = zAgentStatListResponse; + +export const zGetAgentstatsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentstatsCountResponse = zAgentStatListResponse; + +export const zDeleteAgentstatsByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteAgentstatsByIdResponse = z.void(); + +export const zGetAgentstatsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetAgentstatsByIdResponse = zAgentStatResponse; + +export const zDeleteApiTokensData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetApiTokensData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetApiTokensResponse = zApiTokenListResponse; + +export const zPatchApiTokensData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostApiTokensData = z.object({ + body: zApiTokenCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostApiTokensResponse = zApiTokenPostPatchResponse; + +export const zGetApiTokensCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetApiTokensCountResponse = zApiTokenListResponse; + +export const zGetApiTokensByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetApiTokensByIdByRelationResponse = zApiTokenRelationUserGetResponse; + +export const zGetApiTokensByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetApiTokensByIdRelationshipsByRelationResponse = zApiTokenResponse; + +export const zPatchApiTokensByIdRelationshipsByRelationData = z.object({ + body: zApiTokenRelationUser, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchApiTokensByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteApiTokensByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteApiTokensByIdResponse = z.void(); + +export const zGetApiTokensByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetApiTokensByIdResponse = zApiTokenResponse; + +export const zPatchApiTokensByIdData = z.object({ + body: zApiTokenPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchApiTokensByIdResponse = zApiTokenPostPatchResponse; + +export const zGetChunksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetChunksResponse = zChunkListResponse; + +export const zGetChunksCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetChunksCountResponse = zChunkListResponse; + +export const zGetChunksByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetChunksByIdByRelationResponse = zChunkRelationTaskGetResponse; + +export const zGetChunksByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetChunksByIdRelationshipsByRelationResponse = zChunkResponse; + +export const zPatchChunksByIdRelationshipsByRelationData = z.object({ + body: zChunkRelationTask, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchChunksByIdRelationshipsByRelationResponse = z.void(); + +export const zGetChunksByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetChunksByIdResponse = zChunkResponse; + +export const zGetConfigsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetConfigsResponse = zConfigListResponse; + +export const zPatchConfigsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetConfigsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetConfigsCountResponse = zConfigListResponse; + +export const zGetConfigsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetConfigsByIdByRelationResponse = zConfigRelationConfigSectionGetResponse; + +export const zGetConfigsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetConfigsByIdRelationshipsByRelationResponse = zConfigResponse; + +export const zPatchConfigsByIdRelationshipsByRelationData = z.object({ + body: zConfigRelationConfigSection, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchConfigsByIdRelationshipsByRelationResponse = z.void(); + +export const zGetConfigsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetConfigsByIdResponse = zConfigResponse; + +export const zPatchConfigsByIdData = z.object({ + body: zConfigPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchConfigsByIdResponse = zConfigPostPatchResponse; + +export const zGetConfigsectionsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetConfigsectionsResponse = zConfigSectionListResponse; + +export const zGetConfigsectionsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetConfigsectionsCountResponse = zConfigSectionListResponse; + +export const zGetConfigsectionsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetConfigsectionsByIdResponse = zConfigSectionResponse; + +export const zDeleteCrackersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetCrackersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetCrackersResponse = zCrackerBinaryListResponse; + +export const zPatchCrackersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostCrackersData = z.object({ + body: zCrackerBinaryCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostCrackersResponse = zCrackerBinaryPostPatchResponse; + +export const zGetCrackersCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetCrackersCountResponse = zCrackerBinaryListResponse; + +export const zGetCrackersByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetCrackersByIdByRelationResponse = zCrackerBinaryRelationTasksGetResponse; + +export const zDeleteCrackersByIdRelationshipsByRelationData = z.object({ + body: zCrackerBinaryRelationTasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteCrackersByIdRelationshipsByRelationResponse = z.void(); + +export const zGetCrackersByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetCrackersByIdRelationshipsByRelationResponse = zCrackerBinaryResponse; + +export const zPatchCrackersByIdRelationshipsByRelationData = z.object({ + body: zCrackerBinaryRelationTasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchCrackersByIdRelationshipsByRelationResponse = z.void(); + +export const zPostCrackersByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostCrackersByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteCrackersByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteCrackersByIdResponse = z.void(); + +export const zGetCrackersByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetCrackersByIdResponse = zCrackerBinaryResponse; + +export const zPatchCrackersByIdData = z.object({ + body: zCrackerBinaryPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchCrackersByIdResponse = zCrackerBinaryPostPatchResponse; + +export const zDeleteCrackertypesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetCrackertypesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetCrackertypesResponse = zCrackerBinaryTypeListResponse; + +export const zPatchCrackertypesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostCrackertypesData = z.object({ + body: zCrackerBinaryTypeCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostCrackertypesResponse = zCrackerBinaryTypePostPatchResponse; + +export const zGetCrackertypesCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetCrackertypesCountResponse = zCrackerBinaryTypeListResponse; + +export const zGetCrackertypesByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetCrackertypesByIdByRelationResponse = zCrackerBinaryTypeRelationTasksGetResponse; + +export const zDeleteCrackertypesByIdRelationshipsByRelationData = z.object({ + body: zCrackerBinaryTypeRelationTasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteCrackertypesByIdRelationshipsByRelationResponse = z.void(); + +export const zGetCrackertypesByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetCrackertypesByIdRelationshipsByRelationResponse = zCrackerBinaryTypeResponse; + +export const zPatchCrackertypesByIdRelationshipsByRelationData = z.object({ + body: zCrackerBinaryTypeRelationTasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchCrackertypesByIdRelationshipsByRelationResponse = z.void(); + +export const zPostCrackertypesByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostCrackertypesByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteCrackertypesByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteCrackertypesByIdResponse = z.void(); + +export const zGetCrackertypesByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetCrackertypesByIdResponse = zCrackerBinaryTypeResponse; + +export const zPatchCrackertypesByIdData = z.object({ + body: zCrackerBinaryTypePatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchCrackertypesByIdResponse = zCrackerBinaryTypePostPatchResponse; + +export const zDeleteFilesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetFilesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetFilesResponse = zFileListResponse; + +export const zPatchFilesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostFilesData = z.object({ + body: zFileCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostFilesResponse = zFilePostPatchResponse; + +export const zGetFilesCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetFilesCountResponse = zFileListResponse; + +export const zGetFilesByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetFilesByIdByRelationResponse = zFileRelationAccessGroupGetResponse; + +export const zGetFilesByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetFilesByIdRelationshipsByRelationResponse = zFileResponse; + +export const zPatchFilesByIdRelationshipsByRelationData = z.object({ + body: zFileRelationAccessGroup, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchFilesByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteFilesByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteFilesByIdResponse = z.void(); + +export const zGetFilesByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetFilesByIdResponse = zFileResponse; + +export const zPatchFilesByIdData = z.object({ + body: zFilePatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchFilesByIdResponse = zFilePostPatchResponse; + +export const zDeleteGlobalpermissiongroupsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetGlobalpermissiongroupsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetGlobalpermissiongroupsResponse = zGlobalPermissionGroupListResponse; + +export const zPatchGlobalpermissiongroupsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostGlobalpermissiongroupsData = z.object({ + body: zGlobalPermissionGroupCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostGlobalpermissiongroupsResponse = zGlobalPermissionGroupPostPatchResponse; + +export const zGetGlobalpermissiongroupsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetGlobalpermissiongroupsCountResponse = zGlobalPermissionGroupListResponse; + +export const zGetGlobalpermissiongroupsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetGlobalpermissiongroupsByIdByRelationResponse = zGlobalPermissionGroupRelationUserMembersGetResponse; + +export const zDeleteGlobalpermissiongroupsByIdRelationshipsByRelationData = z.object({ + body: zGlobalPermissionGroupRelationUserMembers, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteGlobalpermissiongroupsByIdRelationshipsByRelationResponse = z.void(); + +export const zGetGlobalpermissiongroupsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetGlobalpermissiongroupsByIdRelationshipsByRelationResponse = zGlobalPermissionGroupResponse; + +export const zPatchGlobalpermissiongroupsByIdRelationshipsByRelationData = z.object({ + body: zGlobalPermissionGroupRelationUserMembers, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchGlobalpermissiongroupsByIdRelationshipsByRelationResponse = z.void(); + +export const zPostGlobalpermissiongroupsByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostGlobalpermissiongroupsByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteGlobalpermissiongroupsByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteGlobalpermissiongroupsByIdResponse = z.void(); + +export const zGetGlobalpermissiongroupsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetGlobalpermissiongroupsByIdResponse = zGlobalPermissionGroupResponse; + +export const zPatchGlobalpermissiongroupsByIdData = z.object({ + body: zGlobalPermissionGroupPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchGlobalpermissiongroupsByIdResponse = zGlobalPermissionGroupPostPatchResponse; + +export const zGetHashesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHashesResponse = zHashListResponse; + +export const zGetHashesCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHashesCountResponse = zHashListResponse; + +export const zGetHashesByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetHashesByIdByRelationResponse = zHashRelationHashlistGetResponse; + +export const zGetHashesByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetHashesByIdRelationshipsByRelationResponse = zHashResponse; + +export const zPatchHashesByIdRelationshipsByRelationData = z.object({ + body: zHashRelationHashlist, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchHashesByIdRelationshipsByRelationResponse = z.void(); + +export const zGetHashesByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHashesByIdResponse = zHashResponse; + +export const zDeleteHashlistsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetHashlistsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHashlistsResponse = zHashlistListResponse; + +export const zPatchHashlistsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostHashlistsData = z.object({ + body: zHashlistCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostHashlistsResponse = zHashlistPostPatchResponse; + +export const zGetHashlistsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHashlistsCountResponse = zHashlistListResponse; + +export const zGetHashlistsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetHashlistsByIdByRelationResponse = zHashlistRelationTasksGetResponse; + +export const zDeleteHashlistsByIdRelationshipsByRelationData = z.object({ + body: zHashlistRelationTasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteHashlistsByIdRelationshipsByRelationResponse = z.void(); + +export const zGetHashlistsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetHashlistsByIdRelationshipsByRelationResponse = zHashlistResponse; + +export const zPatchHashlistsByIdRelationshipsByRelationData = z.object({ + body: zHashlistRelationTasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchHashlistsByIdRelationshipsByRelationResponse = z.void(); + +export const zPostHashlistsByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostHashlistsByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteHashlistsByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteHashlistsByIdResponse = z.void(); + +export const zGetHashlistsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHashlistsByIdResponse = zHashlistResponse; + +export const zPatchHashlistsByIdData = z.object({ + body: zHashlistPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchHashlistsByIdResponse = zHashlistPostPatchResponse; + +export const zDeleteHashtypesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetHashtypesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHashtypesResponse = zHashTypeListResponse; + +export const zPatchHashtypesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostHashtypesData = z.object({ + body: zHashTypeCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostHashtypesResponse = zHashTypePostPatchResponse; + +export const zGetHashtypesCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHashtypesCountResponse = zHashTypeListResponse; + +export const zDeleteHashtypesByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteHashtypesByIdResponse = z.void(); + +export const zGetHashtypesByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHashtypesByIdResponse = zHashTypeResponse; + +export const zPatchHashtypesByIdData = z.object({ + body: zHashTypePatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchHashtypesByIdResponse = zHashTypePostPatchResponse; + +export const zGetHealthcheckagentsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHealthcheckagentsResponse = zHealthCheckAgentListResponse; + +export const zGetHealthcheckagentsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHealthcheckagentsCountResponse = zHealthCheckAgentListResponse; + +export const zGetHealthcheckagentsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetHealthcheckagentsByIdByRelationResponse = zHealthCheckAgentRelationHealthCheckGetResponse; + +export const zGetHealthcheckagentsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetHealthcheckagentsByIdRelationshipsByRelationResponse = zHealthCheckAgentResponse; + +export const zPatchHealthcheckagentsByIdRelationshipsByRelationData = z.object({ + body: zHealthCheckAgentRelationHealthCheck, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchHealthcheckagentsByIdRelationshipsByRelationResponse = z.void(); + +export const zGetHealthcheckagentsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHealthcheckagentsByIdResponse = zHealthCheckAgentResponse; + +export const zDeleteHealthchecksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetHealthchecksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHealthchecksResponse = zHealthCheckListResponse; + +export const zPatchHealthchecksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostHealthchecksData = z.object({ + body: zHealthCheckCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostHealthchecksResponse = zHealthCheckPostPatchResponse; + +export const zGetHealthchecksCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHealthchecksCountResponse = zHealthCheckListResponse; + +export const zGetHealthchecksByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetHealthchecksByIdByRelationResponse = zHealthCheckRelationHealthCheckAgentsGetResponse; + +export const zDeleteHealthchecksByIdRelationshipsByRelationData = z.object({ + body: zHealthCheckRelationHealthCheckAgents, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteHealthchecksByIdRelationshipsByRelationResponse = z.void(); + +export const zGetHealthchecksByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetHealthchecksByIdRelationshipsByRelationResponse = zHealthCheckResponse; + +export const zPatchHealthchecksByIdRelationshipsByRelationData = z.object({ + body: zHealthCheckRelationHealthCheckAgents, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchHealthchecksByIdRelationshipsByRelationResponse = z.void(); + +export const zPostHealthchecksByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostHealthchecksByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteHealthchecksByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteHealthchecksByIdResponse = z.void(); + +export const zGetHealthchecksByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetHealthchecksByIdResponse = zHealthCheckResponse; + +export const zPatchHealthchecksByIdData = z.object({ + body: zHealthCheckPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchHealthchecksByIdResponse = zHealthCheckPostPatchResponse; + +export const zDeleteLogentriesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetLogentriesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetLogentriesResponse = zLogEntryListResponse; + +export const zPatchLogentriesData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostLogentriesData = z.object({ + body: zLogEntryCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostLogentriesResponse = zLogEntryPostPatchResponse; + +export const zGetLogentriesCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetLogentriesCountResponse = zLogEntryListResponse; + +export const zDeleteLogentriesByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteLogentriesByIdResponse = z.void(); + +export const zGetLogentriesByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetLogentriesByIdResponse = zLogEntryResponse; + +export const zPatchLogentriesByIdData = z.object({ + body: zLogEntryPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchLogentriesByIdResponse = zLogEntryPostPatchResponse; + +export const zDeleteNotificationsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetNotificationsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetNotificationsResponse = zNotificationSettingListResponse; + +export const zPatchNotificationsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostNotificationsData = z.object({ + body: zNotificationSettingCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostNotificationsResponse = zNotificationSettingPostPatchResponse; + +export const zGetNotificationsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetNotificationsCountResponse = zNotificationSettingListResponse; + +export const zGetNotificationsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetNotificationsByIdByRelationResponse = zNotificationSettingRelationUserGetResponse; + +export const zGetNotificationsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetNotificationsByIdRelationshipsByRelationResponse = zNotificationSettingResponse; + +export const zPatchNotificationsByIdRelationshipsByRelationData = z.object({ + body: zNotificationSettingRelationUser, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchNotificationsByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteNotificationsByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteNotificationsByIdResponse = z.void(); + +export const zGetNotificationsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetNotificationsByIdResponse = zNotificationSettingResponse; + +export const zPatchNotificationsByIdData = z.object({ + body: zNotificationSettingPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchNotificationsByIdResponse = zNotificationSettingPostPatchResponse; + +export const zDeletePreprocessorsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetPreprocessorsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetPreprocessorsResponse = zPreprocessorListResponse; + +export const zPatchPreprocessorsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostPreprocessorsData = z.object({ + body: zPreprocessorCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostPreprocessorsResponse = zPreprocessorPostPatchResponse; + +export const zGetPreprocessorsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetPreprocessorsCountResponse = zPreprocessorListResponse; + +export const zDeletePreprocessorsByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeletePreprocessorsByIdResponse = z.void(); + +export const zGetPreprocessorsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetPreprocessorsByIdResponse = zPreprocessorResponse; + +export const zPatchPreprocessorsByIdData = z.object({ + body: zPreprocessorPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchPreprocessorsByIdResponse = zPreprocessorPostPatchResponse; + +export const zDeletePretasksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetPretasksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetPretasksResponse = zPreTaskListResponse; + +export const zPatchPretasksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostPretasksData = z.object({ + body: zPreTaskCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostPretasksResponse = zPreTaskPostPatchResponse; + +export const zGetPretasksCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetPretasksCountResponse = zPreTaskListResponse; + +export const zGetPretasksByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetPretasksByIdByRelationResponse = zPreTaskRelationPretaskFilesGetResponse; + +export const zDeletePretasksByIdRelationshipsByRelationData = z.object({ + body: zPreTaskRelationPretaskFiles, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeletePretasksByIdRelationshipsByRelationResponse = z.void(); + +export const zGetPretasksByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetPretasksByIdRelationshipsByRelationResponse = zPreTaskResponse; + +export const zPatchPretasksByIdRelationshipsByRelationData = z.object({ + body: zPreTaskRelationPretaskFiles, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchPretasksByIdRelationshipsByRelationResponse = z.void(); + +export const zPostPretasksByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostPretasksByIdRelationshipsByRelationResponse = z.void(); + +export const zDeletePretasksByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeletePretasksByIdResponse = z.void(); + +export const zGetPretasksByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetPretasksByIdResponse = zPreTaskResponse; + +export const zPatchPretasksByIdData = z.object({ + body: zPreTaskPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchPretasksByIdResponse = zPreTaskPostPatchResponse; + +export const zGetSpeedsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetSpeedsResponse = zSpeedListResponse; + +export const zGetSpeedsCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetSpeedsCountResponse = zSpeedListResponse; + +export const zGetSpeedsByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetSpeedsByIdByRelationResponse = zSpeedRelationTaskGetResponse; + +export const zGetSpeedsByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetSpeedsByIdRelationshipsByRelationResponse = zSpeedResponse; + +export const zPatchSpeedsByIdRelationshipsByRelationData = z.object({ + body: zSpeedRelationTask, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchSpeedsByIdRelationshipsByRelationResponse = z.void(); + +export const zGetSpeedsByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetSpeedsByIdResponse = zSpeedResponse; + +export const zDeleteSupertasksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetSupertasksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetSupertasksResponse = zSupertaskListResponse; + +export const zPatchSupertasksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostSupertasksData = z.object({ + body: zSupertaskCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostSupertasksResponse = zSupertaskPostPatchResponse; + +export const zGetSupertasksCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetSupertasksCountResponse = zSupertaskListResponse; + +export const zGetSupertasksByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetSupertasksByIdByRelationResponse = zSupertaskRelationPretasksGetResponse; + +export const zDeleteSupertasksByIdRelationshipsByRelationData = z.object({ + body: zSupertaskRelationPretasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteSupertasksByIdRelationshipsByRelationResponse = z.void(); + +export const zGetSupertasksByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetSupertasksByIdRelationshipsByRelationResponse = zSupertaskResponse; + +export const zPatchSupertasksByIdRelationshipsByRelationData = z.object({ + body: zSupertaskRelationPretasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchSupertasksByIdRelationshipsByRelationResponse = z.void(); + +export const zPostSupertasksByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostSupertasksByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteSupertasksByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteSupertasksByIdResponse = z.void(); + +export const zGetSupertasksByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetSupertasksByIdResponse = zSupertaskResponse; + +export const zPatchSupertasksByIdData = z.object({ + body: zSupertaskPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchSupertasksByIdResponse = zSupertaskPostPatchResponse; + +export const zDeleteTasksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetTasksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetTasksResponse = zTaskListResponse; + +export const zPatchTasksData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostTasksData = z.object({ + body: zTaskCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostTasksResponse = zTaskPostPatchResponse; + +export const zGetTasksCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetTasksCountResponse = zTaskListResponse; + +export const zGetTasksByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetTasksByIdByRelationResponse = zTaskRelationSpeedsGetResponse; + +export const zDeleteTasksByIdRelationshipsByRelationData = z.object({ + body: zTaskRelationSpeeds, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteTasksByIdRelationshipsByRelationResponse = z.void(); + +export const zGetTasksByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetTasksByIdRelationshipsByRelationResponse = zTaskResponse; + +export const zPatchTasksByIdRelationshipsByRelationData = z.object({ + body: zTaskRelationSpeeds, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchTasksByIdRelationshipsByRelationResponse = z.void(); + +export const zPostTasksByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostTasksByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteTasksByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteTasksByIdResponse = z.void(); + +export const zGetTasksByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetTasksByIdResponse = zTaskResponse; + +export const zPatchTasksByIdData = z.object({ + body: zTaskPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchTasksByIdResponse = zTaskPostPatchResponse; + +export const zDeleteTaskwrappersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetTaskwrappersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetTaskwrappersResponse = zTaskWrapperListResponse; + +export const zPatchTaskwrappersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetTaskwrappersCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetTaskwrappersCountResponse = zTaskWrapperListResponse; + +export const zGetTaskwrappersByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetTaskwrappersByIdByRelationResponse = zTaskWrapperRelationTasksGetResponse; + +export const zDeleteTaskwrappersByIdRelationshipsByRelationData = z.object({ + body: zTaskWrapperRelationTasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteTaskwrappersByIdRelationshipsByRelationResponse = z.void(); + +export const zGetTaskwrappersByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetTaskwrappersByIdRelationshipsByRelationResponse = zTaskWrapperResponse; + +export const zPatchTaskwrappersByIdRelationshipsByRelationData = z.object({ + body: zTaskWrapperRelationTasks, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchTaskwrappersByIdRelationshipsByRelationResponse = z.void(); + +export const zPostTaskwrappersByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostTaskwrappersByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteTaskwrappersByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteTaskwrappersByIdResponse = z.void(); + +export const zGetTaskwrappersByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetTaskwrappersByIdResponse = zTaskWrapperResponse; + +export const zPatchTaskwrappersByIdData = z.object({ + body: zTaskWrapperPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchTaskwrappersByIdResponse = zTaskWrapperPostPatchResponse; + +export const zDeleteUsersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetUsersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetUsersResponse = zUserListResponse; + +export const zPatchUsersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostUsersData = z.object({ + body: zUserCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostUsersResponse = zUserPostPatchResponse; + +export const zGetUsersCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetUsersCountResponse = zUserListResponse; + +export const zGetUsersByIdByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetUsersByIdByRelationResponse = zUserRelationAccessGroupsGetResponse; + +export const zDeleteUsersByIdRelationshipsByRelationData = z.object({ + body: zUserRelationAccessGroups, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteUsersByIdRelationshipsByRelationResponse = z.void(); + +export const zGetUsersByIdRelationshipsByRelationData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zGetUsersByIdRelationshipsByRelationResponse = zUserResponse; + +export const zPatchUsersByIdRelationshipsByRelationData = z.object({ + body: zUserRelationAccessGroups, + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * Successfull operation + */ +export const zPatchUsersByIdRelationshipsByRelationResponse = z.void(); + +export const zPostUsersByIdRelationshipsByRelationData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int(), + relation: z.string() + }), + query: z.never().optional() +}); + +/** + * successfully created + */ +export const zPostUsersByIdRelationshipsByRelationResponse = z.void(); + +export const zDeleteUsersByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteUsersByIdResponse = z.void(); + +export const zGetUsersByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetUsersByIdResponse = zUserResponse; + +export const zPatchUsersByIdData = z.object({ + body: zUserPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchUsersByIdResponse = zUserPostPatchResponse; + +export const zDeleteVouchersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetVouchersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetVouchersResponse = zVoucherListResponse; + +export const zPatchVouchersData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostVouchersData = z.object({ + body: zVoucherCreate, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostVouchersResponse = zVoucherPostPatchResponse; + +export const zGetVouchersCountData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + 'page[after]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[before]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + 'page[size]': z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + filter: z.record(z.string(), z.unknown()).optional(), + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetVouchersCountResponse = zVoucherListResponse; + +export const zDeleteVouchersByIdData = z.object({ + body: z.record(z.string(), z.unknown()), + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successfully deleted + */ +export const zDeleteVouchersByIdResponse = z.void(); + +export const zGetVouchersByIdData = z.object({ + body: z.never().optional(), + path: z.object({ + id: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }), + query: z + .object({ + include: z.string().optional() + }) + .optional() +}); + +/** + * successful operation + */ +export const zGetVouchersByIdResponse = zVoucherResponse; + +export const zPatchVouchersByIdData = z.object({ + body: zVoucherPatch, + path: z.object({ + id: z.int() + }), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPatchVouchersByIdResponse = zVoucherPostPatchResponse; + +export const zPostAbortChunkData = z.object({ + body: zAbortChunkHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostAbortChunkResponse = zAbortChunkHelperApiResponse; + +export const zPostAssignAgentData = z.object({ + body: zAssignAgentHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostAssignAgentResponse = zAssignAgentHelperApiResponse; + +export const zPostBulkSupertaskBuilderData = z.object({ + body: zBulkSupertaskBuilderHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostBulkSupertaskBuilderResponse = zSupertaskSingleResponse; + +export const zPostChangeOwnPasswordData = z.object({ + body: zChangeOwnPasswordHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostChangeOwnPasswordResponse = zChangeOwnPasswordHelperApiResponse; + +export const zPostCreateSuperHashlistData = z.object({ + body: zCreateSuperHashlistHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostCreateSuperHashlistResponse = zHashlistSingleResponse; + +export const zPostCreateSupertaskData = z.object({ + body: zCreateSupertaskHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostCreateSupertaskResponse = zTaskWrapperSingleResponse; + +export const zGetCurrentUserData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPatchCurrentUserData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostExportCrackedHashesData = z.object({ + body: zExportCrackedHashesHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostExportCrackedHashesResponse = zFileSingleResponse; + +export const zPostExportLeftHashesData = z.object({ + body: zExportLeftHashesHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostExportLeftHashesResponse = zFileSingleResponse; + +export const zPostExportWordlistData = z.object({ + body: zExportWordlistHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostExportWordlistResponse = zFileSingleResponse; + +export const zGetGetAccessGroupsData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zGetGetAgentBinaryData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.object({ + agent: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }) +}); + +export const zGetGetBestTasksAgentData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.object({ + agent: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }) +}); + +export const zGetGetCracksOfTaskData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.object({ + task: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }) +}); + +export const zGetGetFileData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.object({ + file: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + }) +}); + +export const zGetGetTaskProgressImageData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z + .object({ + supertask: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + task: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional() + }) + .optional() +}); + +export const zGetGetUserPermissionData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostImportCrackedHashesData = z.object({ + body: zImportCrackedHashesHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostImportCrackedHashesResponse = zImportCrackedHashesHelperApiResponse; + +export const zGetImportFileData = z.object({ + body: z.never().optional(), + path: z.never().optional(), + query: z.never().optional() +}); + +export const zPostImportFileData = z.object({ + body: zImportFileHelperApi, + path: z.never().optional(), + query: z.never().optional(), + headers: z.object({ + 'Upload-Metadata': z.string().regex(/^([a-zA-Z0-9]+ [A-Za-z0-9+\/=]+)(,[a-zA-Z0-9]+ [A-Za-z0-9+\/=]+)*$/), + 'Upload-Length': z.int().gte(1).optional(), + 'Upload-Defer-Length': z.int().optional() + }) +}); + +export const zPostImportFileResponse = z.union([z.unknown(), z.string()]); + +export const zDeleteImportFileById09aF32Data = z.object({ + body: z.never().optional(), + path: z.object({ + 32: z.string(), + id: z.int() + }), + query: z.never().optional() +}); + +export const zHeadImportFileById09aF32Data = z.object({ + body: z.never().optional(), + path: z.object({ + 32: z.string(), + id: z.int() + }), + query: z.never().optional() +}); + +export const zPatchImportFileById09aF32Data = z.object({ + body: z.string(), + path: z.object({ + 32: z.string(), + id: z.int() + }), + query: z.never().optional(), + headers: z.object({ + 'Upload-Offset': z.int(), + 'Content-Type': z.enum(['application/offset+octet-stream']) + }) +}); + +export const zPatchImportFileById09aF32Response = z.union([z.unknown(), z.void()]); + +export const zPostMaskSupertaskBuilderData = z.object({ + body: zMaskSupertaskBuilderHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostMaskSupertaskBuilderResponse = zSupertaskSingleResponse; + +export const zPostPurgeTaskData = z.object({ + body: zPurgeTaskHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostPurgeTaskResponse = zPurgeTaskHelperApiResponse; + +export const zPostRebuildChunkCacheData = z.object({ + body: zRebuildChunkCacheHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostRebuildChunkCacheResponse = zRebuildChunkCacheHelperApiResponse; + +export const zPostRecountFileLinesData = z.object({ + body: zRecountFileLinesHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostRecountFileLinesResponse = zFileSingleResponse; + +export const zPostRescanGlobalFilesData = z.object({ + body: zRescanGlobalFilesHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostRescanGlobalFilesResponse = zRescanGlobalFilesHelperApiResponse; + +export const zPostResetChunkData = z.object({ + body: zResetChunkHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostResetChunkResponse = zResetChunkHelperApiResponse; + +export const zPostResetUserPasswordData = z.object({ + body: zResetUserPasswordHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostResetUserPasswordResponse = zResetUserPasswordHelperApiResponse; + +export const zPostSearchHashesData = z.object({ + body: zSearchHashesHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostSearchHashesResponse = zSearchHashesHelperApiResponse; + +export const zPostSetUserPasswordData = z.object({ + body: zSetUserPasswordHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostSetUserPasswordResponse = zSetUserPasswordHelperApiResponse; + +export const zPostUnassignAgentData = z.object({ + body: zUnassignAgentHelperApi, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * successful operation + */ +export const zPostUnassignAgentResponse = zUnassignAgentHelperApiResponse; + +export const zPostTokenData = z.object({ + body: zTokenRequest, + path: z.never().optional(), + query: z.never().optional() +}); + +/** + * Success + */ +export const zPostTokenResponse = zToken; diff --git a/tsconfig.json b/tsconfig.json index 6d880fc2d..2523590af 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,3 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ { "compileOnSave": false, "compilerOptions": { @@ -24,6 +23,9 @@ ], "@interceptors/*": [ "./src/app/core/_interceptors/*" + ], + "@generated/*": [ + "./src/generated/*" ] }, "outDir": "./dist/out-tsc", @@ -51,7 +53,8 @@ "ES2022", "dom" ], - "useDefineForClassFields": false + "useDefineForClassFields": false, + "skipLibCheck": true }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false,