{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-drive/json-schema/google-drive-google-apps-drive-labels-v2-delta-update-label-request-schema.json",
  "title": "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequest",
  "description": "The set of requests for updating aspects of a label. If any request isn't valid, no requests will be applied.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-drive-drivelabels-labels-api-openapi.yml#/components/schemas/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequest",
  "properties": {
    "requests": {
      "type": "array",
      "description": "A list of updates to apply to the label. Requests will be applied in the order they are specified.",
      "items": {
        "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestRequest"
      }
    },
    "languageCode": {
      "description": "The BCP-47 language code to use for evaluating localized field labels when `include_label_in_response` is `true`.",
      "type": "string"
    },
    "useAdminAccess": {
      "type": "boolean",
      "description": "Set to `true` in order to use the user's admin credentials. The server will verify the user is an admin for the label before allowing access."
    },
    "writeControl": {
      "$ref": "#/$defs/GoogleAppsDriveLabelsV2WriteControl",
      "description": "Provides control over how write requests are executed."
    },
    "view": {
      "type": "string",
      "enum": [
        "LABEL_VIEW_BASIC",
        "LABEL_VIEW_FULL"
      ],
      "description": "When specified, only certain fields belonging to the indicated view will be returned."
    }
  },
  "type": "object",
  "$defs": {
    "GoogleAppsDriveLabelsV2BadgeColors": {
      "properties": {
        "foregroundColor": {
          "$ref": "#/$defs/GoogleTypeColor",
          "description": "Output only. Badge foreground that pairs with the background."
        },
        "backgroundColor": {
          "$ref": "#/$defs/GoogleTypeColor",
          "description": "Output only. Badge background that pairs with the foreground."
        },
        "soloColor": {
          "$ref": "#/$defs/GoogleTypeColor",
          "description": "Output only. Color that can be used for text without a background."
        }
      },
      "type": "object",
      "description": "The color derived from BadgeConfig and changed to the closest recommended supported color."
    },
    "GoogleAppsDriveLabelsV2BadgeConfig": {
      "description": "Badge status of the label.",
      "type": "object",
      "properties": {
        "color": {
          "$ref": "#/$defs/GoogleTypeColor",
          "description": "The color of the badge. When not specified, no badge is rendered. The background, foreground, and solo (light and dark mode) colors set here are changed in the Drive UI into the closest recommended supported color."
        },
        "priorityOverride": {
          "type": "string",
          "description": "Override the default global priority of this badge. When set to 0, the default priority heuristic is used.",
          "format": "int64"
        }
      }
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateFieldRequest": {
      "properties": {
        "field": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2Field",
          "description": "Required. Field to create."
        }
      },
      "description": "Request to create a field within a label.",
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateSelectionChoiceRequest": {
      "properties": {
        "choice": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice",
          "description": "Required. The choice to create."
        },
        "fieldId": {
          "type": "string",
          "description": "Required. The selection field in which a choice will be created."
        }
      },
      "type": "object",
      "description": "Request to create a selection choice."
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteFieldRequest": {
      "description": "Request to delete the field.",
      "properties": {
        "id": {
          "description": "Required. ID of the field to delete.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteSelectionChoiceRequest": {
      "type": "object",
      "description": "Request to delete a choice.",
      "properties": {
        "fieldId": {
          "description": "Required. The selection field from which a choice will be deleted.",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "Required. Choice to delete."
        }
      }
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableFieldRequest": {
      "description": "Request to disable the field.",
      "properties": {
        "updateMask": {
          "type": "string",
          "format": "google-fieldmask",
          "description": "The fields that should be updated. At least one field must be specified. The root `disabled_policy` is implied and should not be specified. A single `*` can be used as a short-hand for updating every field."
        },
        "id": {
          "type": "string",
          "description": "Required. Key of the field to disable."
        },
        "disabledPolicy": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy",
          "description": "Required. Field disabled policy."
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableSelectionChoiceRequest": {
      "description": "Request to disable a choice.",
      "properties": {
        "id": {
          "description": "Required. Choice to disable.",
          "type": "string"
        },
        "updateMask": {
          "type": "string",
          "description": "The fields that should be updated. At least one field must be specified. The root `disabled_policy` is implied and should not be specified. A single `*` can be used as a short-hand for updating every field.",
          "format": "google-fieldmask"
        },
        "disabledPolicy": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy",
          "description": "Required. The disabled policy to update."
        },
        "fieldId": {
          "type": "string",
          "description": "Required. The selection field in which a choice will be disabled."
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableFieldRequest": {
      "description": "Request to enable the field.",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Required. ID of the field to enable."
        }
      }
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableSelectionChoiceRequest": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Required. Choice to enable."
        },
        "fieldId": {
          "type": "string",
          "description": "Required. The selection field in which a choice will be enabled."
        }
      },
      "description": "Request to enable a choice.",
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestRequest": {
      "description": "A single kind of update to apply to a label.",
      "type": "object",
      "properties": {
        "updateSelectionChoiceProperties": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest",
          "description": "Update a choice property within a selection field."
        },
        "deleteField": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteFieldRequest",
          "description": "Deletes a field from the label."
        },
        "enableSelectionChoice": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableSelectionChoiceRequest",
          "description": "Enable a choice within a selection field."
        },
        "updateLabel": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateLabelPropertiesRequest",
          "description": "Updates the label properties."
        },
        "disableSelectionChoice": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableSelectionChoiceRequest",
          "description": "Disable a choice within a selection field."
        },
        "createField": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateFieldRequest",
          "description": "Creates a field."
        },
        "createSelectionChoice": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestCreateSelectionChoiceRequest",
          "description": "Create a choice within a selection field."
        },
        "enableField": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestEnableFieldRequest",
          "description": "Enables the field."
        },
        "deleteSelectionChoice": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDeleteSelectionChoiceRequest",
          "description": "Delete a choice within a selection field."
        },
        "updateField": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldPropertiesRequest",
          "description": "Updates basic properties of a field."
        },
        "updateFieldType": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest",
          "description": "Update field type and/or type options."
        },
        "disableField": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestDisableFieldRequest",
          "description": "Disables the field."
        }
      }
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldPropertiesRequest": {
      "type": "object",
      "description": "Request to update field properties.",
      "properties": {
        "updateMask": {
          "description": "The fields that should be updated. At least one field must be specified. The root `properties` is implied and should not be specified. A single `*` can be used as a short-hand for updating every field.",
          "format": "google-fieldmask",
          "type": "string"
        },
        "id": {
          "description": "Required. The field to update.",
          "type": "string"
        },
        "properties": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldProperties",
          "description": "Required. Basic field properties."
        }
      }
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest": {
      "description": "Request to change the type of a field.",
      "properties": {
        "textOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldTextOptions",
          "description": "Update field to Text."
        },
        "selectionOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSelectionOptions",
          "description": "Update field to Selection."
        },
        "integerOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldIntegerOptions",
          "description": "Update field to Integer."
        },
        "id": {
          "description": "Required. The field to update.",
          "type": "string"
        },
        "userOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldUserOptions",
          "description": "Update field to User."
        },
        "dateOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldDateOptions",
          "description": "Update field to Date."
        },
        "updateMask": {
          "type": "string",
          "description": "The fields that should be updated. At least one field must be specified. The root of `type_options` is implied and should not be specified. A single `*` can be used as a short-hand for updating every field.",
          "format": "google-fieldmask"
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateLabelPropertiesRequest": {
      "properties": {
        "updateMask": {
          "type": "string",
          "description": "The fields that should be updated. At least one field must be specified. The root `label_properties` is implied and should not be specified. A single `*` can be used as a short-hand for updating every field.",
          "format": "google-fieldmask"
        },
        "properties": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2LabelProperties",
          "description": "Required. Label properties to update."
        }
      },
      "description": "Updates basic properties of a label.",
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateSelectionChoicePropertiesRequest": {
      "description": "Request to update a choice property.",
      "properties": {
        "properties": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties",
          "description": "Required. The choice properties to update."
        },
        "id": {
          "description": "Required. The choice to update.",
          "type": "string"
        },
        "fieldId": {
          "description": "Required. The selection field to update.",
          "type": "string"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "The fields that should be updated. At least one field must be specified. The root `properties` is implied and should not be specified. A single `*` can be used as a short-hand for updating every field."
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2Field": {
      "properties": {
        "lifecycle": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2Lifecycle",
          "description": "Output only. The lifecycle of this field."
        },
        "publisher": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2UserInfo",
          "description": "Output only. The user who published this field. This value has no meaning when the field is not published."
        },
        "schemaCapabilities": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSchemaCapabilities",
          "description": "Output only. The capabilities this user has when editing this field."
        },
        "selectionOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSelectionOptions",
          "description": "Selection field options."
        },
        "createTime": {
          "description": "Output only. The time this field was created.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "queryKey": {
          "description": "Output only. The key to use when constructing Drive search queries to find files based on values defined for this field on files. For example, \"`{query_key}` > 2001-01-01\".",
          "type": "string",
          "readOnly": true
        },
        "disabler": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2UserInfo",
          "description": "Output only. The user who disabled this field. This value has no meaning when the field is not disabled."
        },
        "integerOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldIntegerOptions",
          "description": "Integer field options."
        },
        "properties": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldProperties",
          "description": "The basic properties of the field."
        },
        "id": {
          "description": "Output only. The key of a field, unique within a label or library. This value is autogenerated. Matches the regex: `([a-zA-Z0-9])+`.",
          "type": "string",
          "readOnly": true
        },
        "dateOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldDateOptions",
          "description": "Date field options."
        },
        "appliedCapabilities": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldAppliedCapabilities",
          "description": "Output only. The capabilities this user has on this field and its value when the label is applied on Drive items."
        },
        "textOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldTextOptions",
          "description": "Text field options."
        },
        "creator": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2UserInfo",
          "description": "Output only. The user who created this field."
        },
        "displayHints": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldDisplayHints",
          "description": "Output only. UI display hints for rendering a field."
        },
        "lockStatus": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2LockStatus",
          "description": "Output only. The `LockStatus` of this field."
        },
        "disableTime": {
          "type": "string",
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The time this field was disabled. This value has no meaning when the field is not disabled."
        },
        "updater": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2UserInfo",
          "description": "Output only. The user who modified this field."
        },
        "updateTime": {
          "readOnly": true,
          "description": "Output only. The time this field was updated.",
          "type": "string",
          "format": "google-datetime"
        },
        "userOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldUserOptions",
          "description": "User field options."
        }
      },
      "type": "object",
      "description": "Defines a field that has a display name, data type, and other configuration options. This field defines the kind of metadata that may be set on a Drive item."
    },
    "GoogleAppsDriveLabelsV2FieldAppliedCapabilities": {
      "description": "The capabilities related to this field on applied metadata.",
      "properties": {
        "canWrite": {
          "description": "Whether the user can set this field on Drive items.",
          "type": "boolean"
        },
        "canRead": {
          "description": "Whether the user can read related applied metadata on items.",
          "type": "boolean"
        },
        "canSearch": {
          "type": "boolean",
          "description": "Whether the user can search for Drive items referencing this field."
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2FieldDateOptions": {
      "type": "object",
      "properties": {
        "minValue": {
          "$ref": "#/$defs/GoogleTypeDate",
          "description": "Output only. Minimum valid value (year, month, day)."
        },
        "dateFormatType": {
          "type": "string",
          "enum": [
            "DATE_FORMAT_UNSPECIFIED",
            "LONG_DATE",
            "SHORT_DATE"
          ],
          "description": "Localized date formatting option. Field values are rendered in this format according to their locale."
        },
        "maxValue": {
          "$ref": "#/$defs/GoogleTypeDate",
          "description": "Output only. Maximum valid value (year, month, day)."
        },
        "dateFormat": {
          "type": "string",
          "description": "Output only. ICU date format.",
          "readOnly": true
        }
      },
      "description": "Options for the date field type."
    },
    "GoogleAppsDriveLabelsV2FieldDisplayHints": {
      "type": "object",
      "properties": {
        "hiddenInSearch": {
          "description": "This field should be hidden in the search menu when searching for Drive items.",
          "type": "boolean"
        },
        "disabled": {
          "type": "boolean",
          "description": "Whether the field should be shown in the UI as disabled."
        },
        "required": {
          "description": "Whether the field should be shown as required in the UI.",
          "type": "boolean"
        },
        "shownInApply": {
          "description": "This field should be shown in the apply menu when applying values to a Drive item.",
          "type": "boolean"
        }
      },
      "description": "UI display hints for rendering a field."
    },
    "GoogleAppsDriveLabelsV2FieldIntegerOptions": {
      "type": "object",
      "description": "Options for the Integer field type.",
      "properties": {
        "minValue": {
          "description": "Output only. The minimum valid value for the integer field.",
          "type": "string",
          "format": "int64",
          "readOnly": true
        },
        "maxValue": {
          "type": "string",
          "description": "Output only. The maximum valid value for the integer field.",
          "format": "int64",
          "readOnly": true
        }
      }
    },
    "GoogleAppsDriveLabelsV2FieldListOptions": {
      "description": "Options for a multi-valued variant of an associated field type.",
      "properties": {
        "maxEntries": {
          "description": "Maximum number of entries permitted.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2FieldProperties": {
      "type": "object",
      "properties": {
        "required": {
          "description": "Whether the field should be marked as required.",
          "type": "boolean"
        },
        "insertBeforeField": {
          "type": "string",
          "description": "Input only. Insert or move this field before the indicated field. If empty, the field is placed at the end of the list."
        },
        "displayName": {
          "type": "string",
          "description": "Required. The display text to show in the UI identifying this field."
        }
      },
      "description": "The basic properties of the field."
    },
    "GoogleAppsDriveLabelsV2FieldSchemaCapabilities": {
      "description": "The capabilities related to this field when editing the field.",
      "type": "object",
      "properties": {
        "canUpdate": {
          "type": "boolean",
          "description": "Whether the user can change this field."
        },
        "canEnable": {
          "description": "Whether the user can enable this field. The user must have permission and this field must be disabled.",
          "type": "boolean"
        },
        "canDelete": {
          "description": "Whether the user can delete this field. The user must have permission and the field must be deprecated.",
          "type": "boolean"
        },
        "canDisable": {
          "type": "boolean",
          "description": "Whether the user can disable this field. The user must have permission and this field must not already be disabled."
        }
      }
    },
    "GoogleAppsDriveLabelsV2FieldSelectionOptions": {
      "description": "Options for the selection field type.",
      "properties": {
        "listOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldListOptions",
          "description": "When specified, indicates this field supports a list of values. Once the field is published, this cannot be changed."
        },
        "choices": {
          "items": {
            "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice"
          },
          "description": "The options available for this selection field. The list order is consistent, and modified with `insert_before_choice`.",
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2FieldSelectionOptionsChoice": {
      "properties": {
        "lifecycle": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2Lifecycle",
          "description": "Output only. Lifecycle of the choice."
        },
        "publisher": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2UserInfo",
          "description": "Output only. The user who published this choice. This value has no meaning when the choice is not published."
        },
        "id": {
          "type": "string",
          "description": "The unique value of the choice. This ID is autogenerated. Matches the regex: `([a-zA-Z0-9_])+`."
        },
        "disableTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. The time this choice was disabled. This value has no meaning when the choice is not disabled."
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The time this choice was created."
        },
        "appliedCapabilities": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceAppliedCapabilities",
          "description": "Output only. The capabilities related to this choice on applied metadata."
        },
        "publishTime": {
          "readOnly": true,
          "description": "Output only. The time this choice was published. This value has no meaning when the choice is not published.",
          "type": "string",
          "format": "google-datetime"
        },
        "properties": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties",
          "description": "Basic properties of the choice."
        },
        "displayHints": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceDisplayHints",
          "description": "Output only. UI display hints for rendering a choice."
        },
        "lockStatus": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2LockStatus",
          "description": "Output only. The `LockStatus` of this choice."
        },
        "updater": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2UserInfo",
          "description": "Output only. The user who updated this choice last."
        },
        "disabler": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2UserInfo",
          "description": "Output only. The user who disabled this choice. This value has no meaning when the option is not disabled."
        },
        "schemaCapabilities": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceSchemaCapabilities",
          "description": "Output only. The capabilities related to this option when editing the option."
        },
        "creator": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2UserInfo",
          "description": "Output only. The user who created this choice."
        },
        "updateTime": {
          "format": "google-datetime",
          "description": "Output only. The time this choice was updated last.",
          "type": "string",
          "readOnly": true
        }
      },
      "description": "Selection field choice.",
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceAppliedCapabilities": {
      "type": "object",
      "description": "The capabilities related to this choice on applied metadata.",
      "properties": {
        "canSelect": {
          "type": "boolean",
          "description": "Whether the user can select this choice on an item."
        },
        "canRead": {
          "description": "Whether the user can read related applied metadata on items.",
          "type": "boolean"
        },
        "canSearch": {
          "description": "Whether the user can use this choice in search queries.",
          "type": "boolean"
        }
      }
    },
    "GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceDisplayHints": {
      "description": "UI display hints for rendering an option.",
      "properties": {
        "hiddenInSearch": {
          "type": "boolean",
          "description": "This option should be hidden in the search menu when searching for Drive items."
        },
        "darkBadgeColors": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2BadgeColors",
          "description": "The dark-mode color to use for the badge. Changed to Google Material colors based on the chosen `properties.badge_config.color`."
        },
        "shownInApply": {
          "type": "boolean",
          "description": "This option should be shown in the apply menu when applying values to a Drive item."
        },
        "disabled": {
          "description": "Whether the option should be shown in the UI as disabled.",
          "type": "boolean"
        },
        "badgePriority": {
          "format": "int64",
          "type": "string",
          "description": "The priority of this badge. Used to compare and sort between multiple badges. A lower number means the badge should be shown first. When a badging configuration is not present, this will be 0. Otherwise, this will be set to `BadgeConfig.priority_override` or the default heuristic which prefers creation date of the label, and field and option priority."
        },
        "badgeColors": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2BadgeColors",
          "description": "The colors to use for the badge. Changed to Google Material colors based on the chosen `properties.badge_config.color`."
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceProperties": {
      "properties": {
        "displayName": {
          "description": "Required. The display text to show in the UI identifying this field.",
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "The description of this label."
        },
        "insertBeforeChoice": {
          "type": "string",
          "description": "Input only. Insert or move this choice before the indicated choice. If empty, the choice is placed at the end of the list."
        },
        "badgeConfig": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2BadgeConfig",
          "description": "The badge configuration for this choice. When set, the label that owns this choice is considered a \"badged label\"."
        }
      },
      "description": "Basic properties of the choice.",
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceSchemaCapabilities": {
      "description": "The capabilities related to this choice when editing the choice.",
      "properties": {
        "canEnable": {
          "type": "boolean",
          "description": "Whether the user can enable this choice."
        },
        "canUpdate": {
          "description": "Whether the user can update this choice.",
          "type": "boolean"
        },
        "canDisable": {
          "description": "Whether the user can disable this choice.",
          "type": "boolean"
        },
        "canDelete": {
          "type": "boolean",
          "description": "Whether the user can delete this choice."
        }
      },
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2FieldTextOptions": {
      "type": "object",
      "properties": {
        "minLength": {
          "readOnly": true,
          "type": "integer",
          "description": "Output only. The minimum valid length of values for the text field.",
          "format": "int32"
        },
        "maxLength": {
          "description": "Output only. The maximum valid length of values for the text field.",
          "format": "int32",
          "type": "integer",
          "readOnly": true
        }
      },
      "description": "Options for the Text field type."
    },
    "GoogleAppsDriveLabelsV2FieldUserOptions": {
      "properties": {
        "listOptions": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2FieldListOptions",
          "description": "When specified, indicates that this field supports a list of values. Once the field is published, this cannot be changed."
        }
      },
      "description": "Options for the user field type.",
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2LabelProperties": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "The description of the label."
        },
        "title": {
          "description": "Required. Title of the label.",
          "type": "string"
        }
      },
      "description": "Basic properties of the label."
    },
    "GoogleAppsDriveLabelsV2Lifecycle": {
      "properties": {
        "disabledPolicy": {
          "$ref": "#/$defs/GoogleAppsDriveLabelsV2LifecycleDisabledPolicy",
          "description": "The policy that governs how to show a disabled label, field, or selection choice."
        },
        "state": {
          "readOnly": true,
          "enum": [
            "STATE_UNSPECIFIED",
            "UNPUBLISHED_DRAFT",
            "PUBLISHED",
            "DISABLED",
            "DELETED"
          ],
          "description": "Output only. The state of the object associated with this lifecycle.",
          "type": "string"
        },
        "hasUnpublishedChanges": {
          "type": "boolean",
          "description": "Output only. Whether the object associated with this lifecycle has unpublished changes.",
          "readOnly": true
        }
      },
      "description": "The lifecycle state of an object, such as label, field, or choice. For more information, see [Label lifecycle](https://developers.google.com/workspace/drive/labels/guides/label-lifecycle). The lifecycle enforces the following transitions: * `UNPUBLISHED_DRAFT` (starting state) * `UNPUBLISHED_DRAFT` -> `PUBLISHED` * `UNPUBLISHED_DRAFT` -> (Deleted) * `PUBLISHED` -> `DISABLED` * `DISABLED` -> `PUBLISHED` * `DISABLED` -> (Deleted) The published and disabled states have some distinct characteristics: * `Published`: Some kinds of changes might be made to an object in this state, in which case `has_unpublished_changes` will be true. Also, some kinds of changes aren't permitted. Generally, any change that would invalidate or cause new restrictions on existing metadata related to the label are rejected. * `Disabled`: When disabled, the configured `DisabledPolicy` takes effect.",
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2LifecycleDisabledPolicy": {
      "properties": {
        "hideInSearch": {
          "description": "Whether to hide this disabled object in the search menu for Drive items. * When `false`, the object is generally shown in the UI as disabled but it appears in the search results when searching for Drive items. * When `true`, the object is generally hidden in the UI when searching for Drive items.",
          "type": "boolean"
        },
        "showInApply": {
          "type": "boolean",
          "description": "Whether to show this disabled object in the apply menu on Drive items. * When `true`, the object is generally shown in the UI as disabled and is unselectable. * When `false`, the object is generally hidden in the UI."
        }
      },
      "description": "The policy that governs how to treat a disabled label, field, or selection choice in different contexts.",
      "type": "object"
    },
    "GoogleAppsDriveLabelsV2LockStatus": {
      "description": "Contains information about whether a label component should be considered locked.",
      "type": "object",
      "properties": {
        "locked": {
          "description": "Output only. Indicates whether this label component is the (direct) target of a label lock. A label component can be implicitly locked even if it's not the direct target of a label lock, in which case this field is set to false.",
          "readOnly": true,
          "type": "boolean"
        }
      }
    },
    "GoogleAppsDriveLabelsV2UserInfo": {
      "type": "object",
      "description": "Information about a user.",
      "properties": {
        "person": {
          "type": "string",
          "description": "The identifier for this user that can be used with the [People API](https://developers.google.com/people) to get more information. For example, `people/12345678`."
        }
      }
    },
    "GoogleAppsDriveLabelsV2WriteControl": {
      "description": "Provides control over how write requests are executed. When not specified, the last write wins.",
      "properties": {
        "requiredRevisionId": {
          "description": "The revision ID of the label that the write request will be applied to. If this isn't the latest revision of the label, the request will not be processed and will return a 400 Bad Request error.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleTypeColor": {
      "type": "object",
      "properties": {
        "alpha": {
          "format": "float",
          "description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).",
          "type": "number"
        },
        "blue": {
          "type": "number",
          "format": "float",
          "description": "The amount of blue in the color as a value in the interval [0, 1]."
        },
        "green": {
          "type": "number",
          "description": "The amount of green in the color as a value in the interval [0, 1].",
          "format": "float"
        },
        "red": {
          "type": "number",
          "format": "float",
          "description": "The amount of red in the color as a value in the interval [0, 1]."
        }
      },
      "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value—for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ..."
    },
    "GoogleTypeDate": {
      "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
      "type": "object",
      "properties": {
        "month": {
          "format": "int32",
          "type": "integer",
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day."
        },
        "day": {
          "type": "integer",
          "format": "int32",
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant."
        },
        "year": {
          "format": "int32",
          "type": "integer",
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year."
        }
      }
    }
  }
}