Binarly Grid API

The Grid API from Binarly — 12 operation(s) for grid.

OpenAPI Specification

binarly-grid-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Binarly Assistant Grid API
  version: 4.275.2
security:
- auth: []
tags:
- name: Grid
paths:
  /api/v4/grids/products:gridList:
    post:
      summary: Grid List Products
      operationId: GridListProducts
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridProducts'
        '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/grids/images:gridList:
    post:
      summary: Grid List Images
      operationId: GridListImages
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridImagesQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridImages'
        '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/grids/scans:gridList:
    post:
      summary: Grid List Scans
      operationId: GridListScans
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridScans'
        '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/grids/files:gridList:
    post:
      summary: Grid List Files
      operationId: GridListFiles
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridFiles'
        '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/grids/findings:gridList:
    post:
      summary: Grid List Findings
      operationId: GridListFindings
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Grid
      parameters:
      - $ref: '#/components/parameters/QueryOptionalContentType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridFindingsQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridFindings'
            text/csv:
              schema:
                type: string
        '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/grids/dependencies:gridList:
    post:
      summary: Grid List Dependencies
      operationId: GridListDependencies
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridDependencies'
        '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/grids/components:gridList:
    post:
      summary: Grid List Components
      operationId: GridListComponents
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridComponents'
        '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/grids/cryptographicAssets:gridList:
    post:
      summary: Grid List Cryptographic Assets
      operationId: GridListCryptographicAssets
      x-permission: ''
      x-pass-resource-ids:
        resourceType: Product
        permission: products.view
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridCryptographicAssets'
        '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/grids/customRules:gridList:
    post:
      summary: Grid List Custom Rules
      operationId: GridListRules
      x-permission: customRules.list
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridRules'
        '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/grids/users:gridList:
    post:
      summary: Grid List Users
      operationId: GridListUsers
      x-permission: users.list
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridUsers'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/v4/grids/groups:gridList:
    post:
      summary: Grid List Groups
      operationId: GridListGroups
      x-permission: groups.list
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridGroups'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/v4/grids/groupMembers:gridList:
    post:
      summary: Grid List Group Members
      operationId: GridListGroupMembers
      x-permission: ''
      tags:
      - Grid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GridQuery'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GridGroupMembers'
        '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'
    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'
    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:
    WithUpdateTime:
      type: object
      required:
      - updateTime
      properties:
        updateTime:
          type: string
    WithOptionalModuleGuid:
      type: object
      properties:
        moduleGuid:
          $ref: '#/components/schemas/UUID'
    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'
    WithOptionalExploitabilityCounts:
      type: object
      properties:
        exploitabilityCounts:
          $ref: '#/components/schemas/ExploitabilityCounts'
    WithProduct:
      type: object
      required:
      - product
      properties:
        product:
          type: string
    RoleBinding:
      type: object
      required:
      - id
      - role
      - identity
      - resourceName
      properties:
        id:
          $ref: '#/components/schemas/ULID'
        role:
          $ref: '#/components/schemas/Role'
        identity:
          oneOf:
          - $ref: '#/components/schemas/User'
          - $ref: '#/components/schemas/Group'
        resourceName:
          $ref: '#/components/schemas/ResourceName'
    GridImages:
      allOf:
      - $ref: '#/components/schemas/WithGridImages'
      - $ref: '#/components/schemas/WithTotals'
    WithOptionalDependencyId:
      type: object
      properties:
        dependencyId:
          allOf:
          - $ref: '#/components/schemas/ULID'
    NISTIR8547HashAndXOFSecurity:
      type: object
      properties:
        hashAndXOF:
          $ref: '#/components/schemas/NISTIR8547HashAndXOF'
      required:
      - hashAndXOF
    WithOptionalComponentId:
      type: object
      properties:
        componentId:
          type: string
    WithSeveritiesCritical:
      type: object
      required:
      - severitiesCritical
      properties:
        severitiesCritical:
          type: integer
    WithSeverity:
      type: object
      required:
      - severity
      properties:
        severity:
          type: string
          enum:
          - unspecified
          - low
          - medium
          - high
          - critical
    WithOptionalIsReachable:
      type: object
      properties:
        isReachable:
          type: boolean
    Role:
      allOf:
      - $ref: '#/components/schemas/WithId'
      - $ref: '#/components/schemas/WithName'
      - $ref: '#/components/schemas/WithPermissions'
      - $ref: '#/components/schemas/WithBoundResourceTypes'
    NISTIR8547BlockCipher:
      type: object
      properties:
        securityStrength:
          type: string
        securityCategory:
          type: integer
      required:
      - securityStrength
      - securityCategory
    WithOptionalOrgRoleBindings:
      type: object
      properties:
        orgRoleBindings:
          type: array
          items:
            $ref: '#/components/schemas/RoleBinding'
    WithGridCryptographicAssets:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/GridCryptographicAsset'
    WithProductId:
      type: object
      required:
      - productId
      properties:
        productId:
          allOf:
          - $ref: '#/components/schemas/ULID'
    Dependency:
      allOf:
      - $ref: '#/components/schemas/WithVendor'
      - $ref: '#/components/schemas/WithProduct'
      - $ref: '#/components/schemas/WithVersion'
      - $ref: '#/components/schemas/WithLicense'
      - $ref: '#/components/schemas/WithLinkage'
    WithSeveritiesUnspecified:
      type: object
      required:
      - severitiesUnspecified
      properties:
        severitiesUnspecified:
          type: integer
    WithOptionalDisplayName:
      type: object
      properties:
        displayName:
          type: string
    GridFindings:
      allOf:
      - $ref: '#/components/schemas/WithGridFindings'
      - $ref: '#/components/schemas/WithTotals'
    GridProductScanState:
      allOf:
      - $ref: '#/components/schemas/WithScanStateType'
      - $ref: '#/components/schemas/WithCreateTime'
    WithOptionalProductId:
      type: object
      properties:
        productId:
          allOf:
          - $ref: '#/components/schemas/ULID'
    WithTotals:
      type: object
      required:
      - total
      properties:
        total:
          type: integer
    WithGridComponents:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/GridComponent'
    WithOptionalImageId:
      type: object
      properties:
        imageId:
          allOf:
          - $ref: '#/components/schemas/ULID'
    WithSeveritiesLow:
      type: object
      required:
      - severitiesLow
      properties:
        severitiesLow:
          type: integer
    WithOptionalGroupRoleNames:
      type: object
      properties:
        groupRoleNames:
          type: array
          items:
            type: string
    FindingClassification:
      type: object
      properties:
        cwe:
          type: string
        attck:
          type: string
        mbc:
          type: string
    WithFindingsWithKnownFixAll:
      type: object
      required:
      - findingsWithKnownFixAll
      properties:
        findingsWithKnownFixAll:
          type: integer
    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'
    WithOptionalIsLatest:
      type: object
      properties:
        isLatest:
          type: boolean
    WithOptionalSource:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/ULID'
    Group:
      allOf:
      - $ref: '#/components/schemas/WithId'
      - $ref: '#/components/schemas/WithCreateTime'
      - $ref: '#/components/schemas/WithName'
      - $ref: '#/components/schemas/WithResourceType'
    NISTIR8547SecurityProfile:
      type: object
      properties:
        security:
          $ref: '#/components/schemas/NISTIR8547Security'
    WithOptionalImageCounts:
      type: object
      properties:
        counts:
          $ref: '#/components/schemas/ImageCounts'
    WithOptionalIsKev:
      type: object
      properties:
        isKev:
          type: boolean
    WithGridUsers:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/GridUser'
    GridComponents:
      allOf:
      - $ref: '#/components/schemas/WithGridComponents'
      - $ref: '#/components/schemas/WithTotals'
    ResourceType:
      type: string
      enum:
      - Org
      - Group
      - Product
      - User
      - Image
      - Finding
      - Occurrence
    WithSeveritiesMedium:
      type: object
      required:
      - severitiesMedium
      properties:
        severitiesMedium:
          type: integer
    WithGridRules:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/GridRule'
    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'
    WithOptionalArchivedBy:
      type: object
      properties:
        archivedBy:
          $ref: '#/components/schemas/User'
    WithRansomware:
      type: object
      required:
      - ransomware
      properties:
        ransomware:
          type: integer
    WithProductName:
      type: object
      required:
      - productName
      properties:
        productName:
          type: string
    WithGridProducts:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/GridProduct'
    GridFiles:
      allOf:
      - $ref: '#/components/schemas/WithGridFiles'
      - $ref: '#/components/schemas/WithTotals'
    WithGridGroups:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/GridGroup'
    WithOptionalCryptoAlgorithmName:
      type: object
      properties:
        cryptoAlgorithmName:
          type: string
    WithOptionalComponentsCount:
      type: object
      properties:
        componentsCount:
          type: integer
    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
    WithOptionalFindingSubtype:
      type: object
      properties:
        subtype:
          type: string
          enum:
          - algorithm
          - certificate
          - protocol
          - key
    WithId:
      type: object
      required:
      - id
      properties:
        id:
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/ULID'
    WithVersion:
      type: object
      required:
      - version
      properties:
        version:
          type: string
    WithIsLatest:
      type: object
      required:
      - isLatest
      properties:
        isLatest:
          type: boolean
    WithComponent:
      type: object
      required:
      - component
      properties:
        component:
          $ref: '#/components/schemas/Component'
    NISTIR8547DigitalSignatureSecurity:
      type: object
      properties:
        digitalSignature:
          $ref: '#/components/schemas/NISTIR8547DigitalSignature'
      required:
      - digitalSignature
    WithOptionalTitle:
      type: object
      properties:
        title:
          type: string
    WithIsVulnerable:
      type: object
      required:
      - isVulnerable
      properties:
        isVulnerable:
          type: boolean
    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
    WithOptionalKnownFixedVersion:
      type: object
      properties:
        knownFixedVersion:
          type: string
    WithOptionalDuration:
      description: Duration in milliseconds
      type: object
      properties:
        duration:
          type: integer
          format: int64
          minimum: 0
    WithOptionalProductName:
      type: object
      properties:
        productName:
          type: string
    WithIsAttachment:
      type: object
      required:
      - isAttachment
      properties:
        isAttachment:
          type: boolean
          default: false
          readOnly: true
    UUID:
      type: string
      format: uuid
    WithOptionalExploitabilityPredicates:
      type: object
      properties:
        exploitabilityPredicates:
          type: array
          items:
            type: string
            enum:
            - kev
            - ransomware
            - weaponizedExploit
            - verifiedExploit
            - publicExploit
            - publicPoc
    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'
    WithGridScans:
      type: object
      required:
      - rows
      properties:
        rows:
          type: array
          items:
            $ref: '#/components/schemas/GridScan'
    WithOptionalFindingStatus:
      type: object
      properties:
        status:
          type: string
          enum:
          - new
          - in progress
          - rejected
          - remediated
    GridFindingsQuery:
      allOf:
      - $ref: '#/components/schemas/GridQuery'
      - $ref: '#/components/schemas/WithGridFindingsFields'
    FindingIdentifier:
      type: object
      properties:
        brly:
          type: string
        cve:
          type: string
        ghsa:
          type: string
        gsd:
          type: string
        osv:
          type: string
    WithOptionalImages:
      type: object
      properties:
        images:
          type: array
          items:
            $ref: '#/components/schemas/Image'
    WithOptionalCryptoProtocolName:
      type: object
      properties:
        cryptoProtocolName:
          type: string
    WithOptionalHasKnownFix:
      type: object
      properties:
        hasKnownFix:
          type: boolean
    GridUser:
      allOf:
      - $ref: '#/components/schemas/WithId'
      - $ref: '#/components/schemas/WithCreateTime'
      - $ref: '#/components/schemas/WithEmail'
      - $ref: '#/components/schemas/WithOptionalUserStatus'
      - $ref: '#/components/schemas/WithOptionalResourceType'
      - $ref: '#/components/schemas/WithOptionalOrgRoleBindings'
      - $ref: '#/components/schemas/WithOptionalOrgRoleNames'
    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'
    WithOptionalToolName:
      type: object
      properties:
        toolName:
          type: string
    WithOptionalLatestScanState:
      type: object
      properties:
        latestScanState:
          $ref: '#/components/schemas/ScanState'
    WithNewEscalationsCount:
      type: object
      required:
      - newEscalationsCount
      properties:
        newEscalationsCount:
          type: integer
    GridProducts:
      allOf:
      - $ref: '#/components/schemas/WithGridProducts'
      - $ref: '#/components/schemas/WithTotals'
    WithOptionalComponentName:
      type: object
      properties:
        componentName:
          type: string
    WithPlatformId:
      type: object
      required:
      - id
      properties:
        id:
          type: string
    WithPublicPoc:
      type: object
      required:
      - publicPoc
      properties:
        publicPoc:
          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
    WithOptionalFileId:
      type: object
      properties:
        fileId:
          allOf:
          - $ref: '#/components/schemas/ULID'
    WithOptionalSha256:
      type: object
      properties:
        sha256:
          type: string
    WithOptionalKind:
      type: object
      properties:
        kind:
          type: string
    WithSeveritiesHigh:
      type: object
      required:
      - severitiesHigh
      properties:
        severitiesHigh:
          type: integer
    WithOptionalEmail:
      type: object
      properties:
        email:
          type: string
          example: user@binarly.io
    WithOptionalIsEstimatedEpss:
      type: object
      properties:
        isEstimatedEpss:
          type: boolean
    WithOptionalLatestGridProductScanState:
      type: object
      properties:
        latestScanState:
          $ref: '#/components/schemas/GridProductScanState'
    GridFinding:
      allOf:
      - $ref: '#/components/schemas/WithId'
      - $ref: '#/components/schemas/WithOptionalProductId'
      - $ref: '#/components/schemas/WithOptionalProductName'
      - $ref: '#/components/schemas/WithOptionalImages'
      - $ref: '#/components/schemas/WithOptionalCreateTime'
      - $ref: '#/components/schemas/WithOptionalName'
      - $ref: '#/components/schemas/WithOptionalToolName'
      - $ref: '#/components/schemas/WithOptionalFindingType'
      - $ref: '#/components/schemas/WithOptionalFindingSubtype'
      - $ref: '#/components/schemas/WithOptionalIdentifiers'
      - $ref: '#/components/schemas/WithOptionalClassifications'
      - $ref: '#/components/schemas/WithOptionalReferences'
      - $ref: '#/components/schemas/WithOptionalComponent'
      - $ref: '#/components/schemas/WithOptionalSeverity'
      - $ref: '#/components/schemas/WithOptionalDescription'
      - $ref: '#/components/schemas/WithOptionalIsEstimatedEpss'
      - $ref: '#/components/schemas/WithOptionalIsReachable'
      - $ref: '#/components/schemas/WithOptionalHasJiraTicket'
      - $ref: '#/components/schemas/WithOptionalFindingStatus'
      - $ref: '#/components/schemas/WithOptionalComponentName'
      - $ref: '#/components/schemas/WithOptionalComponentId'
      - $ref: '#/components/schemas/WithOptionalDisplayName'
      - $ref: '#/components/schemas/WithOptionalComponentNames'
      - $ref: '#/components/schemas/WithOptionalIsSsvcParanoidDecision'
      - $ref: '#/components/schemas/WithOptionalHasKnownFix'
      - $ref: '#/components/schemas/WithOptionalKnownFixedVersion'
      - $ref: '#/components/schemas/WithOptionalIsKev'
      - $ref: '#/components/schemas/WithOptionalIsKnownRansomwareUse'
      - $ref: '#/components/schemas/WithOptionalDependencyComponentsCount'
      - $ref: '#/components/schemas/WithOptionalImageId'
      - $ref: '#/components/schemas/WithOptionalScanId'
      - $ref: '#/components/schemas/WithOptionalDependencyId'
      - $ref: '#/components/schemas/WithOptionalReferencedArtefactId'
      - $ref: '#/components/schemas/WithOptionalCvssLatestBaseScore'
      - $ref: '#/components/schemas/WithOptionalEpssProbability'
      - $ref: '#/components/schemas/WithOptionalSecret'
      - $ref: '#/components/schemas/WithOptionalSsvcDecision'
      - $ref: '#/components/schemas/WithOptionalCryptoAlgorithmName'
      - $ref: '#/components/schemas/WithOptionalCryptoAlgorithmPrimitive'
      - $ref: '#/components/schemas/WithOptionalDependency'
      - $ref: '#/components/schemas/WithOptionalIsNistIR8547Compliant'
      - $ref: '#/components/schemas/WithOptionalCryptoProtocolName'
      - $ref: '#/components/schemas/WithOptionalCompareLeftImageId'
      - $ref: '#/components/schemas/WithOptionalCompareRightImageId'
      - $ref: '#/components/schemas/WithOptionalCompareSide'
      - $ref: '#/components/schemas/WithOptionalCompliance'
      - $ref: '#/components/schemas/WithOptionalExploitabilityPredi

# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/binarly/refs/heads/main/openapi/binarly-grid-api-openapi.yml