openapi: 3.0.3 info: title: Binarly Assistant Image API version: 4.275.2 security: - auth: [] tags: - name: Image paths: /api/v4/products/{productId}/images:upload: post: summary: Upload Image operationId: UploadImage x-permission: images.create tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - name: createScan in: query description: Create a Scan for the Image schema: type: boolean default: true - name: tempFileId in: query description: Temporary File ID of uploaded file required: false schema: $ref: '#/components/schemas/ULID' - name: imageName in: query description: Uploaded image name when body is empty required: false schema: type: string - name: version in: query description: Uploaded image version when body is empty required: false schema: type: string - name: filename in: query description: Uploaded image filename when body is empty required: false schema: type: string requestBody: required: false content: multipart/form-data: schema: $ref: '#/components/schemas/ImageUpload' responses: '201': description: success content: application/json: schema: $ref: '#/components/schemas/Image' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' /api/v4/products/{productId}/images/{imageId}: get: summary: Get Image by ID operationId: GetImage x-permission: products.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' - name: withCounts in: query required: false schema: type: boolean responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/Image' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' patch: summary: Update Image by ID operationId: UpdateImage x-permission: images.update tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateImagePayload' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/Image' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '500': $ref: '#/components/responses/InternalServerError' /api/v4/products/{productId}/images: get: summary: List Images operationId: ListImages x-permission: products.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/WithImages' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' /api/v4/products/{productId}/images:bulkArchive: post: summary: Bulk Archive Images operationId: BulkArchiveImages x-permission: images.archive tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkIds' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/BulkIds' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' /api/v4/products/{productId}/images:bulkUnarchive: post: summary: Bulk Unarchive Images operationId: BulkUnarchiveImages x-permission: images.archive tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkIds' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/BulkIds' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' /api/v4/products/{productId}/images/{imageId}/sbomReport:cycloneDX: get: summary: CycloneDX SBOM Report for an Image operationId: GetSbomReportCycloneDX x-permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' - $ref: '#/components/parameters/QueryOptionalContentType' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/SbomReport' application/xml: schema: $ref: '#/components/schemas/SbomReport' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' /api/v4/products/{productId}/images/{imageId}/sbomReport:SPDX: get: summary: SPDX SBOM Report for an Image operationId: GetSbomReportSPDX x-permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/SbomReport' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' /api/v4/products/{productId}/images/{imageId}/cbomReport:cycloneDX: get: summary: CBOM Report for an Image operationId: GetCbomReport x-permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/SbomReport' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' /api/v4/products/{productId}/images/{imageId}/vexReport:openVEX: get: summary: VEX Report for an Image in OpenVEX format operationId: GetVexReportOpenVEX x-permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' - $ref: '#/components/parameters/QueryOptionalFindingId' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/VEXReport' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' /api/v4/products/{productId}/images/{imageId}/vexReport:cycloneDX: get: summary: VEX Report for an Image in CycloneDX format operationId: GetVexReportCycloneDX x-permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' - $ref: '#/components/parameters/QueryOptionalFindingId' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/VEXReport' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' /api/v4/products/{productId}/images/{imageId}/findingsReport:pdf: get: summary: Image Findings PDF Report operationId: ImageFindingsReportPdf x-permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' - name: mode in: query schema: type: string enum: - summary - full responses: '200': description: detail report content: application/pdf: schema: type: string format: binary headers: Content-Disposition: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '500': $ref: '#/components/responses/InternalServerError' /api/v4/products/{productId}/images/{imageId}/findingsReport:download: post: summary: Download Image Report operationId: DownloadImageReport x-permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' - name: mode in: query required: true schema: type: string enum: - summary - full - $ref: '#/components/parameters/QueryContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/GridQuery' responses: '200': description: detail report content: application/pdf: schema: type: string format: binary application/json: schema: $ref: '#/components/schemas/ReportImage' headers: Content-Disposition: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '500': $ref: '#/components/responses/InternalServerError' /api/v4/products/{productId}/images/{imageId}/cryptographicMaterialsReport: get: summary: Download Cryptographic Materials Report operationId: CryptographicMaterialsReport x-permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' - name: mode in: query required: true schema: type: string enum: - pqc-compliance - $ref: '#/components/parameters/QueryContentType' responses: '200': description: cryptographic materials report content: application/pdf: schema: type: string format: binary application/json: schema: $ref: '#/components/schemas/CryptographicMaterialsReportImage' headers: Content-Disposition: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '500': $ref: '#/components/responses/InternalServerError' /api/v4/products/{productId}/images/{imageId}/advisoryReport: post: summary: Advisory Report operationId: AdvisoryReport x-pass-resource-ids: resourceType: Product permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' - $ref: '#/components/parameters/QueryContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/GridQuery' responses: '200': description: advisory report content: text/markdown: schema: type: string application/pdf: schema: type: string format: binary headers: Content-Disposition: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/Unprocessable' '500': $ref: '#/components/responses/InternalServerError' '502': $ref: '#/components/responses/BadGateway' /api/v4/products/{productId}/images/{imageId}/findingsReport:json: post: summary: Image Findings JSON Report operationId: ImageFindingsReportJson x-permission: reports.view tags: - Image parameters: - $ref: '#/components/parameters/PathProductId' - $ref: '#/components/parameters/PathImageId' requestBody: content: application/json: schema: $ref: '#/components/schemas/ReportQuery' responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/ReportImage' headers: Content-Disposition: schema: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' components: responses: Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenErrorResponse' Conflict: description: Conflict content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' InternalServerError: description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unprocessable: description: Unprocessable Content content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadGateway: description: Bad Gateway content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: ImageCounts: allOf: - $ref: '#/components/schemas/WithNewEscalationsCount' - $ref: '#/components/schemas/WithDependenciesCount' - $ref: '#/components/schemas/WithCryptographicAssetsCount' - $ref: '#/components/schemas/WithFindingTypeCounts' - $ref: '#/components/schemas/WithKevCount' - $ref: '#/components/schemas/WithExpiredCertificatesCount' - $ref: '#/components/schemas/WithUnsafeFunctionsCount' File: allOf: - $ref: '#/components/schemas/WithId' - $ref: '#/components/schemas/WithCreateTime' - $ref: '#/components/schemas/WithOptionalParent' - $ref: '#/components/schemas/WithAuthor' - $ref: '#/components/schemas/WithFilename' - $ref: '#/components/schemas/WithIsAttachment' - $ref: '#/components/schemas/WithDownloadUrl' - $ref: '#/components/schemas/WithOptionalMetadata' NISTIR8547HashAndXOFSecurity: type: object properties: hashAndXOF: $ref: '#/components/schemas/NISTIR8547HashAndXOF' required: - hashAndXOF VEXReport: type: object additionalProperties: {} WithSeverity: type: object required: - severity properties: severity: type: string enum: - unspecified - low - medium - high - critical NISTIR8547BlockCipher: type: object properties: securityStrength: type: string securityCategory: type: integer required: - securityStrength - securityCategory WithOptionalReportFindings: type: object properties: findings: type: array items: $ref: '#/components/schemas/ReportFinding' FindingEvidence: type: object required: - artefacts - annotations - attributes properties: artefacts: type: array items: $ref: '#/components/schemas/FindingEvidenceArtefact' annotations: type: array items: $ref: '#/components/schemas/FindingEvidenceAnnotation' attributes: type: object properties: {} FilterItem: type: object required: - field - value properties: field: type: string comparator: type: string enum: - equals - contains - between - in - notContains - overlaps value: {} WithOptionalId: type: object properties: id: readOnly: true allOf: - $ref: '#/components/schemas/ULID' WithOptionalSource: type: object properties: source: $ref: '#/components/schemas/ULID' NISTIR8547SecurityProfile: type: object properties: security: $ref: '#/components/schemas/NISTIR8547Security' WithCryptographicMaterialsReportFindings: type: object required: - findings properties: findings: type: array items: $ref: '#/components/schemas/CryptographicMaterialsReportFinding' WithOptionalImageCounts: type: object properties: counts: $ref: '#/components/schemas/ImageCounts' ResourceType: type: string enum: - Org - Group - Product - User - Image - Finding - Occurrence ErrorResponse: required: - message type: object properties: message: type: string readOnly: true x-go-type-skip-optional-pointer: true details: type: array items: $ref: '#/components/schemas/ErrorDetail' WithProductName: type: object required: - productName properties: productName: type: string WithOptionalCryptoAlgorithmName: type: object properties: cryptoAlgorithmName: type: string ULID: type: string format: ulid minLength: 26 maxLength: 26 example: 01ARZ3NDEKTSV4RRFFQ69G5FAV x-go-type: ulid.ULID x-go-type-import: path: github.com/oklog/ulid/v2 CryptographicMaterialsReportFinding: allOf: - $ref: '#/components/schemas/WithId' - $ref: '#/components/schemas/WithCreateTime' - $ref: '#/components/schemas/WithName' - $ref: '#/components/schemas/WithFindingType' - $ref: '#/components/schemas/WithComponentName' - $ref: '#/components/schemas/WithComponent' - $ref: '#/components/schemas/WithSeverity' - $ref: '#/components/schemas/WithIsReachable' - $ref: '#/components/schemas/WithFindingStatus' - $ref: '#/components/schemas/WithDisplayName' - $ref: '#/components/schemas/WithOptionalCryptoAlgorithmName' - $ref: '#/components/schemas/WithOptionalCryptoAlgorithmPrimitive' - $ref: '#/components/schemas/WithOptionalCryptoProtocolName' - $ref: '#/components/schemas/WithOptionalIsNistIR8547Compliant' - $ref: '#/components/schemas/WithCompliance' - $ref: '#/components/schemas/WithEvidence' WithId: type: object required: - id properties: id: readOnly: true allOf: - $ref: '#/components/schemas/ULID' WithVersion: type: object required: - version properties: version: type: string WithComponent: type: object required: - component properties: component: $ref: '#/components/schemas/Component' NISTIR8547DigitalSignatureSecurity: type: object properties: digitalSignature: $ref: '#/components/schemas/NISTIR8547DigitalSignature' required: - digitalSignature Secret: type: object properties: rule: type: string secret: type: string entropy: type: number format: double description: type: string kind: type: string validity: type: string enum: - Valid - Invalid - Undetermined - Filtered WithOptionalName: type: object properties: name: type: string ImageUpload: type: object properties: imageName: type: string version: type: string file: type: string format: binary WithIsAttachment: type: object required: - isAttachment properties: isAttachment: type: boolean default: false readOnly: true WithOptionalScans: type: object properties: scans: type: array items: $ref: '#/components/schemas/Scan' Scan: allOf: - $ref: '#/components/schemas/WithId' - $ref: '#/components/schemas/WithCreateTime' - $ref: '#/components/schemas/WithOptionalParent' - $ref: '#/components/schemas/WithAuthor' - $ref: '#/components/schemas/WithOptionalLatestScanState' WithOptionalCryptoProtocolName: type: object properties: cryptoProtocolName: type: string WithDependenciesCount: type: object required: - dependenciesCount properties: dependenciesCount: type: integer Image: allOf: - $ref: '#/components/schemas/WithId' - $ref: '#/components/schemas/WithName' - $ref: '#/components/schemas/WithVersion' - $ref: '#/components/schemas/WithOptionalParent' - $ref: '#/components/schemas/WithCreateTime' - $ref: '#/components/schemas/WithAuthor' - $ref: '#/components/schemas/WithOptionalFiles' - $ref: '#/components/schemas/WithOptionalScans' - $ref: '#/components/schemas/WithOptionalLatestScan' - $ref: '#/components/schemas/WithOptionalIsArchived' - $ref: '#/components/schemas/WithOptionalImageCounts' WithOptionalLatestScan: type: object properties: latestScan: $ref: '#/components/schemas/Scan' WithOptionalLatestScanState: type: object properties: latestScanState: $ref: '#/components/schemas/ScanState' WithNewEscalationsCount: type: object required: - newEscalationsCount properties: newEscalationsCount: type: integer CountBySeverity: type: object readOnly: true properties: critical: type: integer high: type: integer medium: type: integer low: type: integer unspecified: type: integer total: type: integer WithPlatformId: type: object required: - id properties: id: type: string FindingEvidenceAnnotation: type: object properties: {} ReportImage: allOf: - $ref: '#/components/schemas/WithId' - $ref: '#/components/schemas/WithParent' - $ref: '#/components/schemas/WithName' - $ref: '#/components/schemas/WithOptionalVersion' - $ref: '#/components/schemas/WithCreateTime' - $ref: '#/components/schemas/WithOptionalAuthorEmail' - $ref: '#/components/schemas/WithOptionalFindingsBySeverity' - $ref: '#/components/schemas/WithOptionalReportFindings' ReportQuery: type: object properties: page: type: object properties: num: type: integer minimum: 1 maximum: 10000 default: 0 size: type: integer minimum: 10 maximum: 100 default: 10 filters: type: array items: $ref: '#/components/schemas/FilterItem' sortBy: type: object properties: field: type: string direction: type: string enum: - ascend - descend WithOptionalSha256: type: object properties: sha256: type: string WithOptionalKind: type: object properties: kind: type: string WithOptionalEmail: type: object properties: email: type: string example: user@binarly.io SbomReport: type: object additionalProperties: {} x-go-type: string WithOptionalContainerPath: type: object properties: containerPath: type: string WithName: type: object required: - name properties: name: type: string WithOptionalIsArchived: type: object properties: isArchived: type: boolean WithEvidence: type: object required: - evidence properties: evidence: type: array items: $ref: '#/components/schemas/FindingEvidence' WithComponentName: type: object required: - componentName properties: componentName: type: string ForbiddenErrorResponse: type: object required: - message - permission - resourceName properties: message: type: string permission: type: string resourceName: type: string details: type: array items: $ref: '#/components/schemas/ErrorDetail' WithOptionalCryptoAlgorithmPrimitive: type: object properties: cryptoAlgorithmPrimitive: type: string Component: allOf: - $ref: '#/components/schemas/WithPlatformId' - $ref: '#/components/schemas/WithName' - $ref: '#/components/schemas/WithPath' - $ref: '#/components/schemas/WithOptionalContainerPath' - $ref: '#/components/schemas/WithOptionalAttributes' - $ref: '#/components/schemas/WithOptionalKind' - $ref: '#/components/schemas/WithOptionalMd5' - $ref: '#/components/schemas/WithOptionalSha1' - $ref: '#/components/schemas/WithOptionalSha256' WithOptionalSecret: type: object properties: secret: $ref: '#/components/schemas/Secret' NISTIR8547Security: type: object oneOf: - $ref: '#/components/schemas/NISTIR8547DigitalSignatureSecurity' - $ref: '#/components/schemas/NISTIR8547KeyEstablishmentSecurity' - $ref: '#/components/schemas/NISTIR8547BlockCipherSecurity' - $ref: '#/components/schemas/NISTIR8547HashAndXOFSecurity' WithDisplayName: type: object required: - displayName properties: displayName: type: string WithCount: type: object required: - count properties: count: type: integer WithOptionalEpssProbability: type: object properties: epssProbability: type: number format: float WithOptionalIsNistIR8547Compliant: type: object properties: isNistIR8547Compliant: type: boolean WithImages: type: object required: - images properties: images: type: array items: $ref: '#/components/schemas/Image' WithOptionalMetadata: type: object properties: metadata: type: object additionalProperties: type: string WithIsReachable: type: object required: - isReachable properties: isReachable: type: boolean WithPath: type: object required: - path properties: path: type: string WithOptionalCvssLatestBaseScore: type: object properties: cvssLatestBaseScore: type: number format: float FindingTypeCount: allOf: - $ref: '#/components/schemas/WithFindingType' - $ref: '#/components/schemas/WithCount' ErrorDetail: type: object required: - error properties: reason: type: string x-go-type-skip-optional-pointer: true field: type: string x-go-type-skip-optional-pointer: true service: type: string x-go-type-skip-optional-pointer: true User: readOnly: true allOf: - $ref: '#/components/schemas/WithUserId' - $ref: '#/components/schemas/WithOptionalId' - $ref: '#/components/schemas/WithOptionalCreateTime' - $ref: '#/components/schemas/WithOptionalEmail' - $ref: '#/components/schemas/WithOptionalUserStatus' - $ref: '#/components/schemas/WithOptionalResourceType' ReportFinding: allOf: - $ref: '#/components/schemas/WithId' - $ref: '#/components/schemas/WithCreateTime' - $ref: '#/components/schemas/WithName' - $ref: '#/components/schemas/WithFindingType' - $ref: '#/components/schemas/WithFinding' - $ref: '#/components/schemas/WithComponent' - $ref: '#/components/schemas/WithSeverity' - $ref: '#/components/schemas/WithOptionalCvssLatestBaseScore' - $ref: '#/components/schemas/WithOptionalEpssProbability' - $ref: '#/components/schemas/WithIsEstimatedEpss' - $ref: '#/components/schemas/WithIsReachable' - $ref: '#/components/schemas/WithFindingStatus' - $ref: '#/components/schemas/WithDisplayName' - $ref: '#/components/schemas/WithOptionalSecret' - $ref: '#/components/schemas/WithOptionalSsvcDecision' - $ref: '#/components/schemas/WithIsSsvcParanoidDecision' WithKevCount: type: object required: - kev properties: kev: type: integer ScanState: allOf: - $ref: '#/components/schemas/WithId' - $ref: '#/components/schemas/WithScanStateType' - $ref: '#/components/schemas/WithOptionalParent' - $ref: '#/components/schemas/WithCreateTime' - $ref: '#/components/schemas/WithOptionalAuthor' - $ref: '#/components/schemas/WithOptionalSource' GridQuery: type: object properties: page: type: object properties: num: type: integer minimum: 1 maximum: 10000 default: 0 size: type: integer minimum: 0 maximum: 100 default: 10 filters: type: array items: $ref: '#/components/schemas/FilterItem' sortBy: oneOf: - type: object properties: field: type: string direction: type: string enum: - ascend - descend - type: array items: type: object properties: field: type: string direction: type: string enum: - ascend - descend WithOptionalAuthorEmail: type: object properties: authorEmail: type: string UpdateImagePayload: type: object allOf: - $ref: '#/components/schemas/WithOptionalName' - $ref: '#/components/schemas/WithOptionalVersion' WithIds: type: object required: - ids properties: ids: type: array items: $ref: '#/components/schemas/ULID' WithDownloadUrl: type: object required: - downloadUrl properties: downloadUrl: type: string readOnly: true NISTIR8547KeyEstablishmentSecurity: type: object properties: keyEstablishment: $ref: '#/components/schemas/NISTIR8547KeyEstablishment' required: - keyEstablishment WithOptionalUserStatus: type: object properties: status: type: string x-go-type: string enum: - active - archived WithScanStateType: type: object required: - type properties: type: type: string enum: - new - running - failed - done - cancelled WithFindingType: type: object required: - type properties: type: type: string enum: - knownVulnerability - unknownVulnerability - maliciousCode - suspiciousCode - dependencyVulnerability - cryptographicAsset - mitigation - weakness - supplyChainFailure - secret - leakedSecret - uncategorized WithOptionalMd5: type: object properties: md5: type: string WithCompliance: type: object required: - compliance properties: compliance: type: array items: $ref: '#/components/schemas/FindingCompliance' NISTIR8547Recommendation: type: object properties: algorithm: type: string parameter: type: string security: $ref: '#/components/schemas/NISTIR8547Security' NISTIR8547KeyEstablishment: type: object properties: securityStrength: type: string securityCategory: type: integer required: - securityStrength - securityCategory CryptographicMaterialsReportImage: allOf: - $ref: '#/components/schemas/WithId' - $ref: '#/components/schemas/WithParent' - $ref: '#/components/schemas/WithName' - $ref: '#/components/schemas/WithProductName' - $ref: '#/components/schemas/WithCreateTime' - $ref: '#/components/schemas/WithOptionalAuthorEmail' - $ref: '#/components/schemas/WithCryptographicMaterialsReportFindings' FindingCompliance: type: object properties: nistIr8547: $ref: '#/components/schemas/NISTIR8547' NISTIR8547Recommendations: type: object properties: recommendations: type: array items: $ref: '#/components/schemas/NISTIR8547Recommendation' WithExpiredCertificatesCount: type: object required: - expiredCertificatesCount properties: expiredCertificatesCount: type: integer WithOptionalSha1: type: object properties: sha1: type: string FindingEvidenceArtefact: type: object properties: {} NISTIR8547HashAndXOF: type: object properties: collisionSecurityStrength: type: string collisionSecurityCategory: type: integer preimageSecurityStrength: type: string preimageSecurityCategory: type: integer required: - collisionSecurityStrength - collisionSecurityCategory - preimageSecurityStrength - preimageSecurityCategory WithIsEstimatedEpss: type: object required: - isEstimatedEpss properties: isEstimatedEpss: type: boolean WithFinding: type: object required: - finding properties: finding: {} WithOptionalVersion: type: object properties: version: type: string NISTIR8547BlockCipherSecurity: type: object properties: blockCipher: $ref: '#/components/schemas/NISTIR8547BlockCipher' required: - blockCipher WithParent: type: object required: - parent properties: parent: $ref: '#/components/schemas/Parent' WithUnsafeFunctionsCount: type: object required: - unsafeFunctionsCount properties: unsafeFunctionsCount: type: integer WithOptionalResourceType: type: object properties: resourceType: $ref: '#/components/schemas/ResourceType' NISTIR8547: type: object properties: algorithm: type: string parameter: $ref: '#/components/schemas/NISTIR8547Parameter' compliant: $ref: '#/components/schemas/NISTIR8547SecurityProfile' notCompliant: $ref: '#/components/schemas/NISTIR8547Recommendations' WithOptionalParent: type: object properties: parent: $ref: '#/components/schemas/Parent' WithIsSsvcParanoidDecision: type: object required: - isSsvcParanoidDecision properties: isSsvcParanoidDecision: type: boolean WithOptionalFindingsBySeverity: type: object properties: findingsBySeverity: $ref: '#/components/schemas/CountBySeverity' NISTIR8547Transition: type: object properties: status: $ref: '#/components/schemas/NISTIR8547ApprovalStatus' year: type: integer WithFindingStatus: type: object required: - status properties: status: type: string enum: - new - in progress - rejected - remediated NISTIR8547Parameter: type: object properties: parameter: type: string transitions: type: array items: $ref: '#/components/schemas/NISTIR8547Transition' NISTIR8547ApprovalStatus: type: string enum: - UNSPECIFIED - ACCEPTABLE - DEPRECATED - DISALLOWED - LEGACY_USE WithAuthor: type: object required: - author properties: author: $ref: '#/components/schemas/User' WithOptionalSsvcDecision: type: object properties: ssvcDecision: type: string enum: - track - trackStar - attend - act WithFindingTypeCounts: type: object required: - findingTypeCounts properties: findingTypeCounts: type: array items: $ref: '#/components/schemas/FindingTypeCount' WithOptionalFiles: type: object properties: files: type: array items: $ref: '#/components/schemas/File' NISTIR8547DigitalSignature: type: object properties: securityStrength: type: string securityCategory: type: integer required: - securityStrength - securityCategory BulkIds: $ref: '#/components/schemas/WithIds' WithFilename: type: object required: - filename properties: filename: type: string WithOptionalAttributes: type: object properties: attributes: {} WithCryptographicAssetsCount: type: object required: - cryptographicAssetsCount properties: cryptographicAssetsCount: type: integer Parent: type: string format: path description: URI path (path-noscheme) without the leading / readOnly: true x-go-type: string x-go-type-skip-optional-pointer: true WithOptionalAuthor: type: object properties: author: $ref: '#/components/schemas/User' WithCreateTime: type: object required: - createTime properties: createTime: type: string readOnly: true example: '2024-01-01T01:00:00Z' WithOptionalCreateTime: type: object properties: createTime: type: string readOnly: true example: '2024-01-01T01:00:00Z' WithUserId: type: object required: - userId properties: userId: type: string readOnly: true x-go-type-skip-optional-pointer: true parameters: PathImageId: name: imageId in: path description: Image ID required: true schema: $ref: '#/components/schemas/ULID' QueryContentType: name: contentType in: query description: Content Type required: true schema: type: string enum: - pdf - json - xml - csv - md PathProductId: name: productId in: path description: Product ID required: true schema: $ref: '#/components/schemas/ULID' QueryOptionalContentType: name: contentType in: query description: Content Type required: false schema: type: string enum: - pdf - json - xml - csv - md QueryOptionalFindingId: name: findingId in: query description: Finding ID schema: $ref: '#/components/schemas/ULID' securitySchemes: auth: type: http scheme: bearer bearerFormat: JWT