diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2023-03-20 14:14:17 +0100 |
|---|---|---|
| committer | Jeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com> | 2023-09-25 09:43:37 +0200 |
| commit | 19882f158fec139622ffe5b52bc9e834a9d3246e (patch) | |
| tree | 322aa99e52bc5d2f9ac97d9e69cc4d3747e1d2e0 /types/server/server.go | |
| parent | 3618f2337bf0099d1fe8e4782cda3677ea4175be (diff) | |
Types: Split server into subpackage
Diffstat (limited to 'types/server/server.go')
| -rw-r--r-- | types/server/server.go | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/types/server/server.go b/types/server/server.go new file mode 100644 index 0000000..db2dd8b --- /dev/null +++ b/types/server/server.go @@ -0,0 +1,74 @@ +package server + +import "github.com/eduvpn/eduvpn-common/types/protocol" + +type Type int8 + +const ( + TypeUnknown Type = iota + TypeInstituteAccess + TypeSecureInternet + TypeCustom +) + +type Expiry struct { + StartTime int64 `json:"start_time"` + EndTime int64 `json:"end_time"` + ButtonTime int64 `json:"button_time"` + CountdownTime int64 `json:"countdown_time"` + NotificationTimes []int64 `json:"notification_times"` +} + +type Profile struct { + Identifier string `json:"identifier"` + DisplayName map[string]string `json:"display_name,omitempty"` + Protocols []protocol.Protocol `json:"supported_protocols"` +} + +type Profiles struct { + Map map[string]Profile `json:"map,omitempty"` + Current string `json:"current"` +} + +type Tokens struct { + Access string `json:"access_token"` + Refresh string `json:"refresh_token"` + Expires int64 `json:"expires_in"` +} + +type Server struct { + DisplayName map[string]string `json:"display_name,omitempty"` + Identifier string `json:"identifier"` + Profiles Profiles `json:"profiles"` +} + +type Institute struct { + Server + Delisted bool `json:"delisted"` +} + +type SecureInternet struct { + Server + CountryCode string `json:"country_code"` + Delisted bool `json:"delisted"` +} + +type List struct { + Institutes []Institute `json:"institute_access_servers,omitempty"` + SecureInternet *SecureInternet `json:"secure_internet_server,omitempty"` + Custom []Server `json:"custom_servers,omitempty"` +} + +type Configuration struct { + VPNConfig string `json:"config"` + Protocol protocol.Protocol `json:"protocol"` + DefaultGateway bool `json:"default_gateway"` + Tokens Tokens `json:"tokens"` +} + +type Current struct { + Institute *Institute `json:"institute_access_server,omitempty"` + SecureInternet *SecureInternet `json:"secure_internet_server,omitempty"` + Custom *Server `json:"custom_server,omitempty"` + Type Type `json:"server_type"` +} |
