Skip to content

Commit 5cb2678

Browse files
authored
feat: import (#308)
* feat: import Signed-off-by: Gustavo Carvalho <gustavo.carvalho@container-solutions.com> * fix: lint and swag Signed-off-by: Gustavo Carvalho <gustavo.carvalho@container-solutions.com> --------- Signed-off-by: Gustavo Carvalho <gustavo.carvalho@container-solutions.com>
1 parent 7487807 commit 5cb2678

7 files changed

Lines changed: 954 additions & 0 deletions

File tree

docs/docs.go

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,6 +1113,50 @@ const docTemplate = `{
11131113
}
11141114
}
11151115
},
1116+
"/filters/import": {
1117+
"post": {
1118+
"description": "Import multiple dashboard filter JSON files",
1119+
"consumes": [
1120+
"multipart/form-data"
1121+
],
1122+
"produces": [
1123+
"application/json"
1124+
],
1125+
"tags": [
1126+
"Filters"
1127+
],
1128+
"summary": "Import dashboard filters",
1129+
"parameters": [
1130+
{
1131+
"type": "file",
1132+
"description": "Dashboard filter JSON files to import",
1133+
"name": "files",
1134+
"in": "formData",
1135+
"required": true
1136+
}
1137+
],
1138+
"responses": {
1139+
"200": {
1140+
"description": "OK",
1141+
"schema": {
1142+
"$ref": "#/definitions/handler.GenericDataResponse-handler_FilterImportResponse"
1143+
}
1144+
},
1145+
"400": {
1146+
"description": "Bad Request",
1147+
"schema": {
1148+
"$ref": "#/definitions/api.Error"
1149+
}
1150+
},
1151+
"500": {
1152+
"description": "Internal Server Error",
1153+
"schema": {
1154+
"$ref": "#/definitions/api.Error"
1155+
}
1156+
}
1157+
}
1158+
}
1159+
},
11161160
"/filters/{id}": {
11171161
"get": {
11181162
"description": "Retrieves a single filter by its unique ID.",
@@ -9069,6 +9113,50 @@ const docTemplate = `{
90699113
]
90709114
}
90719115
},
9116+
"/oscal/import": {
9117+
"post": {
9118+
"description": "Import multiple OSCAL JSON files (catalogs, profiles, SSPs, etc.)",
9119+
"consumes": [
9120+
"multipart/form-data"
9121+
],
9122+
"produces": [
9123+
"application/json"
9124+
],
9125+
"tags": [
9126+
"OSCAL"
9127+
],
9128+
"summary": "Import OSCAL files",
9129+
"parameters": [
9130+
{
9131+
"type": "file",
9132+
"description": "OSCAL JSON files to import",
9133+
"name": "files",
9134+
"in": "formData",
9135+
"required": true
9136+
}
9137+
],
9138+
"responses": {
9139+
"200": {
9140+
"description": "OK",
9141+
"schema": {
9142+
"$ref": "#/definitions/handler.GenericDataResponse-oscal_ImportResponse"
9143+
}
9144+
},
9145+
"400": {
9146+
"description": "Bad Request",
9147+
"schema": {
9148+
"$ref": "#/definitions/api.Error"
9149+
}
9150+
},
9151+
"500": {
9152+
"description": "Internal Server Error",
9153+
"schema": {
9154+
"$ref": "#/definitions/api.Error"
9155+
}
9156+
}
9157+
}
9158+
}
9159+
},
90729160
"/oscal/inventory": {
90739161
"get": {
90749162
"description": "Retrieves all inventory items from all sources (SSP, Evidence, POAM, AP, AR)",
@@ -16440,6 +16528,46 @@ const docTemplate = `{
1644016528
}
1644116529
}
1644216530
},
16531+
"handler.FilterImportFileResult": {
16532+
"type": "object",
16533+
"properties": {
16534+
"count": {
16535+
"type": "integer"
16536+
},
16537+
"filename": {
16538+
"type": "string"
16539+
},
16540+
"message": {
16541+
"type": "string"
16542+
},
16543+
"success": {
16544+
"type": "boolean"
16545+
}
16546+
}
16547+
},
16548+
"handler.FilterImportResponse": {
16549+
"type": "object",
16550+
"properties": {
16551+
"failed_count": {
16552+
"type": "integer"
16553+
},
16554+
"results": {
16555+
"type": "array",
16556+
"items": {
16557+
"$ref": "#/definitions/handler.FilterImportFileResult"
16558+
}
16559+
},
16560+
"successful_count": {
16561+
"type": "integer"
16562+
},
16563+
"total_dashboards": {
16564+
"type": "integer"
16565+
},
16566+
"total_files": {
16567+
"type": "integer"
16568+
}
16569+
}
16570+
},
1644316571
"handler.FilterWithControlsResponse": {
1644416572
"type": "object",
1644516573
"properties": {
@@ -17027,6 +17155,19 @@ const docTemplate = `{
1702717155
}
1702817156
}
1702917157
},
17158+
"handler.GenericDataResponse-handler_FilterImportResponse": {
17159+
"type": "object",
17160+
"properties": {
17161+
"data": {
17162+
"description": "Items from the list response",
17163+
"allOf": [
17164+
{
17165+
"$ref": "#/definitions/handler.FilterImportResponse"
17166+
}
17167+
]
17168+
}
17169+
}
17170+
},
1703017171
"handler.GenericDataResponse-handler_FilterWithControlsResponse": {
1703117172
"type": "object",
1703217173
"properties": {
@@ -17716,6 +17857,19 @@ const docTemplate = `{
1771617857
}
1771717858
}
1771817859
},
17860+
"handler.GenericDataResponse-oscal_ImportResponse": {
17861+
"type": "object",
17862+
"properties": {
17863+
"data": {
17864+
"description": "Items from the list response",
17865+
"allOf": [
17866+
{
17867+
"$ref": "#/definitions/oscal.ImportResponse"
17868+
}
17869+
]
17870+
}
17871+
}
17872+
},
1771917873
"handler.GenericDataResponse-oscal_InventoryItemWithSource": {
1772017874
"type": "object",
1772117875
"properties": {
@@ -18018,6 +18172,46 @@ const docTemplate = `{
1801818172
}
1801918173
}
1802018174
},
18175+
"oscal.ImportFileResult": {
18176+
"type": "object",
18177+
"properties": {
18178+
"filename": {
18179+
"type": "string"
18180+
},
18181+
"message": {
18182+
"type": "string"
18183+
},
18184+
"success": {
18185+
"type": "boolean"
18186+
},
18187+
"title": {
18188+
"type": "string"
18189+
},
18190+
"type": {
18191+
"type": "string"
18192+
}
18193+
}
18194+
},
18195+
"oscal.ImportResponse": {
18196+
"type": "object",
18197+
"properties": {
18198+
"failed_count": {
18199+
"type": "integer"
18200+
},
18201+
"results": {
18202+
"type": "array",
18203+
"items": {
18204+
"$ref": "#/definitions/oscal.ImportFileResult"
18205+
}
18206+
},
18207+
"successful_count": {
18208+
"type": "integer"
18209+
},
18210+
"total_files": {
18211+
"type": "integer"
18212+
}
18213+
}
18214+
},
1802118215
"oscal.InventoryItemWithSource": {
1802218216
"type": "object",
1802318217
"properties": {

0 commit comments

Comments
 (0)