import enum


class YtjYritysmuoto(enum.Enum):
    EI_YRITYSMUOTOA = 'Ei yritysmuotoa'
    AATTEELLINEN_YHDISTYS = 'Aatteellinen yhdistys'
    AHVENANMAAN_LIIKELAITOS = 'Ahvenanmaan liikelaitos'
    AHVENANMAAN_MAAKUNTA_TAI_VIRASTO = 'Ahvenanmaan maakunta ja sen virastot'
    ASUKASHALLINTOALUA = 'Asukashallintoalue'
    ASUMISOIKEUSYHDISTYS = 'Asumisoikeusyhdistys'
    ASUNTOOSAKEYHTIO = 'Asunto-osakeyhtiö'
    AVOIN_YHTIO = 'Avoin yhtiö'
    ELINKEINOYHTYMA = 'Elinkeinoyhtymä'
    ELAKESAATIO = 'Eläkesäätiö'
    ERILLISHALLINNOLLINEN_VALTION_ALUE = 'Erillishallinnollinen valtion laitos'
    ERITYISLAINSAADANTOON_PERUSTUVA_YHDISTYS = 'Erityislainsäädäntöön perustuva yhdistys'
    EU_TALOUDELLINEN_ETUYHT_SIVUTOIMIPAIKKA = 'Euroopp.taloudell.etuyht.sivutoimipaikka'
    EU_TALOUDELLINE_ETURYHMA = 'Eurooppalainen taloudellinen etuyhtymä'
    EU_OSUUSKUNNAN_KIINTEA_TOIMIPAIKKA = 'Eurooppaosuuskunnan kiinteä toimipaikka'
    EU_OSUUSKUNTA = 'Eurooppaosuuskunta'
    EU_OSUUSPANKKI = 'Eurooppaosuuspankki'
    EU_YHTIO = 'Eurooppayhtiö'
    EV_LUT_KIRKKO = 'Ev.lut.kirkko'
    HYPOTEEKKIYHDISTYS = 'Hypoteekkiyhdistys'
    JULKINEN_KESKINEN_VAKUUTUSYHTIO = 'Julkinen keskinäinen vakuutusyhtiö'
    JULKINEN_OSAKEYHTIO = 'Julkinen osakeyhtiö'
    JULKINEN_VAKUUTUSOSAKEYTIO = 'Julkinen vakuutusosakeyhtiö'
    KAUPPAKAMARI = 'Kauppakamari'
    KESKINAINEN_KIINTEISTOOSAKEYTIO = 'Keskinäinen kiinteistöosakeyhtiö'
    KESKINAINEN_VAHINKOVAK_YHDISTYS = 'Keskinäinen vahinkovak.yhdistys'
    KESKINAINEN_VAKUUTUSYHTIO = 'Keskinäinen vakuutusyhtiö'
    KOMMANDIITTIYHTIO = 'Kommandiittiyhtiö'
    KONKURSSIPESA = 'Konkurssipesä'
    KUNNALLINEN_LIIKELAITOS = 'Kunnallinen liikelaitos'
    KUNTA = 'Kunta'
    KUNTAINLIITON_LIIKELAITOS = 'Kuntainliiton liikelaitos'
    KUNTAYHTYMA = 'Kuntayhtymä'
    KUOLINPESA = 'Kuolinpesä'
    LAIVANISANNISTOYHTIO = 'Laivanisännistöyhtiö'
    METSANHOITOYHDISTYS = 'Metsänhoitoyhdistys'
    MUU_JULKISOIKEUDELLINE_OIKEUSHENKILO = 'Muu julkisoikeudellinen oikeushenkilö'
    MUU_KIINTEISTOOSAKEYHTIO = 'Muu kiinteistöosakeyhtiö'
    MUU_SAATIO = 'Muu säätiö'
    MUU_TALOUDELLINEN_YHDISTYS = 'Muu taloudellinen yhdistys'
    MUU_VEROTUKSEN_YKSIKKO = 'Muu verotuksen yksikkö'
    MUU_YHDISTYS = 'Muu yhdistys'
    MUU_YHTEISVAST_PIDATYSVELVOLLINEN = 'Muu yhteisvast.pidätysvelvollinen'
    MUU_YHTIO = 'Muu yhtiö'
    MUUT_OIKEUSHENKILOT = 'Muut oikeushenkilöt'
    ORTODOKSINEN_KIRKKO = 'Ortodoksinen kirkko'
    OSAKEYHTIO = 'Osakeyhtiö'
    OSUUSKUNTA = 'Osuuskunta'
    OSUUSPANKKI = 'Osuuspankki'
    PALISKUNTA = 'Paliskunta'
    PAIKALLISYHTEISO = 'Paikallisyhteisö'
    SEURAKUNTA_PAIKALLISYHTEISO = 'Seurakunta/Paikallisyhteisö'
    SIVULIIKE = 'Sivuliike'
    SAASTOPANKKI = 'Säästöpankki'
    SAATIO = 'Säätiö'
    TALOUDELLINEN_YHDISTYS = 'Taloudellinen yhdistys'
    TYOELAKEKASSA = 'Työeläkekassa'
    TYOTTOMYYSKASSA = 'Työttömyyskassa'
    ULKOMAINEN_YHTEISO = 'Ulkomainen yhteisö'
    USKONNOLLINEN_YHDYSKUNTA = 'Uskonnollinen yhdyskunta'
    VAKUUTUSKASSA = 'Vakuutuskassa'
    VAKUUTUSOSAKEYHTIO = 'Vakuutusosakeyhtiö'
    VAKUUTUSYHDISTYS = 'Vakuutusyhdistys'
    VALTIO_JA_SEN_LAITOKSET = 'Valtio ja sen laitokset'
    VALTION_LIIKELAITOS = 'Valtion liikelaitos'
    VEROTUSYHTYMA = 'Verotusyhtymä'
    YHTEISETUUDET = 'Yhteisetuudet'
    YHTEISMETSA = 'Yhteismetsä'
    YKSITYINEN_ELINKEINONHARJOITTAJA = 'Yksityinen elinkeinonharjoittaja'
    YLIOPPILASKUNTA_TAI_OSAKUNTA = 'Ylioppilaskunta tai osakunta'

    def __str__(self):
        return self.value

    @classmethod
    def has_value(cls, value):
        return value in cls._member_names_

    @classmethod
    def choices(cls):
        return tuple((i.name, i.value) for i in cls)
