// 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 (
	ISISDoc               encoder.Doc
	ISISLevelDoc          encoder.Doc
	ISISInterfaceDoc      encoder.Doc
	ISISInterfaceLevelDoc encoder.Doc
)

func init() {
	ISISDoc.Type = "ISIS"
	ISISDoc.Comments[encoder.LineComment] = "ISIS config"
	ISISDoc.Description = "ISIS config"
	ISISDoc.Fields = make([]encoder.Doc, 5)
	ISISDoc.Fields[0].Name = "NETs"
	ISISDoc.Fields[0].Type = "[]string"
	ISISDoc.Fields[0].Note = ""
	ISISDoc.Fields[0].Description = "Network entity title for this instance"
	ISISDoc.Fields[0].Comments[encoder.LineComment] = "Network entity title for this instance"
	ISISDoc.Fields[1].Name = "level1"
	ISISDoc.Fields[1].Type = "ISISLevel"
	ISISDoc.Fields[1].Note = ""
	ISISDoc.Fields[1].Description = "Configuration for the Level 1 adjacency"
	ISISDoc.Fields[1].Comments[encoder.LineComment] = "Configuration for the Level 1 adjacency"
	ISISDoc.Fields[2].Name = "level2"
	ISISDoc.Fields[2].Type = "ISISLevel"
	ISISDoc.Fields[2].Note = ""
	ISISDoc.Fields[2].Description = "Configuration for the level 2 adjacency"
	ISISDoc.Fields[2].Comments[encoder.LineComment] = "Configuration for the level 2 adjacency"
	ISISDoc.Fields[3].Name = "interfaces"
	ISISDoc.Fields[3].Type = "[]ISISInterface"
	ISISDoc.Fields[3].Note = ""
	ISISDoc.Fields[3].Description = "Interface related configuration"
	ISISDoc.Fields[3].Comments[encoder.LineComment] = "Interface related configuration"
	ISISDoc.Fields[4].Name = "lsp_lifetime"
	ISISDoc.Fields[4].Type = "uint16"
	ISISDoc.Fields[4].Note = ""
	ISISDoc.Fields[4].Description = "Amount of time a link-state PDU should persist in the network\nExpressed in seconds"
	ISISDoc.Fields[4].Comments[encoder.LineComment] = "Amount of time a link-state PDU should persist in the network"

	ISISLevelDoc.Type = "ISISLevel"
	ISISLevelDoc.Comments[encoder.LineComment] = "ISISLevel level config"
	ISISLevelDoc.Description = "ISISLevel level config"
	ISISLevelDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ISIS",
			FieldName: "level1",
		},
		{
			TypeName:  "ISIS",
			FieldName: "level2",
		},
	}
	ISISLevelDoc.Fields = make([]encoder.Doc, 6)
	ISISLevelDoc.Fields[0].Name = "disable"
	ISISLevelDoc.Fields[0].Type = "bool"
	ISISLevelDoc.Fields[0].Note = ""
	ISISLevelDoc.Fields[0].Description = "Disables this level for the instance"
	ISISLevelDoc.Fields[0].Comments[encoder.LineComment] = "Disables this level for the instance"
	ISISLevelDoc.Fields[1].Name = "authentication_key"
	ISISLevelDoc.Fields[1].Type = "string"
	ISISLevelDoc.Fields[1].Note = ""
	ISISLevelDoc.Fields[1].Description = "Password for authentication"
	ISISLevelDoc.Fields[1].Comments[encoder.LineComment] = "Password for authentication"
	ISISLevelDoc.Fields[2].Name = "no_csnp_authentication"
	ISISLevelDoc.Fields[2].Type = "bool"
	ISISLevelDoc.Fields[2].Note = ""
	ISISLevelDoc.Fields[2].Description = "Disable authentication for the Complete Sequence Number PDUs"
	ISISLevelDoc.Fields[2].Comments[encoder.LineComment] = "Disable authentication for the Complete Sequence Number PDUs"
	ISISLevelDoc.Fields[3].Name = "no_hello_authentication"
	ISISLevelDoc.Fields[3].Type = "bool"
	ISISLevelDoc.Fields[3].Note = ""
	ISISLevelDoc.Fields[3].Description = "DIsable authentication for hello messages"
	ISISLevelDoc.Fields[3].Comments[encoder.LineComment] = "DIsable authentication for hello messages"
	ISISLevelDoc.Fields[4].Name = "no_psnp_authentication"
	ISISLevelDoc.Fields[4].Type = "bool"
	ISISLevelDoc.Fields[4].Note = ""
	ISISLevelDoc.Fields[4].Description = "Disable authentication for the Partial Sequence Number PDUs"
	ISISLevelDoc.Fields[4].Comments[encoder.LineComment] = "Disable authentication for the Partial Sequence Number PDUs"
	ISISLevelDoc.Fields[5].Name = "wide_metrics_only"
	ISISLevelDoc.Fields[5].Type = "bool"
	ISISLevelDoc.Fields[5].Note = ""
	ISISLevelDoc.Fields[5].Description = "Enable sending and receiving wide metrics only for this level"
	ISISLevelDoc.Fields[5].Comments[encoder.LineComment] = "Enable sending and receiving wide metrics only for this level"

	ISISInterfaceDoc.Type = "ISISInterface"
	ISISInterfaceDoc.Comments[encoder.LineComment] = "ISISInterface interface config"
	ISISInterfaceDoc.Description = "ISISInterface interface config"
	ISISInterfaceDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ISIS",
			FieldName: "interfaces",
		},
	}
	ISISInterfaceDoc.Fields = make([]encoder.Doc, 5)
	ISISInterfaceDoc.Fields[0].Name = "name"
	ISISInterfaceDoc.Fields[0].Type = "string"
	ISISInterfaceDoc.Fields[0].Note = ""
	ISISInterfaceDoc.Fields[0].Description = "Name of the interface to configure"
	ISISInterfaceDoc.Fields[0].Comments[encoder.LineComment] = "Name of the interface to configure"
	ISISInterfaceDoc.Fields[1].Name = "passive"
	ISISInterfaceDoc.Fields[1].Type = "bool"
	ISISInterfaceDoc.Fields[1].Note = ""
	ISISInterfaceDoc.Fields[1].Description = "Configure interface as passive"
	ISISInterfaceDoc.Fields[1].Comments[encoder.LineComment] = "Configure interface as passive"
	ISISInterfaceDoc.Fields[2].Name = "point_to_point"
	ISISInterfaceDoc.Fields[2].Type = "bool"
	ISISInterfaceDoc.Fields[2].Note = ""
	ISISInterfaceDoc.Fields[2].Description = "Configure interface as point-to-point"
	ISISInterfaceDoc.Fields[2].Comments[encoder.LineComment] = "Configure interface as point-to-point"
	ISISInterfaceDoc.Fields[3].Name = "level1"
	ISISInterfaceDoc.Fields[3].Type = "ISISInterfaceLevel"
	ISISInterfaceDoc.Fields[3].Note = ""
	ISISInterfaceDoc.Fields[3].Description = "Level 1 configuration parameters for the interface"
	ISISInterfaceDoc.Fields[3].Comments[encoder.LineComment] = "Level 1 configuration parameters for the interface"
	ISISInterfaceDoc.Fields[4].Name = "level2"
	ISISInterfaceDoc.Fields[4].Type = "ISISInterfaceLevel"
	ISISInterfaceDoc.Fields[4].Note = ""
	ISISInterfaceDoc.Fields[4].Description = "Level 2 configuration parameters for the interface"
	ISISInterfaceDoc.Fields[4].Comments[encoder.LineComment] = "Level 2 configuration parameters for the interface"

	ISISInterfaceLevelDoc.Type = "ISISInterfaceLevel"
	ISISInterfaceLevelDoc.Comments[encoder.LineComment] = "ISISInterfaceLevel interface level config"
	ISISInterfaceLevelDoc.Description = "ISISInterfaceLevel interface level config"
	ISISInterfaceLevelDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ISISInterface",
			FieldName: "level1",
		},
		{
			TypeName:  "ISISInterface",
			FieldName: "level2",
		},
	}
	ISISInterfaceLevelDoc.Fields = make([]encoder.Doc, 6)
	ISISInterfaceLevelDoc.Fields[0].Name = "disable"
	ISISInterfaceLevelDoc.Fields[0].Type = "bool"
	ISISInterfaceLevelDoc.Fields[0].Note = ""
	ISISInterfaceLevelDoc.Fields[0].Description = "Disable this level for the interface"
	ISISInterfaceLevelDoc.Fields[0].Comments[encoder.LineComment] = "Disable this level for the interface"
	ISISInterfaceLevelDoc.Fields[1].Name = "hello_interval"
	ISISInterfaceLevelDoc.Fields[1].Type = "uint16"
	ISISInterfaceLevelDoc.Fields[1].Note = ""
	ISISInterfaceLevelDoc.Fields[1].Description = "Hello interval\nExpressed in seconds"
	ISISInterfaceLevelDoc.Fields[1].Comments[encoder.LineComment] = "Hello interval"
	ISISInterfaceLevelDoc.Fields[2].Name = "hold_time"
	ISISInterfaceLevelDoc.Fields[2].Type = "uint16"
	ISISInterfaceLevelDoc.Fields[2].Note = ""
	ISISInterfaceLevelDoc.Fields[2].Description = "Hold time\nExpressed in seconds"
	ISISInterfaceLevelDoc.Fields[2].Comments[encoder.LineComment] = "Hold time"
	ISISInterfaceLevelDoc.Fields[3].Name = "metric"
	ISISInterfaceLevelDoc.Fields[3].Type = "uint32"
	ISISInterfaceLevelDoc.Fields[3].Note = ""
	ISISInterfaceLevelDoc.Fields[3].Description = "Metric for the interface in this level"
	ISISInterfaceLevelDoc.Fields[3].Comments[encoder.LineComment] = "Metric for the interface in this level"
	ISISInterfaceLevelDoc.Fields[4].Name = "passive"
	ISISInterfaceLevelDoc.Fields[4].Type = "bool"
	ISISInterfaceLevelDoc.Fields[4].Note = ""
	ISISInterfaceLevelDoc.Fields[4].Description = "Configures interface as passive"
	ISISInterfaceLevelDoc.Fields[4].Comments[encoder.LineComment] = "Configures interface as passive"
	ISISInterfaceLevelDoc.Fields[5].Name = "priority"
	ISISInterfaceLevelDoc.Fields[5].Type = "uint8"
	ISISInterfaceLevelDoc.Fields[5].Note = ""
	ISISInterfaceLevelDoc.Fields[5].Description = "Configures the device priority to become a designated router for this level\nValue range: 0-127"
	ISISInterfaceLevelDoc.Fields[5].Comments[encoder.LineComment] = "Configures the device priority to become a designated router for this level"
}

func (_ ISIS) Doc() *encoder.Doc {
	return &ISISDoc
}

func (_ ISISLevel) Doc() *encoder.Doc {
	return &ISISLevelDoc
}

func (_ ISISInterface) Doc() *encoder.Doc {
	return &ISISInterfaceDoc
}

func (_ ISISInterfaceLevel) Doc() *encoder.Doc {
	return &ISISInterfaceLevelDoc
}

// GetisisDoc returns documentation for the file cmd/bio-rd/config/isis_docs.go.
func GetisisDoc() *encoder.FileDoc {
	return &encoder.FileDoc{
		Name:        "isis",
		Description: "",
		Structs: []*encoder.Doc{
			&ISISDoc,
			&ISISLevelDoc,
			&ISISInterfaceDoc,
			&ISISInterfaceLevelDoc,
		},
	}
}
