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