canonical: https://jentic.com/apis/googleapis.com/baremetalsolution

# Google Bare Metal Solution API

The Bare Metal Solution API manages physical bare-metal servers, networks, volumes, and SAN LUNs hosted in regional extensions adjacent to Google Cloud data centres. It exposes operations to detach LUNs from instances, list network usage, disable hyperthreading or interactive serial console, and patch instance, network, and volume settings. The API is the control plane for legacy or licence-bound workloads such as Oracle databases that must run on dedicated hardware while integrating with Google Cloud networking. It does not run a hypervisor or manage VMs.

## For AI agents

Manage Google Cloud Bare Metal Solution instances, volumes, networks, and LUNs from automation tooling.

## Scope

Does not run a hypervisor, manage VMs, or perform OS-level configuration on the bare-metal servers - use for instance, network, volume, and LUN control-plane operations only.

## Capabilities

- Detach a SAN LUN from a Bare Metal instance via /v2/{+instance}:detachLun
- List network usage for a region with /v2/{+location}/networks:listNetworkUsage
- Disable hyperthreading on an instance via /v2/{+name}:disableHyperthreading
- Disable the interactive serial console on an instance with :disableInteractiveSerialConsole
- Patch instance, network, and volume mutable fields via PATCH /v2/{+name}
- List Bare Metal Solution locations available to a project before provisioning

## Use cases

### Oracle Database Licensing Compliance

Run Oracle workloads on dedicated bare-metal hardware adjacent to Google Cloud while keeping core counts auditable for licensing. The API exposes disableHyperthreading so an automation can ensure each licensed instance presents the expected core count, and patch endpoints let labels and metadata be kept in sync with the licence inventory.

Example prompt: POST to /v2/{name}:disableHyperthreading on each licensed instance and verify the resulting state in the response.

### Storage Volume and LUN Management

Manage SAN volumes and the LUNs they expose across a Bare Metal Solution deployment by listing volumes, patching their metadata, and detaching LUNs when an instance is decommissioned. Suited to storage admins running mixed-tenant SAN setups that need code-driven hygiene.

Example prompt: POST to /v2/{instance}:detachLun for each LUN being moved off a decommissioned instance and patch the volume labels.

### Network Usage Reporting Across Regions

Build network usage dashboards by calling listNetworkUsage on each region where a Bare Metal Solution deployment exists. The endpoint returns aggregated bandwidth and capacity data that feeds into capacity planning and chargeback workflows without requiring agents on the hardware itself.

Example prompt: GET /v2/{location}/networks:listNetworkUsage for each region and aggregate the results into a chargeback report.

### AI Agent Hardware Hygiene Checks via Jentic

Use an AI agent to run a periodic hygiene check against Bare Metal Solution instances confirming hyperthreading state, console status, and label correctness. Through Jentic the agent finds the relevant operations by intent and runs them with project credentials supplied at execute time, with no Google Cloud SDK setup needed in the agent.

Example prompt: Use Jentic search for 'list Bare Metal Solution instances', and for each instance call the get endpoint and patch labels missing from the inventory.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /v2/{+instance}:detachLun | Detach a LUN from a Bare Metal instance |
| GET | /v2/{+location}/networks:listNetworkUsage | List network usage in a location |
| POST | /v2/{+name}:disableHyperthreading | Disable hyperthreading on an instance |
| POST | /v2/{+name}:disableInteractiveSerialConsole | Disable the interactive serial console |
| PATCH | /v2/{+name} | Update an instance, network, or volume |
| GET | /v2/{+name} | Get an instance, network, volume, or LUN by resource name |
| GET | /v2/{+name}/locations | List Bare Metal Solution locations |

## Key resources

- **instances** — Physical bare-metal servers with patch, hyperthreading, and console operations
- **volumes** — Storage volumes attached to Bare Metal instances
- **luns** — SAN LUNs that can be detached from an instance
- **networks** — Bare Metal networks with list and usage endpoints
- **operations** — Long-running operations covering instance and storage updates

## Why Jentic

- **Setup:** Wiring the Bare Metal Solution API by hand means configuring Google OAuth2, scoping a service account for control-plane access, and minting short-lived access tokens across its 33 operations yourself. Through Jentic you install once, import the Bare Metal Solution API from the API Directory, store the OAuth credential once, and your agent calls it.
- **Permission scoping:** This API puts the instance name in the URL path (/v2/{instance}:detachLun, /v2/{name}), so a rule can pin your agent to one instance: it can read the instance and list network usage there and nothing else. You choose the operations it may call, so actions like detaching a LUN or disabling hyperthreading are not included unless you add them.
- **Credential handling:** Your Google Cloud OAuth credential is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'detach a LUN from a Bare Metal instance' or 'list network usage', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without reading the full reference.

## Related APIs

- **Compute Engine API** — Virtualised compute instead of dedicated bare-metal hardware
- **Network Connectivity API** — Connects Bare Metal Solution networks into broader Google Cloud network topology
- **Cloud Monitoring API** — Observability for Bare Metal Solution instances and networks

## FAQ

### What authentication does the Bare Metal Solution API use?

The API uses Google OAuth 2.0 with cloud-platform scope. Service accounts must hold the roles/baremetalsolution.* IAM role on the relevant project. Through Jentic the service account credential is encrypted in the vault and only short-lived access tokens reach the agent.

### Can I detach a LUN from an instance through the API?

Yes. POST to /v2/{instance}:detachLun with the LUN resource name in the body. The call returns a long-running operation that completes once the LUN is unmapped from the instance.

### How do I disable hyperthreading on a Bare Metal Solution server?

POST to /v2/{name}:disableHyperthreading where name is the instance resource path. The instance reboots as part of the change, so schedule it during a maintenance window.

### What are the rate limits for the Bare Metal Solution API?

Numeric limits are not declared in the spec; quotas are enforced per project on baremetalsolution.googleapis.com. Review the project quota dashboard before running large list or patch jobs.

### How do I run a hygiene sweep across instances through Jentic?

Search Jentic for 'list Bare Metal Solution instances'. Jentic returns the matching list operation; iterate the result and call the get and patch operations as needed, with credentials supplied from your Jentic One instance at each call.

### Can the API provision new Bare Metal hardware?

Initial provisioning of physical hardware in a regional extension is handled through a Google Cloud sales process. Once provisioned, the instances and storage are managed through this API.

### Can I limit what my agent is allowed to do with the Bare Metal Solution API?

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, and this API puts the instance name in the URL path (/v2/{instance}:detachLun, /v2/{name}), so a rule can pin the agent to a single instance where it only reads the instance and lists network usage. You choose the operations it may call, so mutating actions like detaching a LUN or disabling hyperthreading are excluded unless you add them. The stored Google OAuth credential is injected at execution time and never reaches the agent's prompt or logs.
