iRetail PRO hub 1.0.0-m5: releases

22 операции

← Вся документация · Источник: контракты, openapi/hub-v1.yaml на коммите 8000474.

Справочники на английском — на языке контрактов, из которых они созданы.

Releases the hub holds, rollouts in waves and the hub's own update (spec/RELEASES.md).

← iRetail PRO hub 1.0.0-m5

Операции

GET /v1/releases The releases the hub holds, the latest version first (spec/RELEASES.md, The hub's releases).

operationId listReleases · Право release.read

Параметры

Имя Где Тип Описание
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.

Ответы

  • 200 OK object
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
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 · Право release.read

Параметры

Имя Где Тип Описание
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).

Ответы

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 · Право release.manage

Параметры

Имя Где Тип Описание
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).

Тело запроса обязательный

Ответы

  • 200 Already held. Release
  • 202 Downloading; the release turns verified or failed. Release
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error
  • 503 Error (spec/API.md). Error
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 · Право release.manage

Параметры

Имя Где Тип Описание
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).

Тело запроса обязательный

  • application/x-tar string (binary)

Ответы

  • 200 The same manifest is already held. Release
  • 201 Imported and verified. Release
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error
GET /v1/releases/{version} One release the hub holds, with its signed manifest.

operationId getRelease · Право release.read

Параметры

Имя Где Тип Описание
version обязательный 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).

Ответы

DELETE /v1/releases/{version} Remove a release and its files from storage; 409 release_in_use while it is in use.

operationId deleteRelease · Право release.manage

Параметры

Имя Где Тип Описание
version обязательный 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).

Ответы

  • 204 Removed.
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
GET /v1/rollouts Rollouts, newest first (spec/RELEASES.md, Rollouts).

operationId listRollouts · Право release.read

Параметры

Имя Где Тип Описание
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.

Ответы

  • 200 OK object
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
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 · Право release.manage

Параметры

Имя Где Тип Описание
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.

Тело запроса обязательный

Ответы

  • 201 Started; the first wave's stores are given their targets. Rollout
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error
GET /v1/rollouts/{id} One rollout with its waves.

operationId getRollout · Право release.read

Параметры

Имя Где Тип Описание
id обязательный 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).

Ответы

GET /v1/rollouts/{id}/stores Each store of a rollout with its wave, update state and gate status, in the waves' order.

operationId listRolloutStores · Право release.read

Параметры

Имя Где Тип Описание
id обязательный 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.

Ответы

  • 200 OK object
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
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 · Право release.manage

Параметры

Имя Где Тип Описание
id обязательный 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).

Ответы

  • 200 OK Rollout
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
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 · Право release.manage

Параметры

Имя Где Тип Описание
id обязательный 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).

Ответы

  • 200 OK Rollout
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
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 · Право release.manage

Параметры

Имя Где Тип Описание
id обязательный 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).

Ответы

  • 200 OK Rollout
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
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 · Право release.manage

Параметры

Имя Где Тип Описание
id обязательный path string (uuid)
store_id обязательный 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).

Ответы

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 · Право release.manage

Параметры

Имя Где Тип Описание
id обязательный path string (uuid)
store_id обязательный 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).

Ответы

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 · Право store.read

Параметры

Имя Где Тип Описание
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 обязательный query AppId
platform обязательный query ReleasePlatform
current query string The app's own version; left out for a first install.

Ответы

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

Параметры

Имя Где Тип Описание
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).

Тело запроса обязательный

Ответы

  • 204 Kept.
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 413 Error (spec/API.md). Error
  • 429 Error (spec/API.md). Error
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 · Право release.manage

Параметры

Имя Где Тип Описание
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).

Тело запроса обязательный

Ответы

  • 204 Cleared.
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
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 · Право store.read

Параметры

Имя Где Тип Описание
version обязательный 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).

Ответы

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 · Право store.read

Параметры

Имя Где Тип Описание
version обязательный path string A release's version (spec/RELEASES.md).
name обязательный 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>.

Ответы

  • 200 The whole file. string (binary)
  • 206 The range asked for, with Content-Range. string (binary)
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 416 The range is outside the file.
GET /v1/hub-update The hub's own update (spec/RELEASES.md, The hub's own update).

operationId getHubUpdate · Право release.read

Параметры

Имя Где Тип Описание
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).

Ответы

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 · Право release.manage

Параметры

Имя Где Тип Описание
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).

Тело запроса обязательный

Ответы

  • 200 OK HubUpdate
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error

Схемы

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 обязательный integer

RolloutCreate object

release обязательный 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 обязательный string (uuid)
reason обязательный "failed" | "rolled_back" | "alert" | "app_failed"
alert_kind обязательный AlertKind | null
app AppId For app_failed, the app held first; absent otherwise.
platform ReleasePlatform For app_failed, its platform.

Rollout object

id обязательный string (uuid)
release обязательный string
state обязательный RolloutState
waves обязательный array of object
current_wave обязательный integer Counted from 0.
gate обязательный RolloutGate
window обязательный UpdateWindow | null
store_windows обязательный map of UpdateWindow | null
paused_by_gate обязательный GatePause | null Set while the state is paused_by_gate.
resumed_at обязательный string (date-time) | null
created_by обязательный string (uuid)
created_at обязательный string (date-time)
finished_at обязательный string (date-time) | null When it was completed or rolled back.
version обязательный integer (int64)

RolloutStore object

store_id обязательный string (uuid)
wave обязательный integer
skipped обязательный boolean
state обязательный UpdateState | null From the store's last report; null before one.
gate_status обязательный "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 обязательный string | null
previous_version обязательный string | null What the store ran when it was first given the target; what a rollback returns to.
target_version обязательный string | null
action обязательный "update" | "rollback" | null
started_at обязательный string (date-time) | null
done_at обязательный string (date-time) | null
healthy_since обязательный string (date-time) | null
step обязательный UpdateStep | null
error обязательный string | null

HubUpdatePut object

version обязательный 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 обязательный string
previous_version обязательный string | null
target обязательный object | null
state обязательный UpdateState
state_since обязательный string (date-time) | null
step обязательный UpdateStep | null
error обязательный string | null
updater обязательный "compose" | "none"
backup обязательный UpdateBackup | null
rehearsal обязательный UpdateRehearsal | null The hub rehearses only when asked (node migrate --rehearse); null without a rehearsal.
background_tasks обязательный array of BackgroundTask
apps обязательный array of AppVersionCount The hub's office store's apps, as a store's GET /v1/update gives them.
app_offers обязательный array of AppOffer