# Build

## Submit container image build

`client.Build.New(ctx, body) (*AgentexCloudBuild, error)`

**post** `/v5/builds`

Create a container image build record.

This multipart request accepts exactly one image source. Provide `context_archive`
to stream a tar.gz build context to the configured cloud build provider, or provide
`image_url` to register an existing tagged image as an immediately successful build
without invoking the provider. `build_args` and `platform` apply only to archive
builds.

Exactly one of `agent_name` or `agent_id` must identify the target agent.
`agent_name` creates a new build-only agent and must be unused. `agent_id` targets
an existing agent. Archive builds normally return in a queued or running state;
prebuilt images can immediately be passed to Cloud Deploy using the returned build
ID. Archives must be non-empty and no larger than 500 MB.

### Parameters

- `body BuildNewParams`

  - `ImageName param.Field[string]`

    Name for the built image

  - `AgentID param.Field[string]`

    ID of the existing agent this build targets

  - `AgentName param.Field[string]`

    Name of the brand-new agent to create from this build

  - `BuildArgs param.Field[string]`

    JSON string of build arguments

  - `ContextArchive param.Field[Reader]`

    tar.gz archive containing the build context (Dockerfile and any files needed for the build)

  - `ImageTag param.Field[string]`

    Tag for the built image

  - `ImageURL param.Field[string]`

    Existing tagged image to register instead of running a build

  - `Platform param.Field[BuildNewParamsPlatform]`

    Target platform for the Docker build. Defaults to the build host's native architecture when not specified.

    - `const BuildNewParamsPlatformLinuxAmd64 BuildNewParamsPlatform = "linux/amd64"`

    - `const BuildNewParamsPlatformLinuxArm64 BuildNewParamsPlatform = "linux/arm64"`

    - `const BuildNewParamsPlatformLinuxArmV7 BuildNewParamsPlatform = "linux/arm/v7"`

  - `SourceCommit param.Field[string]`

    Git commit the build context was at.

  - `SourceDirty param.Field[bool]`

    Whether the work tree had uncommitted changes at build time.

  - `SourceRef param.Field[string]`

    Git branch or tag for source_commit.

  - `SourceRepo param.Field[string]`

    Normalized git remote the build context came from.

  - `SourceSubpath param.Field[string]`

    Build-context path relative to the repo root.

  - `WorkingTreeHash param.Field[string]`

    Deterministic SHA-256 content hash of the build inputs.

### Returns

- `type AgentexCloudBuild struct{…}`

  - `ID string`

    The unique identifier of the entity.

  - `AccountID string`

    The ID of the account that owns the given entity.

  - `AgentName string`

    The name of the agent that this build belongs to

  - `BuildStatus AgentexCloudBuildBuildStatus`

    The current build lifecycle status

    - `const AgentexCloudBuildBuildStatusQueued AgentexCloudBuildBuildStatus = "queued"`

    - `const AgentexCloudBuildBuildStatusRunning AgentexCloudBuildBuildStatus = "running"`

    - `const AgentexCloudBuildBuildStatusSuccess AgentexCloudBuildBuildStatus = "success"`

    - `const AgentexCloudBuildBuildStatusFailed AgentexCloudBuildBuildStatus = "failed"`

    - `const AgentexCloudBuildBuildStatusCancelling AgentexCloudBuildBuildStatus = "cancelling"`

    - `const AgentexCloudBuildBuildStatusCancelled AgentexCloudBuildBuildStatus = "cancelled"`

    - `const AgentexCloudBuildBuildStatusDeleting AgentexCloudBuildBuildStatus = "deleting"`

    - `const AgentexCloudBuildBuildStatusDeleteFailed AgentexCloudBuildBuildStatus = "delete_failed"`

    - `const AgentexCloudBuildBuildStatusTimedOut AgentexCloudBuildBuildStatus = "timed_out"`

    - `const AgentexCloudBuildBuildStatusError AgentexCloudBuildBuildStatus = "error"`

    - `const AgentexCloudBuildBuildStatusUnknown AgentexCloudBuildBuildStatus = "unknown"`

  - `CloudProviderBuildID string`

    The unique identifier of the build from the cloud provider, or an internal UUID when an existing image is copied without a provider build.

  - `CreatedAt Time`

    The date and time when the entity was created in ISO format.

  - `CreatedBy Identity`

    The identity that created the entity.

    - `ID string`

    - `Type IdentityType`

      - `const IdentityTypeUser IdentityType = "user"`

      - `const IdentityTypeServiceAccount IdentityType = "service_account"`

    - `Object IdentityObject`

      - `const IdentityObjectIdentity IdentityObject = "identity"`

  - `ImageName string`

    The name of the container image to build.

  - `ImageTag string`

    The tag for the container image.

  - `SourceCommit string`

    Git commit the build context was at, when a git work tree.

  - `SourceDirty bool`

    Whether the work tree had uncommitted changes at build time (null outside git).

  - `SourceRef string`

    Git branch or tag for source_commit, when resolvable.

  - `SourceRepo string`

    Normalized git remote the build context came from (host/path, no credentials).

  - `SourceSubpath string`

    Build-context path relative to the repo root (which agent, in a monorepo).

  - `WorkingTreeHash string`

    Deterministic SHA-256 content hash of the build inputs (not the tarball).

  - `AgentID string`

    The UUID of the agent that this build belongs to

  - `BuildEndTime Time`

    When the cloud provider finished the build

  - `BuildStartTime Time`

    When the cloud provider started the build

  - `ImageURL string`

    The URL of the container image. This is not guaranteed to be present until the build is complete.

  - `Object AgentexCloudBuildObject`

    - `const AgentexCloudBuildObjectAgentexCloudBuild AgentexCloudBuildObject = "agentex_cloud_build"`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  agentexCloudBuild, err := client.Build.New(context.TODO(), sgpdev.BuildNewParams{
    ImageName: "image_name",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", agentexCloudBuild.ID)
}
```

#### Response

```json
{
  "id": "id",
  "account_id": "account_id",
  "agent_name": "agent_name",
  "build_status": "queued",
  "cloud_provider_build_id": "cloud_provider_build_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "image_name": "image_name",
  "image_tag": "image_tag",
  "source_commit": "source_commit",
  "source_dirty": true,
  "source_ref": "source_ref",
  "source_repo": "source_repo",
  "source_subpath": "source_subpath",
  "working_tree_hash": "working_tree_hash",
  "agent_id": "agent_id",
  "build_end_time": "2019-12-27T18:11:19.117Z",
  "build_start_time": "2019-12-27T18:11:19.117Z",
  "image_url": "image_url",
  "object": "agentex_cloud_build"
}
```

## Get a build

`client.Build.Get(ctx, buildID) (*AgentexCloudBuild, error)`

**get** `/v5/builds/{build_id}`

Retrieve a single build by its ID, including its current lifecycle status.

Because builds run asynchronously after submission, the status returned here reflects the latest known
state and may still be queued or running; call this endpoint again to observe progression to a
terminal state such as success, failed, cancelled, or timed out. Responds with a not-found error if no
such build exists for the caller's account.

### Parameters

- `buildID string`

### Returns

- `type AgentexCloudBuild struct{…}`

  - `ID string`

    The unique identifier of the entity.

  - `AccountID string`

    The ID of the account that owns the given entity.

  - `AgentName string`

    The name of the agent that this build belongs to

  - `BuildStatus AgentexCloudBuildBuildStatus`

    The current build lifecycle status

    - `const AgentexCloudBuildBuildStatusQueued AgentexCloudBuildBuildStatus = "queued"`

    - `const AgentexCloudBuildBuildStatusRunning AgentexCloudBuildBuildStatus = "running"`

    - `const AgentexCloudBuildBuildStatusSuccess AgentexCloudBuildBuildStatus = "success"`

    - `const AgentexCloudBuildBuildStatusFailed AgentexCloudBuildBuildStatus = "failed"`

    - `const AgentexCloudBuildBuildStatusCancelling AgentexCloudBuildBuildStatus = "cancelling"`

    - `const AgentexCloudBuildBuildStatusCancelled AgentexCloudBuildBuildStatus = "cancelled"`

    - `const AgentexCloudBuildBuildStatusDeleting AgentexCloudBuildBuildStatus = "deleting"`

    - `const AgentexCloudBuildBuildStatusDeleteFailed AgentexCloudBuildBuildStatus = "delete_failed"`

    - `const AgentexCloudBuildBuildStatusTimedOut AgentexCloudBuildBuildStatus = "timed_out"`

    - `const AgentexCloudBuildBuildStatusError AgentexCloudBuildBuildStatus = "error"`

    - `const AgentexCloudBuildBuildStatusUnknown AgentexCloudBuildBuildStatus = "unknown"`

  - `CloudProviderBuildID string`

    The unique identifier of the build from the cloud provider, or an internal UUID when an existing image is copied without a provider build.

  - `CreatedAt Time`

    The date and time when the entity was created in ISO format.

  - `CreatedBy Identity`

    The identity that created the entity.

    - `ID string`

    - `Type IdentityType`

      - `const IdentityTypeUser IdentityType = "user"`

      - `const IdentityTypeServiceAccount IdentityType = "service_account"`

    - `Object IdentityObject`

      - `const IdentityObjectIdentity IdentityObject = "identity"`

  - `ImageName string`

    The name of the container image to build.

  - `ImageTag string`

    The tag for the container image.

  - `SourceCommit string`

    Git commit the build context was at, when a git work tree.

  - `SourceDirty bool`

    Whether the work tree had uncommitted changes at build time (null outside git).

  - `SourceRef string`

    Git branch or tag for source_commit, when resolvable.

  - `SourceRepo string`

    Normalized git remote the build context came from (host/path, no credentials).

  - `SourceSubpath string`

    Build-context path relative to the repo root (which agent, in a monorepo).

  - `WorkingTreeHash string`

    Deterministic SHA-256 content hash of the build inputs (not the tarball).

  - `AgentID string`

    The UUID of the agent that this build belongs to

  - `BuildEndTime Time`

    When the cloud provider finished the build

  - `BuildStartTime Time`

    When the cloud provider started the build

  - `ImageURL string`

    The URL of the container image. This is not guaranteed to be present until the build is complete.

  - `Object AgentexCloudBuildObject`

    - `const AgentexCloudBuildObjectAgentexCloudBuild AgentexCloudBuildObject = "agentex_cloud_build"`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  agentexCloudBuild, err := client.Build.Get(context.TODO(), "build_id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", agentexCloudBuild.ID)
}
```

#### Response

```json
{
  "id": "id",
  "account_id": "account_id",
  "agent_name": "agent_name",
  "build_status": "queued",
  "cloud_provider_build_id": "cloud_provider_build_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "image_name": "image_name",
  "image_tag": "image_tag",
  "source_commit": "source_commit",
  "source_dirty": true,
  "source_ref": "source_ref",
  "source_repo": "source_repo",
  "source_subpath": "source_subpath",
  "working_tree_hash": "working_tree_hash",
  "agent_id": "agent_id",
  "build_end_time": "2019-12-27T18:11:19.117Z",
  "build_start_time": "2019-12-27T18:11:19.117Z",
  "image_url": "image_url",
  "object": "agentex_cloud_build"
}
```

## List container image builds

`client.Build.List(ctx, query) (*CursorPage[AgentexCloudBuild], error)`

**get** `/v5/builds`

List container image build records for the caller's account as a paginated collection.

Each entry is one individual build with its current lifecycle status; pass `agent_name`,
`source_commit`, or `working_tree_hash` to return only matching builds. Archived builds are
excluded, and results are limited to builds the caller is permitted to read. Use this to
enumerate individual builds; to instead list agents that have been built but not yet
deployed, use `GET /v5/builds/undeployed`.

### Parameters

- `query BuildListParams`

  - `AgentName param.Field[string]`

    Filter builds by agent name

  - `EndingBefore param.Field[string]`

  - `Limit param.Field[int64]`

  - `SortBy param.Field[string]`

  - `SortOrder param.Field[SortOrder]`

  - `SourceCommit param.Field[string]`

    Filter builds by source git commit

  - `StartingAfter param.Field[string]`

  - `WorkingTreeHash param.Field[string]`

    Filter builds by build-context content hash

### Returns

- `type AgentexCloudBuild struct{…}`

  - `ID string`

    The unique identifier of the entity.

  - `AccountID string`

    The ID of the account that owns the given entity.

  - `AgentName string`

    The name of the agent that this build belongs to

  - `BuildStatus AgentexCloudBuildBuildStatus`

    The current build lifecycle status

    - `const AgentexCloudBuildBuildStatusQueued AgentexCloudBuildBuildStatus = "queued"`

    - `const AgentexCloudBuildBuildStatusRunning AgentexCloudBuildBuildStatus = "running"`

    - `const AgentexCloudBuildBuildStatusSuccess AgentexCloudBuildBuildStatus = "success"`

    - `const AgentexCloudBuildBuildStatusFailed AgentexCloudBuildBuildStatus = "failed"`

    - `const AgentexCloudBuildBuildStatusCancelling AgentexCloudBuildBuildStatus = "cancelling"`

    - `const AgentexCloudBuildBuildStatusCancelled AgentexCloudBuildBuildStatus = "cancelled"`

    - `const AgentexCloudBuildBuildStatusDeleting AgentexCloudBuildBuildStatus = "deleting"`

    - `const AgentexCloudBuildBuildStatusDeleteFailed AgentexCloudBuildBuildStatus = "delete_failed"`

    - `const AgentexCloudBuildBuildStatusTimedOut AgentexCloudBuildBuildStatus = "timed_out"`

    - `const AgentexCloudBuildBuildStatusError AgentexCloudBuildBuildStatus = "error"`

    - `const AgentexCloudBuildBuildStatusUnknown AgentexCloudBuildBuildStatus = "unknown"`

  - `CloudProviderBuildID string`

    The unique identifier of the build from the cloud provider, or an internal UUID when an existing image is copied without a provider build.

  - `CreatedAt Time`

    The date and time when the entity was created in ISO format.

  - `CreatedBy Identity`

    The identity that created the entity.

    - `ID string`

    - `Type IdentityType`

      - `const IdentityTypeUser IdentityType = "user"`

      - `const IdentityTypeServiceAccount IdentityType = "service_account"`

    - `Object IdentityObject`

      - `const IdentityObjectIdentity IdentityObject = "identity"`

  - `ImageName string`

    The name of the container image to build.

  - `ImageTag string`

    The tag for the container image.

  - `SourceCommit string`

    Git commit the build context was at, when a git work tree.

  - `SourceDirty bool`

    Whether the work tree had uncommitted changes at build time (null outside git).

  - `SourceRef string`

    Git branch or tag for source_commit, when resolvable.

  - `SourceRepo string`

    Normalized git remote the build context came from (host/path, no credentials).

  - `SourceSubpath string`

    Build-context path relative to the repo root (which agent, in a monorepo).

  - `WorkingTreeHash string`

    Deterministic SHA-256 content hash of the build inputs (not the tarball).

  - `AgentID string`

    The UUID of the agent that this build belongs to

  - `BuildEndTime Time`

    When the cloud provider finished the build

  - `BuildStartTime Time`

    When the cloud provider started the build

  - `ImageURL string`

    The URL of the container image. This is not guaranteed to be present until the build is complete.

  - `Object AgentexCloudBuildObject`

    - `const AgentexCloudBuildObjectAgentexCloudBuild AgentexCloudBuildObject = "agentex_cloud_build"`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  page, err := client.Build.List(context.TODO(), sgpdev.BuildListParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

#### Response

```json
{
  "has_more": true,
  "items": [
    {
      "id": "id",
      "account_id": "account_id",
      "agent_name": "agent_name",
      "build_status": "queued",
      "cloud_provider_build_id": "cloud_provider_build_id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "created_by": {
        "id": "id",
        "type": "user",
        "object": "identity"
      },
      "image_name": "image_name",
      "image_tag": "image_tag",
      "source_commit": "source_commit",
      "source_dirty": true,
      "source_ref": "source_ref",
      "source_repo": "source_repo",
      "source_subpath": "source_subpath",
      "working_tree_hash": "working_tree_hash",
      "agent_id": "agent_id",
      "build_end_time": "2019-12-27T18:11:19.117Z",
      "build_start_time": "2019-12-27T18:11:19.117Z",
      "image_url": "image_url",
      "object": "agentex_cloud_build"
    }
  ],
  "total": 0,
  "limit": 0,
  "object": "list"
}
```

## Stream build logs

`client.Build.Logs(ctx, buildID) (*StreamChunk, error)`

**get** `/v5/builds/{build_id}/logs`

Stream a build's logs as Server-Sent Events.

The response has content-type `text/event-stream`; each event carries one log line as an
`AgentexCloudBuildLogLine` object, delivered as lines become available from the cloud build provider.
The stream ends when the provider stops producing output. Responds with a not-found error if no such
build exists for the caller's account.

### Parameters

- `buildID string`

### Returns

- `type StreamChunk struct{…}`

  A single log line from the build process.

  - `Line string`

    The log line content

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  stream := client.Build.LogsStreaming(context.TODO(), "build_id")
  for stream.Next() {
  fmt.Printf("%+v\n", stream.Current())
  }
  err := stream.Err()
  if err != nil {
    panic(err.Error())
  }
}
```

#### Response

```json
{
  "line": "line"
}
```

## Cancel a build

`client.Build.Cancel(ctx, buildID) (*AgentexCloudBuild, error)`

**post** `/v5/builds/{build_id}/cancel`

Request cancellation of a build and return 202 Accepted.

Cancellation runs asynchronously: the endpoint verifies the build exists and then hands it off to a
background workflow that marks the build as cancelling, asks the cloud build provider to stop it, and
polls until the build reaches a terminal state before recording the final status. Only builds that are
still queued or running are actually cancelled; if the build has already finished, or cancellation is
already in progress, the request is still accepted but has no effect. The returned record reflects the
build's state at the time of the call, so it will not yet show the pending cancellation. The request
is rejected if no such build exists for the caller's account.

### Parameters

- `buildID string`

### Returns

- `type AgentexCloudBuild struct{…}`

  - `ID string`

    The unique identifier of the entity.

  - `AccountID string`

    The ID of the account that owns the given entity.

  - `AgentName string`

    The name of the agent that this build belongs to

  - `BuildStatus AgentexCloudBuildBuildStatus`

    The current build lifecycle status

    - `const AgentexCloudBuildBuildStatusQueued AgentexCloudBuildBuildStatus = "queued"`

    - `const AgentexCloudBuildBuildStatusRunning AgentexCloudBuildBuildStatus = "running"`

    - `const AgentexCloudBuildBuildStatusSuccess AgentexCloudBuildBuildStatus = "success"`

    - `const AgentexCloudBuildBuildStatusFailed AgentexCloudBuildBuildStatus = "failed"`

    - `const AgentexCloudBuildBuildStatusCancelling AgentexCloudBuildBuildStatus = "cancelling"`

    - `const AgentexCloudBuildBuildStatusCancelled AgentexCloudBuildBuildStatus = "cancelled"`

    - `const AgentexCloudBuildBuildStatusDeleting AgentexCloudBuildBuildStatus = "deleting"`

    - `const AgentexCloudBuildBuildStatusDeleteFailed AgentexCloudBuildBuildStatus = "delete_failed"`

    - `const AgentexCloudBuildBuildStatusTimedOut AgentexCloudBuildBuildStatus = "timed_out"`

    - `const AgentexCloudBuildBuildStatusError AgentexCloudBuildBuildStatus = "error"`

    - `const AgentexCloudBuildBuildStatusUnknown AgentexCloudBuildBuildStatus = "unknown"`

  - `CloudProviderBuildID string`

    The unique identifier of the build from the cloud provider, or an internal UUID when an existing image is copied without a provider build.

  - `CreatedAt Time`

    The date and time when the entity was created in ISO format.

  - `CreatedBy Identity`

    The identity that created the entity.

    - `ID string`

    - `Type IdentityType`

      - `const IdentityTypeUser IdentityType = "user"`

      - `const IdentityTypeServiceAccount IdentityType = "service_account"`

    - `Object IdentityObject`

      - `const IdentityObjectIdentity IdentityObject = "identity"`

  - `ImageName string`

    The name of the container image to build.

  - `ImageTag string`

    The tag for the container image.

  - `SourceCommit string`

    Git commit the build context was at, when a git work tree.

  - `SourceDirty bool`

    Whether the work tree had uncommitted changes at build time (null outside git).

  - `SourceRef string`

    Git branch or tag for source_commit, when resolvable.

  - `SourceRepo string`

    Normalized git remote the build context came from (host/path, no credentials).

  - `SourceSubpath string`

    Build-context path relative to the repo root (which agent, in a monorepo).

  - `WorkingTreeHash string`

    Deterministic SHA-256 content hash of the build inputs (not the tarball).

  - `AgentID string`

    The UUID of the agent that this build belongs to

  - `BuildEndTime Time`

    When the cloud provider finished the build

  - `BuildStartTime Time`

    When the cloud provider started the build

  - `ImageURL string`

    The URL of the container image. This is not guaranteed to be present until the build is complete.

  - `Object AgentexCloudBuildObject`

    - `const AgentexCloudBuildObjectAgentexCloudBuild AgentexCloudBuildObject = "agentex_cloud_build"`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  agentexCloudBuild, err := client.Build.Cancel(context.TODO(), "build_id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", agentexCloudBuild.ID)
}
```

#### Response

```json
{
  "id": "id",
  "account_id": "account_id",
  "agent_name": "agent_name",
  "build_status": "queued",
  "cloud_provider_build_id": "cloud_provider_build_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "image_name": "image_name",
  "image_tag": "image_tag",
  "source_commit": "source_commit",
  "source_dirty": true,
  "source_ref": "source_ref",
  "source_repo": "source_repo",
  "source_subpath": "source_subpath",
  "working_tree_hash": "working_tree_hash",
  "agent_id": "agent_id",
  "build_end_time": "2019-12-27T18:11:19.117Z",
  "build_start_time": "2019-12-27T18:11:19.117Z",
  "image_url": "image_url",
  "object": "agentex_cloud_build"
}
```

## List agents built but not deployed

`client.Build.ListUndeployed(ctx) (*[]BuildListUndeployedResponse, error)`

**get** `/v5/builds/undeployed`

List agents that exist only as cloud builds and have no healthy deployment yet.

Unlike listing builds, this aggregates by agent: it returns one entry per distinct agent name whose
builds have never reached a healthy deploy, each carrying that agent's most recent build and its total
build count. The result is a plain list (not paginated) and is limited to builds the caller is
permitted to read. Use this to surface agents that were built but still need to be deployed; use
`GET /v5/builds` when you need the individual build records instead.

### Returns

- `type BuildListUndeployedResponse []BuildListUndeployedResponse`

  - `AgentName string`

    The agent name from cloud builds

  - `LatestBuild AgentexCloudBuild`

    The most recent cloud build for this agent

    - `ID string`

      The unique identifier of the entity.

    - `AccountID string`

      The ID of the account that owns the given entity.

    - `AgentName string`

      The name of the agent that this build belongs to

    - `BuildStatus AgentexCloudBuildBuildStatus`

      The current build lifecycle status

      - `const AgentexCloudBuildBuildStatusQueued AgentexCloudBuildBuildStatus = "queued"`

      - `const AgentexCloudBuildBuildStatusRunning AgentexCloudBuildBuildStatus = "running"`

      - `const AgentexCloudBuildBuildStatusSuccess AgentexCloudBuildBuildStatus = "success"`

      - `const AgentexCloudBuildBuildStatusFailed AgentexCloudBuildBuildStatus = "failed"`

      - `const AgentexCloudBuildBuildStatusCancelling AgentexCloudBuildBuildStatus = "cancelling"`

      - `const AgentexCloudBuildBuildStatusCancelled AgentexCloudBuildBuildStatus = "cancelled"`

      - `const AgentexCloudBuildBuildStatusDeleting AgentexCloudBuildBuildStatus = "deleting"`

      - `const AgentexCloudBuildBuildStatusDeleteFailed AgentexCloudBuildBuildStatus = "delete_failed"`

      - `const AgentexCloudBuildBuildStatusTimedOut AgentexCloudBuildBuildStatus = "timed_out"`

      - `const AgentexCloudBuildBuildStatusError AgentexCloudBuildBuildStatus = "error"`

      - `const AgentexCloudBuildBuildStatusUnknown AgentexCloudBuildBuildStatus = "unknown"`

    - `CloudProviderBuildID string`

      The unique identifier of the build from the cloud provider, or an internal UUID when an existing image is copied without a provider build.

    - `CreatedAt Time`

      The date and time when the entity was created in ISO format.

    - `CreatedBy Identity`

      The identity that created the entity.

      - `ID string`

      - `Type IdentityType`

        - `const IdentityTypeUser IdentityType = "user"`

        - `const IdentityTypeServiceAccount IdentityType = "service_account"`

      - `Object IdentityObject`

        - `const IdentityObjectIdentity IdentityObject = "identity"`

    - `ImageName string`

      The name of the container image to build.

    - `ImageTag string`

      The tag for the container image.

    - `SourceCommit string`

      Git commit the build context was at, when a git work tree.

    - `SourceDirty bool`

      Whether the work tree had uncommitted changes at build time (null outside git).

    - `SourceRef string`

      Git branch or tag for source_commit, when resolvable.

    - `SourceRepo string`

      Normalized git remote the build context came from (host/path, no credentials).

    - `SourceSubpath string`

      Build-context path relative to the repo root (which agent, in a monorepo).

    - `WorkingTreeHash string`

      Deterministic SHA-256 content hash of the build inputs (not the tarball).

    - `AgentID string`

      The UUID of the agent that this build belongs to

    - `BuildEndTime Time`

      When the cloud provider finished the build

    - `BuildStartTime Time`

      When the cloud provider started the build

    - `ImageURL string`

      The URL of the container image. This is not guaranteed to be present until the build is complete.

    - `Object AgentexCloudBuildObject`

      - `const AgentexCloudBuildObjectAgentexCloudBuild AgentexCloudBuildObject = "agentex_cloud_build"`

  - `TotalBuilds int64`

    Total number of builds for this agent

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  response, err := client.Build.ListUndeployed(context.TODO())
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response)
}
```

#### Response

```json
[
  {
    "agent_name": "agent_name",
    "latest_build": {
      "id": "id",
      "account_id": "account_id",
      "agent_name": "agent_name",
      "build_status": "queued",
      "cloud_provider_build_id": "cloud_provider_build_id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "created_by": {
        "id": "id",
        "type": "user",
        "object": "identity"
      },
      "image_name": "image_name",
      "image_tag": "image_tag",
      "source_commit": "source_commit",
      "source_dirty": true,
      "source_ref": "source_ref",
      "source_repo": "source_repo",
      "source_subpath": "source_subpath",
      "working_tree_hash": "working_tree_hash",
      "agent_id": "agent_id",
      "build_end_time": "2019-12-27T18:11:19.117Z",
      "build_start_time": "2019-12-27T18:11:19.117Z",
      "image_url": "image_url",
      "object": "agentex_cloud_build"
    },
    "total_builds": 0
  }
]
```

## Domain Types

### Agentex Cloud Build

- `type AgentexCloudBuild struct{…}`

  - `ID string`

    The unique identifier of the entity.

  - `AccountID string`

    The ID of the account that owns the given entity.

  - `AgentName string`

    The name of the agent that this build belongs to

  - `BuildStatus AgentexCloudBuildBuildStatus`

    The current build lifecycle status

    - `const AgentexCloudBuildBuildStatusQueued AgentexCloudBuildBuildStatus = "queued"`

    - `const AgentexCloudBuildBuildStatusRunning AgentexCloudBuildBuildStatus = "running"`

    - `const AgentexCloudBuildBuildStatusSuccess AgentexCloudBuildBuildStatus = "success"`

    - `const AgentexCloudBuildBuildStatusFailed AgentexCloudBuildBuildStatus = "failed"`

    - `const AgentexCloudBuildBuildStatusCancelling AgentexCloudBuildBuildStatus = "cancelling"`

    - `const AgentexCloudBuildBuildStatusCancelled AgentexCloudBuildBuildStatus = "cancelled"`

    - `const AgentexCloudBuildBuildStatusDeleting AgentexCloudBuildBuildStatus = "deleting"`

    - `const AgentexCloudBuildBuildStatusDeleteFailed AgentexCloudBuildBuildStatus = "delete_failed"`

    - `const AgentexCloudBuildBuildStatusTimedOut AgentexCloudBuildBuildStatus = "timed_out"`

    - `const AgentexCloudBuildBuildStatusError AgentexCloudBuildBuildStatus = "error"`

    - `const AgentexCloudBuildBuildStatusUnknown AgentexCloudBuildBuildStatus = "unknown"`

  - `CloudProviderBuildID string`

    The unique identifier of the build from the cloud provider, or an internal UUID when an existing image is copied without a provider build.

  - `CreatedAt Time`

    The date and time when the entity was created in ISO format.

  - `CreatedBy Identity`

    The identity that created the entity.

    - `ID string`

    - `Type IdentityType`

      - `const IdentityTypeUser IdentityType = "user"`

      - `const IdentityTypeServiceAccount IdentityType = "service_account"`

    - `Object IdentityObject`

      - `const IdentityObjectIdentity IdentityObject = "identity"`

  - `ImageName string`

    The name of the container image to build.

  - `ImageTag string`

    The tag for the container image.

  - `SourceCommit string`

    Git commit the build context was at, when a git work tree.

  - `SourceDirty bool`

    Whether the work tree had uncommitted changes at build time (null outside git).

  - `SourceRef string`

    Git branch or tag for source_commit, when resolvable.

  - `SourceRepo string`

    Normalized git remote the build context came from (host/path, no credentials).

  - `SourceSubpath string`

    Build-context path relative to the repo root (which agent, in a monorepo).

  - `WorkingTreeHash string`

    Deterministic SHA-256 content hash of the build inputs (not the tarball).

  - `AgentID string`

    The UUID of the agent that this build belongs to

  - `BuildEndTime Time`

    When the cloud provider finished the build

  - `BuildStartTime Time`

    When the cloud provider started the build

  - `ImageURL string`

    The URL of the container image. This is not guaranteed to be present until the build is complete.

  - `Object AgentexCloudBuildObject`

    - `const AgentexCloudBuildObjectAgentexCloudBuild AgentexCloudBuildObject = "agentex_cloud_build"`

### Stream Chunk

- `type StreamChunk struct{…}`

  A single log line from the build process.

  - `Line string`

    The log line content
