// Code generated by "libovsdb.modelgen"
// DO NOT EDIT.

package ovsmodel

const QoSTable = "QoS"

type (
	QoSAction    = string
	QoSBandwidth = string
	QoSDirection = string
)

var (
	QoSActionDSCP         QoSAction    = "dscp"
	QoSBandwidthRate      QoSBandwidth = "rate"
	QoSBandwidthBurst     QoSBandwidth = "burst"
	QoSDirectionFromLport QoSDirection = "from-lport"
	QoSDirectionToLport   QoSDirection = "to-lport"
)

// QoS defines an object in QoS table
type QoS struct {
	UUID        string            `ovsdb:"_uuid"`
	Action      map[string]int    `ovsdb:"action" validate:"dive,keys,oneof='dscp',endkeys,min=0,max=63"`
	Bandwidth   map[string]int    `ovsdb:"bandwidth" validate:"dive,keys,oneof='rate' 'burst',endkeys,min=1,max=4294967295"`
	Direction   QoSDirection      `ovsdb:"direction" validate:"oneof='from-lport' 'to-lport'"`
	ExternalIDs map[string]string `ovsdb:"external_ids"`
	Match       string            `ovsdb:"match"`
	Priority    int               `ovsdb:"priority" validate:"min=0,max=32767"`
}
