ラベル、フィールド、選択肢は、ライフサイクル全体を通して特定の状態を経ます。また、ラベルには異なるリビジョンが存在する場合があります。次の図は、リビジョンを含むラベルのライフサイクルを示しています。
- ラベルを作成する(
create()
) - ラベルが作成され、revision_id=1
としてデータベースに保存されます。ラベルの状態はUNPUBLISHED_DRAFT
です。この状態では:- ユーザーにラベルが表示されない
- ユーザーがドライブのアイテムにラベルを適用できない。
- (省略可)ラベル、フィールド、選択肢を更新する(
delta()
) - 公開前であっても、すべての更新はデータベースに保存され、ラベルのリビジョンが増加します。 - ラベルを公開する(
publish()
) - ラベルの状態がPUBLISHED
になり、ユーザーがラベルを適用できるようになります。ラベルを公開すると、リビジョンがインクリメントされます。 - (省略可)ラベル、フィールド、選択肢を更新する(
delta()
) - ラベル、フィールド、選択肢が更新され、下書きラベルとしてデータベースに保存されます。ラベルのステータスはPUBLISHED
で、hasUnpublishedChanges=true
は変更が下書き状態であり、ユーザーが利用できないことを意味します。更新ごとに、ラベルのリビジョンが増加します。 - (省略可)ラベルを公開する(
publish()
) - 利用可能な場合は、最新のドラフトが公開されます。ラベルの状態はPUBLISHED
で、ユーザーはラベルを適用できます。ラベルを公開すると、バージョンがインクリメントされます。 - ラベルを無効にする(
disable()
) - ラベルの状態はDISABLED
ですが、ユーザーは API を介してラベルを適用できます。ただし、無効のラベルは、表示するように構成されていない限り、UI に表示されません。ラベルを非推奨にすると、リビジョンが増加します。 - ラベルを有効にする(
enable()
) - ラベルがPUBLISHED
状態に戻り、ユーザーがラベルを適用できるようになります。ラベルを公開すると、リビジョンがインクリメントされます。 - ラベルを削除する(
delete()
) - ラベルの状態がDELETED
で、適用できません。削除されたラベルは最終的に消去されます。
ラベルを更新するたびにラベルのリビジョンが増加することを強調することが重要です。また、ラベルがすでに公開されている場合、n 回の更新後に再度公開すると、公開されたリビジョン番号はリビジョン + n + 1 回の連続更新数になります。