Документация · v1

Creodock API

Все операции
POSTИнтерфейс CreodockИдемпотентная команда

Выполнить действие: подписку аккаунта

Выполняет разрешённое действие над подписку аккаунта. Доступные действия зависят от текущего состояния объекта и прав вызывающей стороны.

OpenAPI: Activate a plan or schedule a plan change

POSThttps://api.creodock.com/api/v1/me/subscription/actions
Кто вызывает
Интерфейс Creodock
Операция выполняется от имени вошедшего пользователя через защищённую cookie-сессию.
Доступ
Определяется ролью и принадлежностью объекта
Отдельный scope не объявлен в OpenAPI. Сервер проверяет роль и рабочую область.

Что произойдёт

Поведение, которое важно учесть до отправки запроса.

  • Выполняет действие из тела запроса и может изменить состояние связанного объекта.
  • Поддерживает Idempotency-Key: повторяйте запрос с тем же ключом после сетевого сбоя.

Параметры

Где передать значение, обязательно ли оно и откуда его получить.

ПолеГдеТипОписание
Idempotency-KeyОбязательно
headerstring
Уникальный ключ команды. Используйте UUID и сохраняйте тот же ключ при безопасном повторе запроса.Минимальная длина: 16 · Максимальная длина: 128

Тело запроса

Обязательно для этой операции.

application/json

Схема: SubscriptionActionRequest

ПолеТипОписание
actionОбязательно
string
Поле «action» в структуре запроса или ответа.Допустимо: activate_plan, change_plan, cancel_scheduled_changeПример: activate_plan
billingIntervalНеобязательно
string
Поле «billingInterval» в структуре запроса или ответа.Допустимо: month, yearПример: month
planIdНеобязательно
string
Поле «planId» в структуре запроса или ответа.
versionОбязательно
integer · int64
Версия объекта для защиты от конфликтующих изменений.Минимум: 1

Ответы

Все состояния ответа, объявленные этой операцией в OpenAPI.

200

Updated subscription

application/json

Схема: PersonalSubscription

ПолеТипОписание
availableActionsОбязательно
string[]
Поле «availableActions» в структуре запроса или ответа.
billingIntervalОбязательно
object
Поле «billingInterval» в структуре запроса или ответа.Допустимо: month, year, Пример: month
currentPeriodEndОбязательно
object
Поле «currentPeriodEnd» в структуре запроса или ответа.
planОбязательно
SubscriptionPlan
Поле «plan» в структуре запроса или ответа.
renewalОбязательно
object
Поле «renewal» в структуре запроса или ответа.
scheduledChangeОбязательно
вариант | вариант
Поле «scheduledChange» в структуре запроса или ответа.
statusОбязательно
string
Текущий статус объекта.Допустимо: free, active, expiredПример: free
versionОбязательно
integer · int64
Версия объекта для защиты от конфликтующих изменений.
{
  "availableActions": [
    "string"
  ],
  "billingInterval": "month",
  "currentPeriodEnd": "2026-09-05T12:00:00Z",
  "plan": {
    "amount": {},
    "annualAmount": {},
    "description": "string",
    "features": [
      "string"
    ],
    "id": "string",
    "maximumWorkspaces": 1,
    "minimumSeats": 1,
    "name": "string",
    "selfService": true
  },
  "renewal": {
    "canRenew": true,
    "price": {
      "amountMinor": "string",
      "currency": "string",
      "scale": 1
    },
    "shortfall": {
      "amountMinor": "string",
      "currency": "string",
      "scale": 1
    }
  },
  "scheduledChange": {
    "billingInterval": "month",
    "effectiveAt": "2026-09-05T12:00:00Z",
    "plan": {
      "description": "string",
      "features": [],
      "id": "string",
      "maximumWorkspaces": 1,
      "minimumSeats": 1,
      "name": "string",
      "selfService": true
    }
  },
  "status": "free",
  "version": 1
}
409

Problem Details response

application/json

Схема: Problem

422

Problem Details response

application/json

Схема: Problem

Ошибки и восстановление

Не только причина, но и конкретное действие для вызывающей стороны.

СтатусЧто означаетПовторЧто делать
409Конфликт состояния или версииПосле чтенияПолучите актуальный объект и повторите изменение.
422Данные не прошли бизнес-проверкуПосле исправленияИсправьте поля, перечисленные в fieldErrors.

Формат Problem Details

{
  "type": "https://api.creodock.com/problems/invalid-request",
  "title": "Данные не прошли проверку",
  "status": 422,
  "code": "invalid_request",
  "detail": "Проверьте отмеченные поля.",
  "traceId": "req_01J8M4Y6QX",
  "fieldErrors": [
    { "field": "items[0].formats", "code": "required", "message": "Выберите формат." }
  ]
}