from __future__ import annotations
from typing import List, Optional, Union, Any
from enum import Enum
from pydantic import Field
from ..base import CIMBase, CIMModelRegistry
from rdflib import URIRef

CIM = URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#')

class SteadyStateHypothesisVersion(CIMBase):
    __cim_class__ = URIRef('http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion')
    baseUML: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.baseUML')
    baseURI: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.baseURI')
    date: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.date')
    differenceModelURI: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.differenceModelURI')
    entsoeUML: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.entsoeUML')
    entsoeURI: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.entsoeURI')
    modelDescriptionURI: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.modelDescriptionURI')
    namespaceRDF: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.namespaceRDF')
    namespaceUML: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.namespaceUML')
    shortName: Optional[str] = Field(default=None, alias='http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion.shortName')

CIMModelRegistry.register(URIRef('http://entsoe.eu/CIM/SchemaExtension/3/1#SteadyStateHypothesisVersion'), SteadyStateHypothesisVersion)

class CsOperatingModeKind(CIMBase):
    __cim_class__ = URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#CsOperatingModeKind')
    pass

CIMModelRegistry.register(URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#CsOperatingModeKind'), CsOperatingModeKind)

class CsPpccControlKind(CIMBase):
    __cim_class__ = URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#CsPpccControlKind')
    pass

CIMModelRegistry.register(URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#CsPpccControlKind'), CsPpccControlKind)

class VsPpccControlKind(CIMBase):
    __cim_class__ = URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#VsPpccControlKind')
    pass

CIMModelRegistry.register(URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#VsPpccControlKind'), VsPpccControlKind)

class VsQpccControlKind(CIMBase):
    __cim_class__ = URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#VsQpccControlKind')
    pass

CIMModelRegistry.register(URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#VsQpccControlKind'), VsQpccControlKind)

class AsynchronousMachineKind(CIMBase):
    __cim_class__ = URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#AsynchronousMachineKind')
    pass

CIMModelRegistry.register(URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#AsynchronousMachineKind'), AsynchronousMachineKind)

class SynchronousMachineOperatingMode(CIMBase):
    __cim_class__ = URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#SynchronousMachineOperatingMode')
    pass

CIMModelRegistry.register(URIRef('http://iec.ch/TC57/2013/CIM-schema-cim16#SynchronousMachineOperatingMode'), SynchronousMachineOperatingMode)

__all__ = [
    'SteadyStateHypothesisVersion',
    'CsOperatingModeKind',
    'CsPpccControlKind',
    'VsPpccControlKind',
    'VsQpccControlKind',
    'AsynchronousMachineKind',
    'SynchronousMachineOperatingMode',
]
