# Installs

## Domain Types

### Install

- `Install = object { id, created_at, package_id, 9 more }`

  - `id: string`

  - `created_at: string`

  - `package_id: string`

  - `package_slug: string`

  - `status: InstallStatus`

    - `"pending"`

    - `"active"`

    - `"deleting"`

    - `"failed"`

    - `"deleted"`

  - `updated_at: string`

  - `inputs: optional map[unknown]`

    Install-specific input values that supplement the package's inputs.
    Merged with the package's input values to form the complete
    `entities.inputs` for entity binding evaluation.

  - `links: optional array of object { href, rel, properties, 2 more }`

    - `href: string`

      Target reference.

      Fragment URIs (`#name`) reference other entities in the same graph by
      their local name (the key in the entity map). Absolute paths and URLs reference
      external resources outside the graph.

    - `rel: string`

      Link relation type.

    - `properties: optional map[unknown]`

      Additional metadata keyed by property name.

    - `titles: optional map[string]`

      Human-readable titles keyed by BCP 47 language tag.

    - `type: optional string`

      Media type of the target resource (per RFC 7033 section 4.4.4.3).
      Applies to external `href`s; typically omitted for intra-graph references.

  - `org_id: optional string`

  - `outputs: optional map[unknown]`

    Resolved output values produced by the provisioner, conforming to the
    package's `Package.outputs.schema`. Flat — the provisioner evaluates
    `Package.outputs.bindings` against the resolved entity graph.

  - `package_version: optional number`

  - `zone_id: optional string`

### Install List

- `InstallList = object { items, pagination }`

  - `items: array of Install`

    - `id: string`

    - `created_at: string`

    - `package_id: string`

    - `package_slug: string`

    - `status: InstallStatus`

      - `"pending"`

      - `"active"`

      - `"deleting"`

      - `"failed"`

      - `"deleted"`

    - `updated_at: string`

    - `inputs: optional map[unknown]`

      Install-specific input values that supplement the package's inputs.
      Merged with the package's input values to form the complete
      `entities.inputs` for entity binding evaluation.

    - `links: optional array of object { href, rel, properties, 2 more }`

      - `href: string`

        Target reference.

        Fragment URIs (`#name`) reference other entities in the same graph by
        their local name (the key in the entity map). Absolute paths and URLs reference
        external resources outside the graph.

      - `rel: string`

        Link relation type.

      - `properties: optional map[unknown]`

        Additional metadata keyed by property name.

      - `titles: optional map[string]`

        Human-readable titles keyed by BCP 47 language tag.

      - `type: optional string`

        Media type of the target resource (per RFC 7033 section 4.4.4.3).
        Applies to external `href`s; typically omitted for intra-graph references.

    - `org_id: optional string`

    - `outputs: optional map[unknown]`

      Resolved output values produced by the provisioner, conforming to the
      package's `Package.outputs.schema`. Flat — the provisioner evaluates
      `Package.outputs.bindings` against the resolved entity graph.

    - `package_version: optional number`

    - `zone_id: optional string`

  - `pagination: object { after_cursor, before_cursor, total_count }`

    Cursor-based pagination metadata returned alongside a list of results

    - `after_cursor: string`

      An opaque cursor used for paginating through a list of results

    - `before_cursor: string`

      An opaque cursor used for paginating through a list of results

    - `total_count: optional number`

      Total number of items across all pages. Only present when the request includes ?expand[]=total_count.

### Install Status

- `InstallStatus = "pending" or "active" or "deleting" or 2 more`

  - `"pending"`

  - `"active"`

  - `"deleting"`

  - `"failed"`

  - `"deleted"`
