From da740b3ddbadc56ea26e57aa0a93dbf2d6587ae5 Mon Sep 17 00:00:00 2001 From: Zoltan Runyo <zoltan.runyo@ess.eu> Date: Tue, 31 Jan 2023 15:55:26 +0100 Subject: [PATCH] ICSHWI-11558: Update backend API mock --- src/mocks/fixtures/ccce-api.json | 3577 +++++++++++------------------- src/mocks/mockAPI.js | 4 +- 2 files changed, 1350 insertions(+), 2231 deletions(-) diff --git a/src/mocks/fixtures/ccce-api.json b/src/mocks/fixtures/ccce-api.json index 424156b4..3c90cf9b 100644 --- a/src/mocks/fixtures/ccce-api.json +++ b/src/mocks/fixtures/ccce-api.json @@ -12,33 +12,18 @@ } ], "tags": [ - { - "name": "Broadcasts" - }, - { - "name": "IOCs" - }, - { - "name": "Naming" - }, - { - "name": "Authentication" - }, - { - "name": "Statistics" - }, - { - "name": "Hosts" - }, - { - "name": "Deployments" - }, - { - "name": "Git" - }, - { - "name": "Monitoring" - } + { "name": "Broadcasts" }, + { "name": "IOCs" }, + { "name": "Naming" }, + { "name": "Authentication" }, + { "name": "AWX" }, + { "name": "Helper" }, + { "name": "Records" }, + { "name": "Statistics" }, + { "name": "Hosts" }, + { "name": "Deployments" }, + { "name": "Git" }, + { "name": "Monitoring" } ], "paths": { "/api/v1/iocs/{ioc_id}/undeploy_in_db": { @@ -53,23 +38,39 @@ "in": "path", "description": "The id of the IOC to undeploy", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "200": { - "description": "Undeployment created", + "403": { + "description": "Forbidden: user doesn't have the necessary permissions to undeploy", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Deployment" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "422": { + "description": "IOC is not deployed", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "500": { + "description": "Service exception", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "409": { + "description": "Ongoing deployment, or undeployment for IOC", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -77,18 +78,17 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "403": { - "description": "Forbidden: user doesn't have the necessary permissions to undeploy", + "200": { + "description": "Undeployment created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { "$ref": "#/components/schemas/Deployment" } } } } @@ -97,28 +97,53 @@ "description": "Not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } + } + }, + "security": [{ "bearerAuth": [] }] + } + }, + "/api/v1/iocs/{ioc_id}/active_deployment/host": { + "put": { + "tags": ["IOCs"], + "summary": "Modify deployment host in database", + "description": "Modifies host of IOC's active deployment in database - will not call AWX", + "operationId": "updateActiveDeploymentHost", + "parameters": [ + { + "name": "ioc_id", + "in": "path", + "description": "The ID of the IOC", + "required": true, + "schema": { "type": "integer", "format": "int64" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateHostRequest" } + } }, - "409": { - "description": "Ongoing deployment, or undeployment for IOC", + "required": true + }, + "responses": { + "422": { + "description": "IOC is not deployed", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "422": { - "description": "IOC is not deployed", + "200": { + "description": "Successful host update", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { "$ref": "#/components/schemas/Ioc" } } } } @@ -127,18 +152,44 @@ "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "409": { + "description": "Ongoing operation for IOC", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "403": { + "description": "Forbidden: user doesn't have the necessary permissions to modify", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "404": { + "description": "Not found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/iocs": { @@ -162,57 +213,42 @@ "in": "query", "description": "User name", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "query", "in": "query", "description": "Search text (Search for Naming name, Owner)", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "order_by", "in": "query", "description": "Order by", "required": false, - "schema": { - "type": "string", - "enum": ["ID", "OWNER", "IOC_NAME"] - } + "schema": { "type": "string", "enum": ["ID", "OWNER", "IOC_NAME"] } }, { "name": "order_asc", "in": "query", "description": "Order Ascending", "required": false, - "schema": { - "type": "boolean" - } + "schema": { "type": "boolean" } }, { "name": "page", "in": "query", "description": "Page offset", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "Page size", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } } ], "responses": { @@ -220,29 +256,23 @@ "description": "A paged array of IOCs", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedIocResponse" - } + "schema": { "$ref": "#/components/schemas/PagedIocResponse" } } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -255,21 +285,17 @@ "requestBody": { "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateIoc" - } + "schema": { "$ref": "#/components/schemas/CreateIoc" } } }, "required": true }, "responses": { - "201": { - "description": "IOC created", + "422": { + "description": "Unprocessable request", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Ioc" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -277,88 +303,68 @@ "description": "Incomplete request", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "409": { + "description": "IOC already created", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "403": { - "description": "Forbidden: User doesn't have the necessary permissions in Gitlab", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "409": { - "description": "IOC already created", + "403": { + "description": "Forbidden: User doesn't have the necessary permissions in Gitlab", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "422": { - "description": "Unprocessable request", + "424": { + "description": "Metadata file not found, or not processable", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "424": { - "description": "Metadata file not found, or not processable", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "201": { + "description": "IOC created", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/Ioc" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/iocs/{ioc_id}/undeployment_job": { @@ -372,112 +378,87 @@ "in": "path", "description": "The id of the IOC to undeploy", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Undeployment" - } + "schema": { "$ref": "#/components/schemas/Undeployment" } } }, "required": true }, "responses": { - "201": { - "description": "Undeployment created", + "409": { + "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Deployment" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "403": { - "description": "Forbidden: user doesn't have the necessary permissions in Gitlab", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "Not found", + "422": { + "description": "IOC is not deployed correctly", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "409": { - "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "422": { - "description": "IOC is not deployed correctly", + "201": { + "description": "Undeployment created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { "$ref": "#/components/schemas/Deployment" } } } } }, - "500": { - "description": "Service exception", + "403": { + "description": "Forbidden: user doesn't have the necessary permissions in Gitlab", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "404": { + "description": "Not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/iocs/{ioc_id}/stop_job": { @@ -491,10 +472,7 @@ "in": "path", "description": "The id of the IOC to stop", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { @@ -502,88 +480,68 @@ "description": "IOC stop initiated", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/AdHocCommand" - } + "schema": { "$ref": "#/components/schemas/AdHocCommand" } } } }, - "401": { - "description": "Unauthorized", + "409": { + "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "403": { - "description": "Forbidden: User doesn't have the necessary permissions in Gitlab", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "IOC not found", + "403": { + "description": "Forbidden: User doesn't have the necessary permissions in Gitlab", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "409": { - "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", + "422": { + "description": "IOC has no active deployment", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "422": { - "description": "IOC has no active deployment", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "404": { + "description": "IOC not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/iocs/{ioc_id}/start_job": { @@ -597,30 +555,23 @@ "in": "path", "description": "The id of the IOC to start", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "201": { - "description": "IOC start initiated", + "409": { + "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/AdHocCommand" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -628,68 +579,52 @@ "description": "Forbidden: User doesn't have the necessary permissions in Gitlab", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "IOC not found", + "422": { + "description": "IOC has no active deployment", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "409": { - "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "422": { - "description": "IOC has no active deployment", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "404": { + "description": "IOC not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "201": { + "description": "IOC start initiated", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/AdHocCommand" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/iocs/{ioc_id}/deployment_job": { @@ -703,18 +638,13 @@ "in": "path", "description": "The id of the IOC to deploy", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateAndDeployIoc" - } + "schema": { "$ref": "#/components/schemas/UpdateAndDeployIoc" } } }, "required": true @@ -724,9 +654,7 @@ "description": "Deployment created", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Deployment" - } + "schema": { "$ref": "#/components/schemas/Deployment" } } } }, @@ -734,49 +662,39 @@ "description": "Incomplete request", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "409": { + "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "403": { - "description": "Forbidden: User doesn't have the necessary permissions in Gitlab", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "IOC not found", + "403": { + "description": "Forbidden: User doesn't have the necessary permissions in Gitlab", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "409": { - "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", + "424": { + "description": "Metadata file not found, or not processable", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -784,19 +702,57 @@ "description": "CSEntry host not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "424": { - "description": "Metadata file not found, or not processable", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "404": { + "description": "IOC not found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + } + }, + "security": [{ "bearerAuth": [] }] + } + }, + "/api/v1/awx/jobs": { + "post": { + "tags": ["AWX"], + "summary": "Update an AWX job's status", + "operationId": "updateJob", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AwxJobMeta" } + } + }, + "required": true + }, + "responses": { + "404": { + "description": "Job not found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -804,28 +760,28 @@ "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "200": { + "description": "Job updated", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "apiKey": [] }] } }, "/api/v1/authentication/renew": { @@ -835,62 +791,48 @@ "description": "Renewing valid, non-expired JWT token", "operationId": "tokenRenew", "responses": { - "200": { - "description": "Ok", + "503": { + "description": "Login server unavailable", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/LoginResponse" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "403": { - "description": "Permission denied", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "Ok", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/LoginResponse" } } } }, - "503": { - "description": "Login server unavailable", + "403": { + "description": "Permission denied", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/authentication/login": { @@ -902,61 +844,49 @@ "requestBody": { "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Login" - } + "schema": { "$ref": "#/components/schemas/Login" } } }, "required": true }, "responses": { - "200": { - "description": "Ok", + "401": { + "description": "Bad username, and/or password", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/LoginResponse" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Bad username, and/or password", + "503": { + "description": "Login server unavailable", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "403": { - "description": "User doesn't have permission to log in", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "403": { + "description": "User doesn't have permission to log in", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Login server unavailable", + "200": { + "description": "Ok", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/LoginResponse" } } } } @@ -974,20 +904,15 @@ "in": "path", "description": "Unique ID of IOC", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "200": { - "description": "Found IOC", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/IocDetails" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -995,29 +920,23 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "Ioc not found", + "200": { + "description": "Found IOC", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/IocDetails" } } } }, - "500": { - "description": "Service exception", + "404": { + "description": "Ioc not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -1033,30 +952,23 @@ "in": "path", "description": "Id of IOC to delete", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "204": { - "description": "IOC deleted", + "409": { + "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", "content": { "application/json": { - "schema": { - "type": "string" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -1064,58 +976,42 @@ "description": "Forbidden: User doesn't have the necessary permissions", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "IOC not found", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "409": { - "description": "Concurrent deployment, undeployment, start or stop for IOC is ongoing", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "404": { + "description": "IOC not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "204": { + "description": "IOC deleted", "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } - } + "application/json": { "schema": { "type": "string" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] }, "patch": { "tags": ["IOCs"], @@ -1127,40 +1023,31 @@ "in": "path", "description": "Unique ID of IOC", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/IOCUpdateRequest" - } + "schema": { "$ref": "#/components/schemas/IOCUpdateRequest" } } }, "required": true }, "responses": { - "200": { - "description": "IOC updated", + "422": { + "description": "Unprocessable request", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Ioc" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -1168,68 +1055,64 @@ "description": "Forbidden: User doesn't have the necessary permissions", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "Ioc not found", + "409": { + "description": "IOC already created or concurrent deployment, undeployment, start or stop for IOC is ongoing", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "409": { - "description": "IOC already created or concurrent deployment, undeployment, start or stop for IOC is ongoing", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "422": { - "description": "Unprocessable request", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "IOC updated", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/Ioc" } } } }, - "503": { - "description": "Remote service exception", + "404": { + "description": "Ioc not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] + "security": [{ "bearerAuth": [] }] + } + }, + "/healthcheck": { + "get": { + "tags": ["health-check-controller"], + "operationId": "getHealthCheck", + "responses": { + "200": { + "description": "OK", + "content": { "*/*": { "schema": { "type": "string" } } } } - ] + } } }, "/api/v1/statistics/my_iocs": { @@ -1248,32 +1131,24 @@ } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/statistics/general": { @@ -1282,13 +1157,11 @@ "summary": "Set of statistics", "operationId": "generalStatistics", "responses": { - "200": { - "description": "Statistics about IOCs, deployments, and hosts", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralStatisticsResponse" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -1296,18 +1169,16 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "Statistics about IOCs, deployments, and hosts", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "$ref": "#/components/schemas/GeneralStatisticsResponse" } } } @@ -1321,36 +1192,30 @@ "summary": "IOC statistics", "operationId": "iocStatistics", "responses": { - "200": { - "description": "Statistics about IOCs deployed to hosts", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DeploymentOnHost" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "200": { + "description": "Statistics about IOCs deployed to hosts", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { "$ref": "#/components/schemas/DeploymentOnHost" } } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -1363,6 +1228,14 @@ "summary": "Deployment statistics", "operationId": "deploymentStatistics", "responses": { + "500": { + "description": "Service exception", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, "200": { "description": "Statistics about IOCs, deployments, and hosts", "content": { @@ -1380,19 +1253,7 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } - } - } - }, - "500": { - "description": "Service exception", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -1405,16 +1266,11 @@ "summary": "Deployed IOC history from DB for statistics", "operationId": "iocDeploymentHistory", "responses": { - "200": { - "description": "History about deployed IOCs from DB for statistics", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ActiveIOCSForHistoryResponse" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -1422,18 +1278,19 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "History about deployed IOCs from DB for statistics", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { + "$ref": "#/components/schemas/ActiveIOCSForHistoryResponse" + } } } } @@ -1447,16 +1304,11 @@ "summary": "Currently active IOC statistics", "operationId": "currentlyActiveIocs", "responses": { - "200": { - "description": "Statistics about currently active IOCs", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ActiveIocStatisticsResponse" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -1464,18 +1316,19 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "Statistics about currently active IOCs", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { + "$ref": "#/components/schemas/ActiveIocStatisticsResponse" + } } } } @@ -1502,95 +1355,182 @@ } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } } } }, - "/api/v1/naming/ioc_names_by_name": { + "/api/v1/records": { "get": { - "tags": ["Naming"], - "summary": "Fetches IOC names by name from CCDB", - "operationId": "fetchIOCByName", + "tags": ["Records"], + "summary": "List all ChannelFinder records", + "operationId": "findAllRecords", "parameters": [ + { + "name": "record_name", + "in": "query", + "description": "Record name", + "required": false, + "schema": { "type": "string" } + }, { "name": "ioc_name", "in": "query", "description": "IOC name", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } + }, + { + "name": "page", + "in": "query", + "description": "Page offset", + "required": false, + "schema": { "type": "integer", "format": "int32" } + }, + { + "name": "limit", + "in": "query", + "description": "Page size", + "required": false, + "schema": { "maximum": 100, "type": "string" } } ], "responses": { "200": { - "description": "Naming names, and IDs from CCDB", + "description": "A paged array of Channel Finder records", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NameResponse" - } - } + "schema": { "$ref": "#/components/schemas/PagedRecordResponse" } } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, + "503": { + "description": "Remote server exception", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + } + } + } + }, + "/api/v1/records/{name}": { + "get": { + "tags": ["Records"], + "summary": "Find ChannelFinder record details by record name", + "operationId": "getRecord", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Unique ID of the record", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { "500": { "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "404": { + "description": "Record not found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "200": { + "description": "Found record", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/RecordDetails" } + } + } + } + } + } + }, + "/api/v1/naming/ioc_names_by_name": { + "get": { + "tags": ["Naming"], + "summary": "Fetches IOC names by name from CCDB", + "operationId": "fetchIOCByName", + "parameters": [ + { + "name": "ioc_name", + "in": "query", + "description": "IOC name", + "required": false, + "schema": { "type": "string" } + } + ], + "responses": { + "500": { + "description": "Service exception", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, "503": { "description": "Remote service unreachable", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "200": { + "description": "Naming names, and IDs from CCDB", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { "$ref": "#/components/schemas/NameResponse" } } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/monitoring/syslog/host/{host_name}": { @@ -1604,68 +1544,51 @@ "in": "path", "description": "Host name (without network part)", "required": true, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "time_range", "in": "query", "description": "Time range (in minutes)", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } } ], "responses": { - "200": { - "description": "Log lines", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/LokiResponse" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "503": { + "description": "Logging server unavailable", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Logging server unavailable", + "200": { + "description": "Log lines", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/LokiResponse" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/monitoring/status/{ioc_id}": { @@ -1679,20 +1602,15 @@ "in": "path", "description": "Unique ID of the IOC", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "200": { - "description": "Log lines", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/IocStatusResponse" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -1700,29 +1618,23 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "Ioc not found", + "200": { + "description": "Log lines", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/IocStatusResponse" } } } }, - "500": { - "description": "Service exception", + "404": { + "description": "Ioc not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -1740,77 +1652,58 @@ "in": "path", "description": "Host name (without network part)", "required": true, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "ioc_name", "in": "path", "description": "Name of the IOC to get procServ logs", "required": true, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "time_range", "in": "query", "description": "Time range (in minutes)", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } } ], "responses": { - "200": { - "description": "Log lines", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/LokiResponse" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "503": { + "description": "Logging server unavailable", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Logging server unavailable", + "200": { + "description": "Log lines", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/LokiResponse" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/iocs/my_iocs_with_alarms": { @@ -1819,45 +1712,35 @@ "summary": "List own IOCs with alarms", "operationId": "listOwnIocsWithAlarms", "responses": { - "200": { - "description": "Array of own IOC with alarms", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IocWithAlarm" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "200": { + "description": "Array of own IOC with alarms", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { "$ref": "#/components/schemas/IocWithAlarm" } } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/hosts": { @@ -1871,9 +1754,7 @@ "in": "query", "description": "Search text, this query string is passed directly to Elasticsearch. E.g.: To search all hosts where the string \"archiver\" appears in any field, use \"archiver\".To restrict the search to only the name field, use \"name:archiver\".Note that if you pass \"name:arch\", this will not match archiver as elasticsearch uses keywords for string matching. In this case you’d need to use a wildcard: \"name:arch*\".", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "filter", @@ -1890,30 +1771,22 @@ "in": "query", "description": "Page offset", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "Page size", "required": false, - "schema": { - "maximum": 100, - "type": "string" - } + "schema": { "maximum": 100, "type": "string" } } ], "responses": { - "200": { - "description": "A paged array of CSEntry hosts", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedCSEntryHostResponse" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -1921,18 +1794,16 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "A paged array of CSEntry hosts", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "$ref": "#/components/schemas/PagedCSEntryHostResponse" } } } @@ -1941,9 +1812,7 @@ "description": "Remote server exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -1961,10 +1830,7 @@ "in": "path", "description": "Unique CSEntry ID of the host", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { @@ -1978,33 +1844,27 @@ } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "Not found", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "404": { + "description": "Not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -2012,9 +1872,7 @@ "description": "Remote server exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -2032,40 +1890,29 @@ "in": "path", "description": "Unique CSEntry ID of the host", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } }, { "name": "page", "in": "query", "description": "Page offset", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "Page size", "required": false, - "schema": { - "maximum": 100, - "type": "string" - } + "schema": { "maximum": 100, "type": "string" } } ], "responses": { - "200": { - "description": "Found Host", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedAssociatedIocs" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -2073,19 +1920,15 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "Found Host", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/PagedAssociatedIocs" } } } } @@ -2103,20 +1946,15 @@ "in": "path", "description": "Unique CSEntry ID of the host", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "200": { - "description": "Found Host", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/TargetHost" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -2124,9 +1962,15 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "200": { + "description": "Found Host", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/TargetHost" } } } }, @@ -2134,9 +1978,34 @@ "description": "Not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + } + } + } + }, + "/api/v1/helper/check_naming_uuid/{naming_uuid}": { + "get": { + "tags": ["Helper"], + "summary": "Checks Naming UUID", + "description": "Checks Naming UUID if it is in use by IOC. \r\nSearching is based on EXACT match! \r\nIf no IOC uses the Naming UUID then the iocId will be NULL", + "operationId": "checkNamingUUId", + "parameters": [ + { + "name": "naming_uuid", + "in": "path", + "description": "Naming UUID", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/IdUsedByIoc" } } } }, @@ -2144,9 +2013,50 @@ "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "422": { + "description": "Too many IOCs use the same Naming UUID", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + } + } + } + }, + "/api/v1/helper/check_git_repo_id/{repo_id}": { + "get": { + "tags": ["Helper"], + "summary": "Checks Git Repository Id", + "description": "Checks Git Repository Id if it is in use by IOC. \r\nIf no IOC uses the Git repo Id then the iocId will be NULL", + "operationId": "checkGitRepoId", + "parameters": [ + { + "name": "repo_id", + "in": "path", + "description": "Git repository Id", + "required": true, + "schema": { "type": "integer", "format": "int64" } + } + ], + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/IdUsedByIoc" } + } + } + }, + "500": { + "description": "Service exception", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -2164,38 +2074,28 @@ "in": "path", "description": "Git repo project ID", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } }, { "name": "reference", "in": "query", "description": "Git reference", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "include_all_reference", "in": "query", "description": "Inculde all reference - optional. Default value: include all refernce (not limiting the response)", "required": false, - "schema": { - "type": "boolean" - } + "schema": { "type": "boolean" } }, { "name": "search_method", "in": "query", "description": "Search method - optional. Default value: filtering ref by EQUALS method", "required": false, - "schema": { - "type": "string", - "enum": ["EQUALS", "CONTAINS"] - } + "schema": { "type": "string", "enum": ["EQUALS", "CONTAINS"] } } ], "responses": { @@ -2205,20 +2105,16 @@ "application/json": { "schema": { "type": "array", - "items": { - "$ref": "#/components/schemas/GitReference" - } + "items": { "$ref": "#/components/schemas/GitReference" } } } } }, - "401": { - "description": "Unauthorized", + "503": { + "description": "Git exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -2226,19 +2122,15 @@ "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Git exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -2256,71 +2148,55 @@ "in": "query", "description": "The username to retrieve info from - optional. If no user name provided the backend will look up for currently logged in user name", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } } ], "responses": { - "200": { - "description": "Information about the current user", + "503": { + "description": "Git exception", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserInfoResponse" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "Not found", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "Information about the current user", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { "$ref": "#/components/schemas/UserInfoResponse" } } } } }, - "503": { - "description": "Git exception", + "404": { + "description": "Not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/git_helper/projects": { @@ -2329,25 +2205,21 @@ "summary": "List IOC projects", "operationId": "listProjects", "responses": { - "200": { - "description": "List of Gitlab projects of allowed groups", + "503": { + "description": "Git exception", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GitProject" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "200": { + "description": "List of Gitlab projects of allowed groups", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "type": "array", + "items": { "$ref": "#/components/schemas/GitProject" } } } } @@ -2356,28 +2228,20 @@ "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Git exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/deployments": { @@ -2391,20 +2255,14 @@ "in": "query", "description": "IOC ID", "required": false, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } }, { "name": "host_csentry_id", "in": "query", "description": "Host CSEntry ID", "required": false, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } }, { "name": "status", @@ -2413,14 +2271,7 @@ "required": false, "schema": { "type": "string", - "enum": [ - "QUEUED", - "PENDING", - "RUNNING", - "SUCCESSFUL", - "FAILED", - "FINISHED" - ] + "enum": ["QUEUED", "RUNNING", "SUCCESSFUL", "FAILED", "FINISHED"] } }, { @@ -2428,18 +2279,14 @@ "in": "query", "description": "User name", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "query", "in": "query", "description": "Search text (Search for IOC name, Git reference, Created by)", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "order_by", @@ -2456,29 +2303,21 @@ "in": "query", "description": "Order Ascending", "required": false, - "schema": { - "type": "boolean" - } + "schema": { "type": "boolean" } }, { "name": "page", "in": "query", "description": "Page offset", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "Page size", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } } ], "responses": { @@ -2492,23 +2331,19 @@ } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } @@ -2526,20 +2361,15 @@ "in": "path", "description": "Unique ID of deployment", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "200": { - "description": "A deployment with details", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/DeploymentInfoDetails" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -2547,9 +2377,7 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -2557,18 +2385,16 @@ "description": "Deployment not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "A deployment with details", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "$ref": "#/components/schemas/DeploymentInfoDetails" } } } @@ -2587,10 +2413,7 @@ "in": "query", "description": "Type", "required": false, - "schema": { - "type": "string", - "enum": ["DEPLOYMENT", "COMMAND"] - } + "schema": { "type": "string", "enum": ["DEPLOYMENT", "COMMAND"] } }, { "name": "status", @@ -2599,14 +2422,7 @@ "required": false, "schema": { "type": "string", - "enum": [ - "QUEUED", - "PENDING", - "RUNNING", - "SUCCESSFUL", - "FAILED", - "FINISHED" - ] + "enum": ["QUEUED", "RUNNING", "SUCCESSFUL", "FAILED", "FINISHED"] } }, { @@ -2614,18 +2430,14 @@ "in": "query", "description": "User name", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "query", "in": "query", "description": "Search text (Search for IOC name, Git reference, Created by)", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } }, { "name": "order_by", @@ -2642,29 +2454,21 @@ "in": "query", "description": "Order Ascending", "required": false, - "schema": { - "type": "boolean" - } + "schema": { "type": "boolean" } }, { "name": "page", "in": "query", "description": "Page offset", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "Page size", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } } ], "responses": { @@ -2678,54 +2482,45 @@ } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } } } }, - "/api/v1/deployments/jobs/{awx_job_id}": { + "/api/v1/deployments/operations/{operation_id}": { "get": { "tags": ["Deployments"], - "summary": "Get deployment job details", - "operationId": "fetchDeploymentJobDetails", + "summary": "Get operation details", + "operationId": "fetchOperation", "parameters": [ { - "name": "awx_job_id", + "name": "operation_id", "in": "path", - "description": "Unique ID of AWX job", + "description": "Unique ID of operation", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "200": { - "description": "AWX job details", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/AwxJobDetails" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -2733,70 +2528,65 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } - } - } - }, - "404": { - "description": "Deployment not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "200": { + "description": "Operation details", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/OperationDetails" } } } }, - "503": { - "description": "Remote service exception", + "404": { + "description": "Not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } } } }, - "/api/v1/deployments/jobs/{awx_job_id}/log": { + "/api/v1/deployments/operations/job/{awx_job_id}": { "get": { "tags": ["Deployments"], - "summary": "Get deployment job log", - "operationId": "fetchDeploymentJobLog", + "summary": "Get AWX job details", + "operationId": "fetchJobDetails", "parameters": [ { "name": "awx_job_id", "in": "path", "description": "Unique ID of AWX job", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "200": { - "description": "AWX job log", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/AwxJobLog" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "500": { + "description": "Service exception", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "200": { + "description": "AWX job details", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AwxJobDetails" } } } }, @@ -2804,19 +2594,49 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, "404": { - "description": "Deployment not found", + "description": "AWX job not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + } + } + } + }, + "/api/v1/deployments/jobs/{awx_job_id}/log": { + "get": { + "tags": ["Deployments"], + "summary": "Get job log from AWX", + "operationId": "fetchDeploymentJobLog", + "parameters": [ + { + "name": "awx_job_id", + "in": "path", + "description": "Unique ID of AWX job", + "required": true, + "schema": { "type": "integer", "format": "int64" } + } + ], + "responses": { + "200": { + "description": "AWX job log", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AwxJobLog" } + } + } + }, + "503": { + "description": "Remote service exception", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -2824,28 +2644,28 @@ "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } + } + } + }, + "404": { + "description": "Deployment not found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/deployments/commands": { @@ -2859,89 +2679,69 @@ "in": "query", "description": "Unique ID of IOC", "required": false, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } }, { "name": "deployment_id", "in": "query", "description": "Unique ID of deployment", "required": false, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } }, { "name": "page", "in": "query", "description": "Page offset", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } }, { "name": "limit", "in": "query", "description": "Page size", "required": false, - "schema": { - "type": "integer", - "format": "int32" - } + "schema": { "type": "integer", "format": "int32" } } ], "responses": { - "200": { - "description": "A command with details", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedCommandResponse" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "Deployment not found", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "404": { + "description": "Deployment not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "200": { + "description": "A command with details", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GeneralException" + "$ref": "#/components/schemas/PagedCommandResponse" } } } @@ -2960,60 +2760,47 @@ "in": "path", "description": "Unique ID of command", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "200": { - "description": "A command descriptor", + "404": { + "description": "Ad-hoc command not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/AdHocCommand" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "Ad-hoc command not found", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "200": { + "description": "A command descriptor", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/AdHocCommand" } } } } @@ -3031,40 +2818,15 @@ "in": "path", "description": "Unique ID of the IOC", "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + "schema": { "type": "integer", "format": "int64" } } ], "responses": { - "200": { - "description": "Ongoing command (if exists)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AdHocCommand" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } - } - } - }, - "404": { - "description": "IOC not found", + "503": { + "description": "Remote service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -3072,50 +2834,7 @@ "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } - } - } - }, - "503": { - "description": "Remote service exception", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } - } - } - } - } - } - }, - "/api/v1/deployments/commands/jobs/{awx_command_id}": { - "get": { - "tags": ["Deployments"], - "summary": "Get ad-hoc command details", - "operationId": "fetchCommandDetails", - "parameters": [ - { - "name": "awx_command_id", - "in": "path", - "description": "Unique ID of AWX command", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "200": { - "description": "A command with details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AwxCommandDetails" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -3123,39 +2842,23 @@ "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, "404": { - "description": "AWX command not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } - } - } - }, - "500": { - "description": "Service exception", + "description": "IOC not found", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Remote service exception", + "200": { + "description": "Ongoing command (if exists)", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/AdHocCommand" } } } } @@ -3168,23 +2871,19 @@ "summary": "Get announcements", "operationId": "fetchAnnouncements", "responses": { - "200": { - "description": "Announcements text", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/Announcements" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "200": { + "description": "Announcements text", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/Announcements" } } } } @@ -3203,42 +2902,31 @@ "in": "query", "description": "User name query", "required": false, - "schema": { - "type": "string" - } + "schema": { "type": "string" } } ], "responses": { - "200": { - "description": "Ok", + "404": { + "description": "Role not found by authorization service", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "503": { + "description": "Login server unavailable", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "404": { - "description": "Role not found by authorization service", + "200": { + "description": "Ok", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "type": "array", "items": { "type": "string" } } } } }, @@ -3246,28 +2934,20 @@ "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Login server unavailable", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/authentication/roles": { @@ -3277,65 +2957,48 @@ "description": "Get user roles from authorization service", "operationId": "getUserRoles", "responses": { - "200": { - "description": "Ok", + "503": { + "description": "Login server unavailable", "content": { "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "401": { - "description": "Unauthorized", + "200": { + "description": "Ok", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "type": "array", "items": { "type": "string" } } } } }, - "403": { - "description": "Permission denied", + "500": { + "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "500": { - "description": "Service exception", + "401": { + "description": "Unauthorized", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, - "503": { - "description": "Login server unavailable", + "403": { + "description": "Permission denied", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } }, "/api/v1/authentication/logout": { @@ -3345,23 +3008,11 @@ "description": "Logging out the user", "operationId": "logout", "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, "500": { "description": "Service exception", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } }, @@ -3369,18 +3020,18 @@ "description": "Login server unavailable or remote error", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/GeneralException" - } + "schema": { "$ref": "#/components/schemas/GeneralException" } } } + }, + "200": { + "description": "Ok", + "content": { + "application/json": { "schema": { "type": "object" } } + } } }, - "security": [ - { - "bearerAuth": [] - } - ] + "security": [{ "bearerAuth": [] }] } } }, @@ -3389,440 +3040,319 @@ "GeneralException": { "type": "object", "properties": { - "error": { - "type": "string" - }, - "description": { - "type": "string" - } + "error": { "type": "string" }, + "description": { "type": "string" } } }, "Deployment": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "createdBy": { - "type": "string" - }, - "startDate": { - "type": "string", - "format": "date-time" - }, - "undeployment": { - "type": "boolean" - }, - "namingName": { - "type": "string" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - }, - "sourceVersion": { - "type": "string" - }, - "endDate": { - "type": "string", - "format": "date-time" - }, - "comment": { - "type": "string" - }, - "iocName": { - "type": "string" - }, - "host": { - "$ref": "#/components/schemas/Host" - }, + "id": { "type": "integer", "format": "int64" }, + "createdBy": { "type": "string" }, + "startDate": { "type": "string", "format": "date-time" }, + "createdAt": { "type": "string", "format": "date-time" }, + "undeployment": { "type": "boolean" }, + "namingName": { "type": "string" }, + "gitProjectId": { "type": "integer", "format": "int64" }, + "sourceVersion": { "type": "string" }, + "endDate": { "type": "string", "format": "date-time" }, + "comment": { "type": "string" }, + "iocName": { "type": "string" }, + "host": { "$ref": "#/components/schemas/Host" }, "status": { "type": "string", "enum": ["PENDING", "JOB", "QUEUED", "ERROR"] }, - "awxJobId": { - "type": "integer", - "format": "int64" - }, - "sourceUrl": { - "type": "string" - }, - "sourceVersionShort": { - "type": "string" - }, + "awxJobId": { "type": "integer", "format": "int64" }, + "sourceUrl": { "type": "string" }, + "sourceVersionShort": { "type": "string" }, "jobStatus": { "type": "string", "enum": [ + "UNKNOWN", + "new", "pending", "waiting", "running", "failed", "canceled", + "error", "successful" ] - }, - "iocOwner": { - "type": "string" } } }, "Host": { "type": "object", "properties": { - "csEntryId": { - "type": "integer", - "format": "int64" - }, - "csEntryIdValid": { - "type": "boolean" - }, - "fqdn": { - "type": "string" - }, - "hostName": { - "type": "string" - }, - "network": { - "type": "string" - } + "csEntryId": { "type": "integer", "format": "int64" }, + "csEntryIdValid": { "type": "boolean" }, + "fqdn": { "type": "string" }, + "hostName": { "type": "string" }, + "network": { "type": "string" } } }, - "CreateIoc": { + "UpdateHostRequest": { "type": "object", "properties": { - "externalNameId": { - "type": "integer", - "format": "int64" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - } + "hostCSEntryId": { "type": "integer", "format": "int64" }, + "comment": { "type": "string" } }, - "description": "IOC to create" + "description": "IOC to update" }, "Alert": { "type": "object", "properties": { - "type": { - "type": "string", - "enum": ["ERROR", "WARNING", "INFO"] - }, - "message": { - "type": "string" - }, - "link": { - "type": "string" - } + "type": { "type": "string", "enum": ["ERROR", "WARNING", "INFO"] }, + "message": { "type": "string" }, + "link": { "type": "string" } } }, "Ioc": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "description": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "namingName": { - "type": "string" - }, - "externalNameId": { - "type": "integer", - "format": "int64" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - }, - "sourceUrl": { - "type": "string" - }, - "activeDeployment": { - "$ref": "#/components/schemas/Deployment" - }, + "id": { "type": "integer", "format": "int64" }, + "description": { "type": "string" }, + "owner": { "type": "string" }, + "namingName": { "type": "string" }, + "externalNameId": { "type": "integer", "format": "int64" }, + "gitProjectId": { "type": "integer", "format": "int64" }, + "sourceUrl": { "type": "string" }, + "activeDeployment": { "$ref": "#/components/schemas/Deployment" }, "alerts": { "type": "array", - "items": { - "$ref": "#/components/schemas/Alert" - } + "items": { "$ref": "#/components/schemas/Alert" } }, - "active": { - "type": "boolean" - } + "active": { "type": "boolean" } } }, - "Undeployment": { + "CreateIoc": { "type": "object", "properties": { - "comment": { - "type": "string" - } + "externalNameId": { "type": "integer", "format": "int64" }, + "gitProjectId": { "type": "integer", "format": "int64" } }, + "description": "IOC to create" + }, + "Undeployment": { + "type": "object", + "properties": { "comment": { "type": "string" } }, "description": "Undeployment parameters" }, "AdHocCommand": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, + "id": { "type": "integer", "format": "int64" }, "type": { "type": "string", - "enum": ["START", "STOP"] - }, - "createdBy": { - "type": "string" - }, - "startDate": { - "type": "string", - "format": "date-time" - }, - "endDate": { - "type": "string", - "format": "date-time" + "enum": ["DEPLOY", "UNDEPLOY", "START", "STOP"] }, + "createdBy": { "type": "string" }, + "startDate": { "type": "string", "format": "date-time" }, + "endDate": { "type": "string", "format": "date-time" }, "status": { "type": "string", "enum": [ + "UNKNOWN", + "new", "pending", "waiting", "running", "failed", "canceled", + "error", "successful" ] }, - "iocName": { - "type": "string" - }, - "awxCommandId": { - "type": "integer", - "format": "int64" - } + "iocName": { "type": "string" }, + "awxCommandId": { "type": "integer", "format": "int64" } } }, "UpdateAndDeployIoc": { "type": "object", "properties": { - "comment": { - "type": "string" - }, - "sourceVersion": { - "type": "string" - }, - "hostCSEntryId": { - "type": "integer", - "format": "int64" - } + "comment": { "type": "string" }, + "sourceVersion": { "type": "string" }, + "hostCSEntryId": { "type": "integer", "format": "int64" } }, "description": "IOC to update" }, - "LoginResponse": { + "AwxJobMeta": { "type": "object", "properties": { - "token": { - "type": "string" + "id": { "type": "integer", "format": "int64" }, + "started": { "type": "string", "format": "date-time" }, + "finished": { "type": "string", "format": "date-time" }, + "status": { + "type": "string", + "enum": [ + "UNKNOWN", + "new", + "pending", + "waiting", + "running", + "failed", + "canceled", + "error", + "successful" + ] } - } + }, + "description": "Job to update" + }, + "LoginResponse": { + "type": "object", + "properties": { "token": { "type": "string" } } }, "Login": { "type": "object", "properties": { - "userName": { - "type": "string" - }, - "password": { - "type": "string" - } + "userName": { "type": "string" }, + "password": { "type": "string" } } }, "IOCUpdateRequest": { "type": "object", "properties": { - "owner": { - "type": "string" - }, - "externalNameId": { - "type": "integer", - "format": "int64" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - } + "owner": { "type": "string" }, + "externalNameId": { "type": "integer", "format": "int64" }, + "gitProjectId": { "type": "integer", "format": "int64" } } }, "PersonalStatisticsResponse": { "type": "object", "properties": { - "numberOfActiveIocs": { - "type": "integer", - "format": "int64" - } + "numberOfActiveIocs": { "type": "integer", "format": "int64" } } }, "DbStatistics": { "type": "object", "properties": { - "numberOfCreatedIocs": { - "type": "integer", - "format": "int64" - }, - "numberOfActiveDeployments": { - "type": "integer", - "format": "int64" - }, + "numberOfCreatedIocs": { "type": "integer", "format": "int64" }, + "numberOfActiveDeployments": { "type": "integer", "format": "int64" }, "numberOfIocHostsWithIocsDeployed": { "type": "integer", "format": "int64" }, - "numberOfDeployments": { - "type": "integer", - "format": "int64" - } + "numberOfDeployments": { "type": "integer", "format": "int64" } } }, "GeneralStatisticsResponse": { "type": "object", "properties": { - "dbStatistics": { - "$ref": "#/components/schemas/DbStatistics" - }, + "dbStatistics": { "$ref": "#/components/schemas/DbStatistics" }, "networkMonitoring": { "$ref": "#/components/schemas/NetworkMonitoring" }, "networkScopesIocCount": { "type": "object", - "additionalProperties": { - "type": "integer", - "format": "int32" - } + "additionalProperties": { "type": "integer", "format": "int32" } } } }, "NetworkMonitoring": { "type": "object", "properties": { - "numberOfActiveIocs": { - "type": "integer", - "format": "int64" - }, - "numberOfActiveHosts": { - "type": "integer", - "format": "int64" - }, + "numberOfActiveIocs": { "type": "integer", "format": "int64" }, + "numberOfActiveHosts": { "type": "integer", "format": "int64" }, "numberOfIocHostsOnTechnicalNetwork": { "type": "integer", "format": "int64" }, - "numberOfHostsWithIssue": { - "type": "integer", - "format": "int64" - } + "numberOfHostsWithIssue": { "type": "integer", "format": "int64" } } }, "DeploymentCount": { "type": "object", "properties": { - "iocCount": { - "type": "integer", - "format": "int64" - }, - "countingDate": { - "type": "string", - "format": "date-time" - } + "iocCount": { "type": "integer", "format": "int64" }, + "countingDate": { "type": "string", "format": "date-time" } } }, "DeploymentOnHost": { "type": "object", "properties": { - "network": { - "type": "string" - }, + "network": { "type": "string" }, "deployments": { "type": "array", - "items": { - "$ref": "#/components/schemas/DeploymentCount" - } + "items": { "$ref": "#/components/schemas/DeploymentCount" } } } }, "DeploymentStatisticsResponse": { "type": "object", "properties": { - "deploymentDate": { - "type": "string", - "format": "date-time" - }, - "numberOfDeployments": { - "type": "integer", - "format": "int64" - }, - "successfulDeployments": { - "type": "integer", - "format": "int64" - } + "deploymentDate": { "type": "string", "format": "date-time" }, + "numberOfDeployments": { "type": "integer", "format": "int64" }, + "successfulDeployments": { "type": "integer", "format": "int64" } } }, "ActiveIOCSForHistoryResponse": { "type": "object", "properties": { - "iocCount": { - "type": "integer", - "format": "int64" - }, - "historyDate": { - "type": "string", - "format": "date-time" - } + "iocCount": { "type": "integer", "format": "int64" }, + "historyDate": { "type": "string", "format": "date-time" } } }, "ActiveIocStatisticsResponse": { "type": "object", "properties": { - "network": { - "type": "string" - }, - "iocCount": { - "type": "integer", - "format": "int64" + "network": { "type": "string" }, + "iocCount": { "type": "integer", "format": "int64" } + } + }, + "PagedRecordResponse": { + "type": "object", + "properties": { + "totalCount": { "type": "integer", "format": "int64" }, + "listSize": { "type": "integer", "format": "int32" }, + "pageNumber": { "type": "integer", "format": "int32" }, + "limit": { "type": "integer", "format": "int32" }, + "recordList": { + "type": "array", + "items": { "$ref": "#/components/schemas/Record" } } } }, - "NameResponse": { + "Record": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" + "name": { "type": "string" }, + "iocName": { "type": "string" }, + "hostName": { "type": "string" }, + "pvStatus": { "type": "string", "enum": ["ACTIVE", "INACTIVE"] }, + "iocVersion": { "type": "string" } + } + }, + "RecordDetails": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "iocName": { "type": "string" }, + "hostName": { "type": "string" }, + "pvStatus": { "type": "string", "enum": ["ACTIVE", "INACTIVE"] }, + "iocVersion": { "type": "string" }, + "iocId": { "type": "integer", "format": "int64" }, + "hostCSentryId": { "type": "integer", "format": "int64" }, + "properties": { + "type": "object", + "additionalProperties": { "type": "string" } } } }, + "NameResponse": { + "type": "object", + "properties": { + "id": { "type": "integer", "format": "int64" }, + "name": { "type": "string" }, + "description": { "type": "string" } + } + }, "LokiMessage": { "type": "object", "properties": { - "logDate": { - "type": "string", - "format": "date-time" - }, - "logMessage": { - "type": "string" - } + "logDate": { "type": "string", "format": "date-time" }, + "logMessage": { "type": "string" } } }, "LokiResponse": { @@ -3830,83 +3360,49 @@ "properties": { "lines": { "type": "array", - "items": { - "$ref": "#/components/schemas/LokiMessage" - } + "items": { "$ref": "#/components/schemas/LokiMessage" } } } }, "IocStatusResponse": { "type": "object", "properties": { - "iocId": { - "type": "integer", - "format": "int64" - }, + "iocId": { "type": "integer", "format": "int64" }, "alertSeverity": { "type": "string", "enum": ["ERROR", "WARNING", "INFO"] }, "alerts": { "type": "array", - "items": { - "$ref": "#/components/schemas/Alert" - } + "items": { "$ref": "#/components/schemas/Alert" } }, - "active": { - "type": "boolean" - } + "active": { "type": "boolean" } } }, "ActiveDeployment": { "type": "object", "properties": { - "host": { - "$ref": "#/components/schemas/DeploymentHostInfo" - }, - "sourceVersion": { - "type": "string" - }, - "sourceVersionShort": { - "type": "string" - } + "host": { "$ref": "#/components/schemas/DeploymentHostInfo" }, + "sourceVersion": { "type": "string" }, + "sourceVersionShort": { "type": "string" } } }, "DeploymentHostInfo": { "type": "object", "properties": { - "externalHostId": { - "type": "integer", - "format": "int64" - }, - "hostName": { - "type": "string" - }, - "network": { - "type": "string" - }, - "hostInfoFromCache": { - "type": "boolean" - } + "externalHostId": { "type": "integer", "format": "int64" }, + "hostName": { "type": "string" }, + "network": { "type": "string" }, + "hostInfoFromCache": { "type": "boolean" } } }, "IocInfo": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "namingName": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - }, + "id": { "type": "integer", "format": "int64" }, + "namingName": { "type": "string" }, + "owner": { "type": "string" }, + "gitProjectId": { "type": "integer", "format": "int64" }, "activeDeployment": { "$ref": "#/components/schemas/ActiveDeployment" } @@ -3915,434 +3411,210 @@ "PagedIocResponse": { "type": "object", "properties": { - "totalCount": { - "type": "integer", - "format": "int64" - }, - "listSize": { - "type": "integer", - "format": "int32" - }, - "pageNumber": { - "type": "integer", - "format": "int32" - }, - "limit": { - "type": "integer", - "format": "int32" - }, + "totalCount": { "type": "integer", "format": "int64" }, + "listSize": { "type": "integer", "format": "int32" }, + "pageNumber": { "type": "integer", "format": "int32" }, + "limit": { "type": "integer", "format": "int32" }, "iocList": { "type": "array", - "items": { - "$ref": "#/components/schemas/IocInfo" - } + "items": { "$ref": "#/components/schemas/IocInfo" } } } }, "IocDetails": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "description": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "namingName": { - "type": "string" - }, - "externalNameId": { - "type": "integer", - "format": "int64" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - }, - "sourceUrl": { - "type": "string" - }, - "activeDeployment": { - "$ref": "#/components/schemas/Deployment" - }, + "id": { "type": "integer", "format": "int64" }, + "description": { "type": "string" }, + "owner": { "type": "string" }, + "namingName": { "type": "string" }, + "externalNameId": { "type": "integer", "format": "int64" }, + "gitProjectId": { "type": "integer", "format": "int64" }, + "sourceUrl": { "type": "string" }, + "activeDeployment": { "$ref": "#/components/schemas/Deployment" }, "alerts": { "type": "array", - "items": { - "$ref": "#/components/schemas/Alert" - } - }, - "operationInProgress": { - "type": "boolean" + "items": { "$ref": "#/components/schemas/Alert" } }, - "active": { - "type": "boolean" - } + "operationInProgress": { "type": "boolean" }, + "active": { "type": "boolean" } } }, "IocWithAlarm": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "description": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "namingName": { - "type": "string" - }, - "externalNameId": { - "type": "integer", - "format": "int64" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - }, - "sourceUrl": { - "type": "string" - }, - "activeDeployment": { - "$ref": "#/components/schemas/Deployment" - }, + "id": { "type": "integer", "format": "int64" }, + "description": { "type": "string" }, + "owner": { "type": "string" }, + "namingName": { "type": "string" }, + "externalNameId": { "type": "integer", "format": "int64" }, + "gitProjectId": { "type": "integer", "format": "int64" }, + "sourceUrl": { "type": "string" }, + "activeDeployment": { "$ref": "#/components/schemas/Deployment" }, "alerts": { "type": "array", - "items": { - "$ref": "#/components/schemas/Alert" - } - }, - "alert": { - "type": "string", - "enum": ["ERROR", "WARNING", "INFO"] + "items": { "$ref": "#/components/schemas/Alert" } }, - "active": { - "type": "boolean" - } + "alert": { "type": "string", "enum": ["ERROR", "WARNING", "INFO"] }, + "active": { "type": "boolean" } } }, "HostInfo": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "fqdn": { - "type": "string" - }, - "name": { - "type": "string" - }, - "scope": { - "type": "string" - }, - "description": { - "type": "string" - }, - "network": { - "type": "string" - }, - "deviceType": { - "type": "string" - } + "id": { "type": "integer", "format": "int64" }, + "fqdn": { "type": "string" }, + "name": { "type": "string" }, + "scope": { "type": "string" }, + "description": { "type": "string" }, + "network": { "type": "string" }, + "deviceType": { "type": "string" } } }, "HostInfoWithStatus": { "type": "object", "properties": { - "csEntryHost": { - "$ref": "#/components/schemas/HostInfo" - }, - "status": { - "type": "string", - "enum": ["AVAILABLE", "UNREACHABLE"] - }, - "alert": { - "type": "string", - "enum": ["ERROR", "WARNING", "INFO"] - }, - "iocDeployed": { - "type": "boolean" - } + "csEntryHost": { "$ref": "#/components/schemas/HostInfo" }, + "status": { "type": "string", "enum": ["AVAILABLE", "UNREACHABLE"] }, + "alert": { "type": "string", "enum": ["ERROR", "WARNING", "INFO"] }, + "iocDeployed": { "type": "boolean" } } }, "PagedCSEntryHostResponse": { "type": "object", "properties": { - "totalCount": { - "type": "integer", - "format": "int64" - }, - "listSize": { - "type": "integer", - "format": "int32" - }, - "pageNumber": { - "type": "integer", - "format": "int32" - }, - "limit": { - "type": "integer", - "format": "int32" - }, + "totalCount": { "type": "integer", "format": "int64" }, + "listSize": { "type": "integer", "format": "int32" }, + "pageNumber": { "type": "integer", "format": "int32" }, + "limit": { "type": "integer", "format": "int32" }, "csEntryHosts": { "type": "array", - "items": { - "$ref": "#/components/schemas/HostInfoWithStatus" - } + "items": { "$ref": "#/components/schemas/HostInfoWithStatus" } } } }, "CSEntryHost": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "fqdn": { - "type": "string" - }, - "name": { - "type": "string" - }, - "scope": { - "type": "string" - }, - "description": { - "type": "string" - }, - "user": { - "type": "string" - }, + "id": { "type": "integer", "format": "int64" }, + "fqdn": { "type": "string" }, + "name": { "type": "string" }, + "scope": { "type": "string" }, + "description": { "type": "string" }, + "user": { "type": "string" }, "interfaces": { "type": "array", - "items": { - "$ref": "#/components/schemas/CSEntryInterface" - } - }, - "is_ioc": { - "type": "boolean" - }, - "device_type": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" + "items": { "$ref": "#/components/schemas/CSEntryInterface" } }, + "is_ioc": { "type": "boolean" }, + "device_type": { "type": "string" }, + "created_at": { "type": "string", "format": "date-time" }, "ansible_vars": { "type": "object", - "additionalProperties": { - "type": "object" - } + "additionalProperties": { "type": "object" } }, - "ansible_groups": { - "type": "array", - "items": { - "type": "string" - } - } + "ansible_groups": { "type": "array", "items": { "type": "string" } } } }, "CSEntryHostWithStatus": { "type": "object", "properties": { - "csEntryHost": { - "$ref": "#/components/schemas/CSEntryHost" - }, - "assigned": { - "type": "boolean" - }, - "status": { - "type": "string", - "enum": ["AVAILABLE", "UNREACHABLE"] - }, + "csEntryHost": { "$ref": "#/components/schemas/CSEntryHost" }, + "assigned": { "type": "boolean" }, + "status": { "type": "string", "enum": ["AVAILABLE", "UNREACHABLE"] }, "alerts": { "type": "array", - "items": { - "$ref": "#/components/schemas/Alert" - } + "items": { "$ref": "#/components/schemas/Alert" } } } }, "CSEntryInterface": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "name": { - "type": "string" - }, - "network": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "ip": { - "type": "string" - }, - "mac": { - "type": "string" - }, - "host": { - "type": "string" - }, - "cnames": { - "type": "array", - "items": { - "type": "string" - } - }, - "is_main": { - "type": "boolean" - } + "id": { "type": "integer", "format": "int64" }, + "name": { "type": "string" }, + "network": { "type": "string" }, + "domain": { "type": "string" }, + "ip": { "type": "string" }, + "mac": { "type": "string" }, + "host": { "type": "string" }, + "cnames": { "type": "array", "items": { "type": "string" } }, + "is_main": { "type": "boolean" } } }, "PagedAssociatedIocs": { "type": "object", "properties": { - "totalCount": { - "type": "integer", - "format": "int64" - }, - "listSize": { - "type": "integer", - "format": "int32" - }, - "pageNumber": { - "type": "integer", - "format": "int32" - }, - "limit": { - "type": "integer", - "format": "int32" - }, + "totalCount": { "type": "integer", "format": "int64" }, + "listSize": { "type": "integer", "format": "int32" }, + "pageNumber": { "type": "integer", "format": "int32" }, + "limit": { "type": "integer", "format": "int32" }, "deployedIocs": { "type": "array", - "items": { - "$ref": "#/components/schemas/IocInfo" - } + "items": { "$ref": "#/components/schemas/IocInfo" } } } }, "TargetHost": { "type": "object", "properties": { - "externalId": { - "type": "integer", - "format": "int64" - }, - "fqdn": { - "type": "string" - }, - "hostName": { - "type": "string" - }, - "network": { - "type": "string" - } + "externalId": { "type": "integer", "format": "int64" }, + "fqdn": { "type": "string" }, + "hostName": { "type": "string" }, + "network": { "type": "string" } } }, + "IdUsedByIoc": { + "type": "object", + "properties": { "iocId": { "type": "integer", "format": "int64" } } + }, "GitReference": { "type": "object", "properties": { - "reference": { - "type": "string" - }, - "shortReference": { - "type": "string" - }, - "description": { - "type": "string" - }, - "commitDate": { - "type": "string", - "format": "date-time" - } + "reference": { "type": "string" }, + "shortReference": { "type": "string" }, + "description": { "type": "string" }, + "commitDate": { "type": "string", "format": "date-time" } } }, "UserInfoResponse": { "type": "object", "properties": { - "fullName": { - "type": "string" - }, - "loginName": { - "type": "string" - }, - "avatar": { - "type": "string" - }, - "email": { - "type": "string" - }, - "gitlabUserName": { - "type": "string" - } + "fullName": { "type": "string" }, + "loginName": { "type": "string" }, + "avatar": { "type": "string" }, + "email": { "type": "string" }, + "gitlabUserName": { "type": "string" } } }, "GitProject": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "url": { - "type": "string" - } + "id": { "type": "integer", "format": "int64" }, + "url": { "type": "string" } } }, "Operation": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "createdBy": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, + "id": { "type": "integer", "format": "int64" }, + "createdBy": { "type": "string" }, + "startTime": { "type": "string", "format": "date-time" }, + "createdAt": { "type": "string", "format": "date-time" }, "type": { "type": "string", "enum": ["DEPLOY", "UNDEPLOY", "START", "STOP"] }, - "iocName": { - "type": "string" - }, - "iocId": { - "type": "integer", - "format": "int64" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - }, - "gitReference": { - "type": "string" - }, - "host": { - "$ref": "#/components/schemas/DeploymentHostInfo" - }, + "iocName": { "type": "string" }, + "iocId": { "type": "integer", "format": "int64" }, + "deploymentId": { "type": "integer", "format": "int64" }, + "gitProjectId": { "type": "integer", "format": "int64" }, + "gitReference": { "type": "string" }, + "host": { "$ref": "#/components/schemas/DeploymentHostInfo" }, "status": { "type": "string", "enum": [ + "UNKNOWN", "PENDING", "QUEUED", "ERROR", @@ -4358,279 +3630,126 @@ "PagedOperationResponse": { "type": "object", "properties": { - "totalCount": { - "type": "integer", - "format": "int64" - }, - "listSize": { - "type": "integer", - "format": "int32" - }, - "pageNumber": { - "type": "integer", - "format": "int32" - }, - "limit": { - "type": "integer", - "format": "int32" - }, + "totalCount": { "type": "integer", "format": "int64" }, + "listSize": { "type": "integer", "format": "int32" }, + "pageNumber": { "type": "integer", "format": "int32" }, + "limit": { "type": "integer", "format": "int32" }, "operations": { "type": "array", - "items": { - "$ref": "#/components/schemas/Operation" - } + "items": { "$ref": "#/components/schemas/Operation" } } } }, "DeploymentInfoDetails": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "createdBy": { - "type": "string" - }, - "startDate": { - "type": "string", - "format": "date-time" - }, - "undeployment": { - "type": "boolean" - }, - "namingName": { - "type": "string" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - }, - "sourceVersion": { - "type": "string" - }, - "endDate": { - "type": "string", - "format": "date-time" - }, - "comment": { - "type": "string" - }, - "host": { - "$ref": "#/components/schemas/HostWithFqdn" - }, + "id": { "type": "integer", "format": "int64" }, + "createdBy": { "type": "string" }, + "startDate": { "type": "string", "format": "date-time" }, + "createdAt": { "type": "string", "format": "date-time" }, + "undeployment": { "type": "boolean" }, + "namingName": { "type": "string" }, + "gitProjectId": { "type": "integer", "format": "int64" }, + "sourceVersion": { "type": "string" }, + "endDate": { "type": "string", "format": "date-time" }, + "comment": { "type": "string" }, + "host": { "$ref": "#/components/schemas/HostWithFqdn" }, "status": { "type": "string", "enum": ["PENDING", "JOB", "QUEUED", "ERROR"] }, - "awxJobId": { - "type": "integer", - "format": "int64" - }, - "iocId": { - "type": "integer", - "format": "int64" - }, - "awxJobUrl": { - "type": "string" - }, - "sourceUrl": { - "type": "string" - }, - "sourceVersionShort": { - "type": "string" - }, + "awxJobId": { "type": "integer", "format": "int64" }, + "iocId": { "type": "integer", "format": "int64" }, + "awxJobUrl": { "type": "string" }, + "sourceUrl": { "type": "string" }, + "sourceVersionShort": { "type": "string" }, "alerts": { "type": "array", - "items": { - "$ref": "#/components/schemas/Alert" - } + "items": { "$ref": "#/components/schemas/Alert" } } } }, "HostWithFqdn": { "type": "object", "properties": { - "csEntryId": { - "type": "integer", - "format": "int64" - }, - "csEntryIdValid": { - "type": "boolean" + "csEntryId": { "type": "integer", "format": "int64" }, + "csEntryIdValid": { "type": "boolean" }, + "fqdn": { "type": "string" } + } + }, + "OperationDetails": { + "type": "object", + "properties": { + "id": { "type": "integer", "format": "int64" }, + "createdBy": { "type": "string" }, + "startTime": { "type": "string", "format": "date-time" }, + "createdAt": { "type": "string", "format": "date-time" }, + "type": { + "type": "string", + "enum": ["DEPLOY", "UNDEPLOY", "START", "STOP"] }, - "fqdn": { - "type": "string" - } + "iocName": { "type": "string" }, + "iocId": { "type": "integer", "format": "int64" }, + "deploymentId": { "type": "integer", "format": "int64" }, + "gitProjectId": { "type": "integer", "format": "int64" }, + "gitReference": { "type": "string" }, + "gitProjectUrl": { "type": "string" }, + "gitShortReference": { "type": "string" }, + "host": { "$ref": "#/components/schemas/HostWithFqdn" }, + "awxJobId": { "type": "integer", "format": "int64" }, + "awxJobUrl": { "type": "string" } } }, "AwxJobDetails": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" - }, + "id": { "type": "integer", "format": "int64" }, "status": { "type": "string", "enum": [ + "UNKNOWN", + "new", "pending", "waiting", "running", "failed", "canceled", + "error", "successful" ] }, - "started": { - "type": "string", - "format": "date-time" - }, - "finished": { - "type": "string", - "format": "date-time" - } + "started": { "type": "string", "format": "date-time" }, + "finished": { "type": "string", "format": "date-time" } } }, "AwxJobLog": { "type": "object", "properties": { - "awxJobId": { - "type": "integer", - "format": "int64" - }, - "stdoutHtml": { - "type": "string" - }, - "elapsed": { - "type": "number", - "format": "double" - } - } - }, - "Command": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "createdBy": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "type": { - "type": "string", - "enum": ["DEPLOY", "UNDEPLOY", "START", "STOP"] - }, - "iocName": { - "type": "string" - }, - "iocId": { - "type": "integer", - "format": "int64" - }, - "gitProjectId": { - "type": "integer", - "format": "int64" - }, - "gitReference": { - "type": "string" - }, - "host": { - "$ref": "#/components/schemas/DeploymentHostInfo" - }, - "status": { - "type": "string", - "enum": [ - "PENDING", - "QUEUED", - "ERROR", - "WAITING", - "RUNNING", - "FAILED", - "CANCELED", - "SUCCESSFUL" - ] - }, - "deploymentId": { - "type": "integer", - "format": "int64" - } + "awxJobId": { "type": "integer", "format": "int64" }, + "stdoutHtml": { "type": "string" }, + "elapsed": { "type": "number", "format": "double" } } }, "PagedCommandResponse": { "type": "object", "properties": { - "totalCount": { - "type": "integer", - "format": "int64" - }, - "listSize": { - "type": "integer", - "format": "int32" - }, - "pageNumber": { - "type": "integer", - "format": "int32" - }, - "limit": { - "type": "integer", - "format": "int32" - }, + "totalCount": { "type": "integer", "format": "int64" }, + "listSize": { "type": "integer", "format": "int32" }, + "pageNumber": { "type": "integer", "format": "int32" }, + "limit": { "type": "integer", "format": "int32" }, "commands": { "type": "array", - "items": { - "$ref": "#/components/schemas/Command" - } - } - } - }, - "AwxCommandDetails": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "waiting", - "running", - "failed", - "canceled", - "successful" - ] - }, - "started": { - "type": "string", - "format": "date-time" - }, - "finished": { - "type": "string", - "format": "date-time" + "items": { "$ref": "#/components/schemas/Operation" } } } }, "Announcements": { "type": "object", - "properties": { - "announcementsText": { - "type": "string" - } - } + "properties": { "announcementsText": { "type": "string" } } } }, "securitySchemes": { - "apiKey": { - "type": "apiKey", - "name": "CCCE-TOKEN", - "in": "header" - }, + "apiKey": { "type": "apiKey", "name": "CCCE-TOKEN", "in": "header" }, "bearerAuth": { "type": "http", "scheme": "bearer", diff --git a/src/mocks/mockAPI.js b/src/mocks/mockAPI.js index 51ca9eac..47b8c67f 100644 --- a/src/mocks/mockAPI.js +++ b/src/mocks/mockAPI.js @@ -104,7 +104,7 @@ function getDeployment(req) { } function getDeploymentJob(req) { - const params = getParameters(req, "/deployments/jobs/:id"); + const params = getParameters(req, "/deployments/operations/job/:id"); const data = require("./fixtures/AwxJobDetails.json"); const body = data.find((x) => x.id === Number(params.id)); const status = body ? 200 : 404; @@ -250,7 +250,7 @@ export const apiHandlers = [ ), makeHandler( "GET", - qRegExp(".*/deployments/jobs/[0-9]+"), + qRegExp(".*/deployments/operations/job/[0-9]+"), mockAPI.deployments.getDeploymentJob ), makeHandler( -- GitLab