iRetail PRO hub 1.0.0-m5: releases
22 operations
← All documentation · Source: contracts openapi/hub-v1.yaml at 8000474.
Releases the hub holds, rollouts in waves and the hub's own update (spec/RELEASES.md).
Operations
GET
/v1/releases
The releases the hub holds, the latest version first (spec/RELEASES.md, The hub's releases).
operationId
listReleases · Permission release.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
limit
|
query | integer |
|
after
|
query | string |
The cursor of the previous page. |
Responses
GET
/v1/releases/available
What the source (IRETAIL_RELEASES_URL) offers as its latest release, and whether the hub holds it. 409 release_source_missing with downloading off, 503 release_source_unreachable when version.json cannot be read.
operationId
getAvailableRelease · Permission release.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
-
200OKAvailableRelease -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
409Error (spec/API.md).Error -
503Error (spec/API.md).Error
POST
/v1/releases/download
Download a release from the source. The manifest is read and verified before answering (422 release_refused); the artifacts follow in the background, each verified as it is stored. 200 for a version already held.
operationId
downloadRelease · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Request body required
application/jsonReleaseDownload
Responses
POST
/v1/releases/import
Import a release bundle sent as the raw body (a POSIX tar, manifest.json first, then every artifact). Verified as it streams; 201 verified, 200 for the same manifest again, 409 release_conflict for another manifest of a version held, 422 release_refused with nothing kept.
Regular files only, at the top level, manifest.json first and at most 4 MiB, each other member named by an artifact, none twice; otherwise 400 bad_request with the reason and the member (spec/RELEASES.md, Importing a bundle).
operationId
importRelease · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Request body required
application/x-tarstring (binary)
Responses
GET
/v1/releases/{version}
One release the hub holds, with its signed manifest.
operationId
getRelease · Permission release.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
version required
|
path | string |
A release's version (spec/RELEASES.md). |
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
DELETE
/v1/releases/{version}
Remove a release and its files from storage; 409 release_in_use while it is in use.
operationId
deleteRelease · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
version required
|
path | string |
A release's version (spec/RELEASES.md). |
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
GET
/v1/rollouts
Rollouts, newest first (spec/RELEASES.md, Rollouts).
operationId
listRollouts · Permission release.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
state
|
query | RolloutState |
|
limit
|
query | integer |
|
after
|
query | string |
The cursor of the previous page. |
Responses
POST
/v1/rollouts
Start a rollout of a verified release in waves. 409 rollout_active while another is unfinished; 422 invalid_rollout with a reason.
operationId
createRollout · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Idempotency-Key
|
header | string |
spec/API.md, Idempotency. |
Request body required
application/jsonRolloutCreate
Responses
GET
/v1/rollouts/{id}
One rollout with its waves.
operationId
getRollout · Permission release.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id required
|
path | string (uuid) |
|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
GET
/v1/rollouts/{id}/stores
Each store of a rollout with its wave, update state and gate status, in the waves' order.
operationId
listRolloutStores · Permission release.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id required
|
path | string (uuid) |
|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
limit
|
query | integer |
|
after
|
query | string |
The cursor of the previous page. |
Responses
POST
/v1/rollouts/{id}/pause
Pause a running rollout; the current wave's stores that have not begun applying lose their targets. 409 rollout_state otherwise.
operationId
pauseRollout · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id required
|
path | string (uuid) |
|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
POST
/v1/rollouts/{id}/resume
Resume a paused rollout on its current wave, as a new attempt for the stores not done; the current wave's stores whose apps are held for the release have the hold cleared (apps_cleared_at). 409 rollout_state otherwise.
operationId
resumeRollout · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id required
|
path | string (uuid) |
|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
POST
/v1/rollouts/{id}/rollback
Send every store that took the release back to its previous version, at once. 409 rollout_state from rolling_back or rolled_back, 409 rollout_not_latest for an older rollout, 409 rollout_active while another is unfinished.
operationId
rollbackRollout · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id required
|
path | string (uuid) |
|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
POST
/v1/rollouts/{id}/stores/{store_id}/skip
Take a store out of a rollout; a target it has not finished is withdrawn and the gate passes it. 409 rollout_state in completed or rolled_back.
operationId
skipRolloutStore · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id required
|
path | string (uuid) |
|
store_id required
|
path | string (uuid) |
|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
-
200OKRolloutStore -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
404Error (spec/API.md).Error -
409Error (spec/API.md).Error
POST
/v1/rollouts/{id}/stores/{store_id}/clear-apps
Clear a store's held apps for the rollout's release (spec/RELEASES.md, One device first) by writing its target again with apps_cleared_at. 409 rollout_state in rolled_back; 404 for a store the rollout does not cover or whose target was withdrawn.
operationId
clearRolloutStoreApps · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id required
|
path | string (uuid) |
|
store_id required
|
path | string (uuid) |
|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
-
200OKRolloutStore -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
404Error (spec/API.md).Error -
409Error (spec/API.md).Error
GET
/v1/app-update
What an app of the hub's office store, or the console on a desktop, should run, by the release the hub runs, one device first (spec/RELEASES.md, The apps); as a store's getAppUpdate. A hub that does not hold the release it runs offers no installer.
operationId
getHubAppUpdate · Permission store.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
app required
|
query | AppId |
|
platform required
|
query | ReleasePlatform |
|
current
|
query | string |
The app's own version; left out for a first install. |
Responses
POST
/v1/app-update/report
An app of the hub's office store, or the console, reports where its update stands (spec/RELEASES.md, Reporting); as a store's postAppUpdateReport.
A device's token or an employee's session on a device; at most 1 KiB and one accepted report a minute.
operationId
postHubAppUpdateReport
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Request body required
application/jsonAppUpdateReport
Responses
POST
/v1/app-update/clear
Clear the hub's office store's hold of a release for an app and platform (spec/RELEASES.md, One device first). 404 when nothing is held.
operationId
clearHubAppUpdateHold · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Request body required
application/jsonAppUpdateClear
Responses
GET
/v1/releases/{version}/manifest
The signed manifest of a release the hub holds verified, for its office store's devices, the console and its updater; the caller verifies it with its own embedded keys. 404 for a release not held or not verified.
operationId
getHubReleaseManifest · Permission store.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
version required
|
path | string |
A release's version (spec/RELEASES.md). |
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
-
200The signed manifest document.ReleaseManifestDocument -
401Error (spec/API.md).Error -
403Error (spec/API.md).Error -
404Error (spec/API.md).Error
GET
/v1/releases/{version}/artifacts/{name}
A file of a release the hub holds verified; Range resumes a broken download. The caller checks its size and SHA-256 against the manifest.
operationId
getHubReleaseArtifact · Permission store.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
version required
|
path | string |
A release's version (spec/RELEASES.md). |
name required
|
path | string |
The artifact's name in the manifest. |
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Range
|
header | string |
One byte range, bytes=<first>- or bytes=<first>-<last>. |
Responses
GET
/v1/hub-update
The hub's own update (spec/RELEASES.md, The hub's own update).
operationId
getHubUpdate · Permission release.read
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Responses
PUT
/v1/hub-update
Set the hub's own target, applied by its updater. 404 for a version not held, 409 release_not_verified, 409 stores_incompatible unless forced, 422 release_refused (downgrade) for an earlier version that is not the previous one.
operationId
putHubUpdate · Permission release.manage
Parameters
| Name | In | Type | Description |
|---|---|---|---|
IRetail-App
|
header | string |
Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking). |
Request body required
application/jsonHubUpdatePut
Responses
Schemas
AlertKind "node_silent" | "node_behind" | "shift_open_long" | "certificate_expiring" | "redis_down" | "backup_overdue"
node_silent · node_behind · shift_open_long · certificate_expiring · redis_down · backup_overdue
Release @store:Release
ReleaseDownload @store:ReleaseDownload
AvailableRelease @store:AvailableRelease
RolloutState "running" | "paused" | "paused_by_gate" | "rolling_back" | "rolled_back" | "completed"
spec/RELEASES.md, States.
running · paused · paused_by_gate · rolling_back · rolled_back · completed
RolloutWaveInput object | object
A wave of named stores, or a percentage of the stores left.
RolloutGate object
healthy_minutes required
|
integer |
RolloutCreate object
release required
|
string |
A version the hub holds, verified. |
stores
|
array of string (uuid) |
The stores it covers; every store with an active node when left out. |
waves
|
array of RolloutWaveInput |
One store, a quarter of the rest, then the rest when left out. |
gate
|
RolloutGate |
|
window
|
UpdateWindow | null |
In each store's own time zone; null for any time; 02:00 to 05:00 when left out. |
store_windows
|
map of UpdateWindow | null |
A window, or null for any time, per store id, over window. |
GatePause object
The store and the reason the gate paused the rollout.
store_id required
|
string (uuid) |
|
reason required
|
"failed" | "rolled_back" | "alert" | "app_failed" |
|
alert_kind required
|
AlertKind | null |
|
app
|
AppId |
For app_failed, the app held first; absent otherwise. |
platform
|
ReleasePlatform |
For app_failed, its platform. |
Rollout object
id required
|
string (uuid) |
|
release required
|
string |
|
state required
|
RolloutState |
|
waves required
|
array of object |
|
current_wave required
|
integer |
Counted from 0. |
gate required
|
RolloutGate |
|
window required
|
UpdateWindow | null |
|
store_windows required
|
map of UpdateWindow | null |
|
paused_by_gate required
|
GatePause | null |
Set while the state is paused_by_gate. |
resumed_at required
|
string (date-time) | null |
|
created_by required
|
string (uuid) |
|
created_at required
|
string (date-time) |
|
finished_at required
|
string (date-time) | null |
When it was completed or rolled back. |
version required
|
integer (int64) |
RolloutStore object
store_id required
|
string (uuid) |
|
wave required
|
integer |
|
skipped required
|
boolean |
|
state required
|
UpdateState | null |
From the store's last report; null before one. |
gate_status required
|
"pending" | "passed" | "healthy" | "updating" | "silent" | "unhealthy" | "failed" | "rolled_back" | "alert" | "app_failed" | "skipped" |
pending for a store of a later wave; otherwise the gate's status (spec/RELEASES.md, The gate). |
running_version required
|
string | null |
|
previous_version required
|
string | null |
What the store ran when it was first given the target; what a rollback returns to. |
target_version required
|
string | null |
|
action required
|
"update" | "rollback" | null |
|
started_at required
|
string (date-time) | null |
|
done_at required
|
string (date-time) | null |
|
healthy_since required
|
string (date-time) | null |
|
step required
|
UpdateStep | null |
|
error required
|
string | null |
HubUpdatePut object
version required
|
string |
|
window
|
UpdateWindow | null |
In the hub's time zone (its office store's); null for at once; left out, 02:00 to 05:00. In UTC with no default before 1.1. |
force
|
boolean |
Go ahead although the new version would refuse a store the hub serves. |
HubUpdate object
running_version required
|
string |
|
previous_version required
|
string | null |
|
target required
|
object | null |
|
state required
|
UpdateState |
|
state_since required
|
string (date-time) | null |
|
step required
|
UpdateStep | null |
|
error required
|
string | null |
|
updater required
|
"compose" | "none" |
|
backup required
|
UpdateBackup | null |
|
rehearsal required
|
UpdateRehearsal | null |
The hub rehearses only when asked (node migrate --rehearse); null without a rehearsal. |
background_tasks required
|
array of BackgroundTask |
|
apps required
|
array of AppVersionCount |
The hub's office store's apps, as a store's GET /v1/update gives them. |
app_offers required
|
array of AppOffer |