package models type ValueType int const ( STRING ValueType = iota // Bool value NUMERIC // Numeric value BOOLEAN // String value ) // String returns the string representation of ValueType func (v ValueType) String() string { switch v { case BOOLEAN: return "Boolean" case NUMERIC: return "Numeric" case STRING: return "String" default: return "Unknown" } } type OrderType int const ( INCR OrderType = iota DECR NA ) // String returns the string representation of OrderType func (o OrderType) String() string { switch o { case INCR: return "Incr" case DECR: return "Decr" case NA: return "NA" default: return "Unknown" } } var RESOURCE_DEFAULT_COLUMN = []string{ "res_name", "description", "value_type", "order_type", "flag", "interval", } var RESOURCE_DISTRIBUTION_DEFAULT_COLUMN = []string{ "res_name", "numeric_value", "location", "is_dynamic", } var RESOURCE_DEFINITION_DEFAULT_COLUMN = []string{ "res_name", "description", "value_type", "order_type", "flag", "interval", } var ResourceFieldMappings = map[string]string{ // API field name → struct field name "value": "numeric_value", } var ResourcesAvailableTypes = []string{"static", "dynamic"} const ( BUILTIN = 0x01 DYNAMIC = 0x02 RELEASE = 0x20 CONSUMABLE = 0x80 ) type FlagValue int // ToJSON returns the JSON object representation of FlagValue func (f FlagValue) ToJSON() map[string]bool { return map[string]bool{ "builtin": f&BUILTIN != 0, "dynamic": f&DYNAMIC != 0, "release": f&RELEASE != 0, "consumable": f&CONSUMABLE != 0, } } type ResourceInfo struct { ResName string Description string ValueType ValueType OrderType OrderType Flag int Interval int } // queues info query supported filter var RESOURCE_DISTRIBUTION_SUPPORT_FILTERS = []string{ "res_name", "is_dynamic", "location", } var RESOURCE_DEFINITION_SUPPORT_FILTERS = []string{ "res_name", } type ResourceDistributionInfo struct { ResourceName string `json:"res_name"` IsDynamic bool `json:"is_dynamic"` ValueType int `json:"value_type"` BooleanValue bool `json:"boolean_value"` StringValue string `json:"string_value"` NumericValue float64 `json:"numeric_value"` Location string `json:"location"` } type ResourceDefinitionInfo struct { ResourceName string `json:"res_name"` Description string `json:"description"` ValueType int `json:"value_type"` OrderType int `json:"order_type"` Flag int `json:"flag"` Interval int `json:"interval"` } var RESOURCE_DISTRIBUTION_SUPPORT_SORT = []string{ "res_name", }