summaryrefslogtreecommitdiff
path: root/include/py/homekit/modem/config.py
blob: 16537516d2c72455befbf7c0a7d99a9832be594d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from ..config import ConfigUnit, Translation
from typing import Optional
from enum import Enum


class ModemType(Enum):
    E3372 = 'e3372'
    GPON = 'gpon'


class ModemsConfig(ConfigUnit):
    NAME = 'modems'

    _strings: Translation

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._strings = Translation('modems')

    @classmethod
    def schema(cls) -> Optional[dict]:
        return {
            'type': 'dict',
            'schema': {
                'ip': cls._addr_schema(required=True, only_ip=True),
                'gateway_ip': cls._addr_schema(required=False, only_ip=True),
                'legacy_auth': {'type': 'boolean', 'required': True},
                'type': {'type': 'string', 'allowed': [t.value for t in ModemType], 'required': True}
            }
        }

    def getshortname(self, modem: str, lang=Translation.DEFAULT_LANGUAGE):
        return self._strings.get(lang)[modem]['short']

    def getfullname(self, modem: str, lang=Translation.DEFAULT_LANGUAGE):
        return self._strings.get(lang)[modem]['full']