@@ -40,9 +40,9 @@ class UpdateHostRequestDto(BaseModel):
4040 None , serialization_alias = "securityLayer"
4141 )
4242 server_description : Optional [str ] = Field (
43- None , alias = "serverDescription" , max_length = 30
43+ None , serialization_alias = "serverDescription" , max_length = 30
4444 )
45- muxParams : Optional [str ] = Field (
45+ mux_params : Optional [str ] = Field (
4646 None ,
4747 serialization_alias = "muxParams" ,
4848 )
@@ -67,19 +67,24 @@ class UpdateHostRequestDto(BaseModel):
6767 ge = 0 ,
6868 le = 65535
6969 )
70- shuffle_host : bool = Field (
71- False ,
70+ shuffle_host : Optional [ bool ] = Field (
71+ None ,
7272 serialization_alias = "shuffleHost" ,
7373 )
74- mihomo_x25519 : bool = Field (
75- False ,
74+ mihomo_x25519 : Optional [ bool ] = Field (
75+ None ,
7676 serialization_alias = "mihomoX25519" ,
7777 )
78+ x_http_extra_params : Optional [str ] = Field (
79+ None ,
80+ serialization_alias = "xHttpExtraParams" ,
81+ )
82+ nodes : Optional [List [str ]] = None
7883
7984
8085class HostInboundData (BaseModel ):
81- config_profile_uuid : UUID = Field (alias = "configProfileUuid" )
82- config_profile_inbound_uuid : UUID = Field (alias = "configProfileInboundUuid" )
86+ config_profile_uuid : Optional [ UUID ] = Field (alias = "configProfileUuid" )
87+ config_profile_inbound_uuid : Optional [ UUID ] = Field (alias = "configProfileInboundUuid" )
8388
8489
8590class HostResponseDto (BaseModel ):
@@ -93,57 +98,54 @@ class HostResponseDto(BaseModel):
9398 host : Optional [str ] = None
9499 alpn : Optional [ALPN ] = None
95100 fingerprint : Optional [Fingerprint ] = None
96- is_disabled : Optional [bool ] = Field (
97- None ,
98- alias = "isDisabled" ,
99- )
100- security_layer : Optional [SecurityLayer ] = Field (
101- None ,
102- alias = "securityLayer" ,
103- )
104101 x_http_extra_params : Optional [str ] = Field (
105102 None ,
106103 alias = "xHttpExtraParams" ,
107104 )
108- server_description : Optional [str ] = Field (
109- None , alias = "serverDescription" , max_length = 30
110- )
111- inbound : HostInboundData
112- muxParams : Optional [str ] = Field (
105+ mux_params : Optional [str ] = Field (
113106 None ,
114- serialization_alias = "muxParams" ,
107+ alias = "muxParams" ,
115108 )
116109 sockopt_params : Optional [str ] = Field (
117110 None ,
118- serialization_alias = "sockoptParams" ,
111+ alias = "sockoptParams" ,
119112 )
120- tag : Optional [Annotated [str , StringConstraints (max_length = 32 )]] = Field (
121- None , serialization_alias = "tag"
113+ inbound : HostInboundData
114+ server_description : Optional [str ] = Field (
115+ None , alias = "serverDescription"
122116 )
123- is_hidden : Optional [bool ] = Field (
117+ tag : Optional [str ] = None
118+ vless_route_id : Optional [int ] = Field (
124119 None ,
125- serialization_alias = "isHidden " ,
120+ alias = "vlessRouteId " ,
126121 )
127- override_sni_from_address : Optional [bool ] = Field (
128- None ,
129- serialization_alias = "overrideSniFromAddress" ,
122+ shuffle_host : bool = Field (alias = "shuffleHost" )
123+ mihomo_x25519 : bool = Field (alias = "mihomoX25519" )
124+ nodes : List [str ]
125+ is_disabled : bool = Field (
126+ default = False ,
127+ alias = "isDisabled" ,
130128 )
131- vless_route_id : Optional [ int ] = Field (
132- None ,
133- serialization_alias = "vlessRouteId " ,
129+ security_layer : SecurityLayer = Field (
130+ default = SecurityLayer . DEFAULT ,
131+ alias = "securityLayer " ,
134132 )
135- shuffle_host : bool = Field (
136- False ,
137- serialization_alias = "shuffleHost " ,
133+ is_hidden : bool = Field (
134+ default = False ,
135+ alias = "isHidden " ,
138136 )
139- mihomo_x25519 : bool = Field (
140- False ,
141- serialization_alias = "mihomoX25519" ,
137+ override_sni_from_address : bool = Field (
138+ default = False ,
139+ alias = "overrideSniFromAddress" ,
140+ )
141+ allow_insecure : bool = Field (
142+ default = False ,
143+ alias = "allowInsecure" ,
142144 )
143145
144146 # Legacy compatibility property
145147 @property
146- def inbound_uuid (self ) -> UUID :
148+ def inbound_uuid (self ) -> Optional [ UUID ] :
147149 return self .inbound .config_profile_inbound_uuid
148150
149151
@@ -186,8 +188,8 @@ class DeleteHostResponseDto(BaseModel):
186188
187189
188190class CreateHostInboundData (BaseModel ):
189- config_profile_uuid : UUID = Field (serialization_alias = "configProfileUuid" )
190- config_profile_inbound_uuid : UUID = Field (
191+ config_profile_uuid : Optional [ UUID ] = Field (serialization_alias = "configProfileUuid" )
192+ config_profile_inbound_uuid : Optional [ UUID ] = Field (
191193 serialization_alias = "configProfileInboundUuid"
192194 )
193195
@@ -202,39 +204,23 @@ class CreateHostRequestDto(BaseModel):
202204 host : Optional [str ] = None
203205 alpn : Optional [ALPN ] = None
204206 fingerprint : Optional [Fingerprint ] = None
205- allow_insecure : bool = Field (
206- False ,
207- serialization_alias = "allowInsecure" ,
208- )
209- is_disabled : bool = Field (
210- False ,
211- serialization_alias = "isDisabled" ,
212- )
213- security_layer : Optional [SecurityLayer ] = Field (
214- SecurityLayer .DEFAULT ,
215- serialization_alias = "securityLayer" ,
207+ x_http_extra_params : Optional [str ] = Field (
208+ None ,
209+ serialization_alias = "xHttpExtraParams" ,
216210 )
217- muxParams : Optional [str ] = Field (
211+ mux_params : Optional [str ] = Field (
218212 None ,
219213 serialization_alias = "muxParams" ,
220214 )
221215 sockopt_params : Optional [str ] = Field (
222216 None ,
223217 serialization_alias = "sockoptParams" ,
224218 )
225- tag : Optional [Annotated [str , StringConstraints (max_length = 32 , pattern = "^[A-Z0-9_:]+$" )]] = Field (
226- None , serialization_alias = "tag"
227- )
228- is_hidden : bool = Field (
229- False ,
230- serialization_alias = "isHidden" ,
231- )
232- override_sni_from_address : bool = Field (
233- False ,
234- serialization_alias = "overrideSniFromAddress" ,
235- )
236219 server_description : Optional [str ] = Field (
237- None , alias = "serverDescription" , max_length = 30
220+ None , serialization_alias = "serverDescription" , max_length = 30
221+ )
222+ tag : Optional [Annotated [str , StringConstraints (max_length = 32 )]] = Field (
223+ None , serialization_alias = "tag"
238224 )
239225 vless_route_id : Optional [int ] = Field (
240226 None ,
@@ -250,10 +236,31 @@ class CreateHostRequestDto(BaseModel):
250236 False ,
251237 serialization_alias = "mihomoX25519" ,
252238 )
239+ nodes : List [str ] = Field (default_factory = list )
240+ allow_insecure : bool = Field (
241+ False ,
242+ serialization_alias = "allowInsecure" ,
243+ )
244+ is_disabled : bool = Field (
245+ False ,
246+ serialization_alias = "isDisabled" ,
247+ )
248+ security_layer : SecurityLayer = Field (
249+ SecurityLayer .DEFAULT ,
250+ serialization_alias = "securityLayer" ,
251+ )
252+ is_hidden : bool = Field (
253+ False ,
254+ serialization_alias = "isHidden" ,
255+ )
256+ override_sni_from_address : bool = Field (
257+ False ,
258+ serialization_alias = "overrideSniFromAddress" ,
259+ )
253260
254261 # Legacy compatibility property
255262 @property
256- def inbound_uuid (self ) -> UUID :
263+ def inbound_uuid (self ) -> Optional [ UUID ] :
257264 return self .inbound .config_profile_inbound_uuid
258265
259266 # Constructor compatibility - support old-style inbound_uuid
0 commit comments