Жизненный цикл этикетки

Метки, поля и варианты выбора проходят через определенные состояния на протяжении всего своего жизненного цикла. Кроме того, метки могут иметь различные версии. На следующей диаграмме показан жизненный цикл метки, включая внесение изменений:

Обозначения на диаграмме жизненного цикла.
Рисунок 3. Жизненный цикл этикетки.
  1. Создание метки ( create() ) — Метка создается и сохраняется в базе данных с revision_id=1 . Метка имеет состояние UNPUBLISHED_DRAFT . В этом состоянии:
    • Пользователи не могут просмотреть метку.
    • Пользователи не могут применять метку к элементам Google Диска.
  2. (необязательно) Обновить метку, поле или выбор ( delta() ) — Каждое обновление, даже до его публикации, сохраняется в базе данных, и номер версии метки увеличивается на единицу.
  3. Опубликовать метку ( publish() ) — Метка имеет состояние PUBLISHED , и пользователи могут её применить. Публикация метки увеличивает её номер ревизии.
  4. (необязательно) Обновление метки, поля или выбора ( delta() ) — Метка, поле или выбор обновляются и сохраняются в базе данных как черновик метки. Метка имеет состояние PUBLISHED с hasUnpublishedChanges=true , что означает наличие черновых изменений, но они недоступны пользователям. Каждое обновление увеличивает номер ревизии метки.
  5. (необязательно) Опубликовать метку ( publish() ) — Если доступна, публикуется самая актуальная версия. Метка имеет состояние PUBLISHED , и пользователи могут применить метку. Публикация метки увеличивает номер ее версии.
  6. Отключение метки ( disable() ) — метка имеет состояние DISABLED , хотя пользователи могут применить метку через API. Однако отключенная метка не отображается в пользовательском интерфейсе, если не настроена на ее отображение. Присвоение метке статуса устаревшей увеличивает ее версию.
  7. Включить метку ( enable() ) — Метка возвращается в состояние PUBLISHED , и пользователи могут её применить. Публикация метки увеличивает её номер ревизии.
  8. Удаление метки ( delete() ) — метка находится в состоянии DELETED и не может быть применена. Удаленные метки в конечном итоге удаляются.

Важно подчеркнуть, что каждое обновление метки увеличивает номер ее ревизии. И если метка уже была опубликована, повторная публикация после n обновлений означает, что номер ее опубликованной ревизии равен номеру ревизии + n + 1, то есть количеству последовательных обновлений.