platform.v1.MigrationService
MigrationService is operator-only. Mutations return an Operation.
- Request:
MigrateInstanceRequest
- Response:
Operation
- REST mapping:
POST /v1/admin/migrations/instance/{id}
- Request:
MigrateVolumeRequest
- Response:
Operation
- REST mapping:
POST /v1/admin/migrations/volume/{id}
- Request:
MigrateImageRequest
- Response:
Operation
- REST mapping:
POST /v1/admin/migrations/image/{id}
- Request:
MigrateSnapshotRequest
- Response:
Operation
- REST mapping:
POST /v1/admin/migrations/snapshot/{id}
- Request:
DrainProviderRequest
- Response:
Operation
- REST mapping:
POST /v1/admin/migrations:drain
- Request:
GetMigrationRequest
- Response:
Migration
- REST mapping:
GET /v1/admin/migrations/{id}
- Request:
ListMigrationsRequest
- Response:
ListMigrationsResponse
- REST mapping:
GET /v1/admin/migrations
| Field | Type | # | Notes |
|---|
provider | string | 1 | |
dest_provider | string | 2 | optional; empty = platform picks a destination |
decommission | bool | 3 | delete source resources after successful moves |
| Field | Type | # | Notes |
|---|
provider | string | 1 | optional filter (source or dest) |
state | string | 2 | optional filter |
| Field | Type | # | Notes |
|---|
migrations | Migration | 1 | |
| Field | Type | # | Notes |
|---|
id | string | 1 | |
dest_provider | string | 2 | |
| Field | Type | # | Notes |
|---|
id | string | 1 | source instance platform id |
dest_provider | string | 2 | |
| Field | Type | # | Notes |
|---|
id | string | 1 | |
dest_provider | string | 2 | |
| Field | Type | # | Notes |
|---|
id | string | 1 | |
dest_provider | string | 2 | |
--- Cross-provider migration (admin/internal, Phase 5) --- This service is operator-only (admin.migration.*) and is NOT wired into the end-user web app. Users have no concept of providers, so which provider a resource lives on — and when it moves — are platform decisions. Migration is one recorded cross-provider move.
| Field | Type | # | Notes |
|---|
id | string | 1 | |
kind | string | 2 | instance | volume | image | snapshot |
source_provider | string | 3 | |
dest_provider | string | 4 | |
resource_id | string | 5 | source platform id |
dest_resource_id | string | 6 | created destination platform id |
state | string | 7 | pending | running | done | failed | pending_manual_action |
method | string | 8 | native | broker | ssh | manual |
format | string | 9 | raw | qcow2 | fs-tar | oci |
bytes | int64 | 10 | |
checksum | string | 11 | |
error | string | 12 | |
app | string | 13 | |
Operation is returned by every mutating RPC. Clients poll GetOperation or subscribe to the SSE stream to observe progress.
| Field | Type | # | Notes |
|---|
id | string | 1 | opaque, type-prefixed: op_… |
action | string | 2 | permission string, e.g. compute.instance.create |
resource_id | string | 3 | |
resource_type | string | 4 | e.g. compute.instance |
state | OperationState | 5 | |
message | string | 6 | |
progress | int32 | 7 | 0..100 |
app | string | 8 | |