// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
// DO NOT EDIT: this file is automatically generated by docgen
package config

import (
	"github.com/projectdiscovery/yamldoc-go/encoder"
)

var (
	BGPDoc                 encoder.Doc
	BGPGroupDoc            encoder.Doc
	MultipathDoc           encoder.Doc
	BGPNeighborDoc         encoder.Doc
	AddressFamilyConfigDoc encoder.Doc
	AddPathConfigDoc       encoder.Doc
	AddPathSendConfigDoc   encoder.Doc
)

func init() {
	BGPDoc.Type = "BGP"
	BGPDoc.Comments[encoder.LineComment] = ""
	BGPDoc.Description = ""
	BGPDoc.Fields = make([]encoder.Doc, 1)
	BGPDoc.Fields[0].Name = "groups"
	BGPDoc.Fields[0].Type = "[]BGPGroup"
	BGPDoc.Fields[0].Note = ""
	BGPDoc.Fields[0].Description = "List of BGP Peer groups. All peers *must* belong to a group\nIf a parameter is configured in the group and in the neighbor level, the neighbor is used"
	BGPDoc.Fields[0].Comments[encoder.LineComment] = "List of BGP Peer groups. All peers *must* belong to a group"

	BGPGroupDoc.Type = "BGPGroup"
	BGPGroupDoc.Comments[encoder.LineComment] = ""
	BGPGroupDoc.Description = ""
	BGPGroupDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "BGP",
			FieldName: "groups",
		},
	}
	BGPGroupDoc.Fields = make([]encoder.Doc, 18)
	BGPGroupDoc.Fields[0].Name = "name"
	BGPGroupDoc.Fields[0].Type = "string"
	BGPGroupDoc.Fields[0].Note = ""
	BGPGroupDoc.Fields[0].Description = "Name for the group"
	BGPGroupDoc.Fields[0].Comments[encoder.LineComment] = "Name for the group"
	BGPGroupDoc.Fields[1].Name = "local_address"
	BGPGroupDoc.Fields[1].Type = "string"
	BGPGroupDoc.Fields[1].Note = ""
	BGPGroupDoc.Fields[1].Description = "Local address for the peering"
	BGPGroupDoc.Fields[1].Comments[encoder.LineComment] = "Local address for the peering"
	BGPGroupDoc.Fields[2].Name = "ttl"
	BGPGroupDoc.Fields[2].Type = "uint8"
	BGPGroupDoc.Fields[2].Note = ""
	BGPGroupDoc.Fields[2].Description = "Maximum allowed TTL for routes from peers belonging to this group"
	BGPGroupDoc.Fields[2].Comments[encoder.LineComment] = "Maximum allowed TTL for routes from peers belonging to this group"
	BGPGroupDoc.Fields[3].Name = "authentication_key"
	BGPGroupDoc.Fields[3].Type = "string"
	BGPGroupDoc.Fields[3].Note = ""
	BGPGroupDoc.Fields[3].Description = "MD5 secret for the session"
	BGPGroupDoc.Fields[3].Comments[encoder.LineComment] = "MD5 secret for the session"
	BGPGroupDoc.Fields[4].Name = "peer_as"
	BGPGroupDoc.Fields[4].Type = "uint32"
	BGPGroupDoc.Fields[4].Note = ""
	BGPGroupDoc.Fields[4].Description = "Peer AS number"
	BGPGroupDoc.Fields[4].Comments[encoder.LineComment] = "Peer AS number"
	BGPGroupDoc.Fields[5].Name = "local_as"
	BGPGroupDoc.Fields[5].Type = "uint32"
	BGPGroupDoc.Fields[5].Note = ""
	BGPGroupDoc.Fields[5].Description = "Local AS number"
	BGPGroupDoc.Fields[5].Comments[encoder.LineComment] = "Local AS number"
	BGPGroupDoc.Fields[6].Name = "hold_time"
	BGPGroupDoc.Fields[6].Type = "uint16"
	BGPGroupDoc.Fields[6].Note = ""
	BGPGroupDoc.Fields[6].Description = "Hold timer"
	BGPGroupDoc.Fields[6].Comments[encoder.LineComment] = "Hold timer"
	BGPGroupDoc.Fields[7].Name = "multipath"
	BGPGroupDoc.Fields[7].Type = "Multipath"
	BGPGroupDoc.Fields[7].Note = ""
	BGPGroupDoc.Fields[7].Description = "Enables multipath routes"
	BGPGroupDoc.Fields[7].Comments[encoder.LineComment] = "Enables multipath routes"
	BGPGroupDoc.Fields[8].Name = "import"
	BGPGroupDoc.Fields[8].Type = "[]string"
	BGPGroupDoc.Fields[8].Note = ""
	BGPGroupDoc.Fields[8].Description = "List of import filters.\nExample:\nimport: [\"ACCEPT_ALL\"]\n# this example assumes that the a policy named ACCEPT_ALL exists in the configuration"
	BGPGroupDoc.Fields[8].Comments[encoder.LineComment] = "List of import filters."
	BGPGroupDoc.Fields[9].Name = "export"
	BGPGroupDoc.Fields[9].Type = "[]string"
	BGPGroupDoc.Fields[9].Note = ""
	BGPGroupDoc.Fields[9].Description = "List of export filters. Syntax is the same as with import"
	BGPGroupDoc.Fields[9].Comments[encoder.LineComment] = "List of export filters. Syntax is the same as with import"
	BGPGroupDoc.Fields[10].Name = "route_server_client"
	BGPGroupDoc.Fields[10].Type = "bool"
	BGPGroupDoc.Fields[10].Note = ""
	BGPGroupDoc.Fields[10].Description = "Configures the daemon as a route server client"
	BGPGroupDoc.Fields[10].Comments[encoder.LineComment] = "Configures the daemon as a route server client"
	BGPGroupDoc.Fields[11].Name = "route_reflector_client"
	BGPGroupDoc.Fields[11].Type = "bool"
	BGPGroupDoc.Fields[11].Note = ""
	BGPGroupDoc.Fields[11].Description = "Configures the daemon as a route reflector client"
	BGPGroupDoc.Fields[11].Comments[encoder.LineComment] = "Configures the daemon as a route reflector client"
	BGPGroupDoc.Fields[12].Name = "cluster_id"
	BGPGroupDoc.Fields[12].Type = "string"
	BGPGroupDoc.Fields[12].Note = ""
	BGPGroupDoc.Fields[12].Description = "Cluster ID for route reflection"
	BGPGroupDoc.Fields[12].Comments[encoder.LineComment] = "Cluster ID for route reflection"
	BGPGroupDoc.Fields[13].Name = "passive"
	BGPGroupDoc.Fields[13].Type = "bool"
	BGPGroupDoc.Fields[13].Note = ""
	BGPGroupDoc.Fields[13].Description = "Configures the client in passive mode"
	BGPGroupDoc.Fields[13].Comments[encoder.LineComment] = "Configures the client in passive mode"
	BGPGroupDoc.Fields[14].Name = "neighbors"
	BGPGroupDoc.Fields[14].Type = "[]BGPNeighbor"
	BGPGroupDoc.Fields[14].Note = ""
	BGPGroupDoc.Fields[14].Description = "Neighbors that belong to this group. See bgpneighbors.md for details."
	BGPGroupDoc.Fields[14].Comments[encoder.LineComment] = "Neighbors that belong to this group. See bgpneighbors.md for details."
	BGPGroupDoc.Fields[15].Name = "ipv4"
	BGPGroupDoc.Fields[15].Type = "AddressFamilyConfig"
	BGPGroupDoc.Fields[15].Note = ""
	BGPGroupDoc.Fields[15].Description = "Configuration values for the IPv4 AFI family"
	BGPGroupDoc.Fields[15].Comments[encoder.LineComment] = "Configuration values for the IPv4 AFI family"
	BGPGroupDoc.Fields[16].Name = "ipv6"
	BGPGroupDoc.Fields[16].Type = "AddressFamilyConfig"
	BGPGroupDoc.Fields[16].Note = ""
	BGPGroupDoc.Fields[16].Description = "Configuration values for the IPv6 AFI family"
	BGPGroupDoc.Fields[16].Comments[encoder.LineComment] = "Configuration values for the IPv6 AFI family"
	BGPGroupDoc.Fields[17].Name = "routing_instance"
	BGPGroupDoc.Fields[17].Type = "string"
	BGPGroupDoc.Fields[17].Note = ""
	BGPGroupDoc.Fields[17].Description = "Name of the routing instance this groups belongs to"
	BGPGroupDoc.Fields[17].Comments[encoder.LineComment] = "Name of the routing instance this groups belongs to"

	MultipathDoc.Type = "Multipath"
	MultipathDoc.Comments[encoder.LineComment] = ""
	MultipathDoc.Description = ""
	MultipathDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "BGPGroup",
			FieldName: "multipath",
		},
		{
			TypeName:  "BGPNeighbor",
			FieldName: "multipath",
		},
	}
	MultipathDoc.Fields = make([]encoder.Doc, 2)
	MultipathDoc.Fields[0].Name = "enable"
	MultipathDoc.Fields[0].Type = "bool"
	MultipathDoc.Fields[0].Note = ""
	MultipathDoc.Fields[0].Description = "Enable multipath"
	MultipathDoc.Fields[0].Comments[encoder.LineComment] = "Enable multipath"
	MultipathDoc.Fields[1].Name = "multiple_as"
	MultipathDoc.Fields[1].Type = "bool"
	MultipathDoc.Fields[1].Note = ""
	MultipathDoc.Fields[1].Description = "Enable learning multiple paths for routes coming from different AS"
	MultipathDoc.Fields[1].Comments[encoder.LineComment] = "Enable learning multiple paths for routes coming from different AS"

	BGPNeighborDoc.Type = "BGPNeighbor"
	BGPNeighborDoc.Comments[encoder.LineComment] = ""
	BGPNeighborDoc.Description = ""
	BGPNeighborDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "BGPGroup",
			FieldName: "neighbors",
		},
	}
	BGPNeighborDoc.Fields = make([]encoder.Doc, 19)
	BGPNeighborDoc.Fields[0].Name = "peer_address"
	BGPNeighborDoc.Fields[0].Type = "string"
	BGPNeighborDoc.Fields[0].Note = ""
	BGPNeighborDoc.Fields[0].Description = "Address for the peer"
	BGPNeighborDoc.Fields[0].Comments[encoder.LineComment] = "Address for the peer"
	BGPNeighborDoc.Fields[1].Name = "local_address"
	BGPNeighborDoc.Fields[1].Type = "string"
	BGPNeighborDoc.Fields[1].Note = ""
	BGPNeighborDoc.Fields[1].Description = "Local address for the session"
	BGPNeighborDoc.Fields[1].Comments[encoder.LineComment] = "Local address for the session"
	BGPNeighborDoc.Fields[2].Name = "disabled"
	BGPNeighborDoc.Fields[2].Type = "bool"
	BGPNeighborDoc.Fields[2].Note = ""
	BGPNeighborDoc.Fields[2].Description = "Disable the session with this peer"
	BGPNeighborDoc.Fields[2].Comments[encoder.LineComment] = "Disable the session with this peer"
	BGPNeighborDoc.Fields[3].Name = "ttl"
	BGPNeighborDoc.Fields[3].Type = "uint8"
	BGPNeighborDoc.Fields[3].Note = ""
	BGPNeighborDoc.Fields[3].Description = "Maximum allowed TTL for routes from peers belonging to this group"
	BGPNeighborDoc.Fields[3].Comments[encoder.LineComment] = "Maximum allowed TTL for routes from peers belonging to this group"
	BGPNeighborDoc.Fields[4].Name = "authentication_key"
	BGPNeighborDoc.Fields[4].Type = "string"
	BGPNeighborDoc.Fields[4].Note = ""
	BGPNeighborDoc.Fields[4].Description = "MD5 secret for the session"
	BGPNeighborDoc.Fields[4].Comments[encoder.LineComment] = "MD5 secret for the session"
	BGPNeighborDoc.Fields[5].Name = "peer_as"
	BGPNeighborDoc.Fields[5].Type = "uint32"
	BGPNeighborDoc.Fields[5].Note = ""
	BGPNeighborDoc.Fields[5].Description = "Peer AS number"
	BGPNeighborDoc.Fields[5].Comments[encoder.LineComment] = "Peer AS number"
	BGPNeighborDoc.Fields[6].Name = "local_as"
	BGPNeighborDoc.Fields[6].Type = "uint32"
	BGPNeighborDoc.Fields[6].Note = ""
	BGPNeighborDoc.Fields[6].Description = "Local AS number"
	BGPNeighborDoc.Fields[6].Comments[encoder.LineComment] = "Local AS number"
	BGPNeighborDoc.Fields[7].Name = "hold_time"
	BGPNeighborDoc.Fields[7].Type = "uint16"
	BGPNeighborDoc.Fields[7].Note = ""
	BGPNeighborDoc.Fields[7].Description = "Hold timer"
	BGPNeighborDoc.Fields[7].Comments[encoder.LineComment] = "Hold timer"
	BGPNeighborDoc.Fields[8].Name = "multipath"
	BGPNeighborDoc.Fields[8].Type = "Multipath"
	BGPNeighborDoc.Fields[8].Note = ""
	BGPNeighborDoc.Fields[8].Description = "Enables multipath routes\nAllowed values:\n- enable: enables the feature\n- multiple_as: enables learning multiple paths for routes coming from different AS"
	BGPNeighborDoc.Fields[8].Comments[encoder.LineComment] = "Enables multipath routes"
	BGPNeighborDoc.Fields[9].Name = "import"
	BGPNeighborDoc.Fields[9].Type = "[]string"
	BGPNeighborDoc.Fields[9].Note = ""
	BGPNeighborDoc.Fields[9].Description = "List of import filters.\nExample:\nimport: [\"ACCEPT_ALL\"]\n# this example assumes that the a policy named ACCEPT_ALL exists in the configuration"
	BGPNeighborDoc.Fields[9].Comments[encoder.LineComment] = "List of import filters."
	BGPNeighborDoc.Fields[10].Name = "export"
	BGPNeighborDoc.Fields[10].Type = "[]string"
	BGPNeighborDoc.Fields[10].Note = ""
	BGPNeighborDoc.Fields[10].Description = "List of export filters. Syntax is the same as with import"
	BGPNeighborDoc.Fields[10].Comments[encoder.LineComment] = "List of export filters. Syntax is the same as with import"
	BGPNeighborDoc.Fields[11].Name = "route_server_client"
	BGPNeighborDoc.Fields[11].Type = "bool"
	BGPNeighborDoc.Fields[11].Note = ""
	BGPNeighborDoc.Fields[11].Description = "Configures the daemon as a route server client"
	BGPNeighborDoc.Fields[11].Comments[encoder.LineComment] = "Configures the daemon as a route server client"
	BGPNeighborDoc.Fields[12].Name = "route_reflector_client"
	BGPNeighborDoc.Fields[12].Type = "bool"
	BGPNeighborDoc.Fields[12].Note = ""
	BGPNeighborDoc.Fields[12].Description = "Configures the daemon as a route reflector client"
	BGPNeighborDoc.Fields[12].Comments[encoder.LineComment] = "Configures the daemon as a route reflector client"
	BGPNeighborDoc.Fields[13].Name = "passive"
	BGPNeighborDoc.Fields[13].Type = "bool"
	BGPNeighborDoc.Fields[13].Note = ""
	BGPNeighborDoc.Fields[13].Description = "Configures the client in passive mode"
	BGPNeighborDoc.Fields[13].Comments[encoder.LineComment] = "Configures the client in passive mode"
	BGPNeighborDoc.Fields[14].Name = "cluster_id"
	BGPNeighborDoc.Fields[14].Type = "string"
	BGPNeighborDoc.Fields[14].Note = ""
	BGPNeighborDoc.Fields[14].Description = "Cluster ID for route reflection"
	BGPNeighborDoc.Fields[14].Comments[encoder.LineComment] = "Cluster ID for route reflection"
	BGPNeighborDoc.Fields[15].Name = "ipv4"
	BGPNeighborDoc.Fields[15].Type = "AddressFamilyConfig"
	BGPNeighborDoc.Fields[15].Note = ""
	BGPNeighborDoc.Fields[15].Description = "Configuration values for the IPv4 AFI family"
	BGPNeighborDoc.Fields[15].Comments[encoder.LineComment] = "Configuration values for the IPv4 AFI family"
	BGPNeighborDoc.Fields[16].Name = "ipv6"
	BGPNeighborDoc.Fields[16].Type = "AddressFamilyConfig"
	BGPNeighborDoc.Fields[16].Note = ""
	BGPNeighborDoc.Fields[16].Description = "Configuration values for the IPv6 AFI family"
	BGPNeighborDoc.Fields[16].Comments[encoder.LineComment] = "Configuration values for the IPv6 AFI family"
	BGPNeighborDoc.Fields[17].Name = "advertise_ipv4_multiprotocol"
	BGPNeighborDoc.Fields[17].Type = "bool"
	BGPNeighborDoc.Fields[17].Note = ""
	BGPNeighborDoc.Fields[17].Description = "Advertise the multiprotocol capability for the IPv4 AFI"
	BGPNeighborDoc.Fields[17].Comments[encoder.LineComment] = "Advertise the multiprotocol capability for the IPv4 AFI"
	BGPNeighborDoc.Fields[18].Name = "routing_instance"
	BGPNeighborDoc.Fields[18].Type = "string"
	BGPNeighborDoc.Fields[18].Note = ""
	BGPNeighborDoc.Fields[18].Description = "Name of the routing instance this groups belongs to"
	BGPNeighborDoc.Fields[18].Comments[encoder.LineComment] = "Name of the routing instance this groups belongs to"

	AddressFamilyConfigDoc.Type = "AddressFamilyConfig"
	AddressFamilyConfigDoc.Comments[encoder.LineComment] = ""
	AddressFamilyConfigDoc.Description = ""
	AddressFamilyConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "BGPGroup",
			FieldName: "ipv4",
		},
		{
			TypeName:  "BGPGroup",
			FieldName: "ipv6",
		},
		{
			TypeName:  "BGPNeighbor",
			FieldName: "ipv4",
		},
		{
			TypeName:  "BGPNeighbor",
			FieldName: "ipv6",
		},
	}
	AddressFamilyConfigDoc.Fields = make([]encoder.Doc, 2)
	AddressFamilyConfigDoc.Fields[0].Name = "add_path"
	AddressFamilyConfigDoc.Fields[0].Type = "AddPathConfig"
	AddressFamilyConfigDoc.Fields[0].Note = ""
	AddressFamilyConfigDoc.Fields[0].Description = "Enable add_path for send and receive"
	AddressFamilyConfigDoc.Fields[0].Comments[encoder.LineComment] = "Enable add_path for send and receive"
	AddressFamilyConfigDoc.Fields[1].Name = "next_hop_extended"
	AddressFamilyConfigDoc.Fields[1].Type = "bool"
	AddressFamilyConfigDoc.Fields[1].Note = ""
	AddressFamilyConfigDoc.Fields[1].Description = "Enable extended next hop for the address family"
	AddressFamilyConfigDoc.Fields[1].Comments[encoder.LineComment] = "Enable extended next hop for the address family"

	AddPathConfigDoc.Type = "AddPathConfig"
	AddPathConfigDoc.Comments[encoder.LineComment] = ""
	AddPathConfigDoc.Description = ""
	AddPathConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "AddressFamilyConfig",
			FieldName: "add_path",
		},
	}
	AddPathConfigDoc.Fields = make([]encoder.Doc, 2)
	AddPathConfigDoc.Fields[0].Name = "receive"
	AddPathConfigDoc.Fields[0].Type = "bool"
	AddPathConfigDoc.Fields[0].Note = ""
	AddPathConfigDoc.Fields[0].Description = "Enable receive add_path"
	AddPathConfigDoc.Fields[0].Comments[encoder.LineComment] = "Enable receive add_path"
	AddPathConfigDoc.Fields[1].Name = "send"
	AddPathConfigDoc.Fields[1].Type = "AddPathSendConfig"
	AddPathConfigDoc.Fields[1].Note = ""
	AddPathConfigDoc.Fields[1].Description = "Enable send add_path"
	AddPathConfigDoc.Fields[1].Comments[encoder.LineComment] = "Enable send add_path"

	AddPathSendConfigDoc.Type = "AddPathSendConfig"
	AddPathSendConfigDoc.Comments[encoder.LineComment] = ""
	AddPathSendConfigDoc.Description = ""
	AddPathSendConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "AddPathConfig",
			FieldName: "send",
		},
	}
	AddPathSendConfigDoc.Fields = make([]encoder.Doc, 2)
	AddPathSendConfigDoc.Fields[0].Name = "multipath"
	AddPathSendConfigDoc.Fields[0].Type = "bool"
	AddPathSendConfigDoc.Fields[0].Note = ""
	AddPathSendConfigDoc.Fields[0].Description = "Enable multipath by add_path"
	AddPathSendConfigDoc.Fields[0].Comments[encoder.LineComment] = "Enable multipath by add_path"
	AddPathSendConfigDoc.Fields[1].Name = "path_count"
	AddPathSendConfigDoc.Fields[1].Type = "uint8"
	AddPathSendConfigDoc.Fields[1].Note = ""
	AddPathSendConfigDoc.Fields[1].Description = "Maximum allowed path count for add_path"
	AddPathSendConfigDoc.Fields[1].Comments[encoder.LineComment] = "Maximum allowed path count for add_path"
}

func (_ BGP) Doc() *encoder.Doc {
	return &BGPDoc
}

func (_ BGPGroup) Doc() *encoder.Doc {
	return &BGPGroupDoc
}

func (_ Multipath) Doc() *encoder.Doc {
	return &MultipathDoc
}

func (_ BGPNeighbor) Doc() *encoder.Doc {
	return &BGPNeighborDoc
}

func (_ AddressFamilyConfig) Doc() *encoder.Doc {
	return &AddressFamilyConfigDoc
}

func (_ AddPathConfig) Doc() *encoder.Doc {
	return &AddPathConfigDoc
}

func (_ AddPathSendConfig) Doc() *encoder.Doc {
	return &AddPathSendConfigDoc
}

// GetbgpDoc returns documentation for the file cmd/bio-rd/config/bgp_docs.go.
func GetbgpDoc() *encoder.FileDoc {
	return &encoder.FileDoc{
		Name:        "bgp",
		Description: "",
		Structs: []*encoder.Doc{
			&BGPDoc,
			&BGPGroupDoc,
			&MultipathDoc,
			&BGPNeighborDoc,
			&AddressFamilyConfigDoc,
			&AddPathConfigDoc,
			&AddPathSendConfigDoc,
		},
	}
}
