Source code for harp_apps.proxy.settings

from functools import cached_property

from harp.config import Configurable, Stateful

from .endpoint import Endpoint, EndpointSettings
from .remote import Remote, RemoteEndpoint, RemoteEndpointSettings, RemoteProbe, RemoteProbeSettings, RemoteSettings

__all__ = [
    "Endpoint",
    "EndpointSettings",
    "Proxy",
    "ProxySettings",
    "Remote",
    "RemoteEndpoint",
    "RemoteEndpointSettings",
    "RemoteProbe",
    "RemoteProbeSettings",
    "RemoteSettings",
]


class BaseProxySettings(Configurable):
    pass


[docs] class ProxySettings(BaseProxySettings): """ Configuration parser for ``proxy`` settings. .. code-block:: yaml endpoints: # see ProxyEndpoint - ... """ endpoints: list[EndpointSettings] = []
[docs] class Proxy(Stateful[ProxySettings]): @cached_property def endpoints(self) -> list[Endpoint]: return [Endpoint(settings=settings) for settings in self.settings.endpoints]