From 29ce1e675864847835f4b53c7afa72b40a4e36cd Mon Sep 17 00:00:00 2001 From: davelopez <46503462+davelopez@users.noreply.github.com> Date: Mon, 1 Feb 2021 11:25:15 +0100 Subject: [PATCH] Add TaggableItemClass enum and fix item_id field typing --- lib/galaxy/managers/tags.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/managers/tags.py b/lib/galaxy/managers/tags.py index 0028a24ab77..019d868f391 100644 --- a/lib/galaxy/managers/tags.py +++ b/lib/galaxy/managers/tags.py @@ -1,3 +1,4 @@ +from enum import Enum from typing import ( List, Optional, @@ -9,18 +10,29 @@ from pydantic import ( ) from galaxy.managers.context import ProvidesUserContext +from galaxy.schema.fields import EncodedDatabaseIdField + + +class TaggableItemClass(str, Enum): + History = "History" + HistoryDatasetAssociation = "HistoryDatasetAssociation" + HistoryDatasetCollectionAssociation = "HistoryDatasetCollectionAssociation" + LibraryDatasetDatasetAssociation = "LibraryDatasetDatasetAssociation" + Page = "Page" + StoredWorkflow = "StoredWorkflow" + Visualization = "Visualization" class ItemTagsPayload(BaseModel): - item_id: str = Field( + item_id: EncodedDatabaseIdField = Field( ..., # This field is required title="Item ID", description="The `encoded identifier` of the item whose tags will be updated.", ) - item_class: str = Field( + item_class: TaggableItemClass = Field( ..., # This field is required title="Item class", - description="The name of the class of the item.", + description="The name of the class of the item that will be tagged.", ) item_tags: Optional[List[str]] = Field( default=None,