from enum import Enum


class Relation(str, Enum):
    CAUSALLY_UPSTREAM_OF_NEGATIVE_EFFECT = "RO:0002305"
    CAUSALLY_UPSTREAM_OF_POSITIVE_EFFECT = "RO:0002304"
    CONSTITUTIVELY_UPSTREAM_OF = "RO:0012009"
    DIRECTLY_NEGATIVELY_REGULATES = "RO:0002630"
    DIRECTLY_POSITIVELY_REGULATES = "RO:0002629"
    ENABLED_BY = "RO:0002333"
    HAPPENS_DURING = "RO:0002092"
    HAS_INPUT = "RO:0002233"
    HAS_OUTPUT = "RO:0002234"
    HAS_PART = "BFO:0000051"
    HAS_PRIMARY_INPUT = "RO:0004009"
    HAS_PRIMARY_OUTPUT = "RO:0004008"
    HAS_SMALL_MOLECULE_ACTIVATOR = "RO:0012001"
    HAS_SMALL_MOLECULE_INHIBITOR = "RO:0012002"
    INDIRECTLY_NEGATIVELY_REGULATES = "RO:0002407"
    INDIRECTLY_POSITIVELY_REGULATES = "RO:0002409"
    INPUT_OF = "RO:0002352"
    IS_SMALL_MOLECULE_ACTIVATOR_OF = "RO:0012005"
    IS_SMALL_MOLECULE_INHIBITOR_OF = "RO:0012006"
    LOCATED_IN = "RO:0001025"
    NEGATIVELY_REGULATES = "RO:0002212"
    OCCURS_IN = "BFO:0000066"
    OUTPUT_OF = "RO:0002353"
    PART_OF = "BFO:0000050"
    POSITIVELY_REGULATES = "RO:0002213"
    PROVIDES_INPUT_FOR = "RO:0002413"
    REMOVES_INPUT_FOR = "RO:0012010"

    def __str__(self):
        return self.value
