mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-05-14 00:51:12 +03:00
133 lines
3.6 KiB
Go
133 lines
3.6 KiB
Go
package cloudflare
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
type Registration struct {
|
|
Key string `json:"key"`
|
|
InstallID string `json:"install_id"`
|
|
FcmToken string `json:"fcm_token"`
|
|
Tos string `json:"tos"`
|
|
Model string `json:"model"`
|
|
Serial string `json:"serial_number"`
|
|
OsVersion string `json:"os_version"`
|
|
KeyType string `json:"key_type"`
|
|
TunType string `json:"tunnel_type"`
|
|
Locale string `json:"locale"`
|
|
}
|
|
|
|
type CloudflareProfile struct {
|
|
ID string `json:"id"`
|
|
Type string `json:"type"`
|
|
Model string `json:"model"`
|
|
Name string `json:"name"`
|
|
Key string `json:"key"`
|
|
KeyType string `json:"key_type"`
|
|
TunType string `json:"tunnel_type"`
|
|
Account Account `json:"account"`
|
|
Config Config `json:"config"`
|
|
// WarpEnabled not set for ZeroTier
|
|
WarpEnabled bool `json:"warp_enabled,omitempty"`
|
|
// Waitlist not set for ZeroTier
|
|
Waitlist bool `json:"waitlist_enabled,omitempty"`
|
|
Created string `json:"created"`
|
|
Updated string `json:"updated"`
|
|
// Tos not set for ZeroTier
|
|
Tos string `json:"tos,omitempty"`
|
|
// Place not set for ZeroTier
|
|
Place int `json:"place,omitempty"`
|
|
Locale string `json:"locale"`
|
|
// Enabled not set for ZeroTier
|
|
Enabled bool `json:"enabled,omitempty"`
|
|
InstallID string `json:"install_id"`
|
|
// Token only set for /reg call
|
|
Token string `json:"token,omitempty"`
|
|
FcmToken string `json:"fcm_token"`
|
|
// SerialNumber not set for ZeroTier
|
|
SerialNumber string `json:"serial_number,omitempty"`
|
|
Policy Policy `json:"policy"`
|
|
}
|
|
|
|
type Account struct {
|
|
ID string `json:"id"`
|
|
AccountType string `json:"account_type"`
|
|
// Created not set for ZeroTier
|
|
Created string `json:"created,omitempty"`
|
|
// Updated not set for ZeroTier
|
|
Updated string `json:"updated,omitempty"`
|
|
// Managed only set for ZeroTier
|
|
Managed string `json:"managed,omitempty"`
|
|
// Organization only set for ZeroTier
|
|
Organization string `json:"organization,omitempty"`
|
|
// PremiumData not set for ZeroTier
|
|
PremiumData int `json:"premium_data,omitempty"`
|
|
// Quota not set for ZeroTier
|
|
Quota int `json:"quota,omitempty"`
|
|
// WarpPlus not set for ZeroTier
|
|
WarpPlus bool `json:"warp_plus,omitempty"`
|
|
// ReferralCode not set for ZeroTier
|
|
ReferralCount int `json:"referral_count,omitempty"`
|
|
// ReferralRenewalCount not set for ZeroTier
|
|
ReferralRenewalCount int `json:"referral_renewal_countdown,omitempty"`
|
|
// Role not set for ZeroTier
|
|
Role string `json:"role,omitempty"`
|
|
// License not set for ZeroTier
|
|
License string `json:"license,omitempty"`
|
|
}
|
|
|
|
type Config struct {
|
|
ClientID string `json:"client_id"`
|
|
Peers []Peer `json:"peers"`
|
|
Interface struct {
|
|
Addresses struct {
|
|
V4 string `json:"v4"`
|
|
V6 string `json:"v6"`
|
|
} `json:"addresses"`
|
|
} `json:"interface"`
|
|
Services struct {
|
|
HTTPProxy string `json:"http_proxy"`
|
|
} `json:"services"`
|
|
}
|
|
|
|
type Peer struct {
|
|
PublicKey string `json:"public_key"`
|
|
Endpoint struct {
|
|
V4 string `json:"v4"`
|
|
V6 string `json:"v6"`
|
|
Host string `json:"host"`
|
|
Ports []int `json:"ports"`
|
|
} `json:"endpoint"`
|
|
}
|
|
|
|
type Policy struct {
|
|
TunnelProtocol string `json:"tunnel_protocol"`
|
|
}
|
|
|
|
type DeviceUpdate struct {
|
|
Key string `json:"key"`
|
|
KeyType string `json:"key_type"`
|
|
TunType string `json:"tunnel_type"`
|
|
Name string `json:"name,omitempty"`
|
|
}
|
|
|
|
type APIError struct {
|
|
Result interface{} `json:"result"`
|
|
Success bool `json:"success"`
|
|
Errors []ErrorInfo `json:"errors"`
|
|
Messages []string `json:"messages"`
|
|
}
|
|
|
|
type ErrorInfo struct {
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
func (e *APIError) Error() string {
|
|
errors := make([]string, len(e.Errors))
|
|
for i, err := range e.Errors {
|
|
errors[i] = err.Message
|
|
}
|
|
return strings.Join(errors, ",")
|
|
}
|