11from __future__ import annotations
22
33from datetime import datetime
4+ from importlib .util import find_spec
45from typing import Any , Dict , Literal , Optional
56
6- from pydantic import confloat , conint
7- from pydantic .dataclasses import dataclass
7+ if find_spec ('pydantic' ):
8+ from pydantic .dataclasses import dataclass
9+ else :
10+ from dataclasses import dataclass
811
912
1013@dataclass (frozen = True )
@@ -67,9 +70,9 @@ class StatusData:
6770 running : bool
6871 storage : str
6972 network : Dict [str , Any ]
70- requests : conint ( ge = 0 )
71- uptime : conint ( ge = 0 ) | None = None
72- time : conint ( ge = 0 ) | None = None
73+ requests : int
74+ uptime : int | None = None
75+ time : int | None = None
7376
7477 def to_dict (self ):
7578 return self .__dict__ .copy ()
@@ -107,7 +110,7 @@ class AppData:
107110 id : str
108111 name : str
109112 cluster : str
110- ram : confloat ( ge = 0 )
113+ ram : float
111114 language : Optional [str ]
112115 cluster : str
113116 domain : str | None = None
@@ -128,13 +131,13 @@ class UserData:
128131 :ivar plan: User plan
129132 :ivar email: User email
130133
131- :type id: conint(ge=0)
134+ :type id: int
132135 :type name: str
133136 :type plan: PlanData
134137 :type email: str | None = None
135138 """
136139
137- id : conint ( ge = 0 )
140+ id : int
138141 name : str
139142 plan : PlanData
140143 email : str | None = None
@@ -253,9 +256,9 @@ class UploadData:
253256 id : str
254257 name : str
255258 language : Language
256- ram : confloat ( ge = 0 )
257- cpu : confloat ( ge = 0 )
258- subdomain : str | None = None
259+ ram : float
260+ cpu : float
261+ domain : str | None = None
259262 description : str | None = None
260263
261264 def to_dict (self ):
@@ -283,9 +286,9 @@ class FileInfo:
283286 app_id : str
284287 type : Literal ['file' , 'directory' ]
285288 name : str
286- lastModified : conint ( ge = 0 ) | float
289+ lastModified : int | float
287290 path : str
288- size : confloat ( ge = 0.0 ) = 0. 0
291+ size : int = 0
289292
290293 def to_dict (self ):
291294 return self .__dict__ .copy ()
@@ -310,17 +313,33 @@ class AnalyticsTotal:
310313
311314@dataclass (frozen = True )
312315class DomainAnalytics :
313- hostname : str
314- total : list [AnalyticsTotal ]
315- countries : list [Any ]
316- methods : list [Any ]
317- referers : list [Any ]
318- browsers : list [Any ]
319- deviceTypes : list [Any ]
320- operatingSystems : list [Any ]
321- agents : list [Any ]
322- hosts : list [Any ]
323- paths : list [Any ]
316+ @dataclass (frozen = True )
317+ class Analytics :
318+ total : list [AnalyticsTotal ]
319+ countries : list [Any ]
320+ methods : list [Any ]
321+ referers : list [Any ]
322+ browsers : list [Any ]
323+ deviceTypes : list [Any ]
324+ operatingSystems : list [Any ]
325+ agents : list [Any ]
326+ hosts : list [Any ]
327+ paths : list [Any ]
328+
329+ def to_dict (self ):
330+ return self .__dict__ .copy ()
331+
332+ @dataclass (frozen = True )
333+ class Domain :
334+ hostname : str
335+ analytics : DomainAnalytics .Analytics | None
336+
337+ @dataclass (frozen = True )
338+ class Custom :
339+ analytics : DomainAnalytics .Analytics | None
340+
341+ domain : Domain
342+ custom : Custom
324343
325344 def to_dict (self ):
326345 return self .__dict__ .copy ()
0 commit comments