main
ts 42 lines 1.54 KB
Raw
1 import type {
2 ScoutSuiteAwsReportPayload,
3 ScoutSuiteAzureReportPayload,
4 ScoutSuiteGcpReportPayload,
5 ScoutSuiteReport,
6 ScoutSuiteReportPayload
7 } from "@/types/cloudSecurityAssessment.d"
8 import type { FlaskBaseResponse } from "@/types/flask.d"
9 import { HttpClient } from "../httpClient"
10
11 export default {
12 getAvailableScoutSuiteReports() {
13 return HttpClient.get<FlaskBaseResponse & { available_reports: ScoutSuiteReport[] }>(
14 `/scoutsuite/available-reports`
15 )
16 },
17 getScoutSuiteReportGenerationOptions() {
18 return HttpClient.get<FlaskBaseResponse & { options: string[] }>(`/scoutsuite/report-generation-options`)
19 },
20 generateAwsScoutSuiteReport(payload: ScoutSuiteReportPayload & ScoutSuiteAwsReportPayload) {
21 return HttpClient.post<FlaskBaseResponse>(`/scoutsuite/generate-aws-report`, { ...payload, report_type: "aws" })
22 },
23 generateAzureScoutSuiteReport(payload: ScoutSuiteReportPayload & ScoutSuiteAzureReportPayload) {
24 return HttpClient.post<FlaskBaseResponse>(`/scoutsuite/generate-azure-report`, {
25 ...payload,
26 report_type: "azure"
27 })
28 },
29 generateGcpScoutSuiteReport(payload: ScoutSuiteReportPayload & ScoutSuiteGcpReportPayload) {
30 const form = new FormData()
31 form.append("file", new Blob([payload.file], { type: payload.file.type }), payload.file.name)
32
33 return HttpClient.post<FlaskBaseResponse>(`/scoutsuite/generate-gcp-report`, form, {
34 params: {
35 report_name: payload.report_name
36 }
37 })
38 },
39 deleteScoutSuiteReport(reportName: string) {
40 return HttpClient.delete<FlaskBaseResponse>(`/scoutsuite/delete-report/${reportName}`)
41 }
42 }