/* 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, ApiSearchResponseComponentDetailDocument, ApiSearchResponseComponentDocument, ApiSearchResponseVulnerabilityDocument, ComponentDetailDocument, LatestVersionRequest, } from '../models/index'; import { ApiSearchResponseFromJSON, ApiSearchResponseToJSON, ApiSearchResponseComponentDetailDocumentFromJSON, ApiSearchResponseComponentDetailDocumentToJSON, ApiSearchResponseComponentDocumentFromJSON, ApiSearchResponseComponentDocumentToJSON, ApiSearchResponseVulnerabilityDocumentFromJSON, ApiSearchResponseVulnerabilityDocumentToJSON, ComponentDetailDocumentFromJSON, ComponentDetailDocumentToJSON, LatestVersionRequestFromJSON, LatestVersionRequestToJSON, } from '../models/index'; export interface ComponentsApiGetComponentDependenciesByPurlQueryParamRequest { purl: string; format: string; name: string; version: string; query?: string; offset?: number; limit?: number; sortField?: string; sortOrder?: string; formats?: Array; categories?: Array; severities?: Array; minCvss?: number; maxCvss?: number; minVersionScore?: number; maxVersionScore?: number; licenseFamilies?: Array; licenses?: Array; latestStable?: string; namespace?: string; extension?: string; classifier?: string; } export interface ComponentsApiGetComponentDetailByPurlQueryParamRequest { purl: string; format: string; name: string; version: string; namespace?: string; extension?: string; classifier?: string; } export interface ComponentsApiGetComponentVersionsByPurlQueryParamRequest { purl: string; format: string; name: string; version: string; offset?: number; limit?: number; sortField?: string; sortOrder?: string; severities?: Array; minCvss?: number; maxCvss?: number; minVersionScore?: number; maxVersionScore?: number; versionQuery?: string; publishedWindow?: string; hasMalware?: boolean; isStable?: boolean; namespace?: string; extension?: string; classifier?: string; } export interface ComponentsApiGetComponentVulnerabilitiesByPurlQueryParamRequest { purl: string; format: string; name: string; version: string; offset?: number; limit?: number; sortField?: string; sortOrder?: string; severities?: Array; minCvss?: number; maxCvss?: number; minEpss?: number; maxEpss?: number; hasMalware?: boolean; patchAvailable?: boolean; policyCompliant?: boolean; cwes?: Array; exploitationKnown?: boolean; publishedWindow?: string; namespace?: string; extension?: string; classifier?: string; } export interface ComponentsApiGetLatestVersionRequest { latestVersionRequest: LatestVersionRequest; } /** * */ export class ComponentsApi extends runtime.BaseAPI { /** * Retrieves all direct dependencies of a specific component using explicit coordinate parameters (format, namespace, name, version). Returns full component details for each dependency with comprehensive filtering by format, category, CVSS severity, and license. Namespace is optional for some formats * Get dependencies for a component by coordinates (query parameters) */ async getComponentDependenciesByPurlQueryParamRaw(requestParameters: ComponentsApiGetComponentDependenciesByPurlQueryParamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['purl'] == null) { throw new runtime.RequiredError( 'purl', 'Required parameter "purl" was null or undefined when calling getComponentDependenciesByPurlQueryParam().' ); } if (requestParameters['format'] == null) { throw new runtime.RequiredError( 'format', 'Required parameter "format" was null or undefined when calling getComponentDependenciesByPurlQueryParam().' ); } if (requestParameters['name'] == null) { throw new runtime.RequiredError( 'name', 'Required parameter "name" was null or undefined when calling getComponentDependenciesByPurlQueryParam().' ); } if (requestParameters['version'] == null) { throw new runtime.RequiredError( 'version', 'Required parameter "version" was null or undefined when calling getComponentDependenciesByPurlQueryParam().' ); } const queryParameters: any = {}; if (requestParameters['purl'] != null) { queryParameters['purl'] = requestParameters['purl']; } 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']; } if (requestParameters['formats'] != null) { queryParameters['formats'] = requestParameters['formats']; } if (requestParameters['categories'] != null) { queryParameters['categories'] = requestParameters['categories']; } if (requestParameters['severities'] != null) { queryParameters['severities'] = requestParameters['severities']; } if (requestParameters['minCvss'] != null) { queryParameters['minCvss'] = requestParameters['minCvss']; } if (requestParameters['maxCvss'] != null) { queryParameters['maxCvss'] = requestParameters['maxCvss']; } if (requestParameters['minVersionScore'] != null) { queryParameters['minVersionScore'] = requestParameters['minVersionScore']; } if (requestParameters['maxVersionScore'] != null) { queryParameters['maxVersionScore'] = requestParameters['maxVersionScore']; } if (requestParameters['licenseFamilies'] != null) { queryParameters['licenseFamilies'] = requestParameters['licenseFamilies']; } if (requestParameters['licenses'] != null) { queryParameters['licenses'] = requestParameters['licenses']; } if (requestParameters['latestStable'] != null) { queryParameters['latestStable'] = requestParameters['latestStable']; } if (requestParameters['format'] != null) { queryParameters['format'] = requestParameters['format']; } if (requestParameters['namespace'] != null) { queryParameters['namespace'] = requestParameters['namespace']; } if (requestParameters['name'] != null) { queryParameters['name'] = requestParameters['name']; } if (requestParameters['version'] != null) { queryParameters['version'] = requestParameters['version']; } if (requestParameters['extension'] != null) { queryParameters['extension'] = requestParameters['extension']; } if (requestParameters['classifier'] != null) { queryParameters['classifier'] = requestParameters['classifier']; } 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 = `/components/dependencies`; const response = await this.request({ path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ApiSearchResponseFromJSON(jsonValue)); } /** * Retrieves all direct dependencies of a specific component using explicit coordinate parameters (format, namespace, name, version). Returns full component details for each dependency with comprehensive filtering by format, category, CVSS severity, and license. Namespace is optional for some formats * Get dependencies for a component by coordinates (query parameters) */ async getComponentDependenciesByPurlQueryParam(requestParameters: ComponentsApiGetComponentDependenciesByPurlQueryParamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getComponentDependenciesByPurlQueryParamRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieves detailed information about a specific component using explicit coordinate parameters (format, namespace, name, version). Namespace is optional for some formats * Get component detail by coordinates (query parameters) */ async getComponentDetailByPurlQueryParamRaw(requestParameters: ComponentsApiGetComponentDetailByPurlQueryParamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['purl'] == null) { throw new runtime.RequiredError( 'purl', 'Required parameter "purl" was null or undefined when calling getComponentDetailByPurlQueryParam().' ); } if (requestParameters['format'] == null) { throw new runtime.RequiredError( 'format', 'Required parameter "format" was null or undefined when calling getComponentDetailByPurlQueryParam().' ); } if (requestParameters['name'] == null) { throw new runtime.RequiredError( 'name', 'Required parameter "name" was null or undefined when calling getComponentDetailByPurlQueryParam().' ); } if (requestParameters['version'] == null) { throw new runtime.RequiredError( 'version', 'Required parameter "version" was null or undefined when calling getComponentDetailByPurlQueryParam().' ); } const queryParameters: any = {}; if (requestParameters['purl'] != null) { queryParameters['purl'] = requestParameters['purl']; } if (requestParameters['format'] != null) { queryParameters['format'] = requestParameters['format']; } if (requestParameters['namespace'] != null) { queryParameters['namespace'] = requestParameters['namespace']; } if (requestParameters['name'] != null) { queryParameters['name'] = requestParameters['name']; } if (requestParameters['version'] != null) { queryParameters['version'] = requestParameters['version']; } if (requestParameters['extension'] != null) { queryParameters['extension'] = requestParameters['extension']; } if (requestParameters['classifier'] != null) { queryParameters['classifier'] = requestParameters['classifier']; } 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 = `/components/detail`; const response = await this.request({ path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ComponentDetailDocumentFromJSON(jsonValue)); } /** * Retrieves detailed information about a specific component using explicit coordinate parameters (format, namespace, name, version). Namespace is optional for some formats * Get component detail by coordinates (query parameters) */ async getComponentDetailByPurlQueryParam(requestParameters: ComponentsApiGetComponentDetailByPurlQueryParamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getComponentDetailByPurlQueryParamRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieves all versions of a component using explicit coordinate parameters (format, namespace, name, version). Returns all versions EXCEPT the version specified. Namespace is optional for some formats * Get all component versions by coordinates (query parameters) */ async getComponentVersionsByPurlQueryParamRaw(requestParameters: ComponentsApiGetComponentVersionsByPurlQueryParamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['purl'] == null) { throw new runtime.RequiredError( 'purl', 'Required parameter "purl" was null or undefined when calling getComponentVersionsByPurlQueryParam().' ); } if (requestParameters['format'] == null) { throw new runtime.RequiredError( 'format', 'Required parameter "format" was null or undefined when calling getComponentVersionsByPurlQueryParam().' ); } if (requestParameters['name'] == null) { throw new runtime.RequiredError( 'name', 'Required parameter "name" was null or undefined when calling getComponentVersionsByPurlQueryParam().' ); } if (requestParameters['version'] == null) { throw new runtime.RequiredError( 'version', 'Required parameter "version" was null or undefined when calling getComponentVersionsByPurlQueryParam().' ); } const queryParameters: any = {}; if (requestParameters['purl'] != null) { queryParameters['purl'] = requestParameters['purl']; } 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']; } if (requestParameters['severities'] != null) { queryParameters['severities'] = requestParameters['severities']; } if (requestParameters['minCvss'] != null) { queryParameters['minCvss'] = requestParameters['minCvss']; } if (requestParameters['maxCvss'] != null) { queryParameters['maxCvss'] = requestParameters['maxCvss']; } if (requestParameters['minVersionScore'] != null) { queryParameters['minVersionScore'] = requestParameters['minVersionScore']; } if (requestParameters['maxVersionScore'] != null) { queryParameters['maxVersionScore'] = requestParameters['maxVersionScore']; } if (requestParameters['versionQuery'] != null) { queryParameters['versionQuery'] = requestParameters['versionQuery']; } if (requestParameters['publishedWindow'] != null) { queryParameters['publishedWindow'] = requestParameters['publishedWindow']; } if (requestParameters['hasMalware'] != null) { queryParameters['hasMalware'] = requestParameters['hasMalware']; } if (requestParameters['isStable'] != null) { queryParameters['isStable'] = requestParameters['isStable']; } if (requestParameters['format'] != null) { queryParameters['format'] = requestParameters['format']; } if (requestParameters['namespace'] != null) { queryParameters['namespace'] = requestParameters['namespace']; } if (requestParameters['name'] != null) { queryParameters['name'] = requestParameters['name']; } if (requestParameters['version'] != null) { queryParameters['version'] = requestParameters['version']; } if (requestParameters['extension'] != null) { queryParameters['extension'] = requestParameters['extension']; } if (requestParameters['classifier'] != null) { queryParameters['classifier'] = requestParameters['classifier']; } 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 = `/components/versions`; const response = await this.request({ path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ApiSearchResponseFromJSON(jsonValue)); } /** * Retrieves all versions of a component using explicit coordinate parameters (format, namespace, name, version). Returns all versions EXCEPT the version specified. Namespace is optional for some formats * Get all component versions by coordinates (query parameters) */ async getComponentVersionsByPurlQueryParam(requestParameters: ComponentsApiGetComponentVersionsByPurlQueryParamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getComponentVersionsByPurlQueryParamRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieves all vulnerabilities affecting a specific component using explicit coordinate parameters (format, namespace, name, version). Supports comprehensive filtering by severity, CVSS score, CWE, and more. Namespace is optional for some formats * Get vulnerabilities for a component by coordinates (query parameters) */ async getComponentVulnerabilitiesByPurlQueryParamRaw(requestParameters: ComponentsApiGetComponentVulnerabilitiesByPurlQueryParamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['purl'] == null) { throw new runtime.RequiredError( 'purl', 'Required parameter "purl" was null or undefined when calling getComponentVulnerabilitiesByPurlQueryParam().' ); } if (requestParameters['format'] == null) { throw new runtime.RequiredError( 'format', 'Required parameter "format" was null or undefined when calling getComponentVulnerabilitiesByPurlQueryParam().' ); } if (requestParameters['name'] == null) { throw new runtime.RequiredError( 'name', 'Required parameter "name" was null or undefined when calling getComponentVulnerabilitiesByPurlQueryParam().' ); } if (requestParameters['version'] == null) { throw new runtime.RequiredError( 'version', 'Required parameter "version" was null or undefined when calling getComponentVulnerabilitiesByPurlQueryParam().' ); } const queryParameters: any = {}; if (requestParameters['purl'] != null) { queryParameters['purl'] = requestParameters['purl']; } 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']; } if (requestParameters['severities'] != null) { queryParameters['severities'] = requestParameters['severities']; } if (requestParameters['minCvss'] != null) { queryParameters['minCvss'] = requestParameters['minCvss']; } if (requestParameters['maxCvss'] != null) { queryParameters['maxCvss'] = requestParameters['maxCvss']; } if (requestParameters['minEpss'] != null) { queryParameters['minEpss'] = requestParameters['minEpss']; } if (requestParameters['maxEpss'] != null) { queryParameters['maxEpss'] = requestParameters['maxEpss']; } if (requestParameters['hasMalware'] != null) { queryParameters['hasMalware'] = requestParameters['hasMalware']; } if (requestParameters['patchAvailable'] != null) { queryParameters['patchAvailable'] = requestParameters['patchAvailable']; } if (requestParameters['policyCompliant'] != null) { queryParameters['policyCompliant'] = requestParameters['policyCompliant']; } if (requestParameters['cwes'] != null) { queryParameters['cwes'] = requestParameters['cwes']; } if (requestParameters['exploitationKnown'] != null) { queryParameters['exploitationKnown'] = requestParameters['exploitationKnown']; } if (requestParameters['publishedWindow'] != null) { queryParameters['publishedWindow'] = requestParameters['publishedWindow']; } if (requestParameters['format'] != null) { queryParameters['format'] = requestParameters['format']; } if (requestParameters['namespace'] != null) { queryParameters['namespace'] = requestParameters['namespace']; } if (requestParameters['name'] != null) { queryParameters['name'] = requestParameters['name']; } if (requestParameters['version'] != null) { queryParameters['version'] = requestParameters['version']; } if (requestParameters['extension'] != null) { queryParameters['extension'] = requestParameters['extension']; } if (requestParameters['classifier'] != null) { queryParameters['classifier'] = requestParameters['classifier']; } 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 = `/components/vulnerabilities`; const response = await this.request({ path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ApiSearchResponseFromJSON(jsonValue)); } /** * Retrieves all vulnerabilities affecting a specific component using explicit coordinate parameters (format, namespace, name, version). Supports comprehensive filtering by severity, CVSS score, CWE, and more. Namespace is optional for some formats * Get vulnerabilities for a component by coordinates (query parameters) */ async getComponentVulnerabilitiesByPurlQueryParam(requestParameters: ComponentsApiGetComponentVulnerabilitiesByPurlQueryParamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getComponentVulnerabilitiesByPurlQueryParamRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieves the latest version of a component specified by PURL. The PURL should not include a version, or the version will be ignored. * Get latest version of a component */ async getLatestVersionRaw(requestParameters: ComponentsApiGetLatestVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['latestVersionRequest'] == null) { throw new runtime.RequiredError( 'latestVersionRequest', 'Required parameter "latestVersionRequest" was null or undefined when calling getLatestVersion().' ); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; 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 = `/components/latest-version`; const response = await this.request({ path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: LatestVersionRequestToJSON(requestParameters['latestVersionRequest']), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => ComponentDetailDocumentFromJSON(jsonValue)); } /** * Retrieves the latest version of a component specified by PURL. The PURL should not include a version, or the version will be ignored. * Get latest version of a component */ async getLatestVersion(requestParameters: ComponentsApiGetLatestVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getLatestVersionRaw(requestParameters, initOverrides); return await response.value(); } }