95 lines
1.9 KiB
Python
95 lines
1.9 KiB
Python
from dataclasses import dataclass
|
|
from typing import List
|
|
|
|
@dataclass
|
|
class AddressObject:
|
|
"""Objet adresse"""
|
|
name: str
|
|
ip_netmask: str = None
|
|
description: str = None
|
|
misc: List[str] = None
|
|
|
|
def __post_init__(self):
|
|
if self.misc is None:
|
|
self.misc = []
|
|
|
|
@dataclass
|
|
class AddressGroup:
|
|
"""Groupe d'adresses"""
|
|
name: str
|
|
members: List[str]
|
|
description: str = None
|
|
misc: List[str] = None
|
|
|
|
def __post_init__(self):
|
|
if self.misc is None:
|
|
self.misc = []
|
|
|
|
@dataclass
|
|
class ServiceObject:
|
|
"""Objet service"""
|
|
name: str
|
|
protocol: str = None
|
|
port: str = None
|
|
source_port: str = None
|
|
description: str = None
|
|
misc: List[str] = None
|
|
|
|
def __post_init__(self):
|
|
if self.misc is None:
|
|
self.misc = []
|
|
|
|
@dataclass
|
|
class ServiceGroup:
|
|
"""Groupe de services"""
|
|
name: str
|
|
members: List[str]
|
|
description: str = None
|
|
misc: List[str] = None
|
|
|
|
def __post_init__(self):
|
|
if self.misc is None:
|
|
self.misc = []
|
|
|
|
@dataclass
|
|
class Interface:
|
|
"""Interface réseau"""
|
|
name: str
|
|
ip: str = None
|
|
netmask: str = None
|
|
misc: int = None
|
|
comment: str = None
|
|
interface_type: str = None
|
|
enabled: bool = True
|
|
|
|
@dataclass
|
|
class SecurityRule:
|
|
"""Règle de sécurité"""
|
|
name: str
|
|
from_zones: List[str]
|
|
to_zones: List[str]
|
|
source_addresses: List[str]
|
|
destination_addresses: List[str]
|
|
applications: List[str]
|
|
services: List[str]
|
|
action: str
|
|
description: str = None
|
|
enabled: bool = True
|
|
log_setting: str = "default"
|
|
miscs: List[str] = None
|
|
|
|
@dataclass
|
|
class StaticRoute:
|
|
name: str
|
|
destination: str
|
|
metric: int
|
|
next_vr: str = None
|
|
next_hop_ip: str = None
|
|
interface: str = None
|
|
bfd_profile: str = None
|
|
|
|
@dataclass
|
|
class VirtualRouter:
|
|
name: str
|
|
interfaces: List[str]
|
|
static_routes: List[StaticRoute] |