| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | // go:build ee//go:build ee// +build eepackage proimport (	"fmt")// constants for accounts api hostsconst (	// accountsHostDevelopment is the accounts api host for development environment	accountsHostDevelopment = "https://api.dev.accounts.netmaker.io"	// accountsHostStaging is the accounts api host for staging environment	accountsHostStaging = "https://api.staging.accounts.netmaker.io"	// accountsHostProduction is the accounts api host for production environment	accountsHostProduction = "https://api.accounts.netmaker.io")const (	license_cache_key          = "license_response_cache"	license_validation_err_msg = "invalid license"	server_id_key              = "nm-server-id")var errValidation = fmt.Errorf(license_validation_err_msg)// LicenseKey - the license key struct representation with associated datatype LicenseKey struct {	LicenseValue   string `json:"license_value"` // actual (public) key and the unique value for the key	Expiration     int64  `json:"expiration"`	UsageServers   int    `json:"limit_servers"`	UsageUsers     int    `json:"limit_users"`	UsageClients   int    `json:"limit_clients"`	UsageHosts     int    `json:"limit_hosts"`	UsageNetworks  int    `json:"limit_networks"`	UsageIngresses int    `json:"limit_ingresses"`	UsageEgresses  int    `json:"limit_egresses"`	Metadata       string `json:"metadata"`	IsActive       bool   `json:"is_active"` // yes if active}// ValidatedLicense - the validated license structtype ValidatedLicense struct {	LicenseValue     string `json:"license_value" binding:"required"`     // license that validation is being requested for	EncryptedLicense string `json:"encrypted_license" binding:"required"` // to be decrypted by Netmaker using Netmaker server's private key}// LicenseSecret - the encrypted struct for sending user-idtype LicenseSecret struct {	AssociatedID string `json:"associated_id" binding:"required"` // UUID for user foreign key to User table	Usage        Usage  `json:"limits" binding:"required"`}// Usage - struct for license usagetype Usage struct {	Servers          int `json:"servers"`	Users            int `json:"users"`	Hosts            int `json:"hosts"`	Clients          int `json:"clients"`	Networks         int `json:"networks"`	Ingresses        int `json:"ingresses"`	Egresses         int `json:"egresses"`	Relays           int `json:"relays"`	InternetGateways int `json:"internet_gateways"`}// Usage.SetDefaults - sets the default values for usagefunc (l *Usage) SetDefaults() {	l.Clients = 0	l.Servers = 1	l.Hosts = 0	l.Users = 1	l.Networks = 0	l.Ingresses = 0	l.Egresses = 0	l.Relays = 0	l.InternetGateways = 0}// ValidateLicenseRequest - used for request to validate license endpointtype ValidateLicenseRequest struct {	LicenseKey     string `json:"license_key" binding:"required"`	NmServerPubKey string `json:"nm_server_pub_key" binding:"required"` // Netmaker server public key used to send data back to Netmaker for the Netmaker server to decrypt (eg output from validating license)	EncryptedPart  string `json:"secret" binding:"required"`}type licenseResponseCache struct {	Body []byte `json:"body" binding:"required"`}
 |