# Issues_SummarizeIssues

`GET /v1/accounts/{account}/datasets/{dataset}/issues:summarize`

Counts per code and state over the same set ListIssues returns for the
same parent and filter (for a mixture: its own plus upstream issues);
`dataset = "<parent>"` in the filter narrows to the parent's own scope.
The overview's issues table passes `dataset = parent` for the
rows it offers actions on, since only those can be dismissed there.

- Base URL: `https://junction-api.qualiastudios.dev`
- Authentication: an API key in the `X-API-Key` header

## Parameters

- `account` (path, string, required): The account id.
- `dataset` (path, string, required): The dataset id.
- `filter` (query, string): Same language as ListIssues.filter.

## Responses

- `200` OK: `application/json` `qualia.v1.SummarizeIssuesResponse`
- `default` Default error response: `application/json` `google.rpc.Status`

## Schemas

```yaml
qualia.v1.SummarizeIssuesResponse:
  type: object
  properties:
    rows:
      type: array
      items:
        $ref: "#/components/schemas/qualia.v1.SummarizeIssuesResponse_Row"
      description: One row per code, most open first.
  description: Response for Issues.SummarizeIssues.
qualia.v1.SummarizeIssuesResponse_Row:
  type: object
  properties:
    code:
      type: string
      description: The code; empty groups a person's own words.
    kind:
      enum:
        - KIND_UNSPECIFIED
        - TAKE
        - RECORDING
        - SCENE
        - MOTION
        - GRIPPER
        - CONTROL
        - DISTRIBUTION
        - MIXTURE
      type: string
      description: Its kind.
      format: enum
    title:
      type: string
      description: Its label.
    authorKind:
      enum:
        - KIND_UNSPECIFIED
        - PERSON
        - VALIDATION
        - RULE
        - MODEL
        - OPERATOR
        - SYSTEM
      type: string
      description: Who raises it.
      format: enum
    blocks:
      type: boolean
      description: Whether it blocks (false for notes).
    openCount:
      type: string
      description: Open issues with this code.
    dismissedCount:
      type: string
      description: Dismissed issues with this code.
    openEpisodeCount:
      type: string
      description: Distinct episodes with an open one.
  description: "One row: a code and how often it stands in each state."
google.rpc.Status:
  oneOf:
    - $ref: "#/components/schemas/ApiError"
    - $ref: "#/components/schemas/GatewayError"
  description: "The body of a failed call: one of the two shapes below."
ApiError:
  title: API error
  type: object
  required:
    - code
    - message
    - retryable
    - details
  properties:
    code:
      type: string
      description: The gRPC code name in upper case, e.g. `NOT_FOUND`.
    message:
      type: string
    retryable:
      type: boolean
      description: Whether the same call may succeed if retried.
    details:
      type: array
      items:
        type: object
      description: "Empty, except when a dataset copy or move is refused: then one `google.rpc.ErrorInfo` with the refusal's `reason` code, its `domain` and, in `metadata`, the datasets it names."
  description: A refusal from the API itself.
GatewayError:
  title: Gateway error
  type: object
  required:
    - detail
  properties:
    detail:
      type: string
      description: What went wrong.
  description: A refusal from the gateway before the call reaches the API, for example `401` bad or missing API key, `403` key lacks the scope or environment closed, `413` body too large.
```
