#!/usr/bin/env python3 # -*- coding: utf-8 -*- from typing import Self class CPUModel: def __init__(self:Self, _in:float, _out:float, maximum:float, minimum:float, average:float ) -> None: self._in:float = _in self.out:float = _out self.maximum:float = maximum self.minimum:float = minimum self.average:float = average class MemoryModel: def __init__(self:Self, total:int, _in:int, _out:int, maximum:int, minimum:int, average:float ) -> None: self.total:int = total self._in:int = _in self.out:int = _out self.maximum:int = maximum self.minimum:int = minimum self.average:float = average class NetUseModel: def __init__(self:Self, _bytes:int, packets:int, errors:int) -> None: self.bytes:int = _bytes self.packets:int = packets self.errors:int = errors class InterfaceModel: def __init__(self:Self, position:int, name:str, is_ipv6:bool, ip:str, mask:int, received:NetUseModel, transmitted:NetUseModel ) -> None: self.position:int = position self.name:str = name self.is_ipv6:bool = is_ipv6 self.ip:str = ip self.mask:int = mask self.name:str = name self.received:NetUseModel = received self.transmitted:NetUseModel = transmitted class DiskModel: def __init__(self:Self, name:str, total:int, free:int, mount:str|None) -> None: self.name:str = name self.total:int = total self.free:int = free self.mount:str|None = mount class CandleTimeModel: def __init__(self:Self, start:int, end:int) -> None: self.start:int = start self.end:int = end class IterationModel: def __init__(self:Self, key:str, hostnames:list[str], domain:str|None, interfaces:list[InterfaceModel], disks:list[DiskModel], iterations:int, candle_time:CandleTimeModel, cpu:CPUModel, memory:MemoryModel ) -> None: self.key:str = key self.hostnames:list[str] = hostnames self.domain:str|None = domain self.interfaces:list[InterfaceModel] = interfaces self.disks:list[DiskModel] = disks self.iterations:int = iterations self.candle_time:CandleTimeModel = candle_time self.cpu:CPUModel = cpu self.memory:MemoryModel = memory