summaryrefslogtreecommitdiff
path: root/internal/models/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/models/server.go')
-rw-r--r--internal/models/server.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/internal/models/server.go b/internal/models/server.go
new file mode 100644
index 0000000..f440c03
--- /dev/null
+++ b/internal/models/server.go
@@ -0,0 +1,46 @@
+package models
+
+type TLS struct {
+ Enabled bool `json:"enabled"`
+ ServerName string `json:"server_name,omitempty"`
+ Insecure bool `json:"insecure,omitempty"`
+ ALPN []string `json:"alpn,omitempty"`
+ MinVersion string `json:"min_version,omitempty"`
+ MaxVersion string `json:"max_version,omitempty"`
+ Reality *Reality `json:"reality,omitempty"`
+}
+
+type Transport struct {
+ Type string `json:"type,omitempty"`
+ Path string `json:"path,omitempty"`
+}
+
+type Reality struct {
+ Enabled bool `json:"enabled,omitempty"`
+ PublicKey string `json:"public_key,omitempty"`
+ PrivateKey string `json:"private_key,omitempty"`
+ ShortID string `json:"short_id,omitempty"`
+ Fingerprint string `json:"fingerprint,omitempty"`
+}
+
+type Server struct {
+ Tag string `json:"tag"`
+ Region string `json:"region"`
+ Type string `json:"type"` // socks, vless, vless-reality, shadowsocks, vmess, hysteria2
+ Server string `json:"server"`
+ ServerPort int `json:"server_port"`
+ UDPOverTCP bool `json:"udp_over_tcp,omitempty"`
+ UUID string `json:"uuid,omitempty"`
+ Method string `json:"method,omitempty"`
+ Password string `json:"password,omitempty"`
+ ObfsPassword string `json:"obfs_password,omitempty"`
+ UpMbps int `json:"up_mbps,omitempty"`
+ DownMbps int `json:"down_mbps,omitempty"`
+ TLS *TLS `json:"tls,omitempty"`
+ Transport *Transport `json:"transport,omitempty"`
+ Companions []Server `json:"companions,omitempty"`
+}
+
+type ServersResponse struct {
+ Servers []Server `json:"servers"`
+}