## Submit container image build

`build.create(BuildCreateParams**kwargs)  -> AgentexCloudBuild`

**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

- `image_name: str`

  Name for the built image

- `agent_id: Optional[str]`

  ID of the existing agent this build targets

- `agent_name: Optional[str]`

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

- `build_args: Optional[str]`

  JSON string of build arguments

- `context_archive: Optional[FileTypes]`

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

- `image_tag: Optional[str]`

  Tag for the built image

- `image_url: Optional[str]`

  Existing tagged image to register instead of running a build

- `platform: Optional[Literal["linux/amd64", "linux/arm64", "linux/arm/v7"]]`

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

  - `"linux/amd64"`

  - `"linux/arm64"`

  - `"linux/arm/v7"`

- `source_commit: Optional[str]`

  Git commit the build context was at.

- `source_dirty: Optional[bool]`

  Whether the work tree had uncommitted changes at build time.

- `source_ref: Optional[str]`

  Git branch or tag for source_commit.

- `source_repo: Optional[str]`

  Normalized git remote the build context came from.

- `source_subpath: Optional[str]`

  Build-context path relative to the repo root.

- `working_tree_hash: Optional[str]`

  Deterministic SHA-256 content hash of the build inputs.

### Returns

- `class AgentexCloudBuild: …`

  - `id: str`

    The unique identifier of the entity.

  - `account_id: str`

    The ID of the account that owns the given entity.

  - `agent_name: str`

    The name of the agent that this build belongs to

  - `build_status: Literal["queued", "running", "success", 8 more]`

    The current build lifecycle status

    - `"queued"`

    - `"running"`

    - `"success"`

    - `"failed"`

    - `"cancelling"`

    - `"cancelled"`

    - `"deleting"`

    - `"delete_failed"`

    - `"timed_out"`

    - `"error"`

    - `"unknown"`

  - `cloud_provider_build_id: str`

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

  - `created_at: datetime`

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

  - `created_by: Identity`

    The identity that created the entity.

    - `id: str`

    - `type: Literal["user", "service_account"]`

      - `"user"`

      - `"service_account"`

    - `object: Optional[Literal["identity"]]`

      - `"identity"`

  - `image_name: str`

    The name of the container image to build.

  - `image_tag: str`

    The tag for the container image.

  - `source_commit: Optional[str]`

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

  - `source_dirty: Optional[bool]`

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

  - `source_ref: Optional[str]`

    Git branch or tag for source_commit, when resolvable.

  - `source_repo: Optional[str]`

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

  - `source_subpath: Optional[str]`

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

  - `working_tree_hash: Optional[str]`

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

  - `agent_id: Optional[str]`

    The UUID of the agent that this build belongs to

  - `build_end_time: Optional[datetime]`

    When the cloud provider finished the build

  - `build_start_time: Optional[datetime]`

    When the cloud provider started the build

  - `image_url: Optional[str]`

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

  - `object: Optional[Literal["agentex_cloud_build"]]`

    - `"agentex_cloud_build"`

### Example

```python
import os
from scale_gp_beta import SGPClient

client = SGPClient(
    api_key=os.environ.get("SGP_API_KEY"),  # This is the default and can be omitted
)
agentex_cloud_build = client.build.create(
    image_name="image_name",
)
print(agentex_cloud_build.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"
}
```
