from enum import Enum


class KeyType(str, Enum):
    ANNOTATED_RELATIONSHIP_ELEMENT = "ANNOTATED_RELATIONSHIP_ELEMENT"
    ASSET_ADMINISTRATION_SHELL = "AssetAdministrationShell"
    BASIC_EVENT_ELEMENT = "BASIC_EVENT_ELEMENT"
    BLOB = "BLOB"
    CAPABILITY = "CAPABILITY"
    CONCEPT_DESCRIPTION = "CONCEPT_DESCRIPTION"
    DATA_ELEMENT = "DATA_ELEMENT"
    ENTITY = "ENTITY"
    EVENT_ELEMENT = "EVENT_ELEMENT"
    FILE = "FILE"
    FRAGMENT_REFERENCE = "FRAGMENT_REFERENCE"
    GLOBAL_REFERENCE = "GlobalReference"
    IDENTIFIABLE = "IDENTIFIABLE"
    MULTI_LANGUAGE_PROPERTY = "MULTI_LANGUAGE_PROPERTY"
    OPERATION = "Operation"
    PROPERTY = "Property"
    RANGE = "RANGE"
    REFERABLE = "REFERABLE"
    REFERENCE_ELEMENT = "ReferenceElement"
    RELATIONSHIP_ELEMENT = "RELATIONSHIP_ELEMENT"
    SUBMODEL = "Submodel"
    SUBMODEL_ELEMENT = "SUBMODEL_ELEMENT"
    SUBMODEL_ELEMENT_COLLECTION = "SubmodelElementCollection"
    SUBMODEL_ELEMENT_LIST = "SubmodelElementList"

    def __str__(self) -> str:
        return str(self.value)
