from dataclasses import dataclass
from typing import Optional


@dataclass(init=True, repr=True, order=False, frozen=True)
class Server:
    host: str
    port: int

@dataclass(init=True, repr=True, order=False, frozen=True)
class Octiva:
    storage_base_uri: str

@dataclass(init=True, repr=True, order=False, frozen=True)
class Configuration:
    server: Server
    octiva: Optional[Octiva] = None
