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

package ovsmodel

const ServiceMonitorTable = "Service_Monitor"

type (
	ServiceMonitorProtocol = string
	ServiceMonitorStatus   = string
)

var (
	ServiceMonitorProtocolTCP   ServiceMonitorProtocol = "tcp"
	ServiceMonitorProtocolUDP   ServiceMonitorProtocol = "udp"
	ServiceMonitorStatusOnline  ServiceMonitorStatus   = "online"
	ServiceMonitorStatusOffline ServiceMonitorStatus   = "offline"
	ServiceMonitorStatusError   ServiceMonitorStatus   = "error"
)

// ServiceMonitor defines an object in Service_Monitor table
type ServiceMonitor struct {
	UUID        string                  `ovsdb:"_uuid"`
	ChassisName string                  `ovsdb:"chassis_name"`
	ExternalIDs map[string]string       `ovsdb:"external_ids"`
	IP          string                  `ovsdb:"ip"`
	LogicalPort string                  `ovsdb:"logical_port"`
	Options     map[string]string       `ovsdb:"options"`
	Port        int                     `ovsdb:"port" validate:"min=0,max=65535"`
	Protocol    *ServiceMonitorProtocol `ovsdb:"protocol" validate:"omitempty,oneof='tcp' 'udp'"`
	SrcIP       string                  `ovsdb:"src_ip"`
	SrcMAC      string                  `ovsdb:"src_mac"`
	Status      *ServiceMonitorStatus   `ovsdb:"status" validate:"omitempty,oneof='online' 'offline' 'error'"`
}
