File size: 975 Bytes
6a5b8d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
37
38
39
40
41
42
43
"""

VPN-related schemas

"""
from pydantic import BaseModel
from datetime import datetime
from typing import Optional, Dict, List

class VPNConfigResponse(BaseModel):
    protocol: str
    server_address: str
    port: int
    encryption: str
    certificate: Optional[str] = None
    private_key: Optional[str] = None
    shared_secret: Optional[str] = None
    additional_params: Dict[str, str] = {}

    class Config:
        orm_mode = True

class VPNSessionResponse(BaseModel):
    session_id: str
    start_time: datetime
    last_active: datetime
    protocol: str
    client_ip: str
    bytes_sent: int
    bytes_received: int
    status: str

    class Config:
        orm_mode = True

class VPNServerStats(BaseModel):
    total_data_transferred: int
    active_sessions: int
    total_session_time: int
    last_connection: Optional[datetime]
    bandwidth_usage: Dict[str, float]

    class Config:
        orm_mode = True