Table of Contents
Breaking Changes Summary
Image Management Consolidated under /baremetal/images
Team Create/Update Request & Policy Response Restructured
Baremetal Instance Types — Paginated Response
Removed Endpoint: migrated-pods lookup
Policy Type "baremetal" Behavior
New Endpoints
Non-Breaking Improvements
Migration Guide
1. Breaking Changes Summary
Change | Impact | Action Required |
|---|---|---|
Image write endpoints moved from | POST/PUT/DELETE on | Switch to |
Team create/update request body restructured | Create/update team calls using flat | Nest policy IDs under |
Team policy response fields renamed/split | Parsers reading | Read the new |
| Clients iterating the top-level array break | Read items from the |
| Calls return 404 | Remove the call; use migration status endpoint |
Policy type string | Flows passing | Use the dedicated baremetal policy endpoints/values |
2. Image Management Consolidated under /baremetal/images BREAKING
The write operations for images were removed from /general-images and now live under /baremetal/images (these endpoints already existed in europa). Read operations on /general-images (list, get by ID, toggle) are unchanged.
Old (europa) | New (ariel) |
|---|---|
|
|
|
|
|
|
The request/response schema is now CreateBaremetalImagePayload / BaremetalImageModel (the old CreateGeneralImageOpts / UpdateGeneralImageOpts payloads no longer exist). A new convenience endpoint PUT /baremetal/images/{id}/toggle flips the is_active flag.
3. Team Create/Update Request & Policy Response Restructured BREAKING
Policy assignment on teams moved from flat fields to grouped general / baremetal objects. This affects both the request body of POST /team and PUT /team/{team_id}, and the policy response returned when reading a team.
Request body — old vs new
Old (europa) POST /team / PUT /team/{team_id}:
{ "name": "team-a", "description": "...", "color": "#fff", "resource_policy_id": "uuid", "service_policy_id": "uuid", "pricing_policy_id": "uuid", "image_policy_id": "uuid", "instance_type_policy_id": "uuid", "baremetal_workload_image_policy_id": "uuid" }
New (ariel):
{ "name": "team-a", "description": "...", "color": "#fff", "members": [], "has_general_policies": true, "has_baremetal_policies": true, "general": { "resource_policy_id": "uuid", "service_policy_id": "uuid", "pricing_policy_id": "uuid", "image_policy_id": "uuid", "instance_type_policy_id": "uuid" }, "baremetal": { "resource_policy_id": "uuid", "service_policy_id": "uuid", "pricing_policy_id": "uuid", "image_policy_id": "uuid", "instance_type_policy_id": "uuid" } }
Policy response — field changes
In the team policy_info object, the single baremetal_workload_image_policy field was split into four, and two boolean flags were added at the team level:
europa | ariel |
|---|---|
|
|
— |
|
4. Baremetal Instance Types — Paginated Response BREAKING
GET /baremetal/instance-types previously returned a bare JSON array. It now returns a paginated wrapper object and accepts optional query params: page, per_page, sort, order, name[contains], gpu_type[eqstr], is_active[eqstr].
Old (europa):
[ { "id": 1, "name": "bm-a100", "...": "..." }, { "id": 2, "name": "bm-h100", "...": "..." } ]
New (ariel):
{ "items": [ { "id": 1, "name": "bm-a100", "...": "..." }, { "id": 2, "name": "bm-h100", "...": "..." } ], "status_counts": { "active": 10, "inactive": 2, "total": 12 }, "page": 1, "per_page": 20, "total_items": 12, "total_pages": 1 }
Read your list from the items array and use page / total_pages for pagination.
5. Removed Endpoint: migrated-pods lookup BREAKING
Removed | Replacement |
|---|---|
| No direct replacement. Use |
6. Policy Type "baremetal" Behavior BREAKING
The raw policy-type string "baremetal" no longer resolves to the baremetal workload-image policy. If your integration passes "baremetal" as a policy_type path value (for example to a /policy/{policy_type} call) expecting it to map to the baremetal workload-image policy, that mapping no longer applies. Use the dedicated baremetal policy fields/endpoints described in section 3 instead, and confirm the exact policy-type value with the platform team if needed.
7. New Endpoints
Endpoints added in ariel that are relevant to integrators.
Method | Path | Purpose |
|---|---|---|
GET |
| All enabled images, including baremetal images. |
GET |
| SSH credentials for an accessible baremetal instance. Response: |
PUT |
| Toggle a baremetal image's active flag. |
PUT |
| Toggle a baremetal instance type's active flag. |
POST |
| Accept the caller's pending invitation to a team. |
GET |
| AVAILABLE/IN_USE shared storage volumes for a team in a region ( |
POST |
| Wipe a pod's RootFS and re-provision from its base image. |
POST |
| Enable or disable rootfs for a pod instance. |
PUT |
| Bulk-update |
PUT |
| Update scheduler config (VIP priority, TQ percentage) for a pod instance. |
GET |
| Read scheduler mode configs for a pool. |
PUT |
| Update scheduler config for a pool's resource policy. |
POST |
| Compute a weighted price distribution from a full-share price; supports |
8. Non-Breaking Improvements
GET /baremetal/instances:team_idis now optional (omit it to list across all teams).Pagination, sorting and filtering query params (
page,per_page,sort,order,filter) added toGET /policy/{policy_type},GET /resource-policy, andGET /shared-volumes.GET /service/i/team-accessible-regions: new optionalnaturequery param.New scheduler concept (
dynamic_mode): one ofdisabled,user_selected,vip_priority— used by the new scheduler-config and pricing-suggestions endpoints.
9. Migration Guide
Repoint image create/update/delete calls from /general-images to /baremetal/images, and adopt the CreateBaremetalImagePayload / BaremetalImageModel schema.
Update POST /team and PUT /team/{team_id} request bodies: move flat *_policy_id fields into nested general and baremetal objects, and set has_general_policies / has_baremetal_policies.
Update team-policy response parsing: replace baremetal_workload_image_policy with the four baremetal_*_policy fields.
Update GET /baremetal/instance-types clients to read from items and handle pagination metadata.
Remove calls to GET /instances/unified/migrated-pods/lookup; use the migration status endpoint if needed.
Audit any use of the "baremetal" policy-type string and switch to the dedicated baremetal policy fields/endpoints.
Optionally adopt the new baremetal credentials, toggle, scheduler-config, and pricing-suggestions endpoints.
This guide is the customer-facing companion to the internal changelog API Changelog: User Panel — europa → ariel (parent page). Keep both in sync when the diff is revised.