# Versions_ListMaterializationArtifacts

`GET /v1/accounts/{account}/datasets/{dataset}/versions/{version}/materializations/{materialization}/artifacts`

A rendered dataset's files in path order, each with a fresh signed URI.
FAILED_PRECONDITION until the materialization has SUCCEEDED.

- 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.
- `version` (path, string, required): The version id.
- `materialization` (path, string, required): The materialization id.
- `pageSize` (query, integer (int32)): At most this many; 0 means 128, the maximum is 512.
- `pageToken` (query, string): From a previous response's next_page_token. A token from before a new
  renderer took over is refused (FAILED_PRECONDITION): list again from
  the start.

## Responses

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

## Schemas

```yaml
qualia.v1.ListMaterializationArtifactsResponse:
  type: object
  properties:
    materializationArtifacts:
      type: array
      items:
        $ref: "#/components/schemas/qualia.v1.MaterializationArtifact"
      description: One page of files, in path order.
    nextPageToken:
      type: string
      description: Empty on the last page.
  description: Response for Versions.ListMaterializationArtifacts.
qualia.v1.MaterializationArtifact:
  type: object
  properties:
    name:
      type: string
      description: |-
        .../materializations/{materialization}/artifacts/{artifact}; {artifact}
        is its position in the listing, from 0.
    path:
      readOnly: true
      type: string
      description: Where it goes in the dataset's directory, e.g. "meta/info.json".
    role:
      readOnly: true
      enum:
        - ROLE_UNSPECIFIED
        - META
        - DATA
        - VIDEO
      type: string
      description: What it holds.
      format: enum
    sizeBytes:
      readOnly: true
      type: string
      description: Its size in bytes.
    sha256:
      readOnly: true
      type: string
      description: Lowercase hex SHA-256 of its bytes, to check a download against.
    episode:
      readOnly: true
      type: string
      description: |-
        accounts/{account}/datasets/{dataset}/episodes/{episode}: the episode
        it was rendered from, when it holds one episode only.
    camera:
      readOnly: true
      type: string
      description: The camera key, for a video.
    uri:
      readOnly: true
      type: string
      description: Signed GET URI of its bytes; honours HTTP Range. Valid until expire_time.
    expireTime:
      readOnly: true
      type: string
      description: When uri stops working; list again for a fresh one.
      format: date-time
  description: One file of a rendered dataset.
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.
```
