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

package ovsmodel

const NATTable = "NAT"

type (
	NATType = string
)

var (
	NATTypeDNAT        NATType = "dnat"
	NATTypeSNAT        NATType = "snat"
	NATTypeDNATAndSNAT NATType = "dnat_and_snat"
)

// NAT defines an object in NAT table
type NAT struct {
	UUID              string            `ovsdb:"_uuid"`
	AllowedExtIPs     *string           `ovsdb:"allowed_ext_ips"`
	ExemptedExtIPs    *string           `ovsdb:"exempted_ext_ips"`
	ExternalIDs       map[string]string `ovsdb:"external_ids"`
	ExternalIP        string            `ovsdb:"external_ip"`
	ExternalMAC       *string           `ovsdb:"external_mac"`
	ExternalPortRange string            `ovsdb:"external_port_range"`
	GatewayPort       *string           `ovsdb:"gateway_port"`
	LogicalIP         string            `ovsdb:"logical_ip"`
	LogicalPort       *string           `ovsdb:"logical_port"`
	Options           map[string]string `ovsdb:"options"`
	Type              NATType           `ovsdb:"type" validate:"oneof='dnat' 'snat' 'dnat_and_snat'"`
}
