# Revenera SBOM Insights API

Revenera SBOM Insights offers APIs to manage your Software Bill of Materials (SBOM) via buckets and parts. It supports manual software parts creation as well as ingestion of SBOMs in various formats. It also supports various queries into the constructed SBOM data.

Version: 1.0

## Servers

SBOM Insights API URL - Production
```
https://sca-api.revenera.com
```

SBOM Insights API URL - Staging
```
https://sca-api.reveneratest.com
```

## Security

### GlobalSession_header_Authorization

Secures requests by requring a valid JWT token retrieved via the login endpoint.

Type: http
Scheme: bearer

## Download OpenAPI description

[Revenera SBOM Insights API](https://sbominsightsapi.redocly.app/_bundle/openapi3.yaml)

## Archetypes

Archetypes represents master 'types' that would be used across the system.

### View All Archetypes

 - [GET /sbom/v1/orgs/{orgId}/archetypes](https://sbominsightsapi.redocly.app/openapi3/archetypes/archetypes_indexarchetypes.md): Retrieve all the archetypes.

Archetypes can be filtered using any 'one' of the following parameters. 
|parameter | description|
|--- | ---|
| ids | comma separated list of archetype ids |
| categories | comma separated list of categories. For e.g : part_types, bucket_types, origin_types, link_types, file_types etc|
| trailId | provide job id to list all the records that was created/updated during the job run  |

### Create Archetype

 - [POST /sbom/v1/orgs/{orgId}/archetypes](https://sbominsightsapi.redocly.app/openapi3/archetypes/archetypes_createarchetype.md): Create an archetype.

### Delete Archetype

 - [DELETE /sbom/v1/orgs/{orgId}/archetypes/{archetypeId}](https://sbominsightsapi.redocly.app/openapi3/archetypes/archetypes_deletearchetype.md): Delete an existing archetype

### View Information for an Archetype

 - [GET /sbom/v1/orgs/{orgId}/archetypes/{archetypeId}](https://sbominsightsapi.redocly.app/openapi3/archetypes/archetypes_showarchetype.md): Retrieve an archetype

### Update Archetype

 - [PUT /sbom/v1/orgs/{orgId}/archetypes/{archetypeId}](https://sbominsightsapi.redocly.app/openapi3/archetypes/archetypes_updatearchetype.md): Update an existing archetype

## Buckets

Buckets are used to store a set of SBOM parts. They can represent an organization's entities such as business units and product families, as well as top-level applications and their elements such as modules and containers. Buckets can be nested under other buckets to form a hierarchy.

### View All Buckets

 - [GET /sbom/v1/orgs/{orgId}/buckets](https://sbominsightsapi.redocly.app/openapi3/buckets/buckets_indexbuckets.md): Retrieves all the buckets for the given orgId.

Buckets can be filtered using any 'one' of the following parameters. 
|parameter | description|
|--- | ---|
| ids | comma separated list of bucket ids |
| name | bucket name |
| trailId | provide job id to list all the records that was created/updated during the job run  |

### Create Bucket

 - [POST /sbom/v1/orgs/{orgId}/buckets](https://sbominsightsapi.redocly.app/openapi3/buckets/buckets_createbucket.md): Create a bucket.

### Delete Bucket

 - [DELETE /sbom/v1/orgs/{orgId}/buckets/{bucketId}](https://sbominsightsapi.redocly.app/openapi3/buckets/buckets_deletebucket.md): Delete a bucket

### View Information for a Bucket

 - [GET /sbom/v1/orgs/{orgId}/buckets/{bucketId}](https://sbominsightsapi.redocly.app/openapi3/buckets/buckets_showbucket.md): Retrieve detailed information for the requested bucket

### Update Bucket

 - [PUT /sbom/v1/orgs/{orgId}/buckets/{bucketId}](https://sbominsightsapi.redocly.app/openapi3/buckets/buckets_updatebucket.md): Update bucket information for the given bucket id

## Files

Files represent the codebase files comprising the SBOM part. Each file has a name, relative path, and hashes.

### View All Files

 - [GET /sbom/v1/orgs/{orgId}/files](https://sbominsightsapi.redocly.app/openapi3/files/files_indexfiles.md): Retrieve all the files

Files can be filtered using any 'one' of the following parameters. 
|parameter | description|
|--- | ---|
| ids | comma separated list of file ids |
| partId | get all the files for a specific part id |
| trailId | provide job id to list all the records that was created/updated during the job run  |

### Create File

 - [POST /sbom/v1/orgs/{orgId}/files](https://sbominsightsapi.redocly.app/openapi3/files/files_createfile.md): Creates a file

### Delete File

 - [DELETE /sbom/v1/orgs/{orgId}/files/{fileId}](https://sbominsightsapi.redocly.app/openapi3/files/files_deletefile.md): Delete a file

### View Information for a File

 - [GET /sbom/v1/orgs/{orgId}/files/{fileId}](https://sbominsightsapi.redocly.app/openapi3/files/files_showfile.md): Retrieve detailed information for the requested file

### Update File

 - [PUT /sbom/v1/orgs/{orgId}/files/{fileId}](https://sbominsightsapi.redocly.app/openapi3/files/files_updatefile.md): Update file information

## Importer

The Importer processes SBOM data imports from multiple data sources and creates SBOM parts for the selected Bucket. An import is performed via a job, which allows for a persisted record of the transaction along with its resulting data summary and any encountered errors.

### Import SBOM Data

 - [POST /sbom/v1/orgs/{orgId}/import](https://sbominsightsapi.redocly.app/openapi3/importer/importer_import.md): Import Software Bill Of Materials into the system

## Jobs

Jobs are persisted transactions for background operations with a record of the transaction along with its resulting data summary and any encountered errors.

### View All Jobs

 - [GET /sbom/v1/orgs/{orgId}/jobs](https://sbominsightsapi.redocly.app/openapi3/jobs/jobs_indexjobs.md): Retrieve all the Jobs for the given orgId.

Jobs can be filtered using any 'one' of the following parameters. 
|parameter | description|
|--- | ---|
| status | list all the jobs for the given status |
| bucketId | list all the jobs for a bucketId |

### View Information for a Job

 - [GET /sbom/v1/orgs/{orgId}/jobs/{jobId}](https://sbominsightsapi.redocly.app/openapi3/jobs/jobs_showjob.md): Retrieve a Job

## Parts

SBOM Parts represent open source, third-party, and commercial ingredients in a software application. An SBOM part can represent an operating system such as Linux with 60k+ files, individual files, a single binary, a source bundle for an open source component, and even fragments of code. Parts within an SBOM, and even across multiple SBOMs, are related to each other via links of various types including dependencies, found inside, related to, and several others.

### View All SBOM Parts

 - [GET /sbom/v1/orgs/{orgId}/parts](https://sbominsightsapi.redocly.app/openapi3/parts/parts_indexparts.md): Retrieve all the parts.

Parts can be filtered using any 'one' of the following parameters. 
|parameter | description|
|--- | ---|
| ids | comma separated list of part ids |
| bucketIds | comma separated list of bucket ids |
| trailId | provide job id to list all the records that was created/updated during the job run  |

### Create SBOM Part

 - [POST /sbom/v1/orgs/{orgId}/parts](https://sbominsightsapi.redocly.app/openapi3/parts/parts_createpart.md): Register a part

### Delete SBOM Part

 - [DELETE /sbom/v1/orgs/{orgId}/parts/{partId}](https://sbominsightsapi.redocly.app/openapi3/parts/parts_deletepart.md): Un-register a part

### View Information for an SBOM Part

 - [GET /sbom/v1/orgs/{orgId}/parts/{partId}](https://sbominsightsapi.redocly.app/openapi3/parts/parts_showpart.md): Retrieve a part

### Update SBOM Part

 - [PUT /sbom/v1/orgs/{orgId}/parts/{partId}](https://sbominsightsapi.redocly.app/openapi3/parts/parts_updatepart.md): Update part information

