Stay organized with collectionsSave and categorize content based on your preferences.
Labels, fields, and choices go through specific states throughout their lives.
Additionally, labels might have different revisions. The following diagram shows
the label lifecycle, including revisioning:
Figure 3.Lifecycle of a label
Create a label (create())—The label is created and stored in a
database asrevision_id=1. The label has the state ofUNPUBLISHED_DRAFT.
In this state:
Users can't view the label
Users can't apply the label to Drive items.
(optional) Update a label, field, or choice (delta())— Every update,
even before it's published, is stored in a database, and the label's
revision is incremented.
Publish a label (publish())—The label has the state ofPUBLISHEDand
users can apply the label. Publishing the label increments its revision.
(optional) Update a label, field, or choice (delta())— The label,
field, or choice is updated and stored in a database as a draft label. The
label has the state ofPUBLISHEDwithhasUnpublishedChanges=truemeaning
there are draft changes, but they aren't available to users. Each update
increments the label's revision.
(optional) Publish a label (publish())—If available, the most-current
draft is published. The label has the state ofPUBLISHEDand users can
apply the label. Publishing the label increments its version.
Disable a label (disable())—The label has the state ofDISABLEDthough users can apply the label through the API. However, a disabled label
isn't shown in a UI unless configured to be shown. Deprecating the label
increments its revision.
Enable a label (enable())—The label is returned to aPUBLISHEDstate
and users can apply the label. Publishing the label increments its revision.
Delete a label (delete())—The label has a state ofDELETEDand
can't be applied. Deleted labels are eventually purged.
It's important to emphasize that every update to a label increments the label's
revision. And, if the label has already been published, publishing it again
afternupdates means that its published revision number is revision +n+ 1
number of successive updates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Label lifecycle\n\nLabels, fields, and choices go through specific states throughout their lives.\nAdditionally, labels might have different revisions. The following diagram shows\nthe label lifecycle, including revisioning:\n**Figure 3.** Lifecycle of a label\n\n1. **Create a label (`create()`)** ---The label is created and stored in a database as `revision_id=1`. The label has the state of `UNPUBLISHED_DRAFT`. In this state:\n - Users can't view the label\n - Users can't apply the label to Drive items.\n2. **(optional) Update a label, field, or choice (`delta()`)**--- Every update, even before it's published, is stored in a database, and the label's revision is incremented.\n3. **Publish a label (`publish()`)** ---The label has the state of `PUBLISHED` and users can apply the label. Publishing the label increments its revision.\n4. **(optional) Update a label, field, or choice (`delta()`)** --- The label, field, or choice is updated and stored in a database as a draft label. The label has the state of `PUBLISHED` with `hasUnpublishedChanges=true` meaning there are draft changes, but they aren't available to users. Each update increments the label's revision.\n5. **(optional) Publish a label (`publish()`)** ---If available, the most-current draft is published. The label has the state of `PUBLISHED` and users can apply the label. Publishing the label increments its version.\n6. **Disable a label (`disable()`)** ---The label has the state of `DISABLED` though users can apply the label through the API. However, a disabled label isn't shown in a UI unless configured to be shown. Deprecating the label increments its revision.\n7. **Enable a label (`enable()`)** ---The label is returned to a `PUBLISHED` state and users can apply the label. Publishing the label increments its revision.\n8. **Delete a label (`delete()`)** ---The label has a state of `DELETED` and can't be applied. Deleted labels are eventually purged.\n\nIt's important to emphasize that every update to a label increments the label's\nrevision. And, if the label has already been published, publishing it again\nafter *n* updates means that its published revision number is revision + *n* + 1\nnumber of successive updates."]]