/* tslint:disable */ /* eslint-disable */ /** * Sonatype Guide API * REST API into [Sonatype Guide](https://guide.sonatype.com). * * The version of the OpenAPI document: 202607 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import * as runtime from '../runtime'; import type { ApiSearchResponse, ApiSearchResponseAffectedComponentVersion, VulnerabilityDetailDocument, } from '../models/index'; import { ApiSearchResponseFromJSON, ApiSearchResponseToJSON, ApiSearchResponseAffectedComponentVersionFromJSON, ApiSearchResponseAffectedComponentVersionToJSON, VulnerabilityDetailDocumentFromJSON, VulnerabilityDetailDocumentToJSON, } from '../models/index'; export interface VulnerabilitiesApiGetVulnerabilityAffectedComponentsRequest { id: string; query?: string; offset?: number; limit?: number; sortField?: string; sortOrder?: string; } export interface VulnerabilitiesApiGetVulnerabilityByRefIdRequest { id: string; } /** * */ export class VulnerabilitiesApi extends runtime.BaseAPI { /** * Retrieves paginated list of affected component versions for a specific vulnerability with optional text filtering and sorting. Returns parsed component structures with ecosystem, namespace, packageName, version, and fullPackageName fields. * Get affected components for a vulnerability */ async getVulnerabilityAffectedComponentsRaw(requestParameters: VulnerabilitiesApiGetVulnerabilityAffectedComponentsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getVulnerabilityAffectedComponents().' ); } const queryParameters: any = {}; if (requestParameters['query'] != null) { queryParameters['query'] = requestParameters['query']; } if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset']; } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit']; } if (requestParameters['sortField'] != null) { queryParameters['sortField'] = requestParameters['sortField']; } if (requestParameters['sortOrder'] != null) { queryParameters['sortOrder'] = requestParameters['sortOrder']; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer-jwt", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } let urlPath = `/vulnerabilities/{id}/components`; urlPath = urlPath.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))); const response = await this.request({ path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ApiSearchResponseFromJSON(jsonValue)); } /** * Retrieves paginated list of affected component versions for a specific vulnerability with optional text filtering and sorting. Returns parsed component structures with ecosystem, namespace, packageName, version, and fullPackageName fields. * Get affected components for a vulnerability */ async getVulnerabilityAffectedComponents(requestParameters: VulnerabilitiesApiGetVulnerabilityAffectedComponentsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getVulnerabilityAffectedComponentsRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieves detailed information about a specific vulnerability including explanation, detection methods, recommendations, and references. Note: Large arrays (affectedComponentVersions, vulnerableMethods) are excluded for performance - use /{id}/components endpoint for paginated affected components. * Get vulnerability by ID */ async getVulnerabilityByRefIdRaw(requestParameters: VulnerabilitiesApiGetVulnerabilityByRefIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getVulnerabilityByRefId().' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("bearer-jwt", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } let urlPath = `/vulnerabilities/{id}`; urlPath = urlPath.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))); const response = await this.request({ path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => VulnerabilityDetailDocumentFromJSON(jsonValue)); } /** * Retrieves detailed information about a specific vulnerability including explanation, detection methods, recommendations, and references. Note: Large arrays (affectedComponentVersions, vulnerableMethods) are excluded for performance - use /{id}/components endpoint for paginated affected components. * Get vulnerability by ID */ async getVulnerabilityByRefId(requestParameters: VulnerabilitiesApiGetVulnerabilityByRefIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getVulnerabilityByRefIdRaw(requestParameters, initOverrides); return await response.value(); } }