// 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/.

// Code generated by hack/docgen tool. DO NOT EDIT.

package v1alpha1

import (
	"github.com/talos-systems/talos/pkg/machinery/config/encoder"
)

var (
	ConfigDoc                      encoder.Doc
	MachineConfigDoc               encoder.Doc
	ClusterConfigDoc               encoder.Doc
	ExtraMountDoc                  encoder.Doc
	KubeletConfigDoc               encoder.Doc
	KubeletNodeIPConfigDoc         encoder.Doc
	NetworkConfigDoc               encoder.Doc
	InstallConfigDoc               encoder.Doc
	InstallDiskSelectorDoc         encoder.Doc
	TimeConfigDoc                  encoder.Doc
	RegistriesConfigDoc            encoder.Doc
	PodCheckpointerDoc             encoder.Doc
	CoreDNSDoc                     encoder.Doc
	EndpointDoc                    encoder.Doc
	ControlPlaneConfigDoc          encoder.Doc
	APIServerConfigDoc             encoder.Doc
	ControllerManagerConfigDoc     encoder.Doc
	ProxyConfigDoc                 encoder.Doc
	SchedulerConfigDoc             encoder.Doc
	EtcdConfigDoc                  encoder.Doc
	ClusterNetworkConfigDoc        encoder.Doc
	CNIConfigDoc                   encoder.Doc
	ExternalCloudProviderConfigDoc encoder.Doc
	AdminKubeconfigConfigDoc       encoder.Doc
	MachineDiskDoc                 encoder.Doc
	DiskPartitionDoc               encoder.Doc
	EncryptionConfigDoc            encoder.Doc
	EncryptionKeyDoc               encoder.Doc
	EncryptionKeyStaticDoc         encoder.Doc
	EncryptionKeyNodeIDDoc         encoder.Doc
	MachineFileDoc                 encoder.Doc
	ExtraHostDoc                   encoder.Doc
	DeviceDoc                      encoder.Doc
	DHCPOptionsDoc                 encoder.Doc
	DeviceWireguardConfigDoc       encoder.Doc
	DeviceWireguardPeerDoc         encoder.Doc
	DeviceVIPConfigDoc             encoder.Doc
	VIPEquinixMetalConfigDoc       encoder.Doc
	VIPHCloudConfigDoc             encoder.Doc
	BondDoc                        encoder.Doc
	VlanDoc                        encoder.Doc
	RouteDoc                       encoder.Doc
	RegistryMirrorConfigDoc        encoder.Doc
	RegistryConfigDoc              encoder.Doc
	RegistryAuthConfigDoc          encoder.Doc
	RegistryTLSConfigDoc           encoder.Doc
	SystemDiskEncryptionConfigDoc  encoder.Doc
	FeaturesConfigDoc              encoder.Doc
	VolumeMountConfigDoc           encoder.Doc
	ClusterInlineManifestDoc       encoder.Doc
	NetworkKubeSpanDoc             encoder.Doc
	ClusterDiscoveryConfigDoc      encoder.Doc
	DiscoveryRegistriesConfigDoc   encoder.Doc
	RegistryKubernetesConfigDoc    encoder.Doc
	RegistryServiceConfigDoc       encoder.Doc
)

func init() {
	ConfigDoc.Type = "Config"
	ConfigDoc.Comments[encoder.LineComment] = "Config defines the v1alpha1 configuration file."
	ConfigDoc.Description = "Config defines the v1alpha1 configuration file."

	ConfigDoc.AddExample("", configExample)
	ConfigDoc.Fields = make([]encoder.Doc, 5)
	ConfigDoc.Fields[0].Name = "version"
	ConfigDoc.Fields[0].Type = "string"
	ConfigDoc.Fields[0].Note = ""
	ConfigDoc.Fields[0].Description = "Indicates the schema used to decode the contents."
	ConfigDoc.Fields[0].Comments[encoder.LineComment] = "Indicates the schema used to decode the contents."
	ConfigDoc.Fields[0].Values = []string{
		"v1alpha1",
	}
	ConfigDoc.Fields[1].Name = "debug"
	ConfigDoc.Fields[1].Type = "bool"
	ConfigDoc.Fields[1].Note = ""
	ConfigDoc.Fields[1].Description = "Enable verbose logging to the console.\nAll system containers logs will flow into serial console.\n\n> Note: To avoid breaking Talos bootstrap flow enable this option only if serial console can handle high message throughput."
	ConfigDoc.Fields[1].Comments[encoder.LineComment] = "Enable verbose logging to the console."
	ConfigDoc.Fields[1].Values = []string{
		"true",
		"yes",
		"false",
		"no",
	}
	ConfigDoc.Fields[2].Name = "persist"
	ConfigDoc.Fields[2].Type = "bool"
	ConfigDoc.Fields[2].Note = ""
	ConfigDoc.Fields[2].Description = "Indicates whether to pull the machine config upon every boot."
	ConfigDoc.Fields[2].Comments[encoder.LineComment] = "Indicates whether to pull the machine config upon every boot."
	ConfigDoc.Fields[2].Values = []string{
		"true",
		"yes",
		"false",
		"no",
	}
	ConfigDoc.Fields[3].Name = "machine"
	ConfigDoc.Fields[3].Type = "MachineConfig"
	ConfigDoc.Fields[3].Note = ""
	ConfigDoc.Fields[3].Description = "Provides machine specific configuration options."
	ConfigDoc.Fields[3].Comments[encoder.LineComment] = "Provides machine specific configuration options."
	ConfigDoc.Fields[4].Name = "cluster"
	ConfigDoc.Fields[4].Type = "ClusterConfig"
	ConfigDoc.Fields[4].Note = ""
	ConfigDoc.Fields[4].Description = "Provides cluster specific configuration options."
	ConfigDoc.Fields[4].Comments[encoder.LineComment] = "Provides cluster specific configuration options."

	MachineConfigDoc.Type = "MachineConfig"
	MachineConfigDoc.Comments[encoder.LineComment] = "MachineConfig represents the machine-specific config values."
	MachineConfigDoc.Description = "MachineConfig represents the machine-specific config values."

	MachineConfigDoc.AddExample("", machineConfigExample)
	MachineConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "Config",
			FieldName: "machine",
		},
	}
	MachineConfigDoc.Fields = make([]encoder.Doc, 15)
	MachineConfigDoc.Fields[0].Name = "type"
	MachineConfigDoc.Fields[0].Type = "string"
	MachineConfigDoc.Fields[0].Note = ""
	MachineConfigDoc.Fields[0].Description = "Defines the role of the machine within the cluster.\n\n#### Init\n\nInit node type designates the first control plane node to come up.\nYou can think of it like a bootstrap node.\nThis node will perform the initial steps to bootstrap the cluster -- generation of TLS assets, starting of the control plane, etc.\n\n#### Control Plane\n\nControl Plane node type designates the node as a control plane member.\nThis means it will host etcd along with the Kubernetes master components such as API Server, Controller Manager, Scheduler.\n\n#### Worker\n\nWorker node type designates the node as a worker node.\nThis means it will be an available compute node for scheduling workloads.\n\nThis node type was previously known as \"join\"; that value is still supported but deprecated."
	MachineConfigDoc.Fields[0].Comments[encoder.LineComment] = "Defines the role of the machine within the cluster."
	MachineConfigDoc.Fields[0].Values = []string{
		"init",
		"controlplane",
		"worker",
	}
	MachineConfigDoc.Fields[1].Name = "token"
	MachineConfigDoc.Fields[1].Type = "string"
	MachineConfigDoc.Fields[1].Note = "Warning: It is important to ensure that this token is correct since a machine's certificate has a short TTL by default.\n"
	MachineConfigDoc.Fields[1].Description = "The `token` is used by a machine to join the PKI of the cluster.\nUsing this token, a machine will create a certificate signing request (CSR), and request a certificate that will be used as its' identity."
	MachineConfigDoc.Fields[1].Comments[encoder.LineComment] = "The `token` is used by a machine to join the PKI of the cluster."

	MachineConfigDoc.Fields[1].AddExample("example token", "328hom.uqjzh6jnn2eie9oi")
	MachineConfigDoc.Fields[2].Name = "ca"
	MachineConfigDoc.Fields[2].Type = "PEMEncodedCertificateAndKey"
	MachineConfigDoc.Fields[2].Note = ""
	MachineConfigDoc.Fields[2].Description = "The root certificate authority of the PKI.\nIt is composed of a base64 encoded `crt` and `key`."
	MachineConfigDoc.Fields[2].Comments[encoder.LineComment] = "The root certificate authority of the PKI."

	MachineConfigDoc.Fields[2].AddExample("machine CA example", pemEncodedCertificateExample)
	MachineConfigDoc.Fields[3].Name = "certSANs"
	MachineConfigDoc.Fields[3].Type = "[]string"
	MachineConfigDoc.Fields[3].Note = ""
	MachineConfigDoc.Fields[3].Description = "Extra certificate subject alternative names for the machine's certificate.\nBy default, all non-loopback interface IPs are automatically added to the certificate's SANs."
	MachineConfigDoc.Fields[3].Comments[encoder.LineComment] = "Extra certificate subject alternative names for the machine's certificate."

	MachineConfigDoc.Fields[3].AddExample("Uncomment this to enable SANs.", []string{"10.0.0.10", "172.16.0.10", "192.168.0.10"})
	MachineConfigDoc.Fields[4].Name = "kubelet"
	MachineConfigDoc.Fields[4].Type = "KubeletConfig"
	MachineConfigDoc.Fields[4].Note = ""
	MachineConfigDoc.Fields[4].Description = "Used to provide additional options to the kubelet."
	MachineConfigDoc.Fields[4].Comments[encoder.LineComment] = "Used to provide additional options to the kubelet."

	MachineConfigDoc.Fields[4].AddExample("Kubelet definition example.", machineKubeletExample)
	MachineConfigDoc.Fields[5].Name = "network"
	MachineConfigDoc.Fields[5].Type = "NetworkConfig"
	MachineConfigDoc.Fields[5].Note = ""
	MachineConfigDoc.Fields[5].Description = "Provides machine specific network configuration options."
	MachineConfigDoc.Fields[5].Comments[encoder.LineComment] = "Provides machine specific network configuration options."

	MachineConfigDoc.Fields[5].AddExample("Network definition example.", machineNetworkConfigExample)
	MachineConfigDoc.Fields[6].Name = "disks"
	MachineConfigDoc.Fields[6].Type = "[]MachineDisk"
	MachineConfigDoc.Fields[6].Note = "Note: `size` is in units of bytes.\n"
	MachineConfigDoc.Fields[6].Description = "Used to partition, format and mount additional disks.\nSince the rootfs is read only with the exception of `/var`, mounts are only valid if they are under `/var`.\nNote that the partitioning and formating is done only once, if and only if no existing partitions are found.\nIf `size:` is omitted, the partition is sized to occupy the full disk."
	MachineConfigDoc.Fields[6].Comments[encoder.LineComment] = "Used to partition, format and mount additional disks."

	MachineConfigDoc.Fields[6].AddExample("MachineDisks list example.", machineDisksExample)
	MachineConfigDoc.Fields[7].Name = "install"
	MachineConfigDoc.Fields[7].Type = "InstallConfig"
	MachineConfigDoc.Fields[7].Note = ""
	MachineConfigDoc.Fields[7].Description = "Used to provide instructions for installations."
	MachineConfigDoc.Fields[7].Comments[encoder.LineComment] = "Used to provide instructions for installations."

	MachineConfigDoc.Fields[7].AddExample("MachineInstall config usage example.", machineInstallExample)
	MachineConfigDoc.Fields[8].Name = "files"
	MachineConfigDoc.Fields[8].Type = "[]MachineFile"
	MachineConfigDoc.Fields[8].Note = "Note: The specified `path` is relative to `/var`.\n"
	MachineConfigDoc.Fields[8].Description = "Allows the addition of user specified files.\nThe value of `op` can be `create`, `overwrite`, or `append`.\nIn the case of `create`, `path` must not exist.\nIn the case of `overwrite`, and `append`, `path` must be a valid file.\nIf an `op` value of `append` is used, the existing file will be appended.\nNote that the file contents are not required to be base64 encoded."
	MachineConfigDoc.Fields[8].Comments[encoder.LineComment] = "Allows the addition of user specified files."

	MachineConfigDoc.Fields[8].AddExample("MachineFiles usage example.", machineFilesExample)
	MachineConfigDoc.Fields[9].Name = "env"
	MachineConfigDoc.Fields[9].Type = "Env"
	MachineConfigDoc.Fields[9].Note = ""
	MachineConfigDoc.Fields[9].Description = "The `env` field allows for the addition of environment variables.\nAll environment variables are set on PID 1 in addition to every service."
	MachineConfigDoc.Fields[9].Comments[encoder.LineComment] = "The `env` field allows for the addition of environment variables."

	MachineConfigDoc.Fields[9].AddExample("Environment variables definition examples.", machineEnvExamples[0])

	MachineConfigDoc.Fields[9].AddExample("", machineEnvExamples[1])

	MachineConfigDoc.Fields[9].AddExample("", machineEnvExamples[2])
	MachineConfigDoc.Fields[9].Values = []string{
		"`GRPC_GO_LOG_VERBOSITY_LEVEL`",
		"`GRPC_GO_LOG_SEVERITY_LEVEL`",
		"`http_proxy`",
		"`https_proxy`",
		"`no_proxy`",
	}
	MachineConfigDoc.Fields[10].Name = "time"
	MachineConfigDoc.Fields[10].Type = "TimeConfig"
	MachineConfigDoc.Fields[10].Note = ""
	MachineConfigDoc.Fields[10].Description = "Used to configure the machine's time settings."
	MachineConfigDoc.Fields[10].Comments[encoder.LineComment] = "Used to configure the machine's time settings."

	MachineConfigDoc.Fields[10].AddExample("Example configuration for cloudflare ntp server.", machineTimeExample)
	MachineConfigDoc.Fields[11].Name = "sysctls"
	MachineConfigDoc.Fields[11].Type = "map[string]string"
	MachineConfigDoc.Fields[11].Note = ""
	MachineConfigDoc.Fields[11].Description = "Used to configure the machine's sysctls."
	MachineConfigDoc.Fields[11].Comments[encoder.LineComment] = "Used to configure the machine's sysctls."

	MachineConfigDoc.Fields[11].AddExample("MachineSysctls usage example.", machineSysctlsExample)
	MachineConfigDoc.Fields[12].Name = "registries"
	MachineConfigDoc.Fields[12].Type = "RegistriesConfig"
	MachineConfigDoc.Fields[12].Note = ""
	MachineConfigDoc.Fields[12].Description = "Used to configure the machine's container image registry mirrors.\n\nAutomatically generates matching CRI configuration for registry mirrors.\n\nThe `mirrors` section allows to redirect requests for images to non-default registry,\nwhich might be local registry or caching mirror.\n\nThe `config` section provides a way to authenticate to the registry with TLS client\nidentity, provide registry CA, or authentication information.\nAuthentication information has same meaning with the corresponding field in `.docker/config.json`.\n\nSee also matching configuration for [CRI containerd plugin](https://github.com/containerd/cri/blob/master/docs/registry.md)."
	MachineConfigDoc.Fields[12].Comments[encoder.LineComment] = "Used to configure the machine's container image registry mirrors."

	MachineConfigDoc.Fields[12].AddExample("", machineConfigRegistriesExample)
	MachineConfigDoc.Fields[13].Name = "systemDiskEncryption"
	MachineConfigDoc.Fields[13].Type = "SystemDiskEncryptionConfig"
	MachineConfigDoc.Fields[13].Note = ""
	MachineConfigDoc.Fields[13].Description = "Machine system disk encryption configuration.\nDefines each system partition encryption parameters."
	MachineConfigDoc.Fields[13].Comments[encoder.LineComment] = "Machine system disk encryption configuration."

	MachineConfigDoc.Fields[13].AddExample("", machineSystemDiskEncryptionExample)
	MachineConfigDoc.Fields[14].Name = "features"
	MachineConfigDoc.Fields[14].Type = "FeaturesConfig"
	MachineConfigDoc.Fields[14].Note = ""
	MachineConfigDoc.Fields[14].Description = "Features describe individual Talos features that can be switched on or off."
	MachineConfigDoc.Fields[14].Comments[encoder.LineComment] = "Features describe individual Talos features that can be switched on or off."

	MachineConfigDoc.Fields[14].AddExample("", machineFeaturesExample)

	ClusterConfigDoc.Type = "ClusterConfig"
	ClusterConfigDoc.Comments[encoder.LineComment] = "ClusterConfig represents the cluster-wide config values."
	ClusterConfigDoc.Description = "ClusterConfig represents the cluster-wide config values."

	ClusterConfigDoc.AddExample("", clusterConfigExample)
	ClusterConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "Config",
			FieldName: "cluster",
		},
	}
	ClusterConfigDoc.Fields = make([]encoder.Doc, 23)
	ClusterConfigDoc.Fields[0].Name = "id"
	ClusterConfigDoc.Fields[0].Type = "string"
	ClusterConfigDoc.Fields[0].Note = ""
	ClusterConfigDoc.Fields[0].Description = "Globally unique identifier for this cluster."
	ClusterConfigDoc.Fields[0].Comments[encoder.LineComment] = "Globally unique identifier for this cluster."
	ClusterConfigDoc.Fields[1].Name = "secret"
	ClusterConfigDoc.Fields[1].Type = "string"
	ClusterConfigDoc.Fields[1].Note = ""
	ClusterConfigDoc.Fields[1].Description = "Shared secret of cluster.\nThis secret is shared among cluster members but should never be sent over the network."
	ClusterConfigDoc.Fields[1].Comments[encoder.LineComment] = "Shared secret of cluster."
	ClusterConfigDoc.Fields[2].Name = "controlPlane"
	ClusterConfigDoc.Fields[2].Type = "ControlPlaneConfig"
	ClusterConfigDoc.Fields[2].Note = ""
	ClusterConfigDoc.Fields[2].Description = "Provides control plane specific configuration options."
	ClusterConfigDoc.Fields[2].Comments[encoder.LineComment] = "Provides control plane specific configuration options."

	ClusterConfigDoc.Fields[2].AddExample("Setting controlplane endpoint address to 1.2.3.4 and port to 443 example.", clusterControlPlaneExample)
	ClusterConfigDoc.Fields[3].Name = "clusterName"
	ClusterConfigDoc.Fields[3].Type = "string"
	ClusterConfigDoc.Fields[3].Note = ""
	ClusterConfigDoc.Fields[3].Description = "Configures the cluster's name."
	ClusterConfigDoc.Fields[3].Comments[encoder.LineComment] = "Configures the cluster's name."
	ClusterConfigDoc.Fields[4].Name = "network"
	ClusterConfigDoc.Fields[4].Type = "ClusterNetworkConfig"
	ClusterConfigDoc.Fields[4].Note = ""
	ClusterConfigDoc.Fields[4].Description = "Provides cluster specific network configuration options."
	ClusterConfigDoc.Fields[4].Comments[encoder.LineComment] = "Provides cluster specific network configuration options."

	ClusterConfigDoc.Fields[4].AddExample("Configuring with flannel CNI and setting up subnets.", clusterNetworkExample)
	ClusterConfigDoc.Fields[5].Name = "token"
	ClusterConfigDoc.Fields[5].Type = "string"
	ClusterConfigDoc.Fields[5].Note = ""
	ClusterConfigDoc.Fields[5].Description = "The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster."
	ClusterConfigDoc.Fields[5].Comments[encoder.LineComment] = "The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster."

	ClusterConfigDoc.Fields[5].AddExample("Bootstrap token example (do not use in production!).", "wlzjyw.bei2zfylhs2by0wd")
	ClusterConfigDoc.Fields[6].Name = "aescbcEncryptionSecret"
	ClusterConfigDoc.Fields[6].Type = "string"
	ClusterConfigDoc.Fields[6].Note = ""
	ClusterConfigDoc.Fields[6].Description = "The key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/)."
	ClusterConfigDoc.Fields[6].Comments[encoder.LineComment] = "The key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/)."

	ClusterConfigDoc.Fields[6].AddExample("Decryption secret example (do not use in production!).", "z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM=")
	ClusterConfigDoc.Fields[7].Name = "ca"
	ClusterConfigDoc.Fields[7].Type = "PEMEncodedCertificateAndKey"
	ClusterConfigDoc.Fields[7].Note = ""
	ClusterConfigDoc.Fields[7].Description = "The base64 encoded root certificate authority used by Kubernetes."
	ClusterConfigDoc.Fields[7].Comments[encoder.LineComment] = "The base64 encoded root certificate authority used by Kubernetes."

	ClusterConfigDoc.Fields[7].AddExample("ClusterCA example.", pemEncodedCertificateExample)
	ClusterConfigDoc.Fields[8].Name = "aggregatorCA"
	ClusterConfigDoc.Fields[8].Type = "PEMEncodedCertificateAndKey"
	ClusterConfigDoc.Fields[8].Note = ""
	ClusterConfigDoc.Fields[8].Description = "The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.\n\nThis CA can be self-signed."
	ClusterConfigDoc.Fields[8].Comments[encoder.LineComment] = "The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation."

	ClusterConfigDoc.Fields[8].AddExample("AggregatorCA example.", pemEncodedCertificateExample)
	ClusterConfigDoc.Fields[9].Name = "serviceAccount"
	ClusterConfigDoc.Fields[9].Type = "PEMEncodedKey"
	ClusterConfigDoc.Fields[9].Note = ""
	ClusterConfigDoc.Fields[9].Description = "The base64 encoded private key for service account token generation."
	ClusterConfigDoc.Fields[9].Comments[encoder.LineComment] = "The base64 encoded private key for service account token generation."

	ClusterConfigDoc.Fields[9].AddExample("AggregatorCA example.", pemEncodedKeyExample)
	ClusterConfigDoc.Fields[10].Name = "apiServer"
	ClusterConfigDoc.Fields[10].Type = "APIServerConfig"
	ClusterConfigDoc.Fields[10].Note = ""
	ClusterConfigDoc.Fields[10].Description = "API server specific configuration options."
	ClusterConfigDoc.Fields[10].Comments[encoder.LineComment] = "API server specific configuration options."

	ClusterConfigDoc.Fields[10].AddExample("", clusterAPIServerExample)
	ClusterConfigDoc.Fields[11].Name = "controllerManager"
	ClusterConfigDoc.Fields[11].Type = "ControllerManagerConfig"
	ClusterConfigDoc.Fields[11].Note = ""
	ClusterConfigDoc.Fields[11].Description = "Controller manager server specific configuration options."
	ClusterConfigDoc.Fields[11].Comments[encoder.LineComment] = "Controller manager server specific configuration options."

	ClusterConfigDoc.Fields[11].AddExample("", clusterControllerManagerExample)
	ClusterConfigDoc.Fields[12].Name = "proxy"
	ClusterConfigDoc.Fields[12].Type = "ProxyConfig"
	ClusterConfigDoc.Fields[12].Note = ""
	ClusterConfigDoc.Fields[12].Description = "Kube-proxy server-specific configuration options"
	ClusterConfigDoc.Fields[12].Comments[encoder.LineComment] = "Kube-proxy server-specific configuration options"

	ClusterConfigDoc.Fields[12].AddExample("", clusterProxyExample)
	ClusterConfigDoc.Fields[13].Name = "scheduler"
	ClusterConfigDoc.Fields[13].Type = "SchedulerConfig"
	ClusterConfigDoc.Fields[13].Note = ""
	ClusterConfigDoc.Fields[13].Description = "Scheduler server specific configuration options."
	ClusterConfigDoc.Fields[13].Comments[encoder.LineComment] = "Scheduler server specific configuration options."

	ClusterConfigDoc.Fields[13].AddExample("", clusterSchedulerExample)
	ClusterConfigDoc.Fields[14].Name = "discovery"
	ClusterConfigDoc.Fields[14].Type = "ClusterDiscoveryConfig"
	ClusterConfigDoc.Fields[14].Note = ""
	ClusterConfigDoc.Fields[14].Description = "Configures cluster member discovery."
	ClusterConfigDoc.Fields[14].Comments[encoder.LineComment] = "Configures cluster member discovery."

	ClusterConfigDoc.Fields[14].AddExample("", clusterDiscoveryExample)
	ClusterConfigDoc.Fields[15].Name = "etcd"
	ClusterConfigDoc.Fields[15].Type = "EtcdConfig"
	ClusterConfigDoc.Fields[15].Note = ""
	ClusterConfigDoc.Fields[15].Description = "Etcd specific configuration options."
	ClusterConfigDoc.Fields[15].Comments[encoder.LineComment] = "Etcd specific configuration options."

	ClusterConfigDoc.Fields[15].AddExample("", clusterEtcdExample)
	ClusterConfigDoc.Fields[16].Name = "coreDNS"
	ClusterConfigDoc.Fields[16].Type = "CoreDNS"
	ClusterConfigDoc.Fields[16].Note = ""
	ClusterConfigDoc.Fields[16].Description = "Core DNS specific configuration options."
	ClusterConfigDoc.Fields[16].Comments[encoder.LineComment] = "Core DNS specific configuration options."

	ClusterConfigDoc.Fields[16].AddExample("", clusterCoreDNSExample)
	ClusterConfigDoc.Fields[17].Name = "externalCloudProvider"
	ClusterConfigDoc.Fields[17].Type = "ExternalCloudProviderConfig"
	ClusterConfigDoc.Fields[17].Note = ""
	ClusterConfigDoc.Fields[17].Description = "External cloud provider configuration."
	ClusterConfigDoc.Fields[17].Comments[encoder.LineComment] = "External cloud provider configuration."

	ClusterConfigDoc.Fields[17].AddExample("", clusterExternalCloudProviderConfigExample)
	ClusterConfigDoc.Fields[18].Name = "extraManifests"
	ClusterConfigDoc.Fields[18].Type = "[]string"
	ClusterConfigDoc.Fields[18].Note = ""
	ClusterConfigDoc.Fields[18].Description = "A list of urls that point to additional manifests.\nThese will get automatically deployed as part of the bootstrap."
	ClusterConfigDoc.Fields[18].Comments[encoder.LineComment] = "A list of urls that point to additional manifests."

	ClusterConfigDoc.Fields[18].AddExample("", []string{
		"https://www.example.com/manifest1.yaml",
		"https://www.example.com/manifest2.yaml",
	})
	ClusterConfigDoc.Fields[19].Name = "extraManifestHeaders"
	ClusterConfigDoc.Fields[19].Type = "map[string]string"
	ClusterConfigDoc.Fields[19].Note = ""
	ClusterConfigDoc.Fields[19].Description = "A map of key value pairs that will be added while fetching the extraManifests."
	ClusterConfigDoc.Fields[19].Comments[encoder.LineComment] = "A map of key value pairs that will be added while fetching the extraManifests."

	ClusterConfigDoc.Fields[19].AddExample("", map[string]string{
		"Token":       "1234567",
		"X-ExtraInfo": "info",
	})
	ClusterConfigDoc.Fields[20].Name = "inlineManifests"
	ClusterConfigDoc.Fields[20].Type = "ClusterInlineManifests"
	ClusterConfigDoc.Fields[20].Note = ""
	ClusterConfigDoc.Fields[20].Description = "A list of inline Kubernetes manifests.\nThese will get automatically deployed as part of the bootstrap."
	ClusterConfigDoc.Fields[20].Comments[encoder.LineComment] = "A list of inline Kubernetes manifests."

	ClusterConfigDoc.Fields[20].AddExample("", clusterInlineManifestsExample)
	ClusterConfigDoc.Fields[21].Name = "adminKubeconfig"
	ClusterConfigDoc.Fields[21].Type = "AdminKubeconfigConfig"
	ClusterConfigDoc.Fields[21].Note = ""
	ClusterConfigDoc.Fields[21].Description = "Settings for admin kubeconfig generation.\nCertificate lifetime can be configured."
	ClusterConfigDoc.Fields[21].Comments[encoder.LineComment] = "Settings for admin kubeconfig generation."

	ClusterConfigDoc.Fields[21].AddExample("", clusterAdminKubeconfigExample)
	ClusterConfigDoc.Fields[22].Name = "allowSchedulingOnMasters"
	ClusterConfigDoc.Fields[22].Type = "bool"
	ClusterConfigDoc.Fields[22].Note = ""
	ClusterConfigDoc.Fields[22].Description = "Allows running workload on master nodes."
	ClusterConfigDoc.Fields[22].Comments[encoder.LineComment] = "Allows running workload on master nodes."
	ClusterConfigDoc.Fields[22].Values = []string{
		"true",
		"yes",
		"false",
		"no",
	}

	ExtraMountDoc.Type = "ExtraMount"
	ExtraMountDoc.Comments[encoder.LineComment] = "ExtraMount wraps OCI Mount specification."
	ExtraMountDoc.Description = "ExtraMount wraps OCI Mount specification."

	ExtraMountDoc.AddExample("", kubeletExtraMountsExample)
	ExtraMountDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "KubeletConfig",
			FieldName: "extraMounts",
		},
	}
	ExtraMountDoc.Fields = make([]encoder.Doc, 0)

	KubeletConfigDoc.Type = "KubeletConfig"
	KubeletConfigDoc.Comments[encoder.LineComment] = "KubeletConfig represents the kubelet config values."
	KubeletConfigDoc.Description = "KubeletConfig represents the kubelet config values."

	KubeletConfigDoc.AddExample("Kubelet definition example.", machineKubeletExample)
	KubeletConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineConfig",
			FieldName: "kubelet",
		},
	}
	KubeletConfigDoc.Fields = make([]encoder.Doc, 6)
	KubeletConfigDoc.Fields[0].Name = "image"
	KubeletConfigDoc.Fields[0].Type = "string"
	KubeletConfigDoc.Fields[0].Note = ""
	KubeletConfigDoc.Fields[0].Description = "The `image` field is an optional reference to an alternative kubelet image."
	KubeletConfigDoc.Fields[0].Comments[encoder.LineComment] = "The `image` field is an optional reference to an alternative kubelet image."

	KubeletConfigDoc.Fields[0].AddExample("", kubeletImageExample)
	KubeletConfigDoc.Fields[1].Name = "clusterDNS"
	KubeletConfigDoc.Fields[1].Type = "[]string"
	KubeletConfigDoc.Fields[1].Note = ""
	KubeletConfigDoc.Fields[1].Description = "The `ClusterDNS` field is an optional reference to an alternative kubelet clusterDNS ip list."
	KubeletConfigDoc.Fields[1].Comments[encoder.LineComment] = "The `ClusterDNS` field is an optional reference to an alternative kubelet clusterDNS ip list."

	KubeletConfigDoc.Fields[1].AddExample("", []string{"10.96.0.10", "169.254.2.53"})
	KubeletConfigDoc.Fields[2].Name = "extraArgs"
	KubeletConfigDoc.Fields[2].Type = "map[string]string"
	KubeletConfigDoc.Fields[2].Note = ""
	KubeletConfigDoc.Fields[2].Description = "The `extraArgs` field is used to provide additional flags to the kubelet."
	KubeletConfigDoc.Fields[2].Comments[encoder.LineComment] = "The `extraArgs` field is used to provide additional flags to the kubelet."

	KubeletConfigDoc.Fields[2].AddExample("", map[string]string{
		"key": "value",
	})
	KubeletConfigDoc.Fields[3].Name = "extraMounts"
	KubeletConfigDoc.Fields[3].Type = "[]ExtraMount"
	KubeletConfigDoc.Fields[3].Note = ""
	KubeletConfigDoc.Fields[3].Description = "The `extraMounts` field is used to add additional mounts to the kubelet container.\nNote that either `bind` or `rbind` are required in the `options`."
	KubeletConfigDoc.Fields[3].Comments[encoder.LineComment] = "The `extraMounts` field is used to add additional mounts to the kubelet container."

	KubeletConfigDoc.Fields[3].AddExample("", kubeletExtraMountsExample)
	KubeletConfigDoc.Fields[4].Name = "registerWithFQDN"
	KubeletConfigDoc.Fields[4].Type = "bool"
	KubeletConfigDoc.Fields[4].Note = ""
	KubeletConfigDoc.Fields[4].Description = "The `registerWithFQDN` field is used to force kubelet to use the node FQDN for registration.\nThis is required in clouds like AWS."
	KubeletConfigDoc.Fields[4].Comments[encoder.LineComment] = "The `registerWithFQDN` field is used to force kubelet to use the node FQDN for registration."
	KubeletConfigDoc.Fields[4].Values = []string{
		"true",
		"yes",
		"false",
		"no",
	}
	KubeletConfigDoc.Fields[5].Name = "nodeIP"
	KubeletConfigDoc.Fields[5].Type = "KubeletNodeIPConfig"
	KubeletConfigDoc.Fields[5].Note = ""
	KubeletConfigDoc.Fields[5].Description = "The `nodeIP` field is used to configure `--node-ip` flag for the kubelet.\nThis is used when a node has multiple addresses to choose from."
	KubeletConfigDoc.Fields[5].Comments[encoder.LineComment] = "The `nodeIP` field is used to configure `--node-ip` flag for the kubelet."

	KubeletConfigDoc.Fields[5].AddExample("", kubeletNodeIPExample)

	KubeletNodeIPConfigDoc.Type = "KubeletNodeIPConfig"
	KubeletNodeIPConfigDoc.Comments[encoder.LineComment] = "KubeletNodeIPConfig represents the kubelet node IP configuration."
	KubeletNodeIPConfigDoc.Description = "KubeletNodeIPConfig represents the kubelet node IP configuration."

	KubeletNodeIPConfigDoc.AddExample("", kubeletNodeIPExample)
	KubeletNodeIPConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "KubeletConfig",
			FieldName: "nodeIP",
		},
	}
	KubeletNodeIPConfigDoc.Fields = make([]encoder.Doc, 1)
	KubeletNodeIPConfigDoc.Fields[0].Name = "validSubnets"
	KubeletNodeIPConfigDoc.Fields[0].Type = "[]string"
	KubeletNodeIPConfigDoc.Fields[0].Note = ""
	KubeletNodeIPConfigDoc.Fields[0].Description = "The `validSubnets` field configures the networks to pick kubelet node IP from.\nFor dual stack configuration, there should be two subnets: one for IPv4, another for IPv6.\nIPs can be excluded from the list by using negative match with `!`, e.g `!10.0.0.0/8`.\nNegative subnet matches should be specified last to filter out IPs picked by positive matches.\nIf not specified, node IP is picked based on cluster podCIDRs: IPv4/IPv6 address or both."
	KubeletNodeIPConfigDoc.Fields[0].Comments[encoder.LineComment] = "The `validSubnets` field configures the networks to pick kubelet node IP from."

	NetworkConfigDoc.Type = "NetworkConfig"
	NetworkConfigDoc.Comments[encoder.LineComment] = "NetworkConfig represents the machine's networking config values."
	NetworkConfigDoc.Description = "NetworkConfig represents the machine's networking config values."

	NetworkConfigDoc.AddExample("Network definition example.", machineNetworkConfigExample)
	NetworkConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineConfig",
			FieldName: "network",
		},
	}
	NetworkConfigDoc.Fields = make([]encoder.Doc, 5)
	NetworkConfigDoc.Fields[0].Name = "hostname"
	NetworkConfigDoc.Fields[0].Type = "string"
	NetworkConfigDoc.Fields[0].Note = ""
	NetworkConfigDoc.Fields[0].Description = "Used to statically set the hostname for the machine."
	NetworkConfigDoc.Fields[0].Comments[encoder.LineComment] = "Used to statically set the hostname for the machine."
	NetworkConfigDoc.Fields[1].Name = "interfaces"
	NetworkConfigDoc.Fields[1].Type = "[]Device"
	NetworkConfigDoc.Fields[1].Note = ""
	NetworkConfigDoc.Fields[1].Description = "`interfaces` is used to define the network interface configuration.\nBy default all network interfaces will attempt a DHCP discovery.\nThis can be further tuned through this configuration parameter."
	NetworkConfigDoc.Fields[1].Comments[encoder.LineComment] = "`interfaces` is used to define the network interface configuration."

	NetworkConfigDoc.Fields[1].AddExample("", machineNetworkConfigExample.NetworkInterfaces)
	NetworkConfigDoc.Fields[2].Name = "nameservers"
	NetworkConfigDoc.Fields[2].Type = "[]string"
	NetworkConfigDoc.Fields[2].Note = ""
	NetworkConfigDoc.Fields[2].Description = "Used to statically set the nameservers for the machine.\nDefaults to `1.1.1.1` and `8.8.8.8`"
	NetworkConfigDoc.Fields[2].Comments[encoder.LineComment] = "Used to statically set the nameservers for the machine."

	NetworkConfigDoc.Fields[2].AddExample("", []string{"8.8.8.8", "1.1.1.1"})
	NetworkConfigDoc.Fields[3].Name = "extraHostEntries"
	NetworkConfigDoc.Fields[3].Type = "[]ExtraHost"
	NetworkConfigDoc.Fields[3].Note = ""
	NetworkConfigDoc.Fields[3].Description = "Allows for extra entries to be added to the `/etc/hosts` file"
	NetworkConfigDoc.Fields[3].Comments[encoder.LineComment] = "Allows for extra entries to be added to the `/etc/hosts` file"

	NetworkConfigDoc.Fields[3].AddExample("", networkConfigExtraHostsExample)
	NetworkConfigDoc.Fields[4].Name = "kubespan"
	NetworkConfigDoc.Fields[4].Type = "NetworkKubeSpan"
	NetworkConfigDoc.Fields[4].Note = ""
	NetworkConfigDoc.Fields[4].Description = "Configures KubeSpan feature."
	NetworkConfigDoc.Fields[4].Comments[encoder.LineComment] = "Configures KubeSpan feature."

	NetworkConfigDoc.Fields[4].AddExample("", networkKubeSpanExample)

	InstallConfigDoc.Type = "InstallConfig"
	InstallConfigDoc.Comments[encoder.LineComment] = "InstallConfig represents the installation options for preparing a node."
	InstallConfigDoc.Description = "InstallConfig represents the installation options for preparing a node."

	InstallConfigDoc.AddExample("MachineInstall config usage example.", machineInstallExample)
	InstallConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineConfig",
			FieldName: "install",
		},
	}
	InstallConfigDoc.Fields = make([]encoder.Doc, 7)
	InstallConfigDoc.Fields[0].Name = "disk"
	InstallConfigDoc.Fields[0].Type = "string"
	InstallConfigDoc.Fields[0].Note = ""
	InstallConfigDoc.Fields[0].Description = "The disk used for installations."
	InstallConfigDoc.Fields[0].Comments[encoder.LineComment] = "The disk used for installations."

	InstallConfigDoc.Fields[0].AddExample("", "/dev/sda")

	InstallConfigDoc.Fields[0].AddExample("", "/dev/nvme0")
	InstallConfigDoc.Fields[1].Name = "diskSelector"
	InstallConfigDoc.Fields[1].Type = "InstallDiskSelector"
	InstallConfigDoc.Fields[1].Note = ""
	InstallConfigDoc.Fields[1].Description = "Look up disk using disk attributes like model, size, serial and others.\nAlways has priority over `disk`."
	InstallConfigDoc.Fields[1].Comments[encoder.LineComment] = "Look up disk using disk attributes like model, size, serial and others."

	InstallConfigDoc.Fields[1].AddExample("", machineInstallDiskSelectorExample)
	InstallConfigDoc.Fields[2].Name = "extraKernelArgs"
	InstallConfigDoc.Fields[2].Type = "[]string"
	InstallConfigDoc.Fields[2].Note = ""
	InstallConfigDoc.Fields[2].Description = "Allows for supplying extra kernel args via the bootloader."
	InstallConfigDoc.Fields[2].Comments[encoder.LineComment] = "Allows for supplying extra kernel args via the bootloader."

	InstallConfigDoc.Fields[2].AddExample("", []string{"talos.platform=metal", "reboot=k"})
	InstallConfigDoc.Fields[3].Name = "image"
	InstallConfigDoc.Fields[3].Type = "string"
	InstallConfigDoc.Fields[3].Note = ""
	InstallConfigDoc.Fields[3].Description = "Allows for supplying the image used to perform the installation.\nImage reference for each Talos release can be found on\n[GitHub releases page](https://github.com/talos-systems/talos/releases)."
	InstallConfigDoc.Fields[3].Comments[encoder.LineComment] = "Allows for supplying the image used to perform the installation."

	InstallConfigDoc.Fields[3].AddExample("", "ghcr.io/talos-systems/installer:latest")
	InstallConfigDoc.Fields[4].Name = "bootloader"
	InstallConfigDoc.Fields[4].Type = "bool"
	InstallConfigDoc.Fields[4].Note = ""
	InstallConfigDoc.Fields[4].Description = "Indicates if a bootloader should be installed."
	InstallConfigDoc.Fields[4].Comments[encoder.LineComment] = "Indicates if a bootloader should be installed."
	InstallConfigDoc.Fields[4].Values = []string{
		"true",
		"yes",
		"false",
		"no",
	}
	InstallConfigDoc.Fields[5].Name = "wipe"
	InstallConfigDoc.Fields[5].Type = "bool"
	InstallConfigDoc.Fields[5].Note = ""
	InstallConfigDoc.Fields[5].Description = "Indicates if the installation disk should be wiped at installation time.\nDefaults to `true`."
	InstallConfigDoc.Fields[5].Comments[encoder.LineComment] = "Indicates if the installation disk should be wiped at installation time."
	InstallConfigDoc.Fields[5].Values = []string{
		"true",
		"yes",
		"false",
		"no",
	}
	InstallConfigDoc.Fields[6].Name = "legacyBIOSSupport"
	InstallConfigDoc.Fields[6].Type = "bool"
	InstallConfigDoc.Fields[6].Note = ""
	InstallConfigDoc.Fields[6].Description = "Indicates if MBR partition should be marked as bootable (active).\nShould be enabled only for the systems with legacy BIOS that doesn't support GPT partitioning scheme."
	InstallConfigDoc.Fields[6].Comments[encoder.LineComment] = "Indicates if MBR partition should be marked as bootable (active)."

	InstallDiskSelectorDoc.Type = "InstallDiskSelector"
	InstallDiskSelectorDoc.Comments[encoder.LineComment] = "InstallDiskSelector represents a disk query parameters for the install disk lookup."
	InstallDiskSelectorDoc.Description = "InstallDiskSelector represents a disk query parameters for the install disk lookup."

	InstallDiskSelectorDoc.AddExample("", machineInstallDiskSelectorExample)
	InstallDiskSelectorDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "InstallConfig",
			FieldName: "diskSelector",
		},
	}
	InstallDiskSelectorDoc.Fields = make([]encoder.Doc, 8)
	InstallDiskSelectorDoc.Fields[0].Name = "size"
	InstallDiskSelectorDoc.Fields[0].Type = "InstallDiskSizeMatcher"
	InstallDiskSelectorDoc.Fields[0].Note = ""
	InstallDiskSelectorDoc.Fields[0].Description = "Disk size."
	InstallDiskSelectorDoc.Fields[0].Comments[encoder.LineComment] = "Disk size."

	InstallDiskSelectorDoc.Fields[0].AddExample("Select a disk which size is equal to 4GB.", machineInstallDiskSizeMatcherExamples[0])

	InstallDiskSelectorDoc.Fields[0].AddExample("Select a disk which size is greater than 1TB.", machineInstallDiskSizeMatcherExamples[1])

	InstallDiskSelectorDoc.Fields[0].AddExample("Select a disk which size is less or equal than 2TB.", machineInstallDiskSizeMatcherExamples[2])
	InstallDiskSelectorDoc.Fields[1].Name = "name"
	InstallDiskSelectorDoc.Fields[1].Type = "string"
	InstallDiskSelectorDoc.Fields[1].Note = ""
	InstallDiskSelectorDoc.Fields[1].Description = "Disk name `/sys/block/<dev>/device/name`."
	InstallDiskSelectorDoc.Fields[1].Comments[encoder.LineComment] = "Disk name `/sys/block/<dev>/device/name`."
	InstallDiskSelectorDoc.Fields[2].Name = "model"
	InstallDiskSelectorDoc.Fields[2].Type = "string"
	InstallDiskSelectorDoc.Fields[2].Note = ""
	InstallDiskSelectorDoc.Fields[2].Description = "Disk model `/sys/block/<dev>/device/model`."
	InstallDiskSelectorDoc.Fields[2].Comments[encoder.LineComment] = "Disk model `/sys/block/<dev>/device/model`."
	InstallDiskSelectorDoc.Fields[3].Name = "serial"
	InstallDiskSelectorDoc.Fields[3].Type = "string"
	InstallDiskSelectorDoc.Fields[3].Note = ""
	InstallDiskSelectorDoc.Fields[3].Description = "Disk serial number `/sys/block/<dev>/serial`."
	InstallDiskSelectorDoc.Fields[3].Comments[encoder.LineComment] = "Disk serial number `/sys/block/<dev>/serial`."
	InstallDiskSelectorDoc.Fields[4].Name = "modalias"
	InstallDiskSelectorDoc.Fields[4].Type = "string"
	InstallDiskSelectorDoc.Fields[4].Note = ""
	InstallDiskSelectorDoc.Fields[4].Description = "Disk modalias `/sys/block/<dev>/device/modalias`."
	InstallDiskSelectorDoc.Fields[4].Comments[encoder.LineComment] = "Disk modalias `/sys/block/<dev>/device/modalias`."
	InstallDiskSelectorDoc.Fields[5].Name = "uuid"
	InstallDiskSelectorDoc.Fields[5].Type = "string"
	InstallDiskSelectorDoc.Fields[5].Note = ""
	InstallDiskSelectorDoc.Fields[5].Description = "Disk UUID `/sys/block/<dev>/uuid`."
	InstallDiskSelectorDoc.Fields[5].Comments[encoder.LineComment] = "Disk UUID `/sys/block/<dev>/uuid`."
	InstallDiskSelectorDoc.Fields[6].Name = "wwid"
	InstallDiskSelectorDoc.Fields[6].Type = "string"
	InstallDiskSelectorDoc.Fields[6].Note = ""
	InstallDiskSelectorDoc.Fields[6].Description = "Disk WWID `/sys/block/<dev>/wwid`."
	InstallDiskSelectorDoc.Fields[6].Comments[encoder.LineComment] = "Disk WWID `/sys/block/<dev>/wwid`."
	InstallDiskSelectorDoc.Fields[7].Name = "type"
	InstallDiskSelectorDoc.Fields[7].Type = "InstallDiskType"
	InstallDiskSelectorDoc.Fields[7].Note = ""
	InstallDiskSelectorDoc.Fields[7].Description = "Disk Type."
	InstallDiskSelectorDoc.Fields[7].Comments[encoder.LineComment] = "Disk Type."
	InstallDiskSelectorDoc.Fields[7].Values = []string{
		"ssd",
		"hdd",
		"nvme",
		"sd",
	}

	TimeConfigDoc.Type = "TimeConfig"
	TimeConfigDoc.Comments[encoder.LineComment] = "TimeConfig represents the options for configuring time on a machine."
	TimeConfigDoc.Description = "TimeConfig represents the options for configuring time on a machine."

	TimeConfigDoc.AddExample("Example configuration for cloudflare ntp server.", machineTimeExample)
	TimeConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineConfig",
			FieldName: "time",
		},
	}
	TimeConfigDoc.Fields = make([]encoder.Doc, 3)
	TimeConfigDoc.Fields[0].Name = "disabled"
	TimeConfigDoc.Fields[0].Type = "bool"
	TimeConfigDoc.Fields[0].Note = ""
	TimeConfigDoc.Fields[0].Description = "Indicates if the time service is disabled for the machine.\nDefaults to `false`."
	TimeConfigDoc.Fields[0].Comments[encoder.LineComment] = "Indicates if the time service is disabled for the machine."
	TimeConfigDoc.Fields[1].Name = "servers"
	TimeConfigDoc.Fields[1].Type = "[]string"
	TimeConfigDoc.Fields[1].Note = ""
	TimeConfigDoc.Fields[1].Description = "Specifies time (NTP) servers to use for setting the system time.\nDefaults to `pool.ntp.org`"
	TimeConfigDoc.Fields[1].Comments[encoder.LineComment] = "Specifies time (NTP) servers to use for setting the system time."
	TimeConfigDoc.Fields[2].Name = "bootTimeout"
	TimeConfigDoc.Fields[2].Type = "Duration"
	TimeConfigDoc.Fields[2].Note = ""
	TimeConfigDoc.Fields[2].Description = "Specifies the timeout when the node time is considered to be in sync unlocking the boot sequence.\nNTP sync will be still running in the background.\nDefaults to \"infinity\" (waiting forever for time sync)"
	TimeConfigDoc.Fields[2].Comments[encoder.LineComment] = "Specifies the timeout when the node time is considered to be in sync unlocking the boot sequence."

	RegistriesConfigDoc.Type = "RegistriesConfig"
	RegistriesConfigDoc.Comments[encoder.LineComment] = "RegistriesConfig represents the image pull options."
	RegistriesConfigDoc.Description = "RegistriesConfig represents the image pull options."

	RegistriesConfigDoc.AddExample("", machineConfigRegistriesExample)
	RegistriesConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineConfig",
			FieldName: "registries",
		},
	}
	RegistriesConfigDoc.Fields = make([]encoder.Doc, 2)
	RegistriesConfigDoc.Fields[0].Name = "mirrors"
	RegistriesConfigDoc.Fields[0].Type = "map[string]RegistryMirrorConfig"
	RegistriesConfigDoc.Fields[0].Note = ""
	RegistriesConfigDoc.Fields[0].Description = "Specifies mirror configuration for each registry.\nThis setting allows to use local pull-through caching registires,\nair-gapped installations, etc.\n\nRegistry name is the first segment of image identifier, with 'docker.io'\nbeing default one.\nTo catch any registry names not specified explicitly, use '*'."
	RegistriesConfigDoc.Fields[0].Comments[encoder.LineComment] = "Specifies mirror configuration for each registry."

	RegistriesConfigDoc.Fields[0].AddExample("", machineConfigRegistryMirrorsExample)
	RegistriesConfigDoc.Fields[1].Name = "config"
	RegistriesConfigDoc.Fields[1].Type = "map[string]RegistryConfig"
	RegistriesConfigDoc.Fields[1].Note = ""
	RegistriesConfigDoc.Fields[1].Description = "Specifies TLS & auth configuration for HTTPS image registries.\nMutual TLS can be enabled with 'clientIdentity' option.\n\nTLS configuration can be skipped if registry has trusted\nserver certificate."
	RegistriesConfigDoc.Fields[1].Comments[encoder.LineComment] = "Specifies TLS & auth configuration for HTTPS image registries."

	RegistriesConfigDoc.Fields[1].AddExample("", machineConfigRegistryConfigExample)

	PodCheckpointerDoc.Type = "PodCheckpointer"
	PodCheckpointerDoc.Comments[encoder.LineComment] = "PodCheckpointer represents the pod-checkpointer config values."
	PodCheckpointerDoc.Description = "PodCheckpointer represents the pod-checkpointer config values."
	PodCheckpointerDoc.Fields = make([]encoder.Doc, 1)
	PodCheckpointerDoc.Fields[0].Name = "image"
	PodCheckpointerDoc.Fields[0].Type = "string"
	PodCheckpointerDoc.Fields[0].Note = ""
	PodCheckpointerDoc.Fields[0].Description = "The `image` field is an override to the default pod-checkpointer image."
	PodCheckpointerDoc.Fields[0].Comments[encoder.LineComment] = "The `image` field is an override to the default pod-checkpointer image."

	CoreDNSDoc.Type = "CoreDNS"
	CoreDNSDoc.Comments[encoder.LineComment] = "CoreDNS represents the CoreDNS config values."
	CoreDNSDoc.Description = "CoreDNS represents the CoreDNS config values."

	CoreDNSDoc.AddExample("", clusterCoreDNSExample)
	CoreDNSDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "coreDNS",
		},
	}
	CoreDNSDoc.Fields = make([]encoder.Doc, 2)
	CoreDNSDoc.Fields[0].Name = "disabled"
	CoreDNSDoc.Fields[0].Type = "bool"
	CoreDNSDoc.Fields[0].Note = ""
	CoreDNSDoc.Fields[0].Description = "Disable coredns deployment on cluster bootstrap."
	CoreDNSDoc.Fields[0].Comments[encoder.LineComment] = "Disable coredns deployment on cluster bootstrap."
	CoreDNSDoc.Fields[1].Name = "image"
	CoreDNSDoc.Fields[1].Type = "string"
	CoreDNSDoc.Fields[1].Note = ""
	CoreDNSDoc.Fields[1].Description = "The `image` field is an override to the default coredns image."
	CoreDNSDoc.Fields[1].Comments[encoder.LineComment] = "The `image` field is an override to the default coredns image."

	EndpointDoc.Type = "Endpoint"
	EndpointDoc.Comments[encoder.LineComment] = "Endpoint represents the endpoint URL parsed out of the machine config."
	EndpointDoc.Description = "Endpoint represents the endpoint URL parsed out of the machine config."

	EndpointDoc.AddExample("", clusterEndpointExample1)

	EndpointDoc.AddExample("", clusterEndpointExample2)
	EndpointDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ControlPlaneConfig",
			FieldName: "endpoint",
		},
	}
	EndpointDoc.Fields = make([]encoder.Doc, 0)

	ControlPlaneConfigDoc.Type = "ControlPlaneConfig"
	ControlPlaneConfigDoc.Comments[encoder.LineComment] = "ControlPlaneConfig represents the control plane configuration options."
	ControlPlaneConfigDoc.Description = "ControlPlaneConfig represents the control plane configuration options."

	ControlPlaneConfigDoc.AddExample("Setting controlplane endpoint address to 1.2.3.4 and port to 443 example.", clusterControlPlaneExample)
	ControlPlaneConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "controlPlane",
		},
	}
	ControlPlaneConfigDoc.Fields = make([]encoder.Doc, 2)
	ControlPlaneConfigDoc.Fields[0].Name = "endpoint"
	ControlPlaneConfigDoc.Fields[0].Type = "Endpoint"
	ControlPlaneConfigDoc.Fields[0].Note = ""
	ControlPlaneConfigDoc.Fields[0].Description = "Endpoint is the canonical controlplane endpoint, which can be an IP address or a DNS hostname.\nIt is single-valued, and may optionally include a port number."
	ControlPlaneConfigDoc.Fields[0].Comments[encoder.LineComment] = "Endpoint is the canonical controlplane endpoint, which can be an IP address or a DNS hostname."

	ControlPlaneConfigDoc.Fields[0].AddExample("", clusterEndpointExample1)

	ControlPlaneConfigDoc.Fields[0].AddExample("", clusterEndpointExample2)
	ControlPlaneConfigDoc.Fields[1].Name = "localAPIServerPort"
	ControlPlaneConfigDoc.Fields[1].Type = "int"
	ControlPlaneConfigDoc.Fields[1].Note = ""
	ControlPlaneConfigDoc.Fields[1].Description = "The port that the API server listens on internally.\nThis may be different than the port portion listed in the endpoint field above.\nThe default is `6443`."
	ControlPlaneConfigDoc.Fields[1].Comments[encoder.LineComment] = "The port that the API server listens on internally."

	APIServerConfigDoc.Type = "APIServerConfig"
	APIServerConfigDoc.Comments[encoder.LineComment] = "APIServerConfig represents the kube apiserver configuration options."
	APIServerConfigDoc.Description = "APIServerConfig represents the kube apiserver configuration options."

	APIServerConfigDoc.AddExample("", clusterAPIServerExample)
	APIServerConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "apiServer",
		},
	}
	APIServerConfigDoc.Fields = make([]encoder.Doc, 5)
	APIServerConfigDoc.Fields[0].Name = "image"
	APIServerConfigDoc.Fields[0].Type = "string"
	APIServerConfigDoc.Fields[0].Note = ""
	APIServerConfigDoc.Fields[0].Description = "The container image used in the API server manifest."
	APIServerConfigDoc.Fields[0].Comments[encoder.LineComment] = "The container image used in the API server manifest."

	APIServerConfigDoc.Fields[0].AddExample("", clusterAPIServerImageExample)
	APIServerConfigDoc.Fields[1].Name = "extraArgs"
	APIServerConfigDoc.Fields[1].Type = "map[string]string"
	APIServerConfigDoc.Fields[1].Note = ""
	APIServerConfigDoc.Fields[1].Description = "Extra arguments to supply to the API server."
	APIServerConfigDoc.Fields[1].Comments[encoder.LineComment] = "Extra arguments to supply to the API server."
	APIServerConfigDoc.Fields[2].Name = "extraVolumes"
	APIServerConfigDoc.Fields[2].Type = "[]VolumeMountConfig"
	APIServerConfigDoc.Fields[2].Note = ""
	APIServerConfigDoc.Fields[2].Description = "Extra volumes to mount to the API server static pod."
	APIServerConfigDoc.Fields[2].Comments[encoder.LineComment] = "Extra volumes to mount to the API server static pod."
	APIServerConfigDoc.Fields[3].Name = "certSANs"
	APIServerConfigDoc.Fields[3].Type = "[]string"
	APIServerConfigDoc.Fields[3].Note = ""
	APIServerConfigDoc.Fields[3].Description = "Extra certificate subject alternative names for the API server's certificate."
	APIServerConfigDoc.Fields[3].Comments[encoder.LineComment] = "Extra certificate subject alternative names for the API server's certificate."
	APIServerConfigDoc.Fields[4].Name = "disablePodSecurityPolicy"
	APIServerConfigDoc.Fields[4].Type = "bool"
	APIServerConfigDoc.Fields[4].Note = ""
	APIServerConfigDoc.Fields[4].Description = "Disable PodSecurityPolicy in the API server and default manifests."
	APIServerConfigDoc.Fields[4].Comments[encoder.LineComment] = "Disable PodSecurityPolicy in the API server and default manifests."

	ControllerManagerConfigDoc.Type = "ControllerManagerConfig"
	ControllerManagerConfigDoc.Comments[encoder.LineComment] = "ControllerManagerConfig represents the kube controller manager configuration options."
	ControllerManagerConfigDoc.Description = "ControllerManagerConfig represents the kube controller manager configuration options."

	ControllerManagerConfigDoc.AddExample("", clusterControllerManagerExample)
	ControllerManagerConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "controllerManager",
		},
	}
	ControllerManagerConfigDoc.Fields = make([]encoder.Doc, 3)
	ControllerManagerConfigDoc.Fields[0].Name = "image"
	ControllerManagerConfigDoc.Fields[0].Type = "string"
	ControllerManagerConfigDoc.Fields[0].Note = ""
	ControllerManagerConfigDoc.Fields[0].Description = "The container image used in the controller manager manifest."
	ControllerManagerConfigDoc.Fields[0].Comments[encoder.LineComment] = "The container image used in the controller manager manifest."

	ControllerManagerConfigDoc.Fields[0].AddExample("", clusterControllerManagerImageExample)
	ControllerManagerConfigDoc.Fields[1].Name = "extraArgs"
	ControllerManagerConfigDoc.Fields[1].Type = "map[string]string"
	ControllerManagerConfigDoc.Fields[1].Note = ""
	ControllerManagerConfigDoc.Fields[1].Description = "Extra arguments to supply to the controller manager."
	ControllerManagerConfigDoc.Fields[1].Comments[encoder.LineComment] = "Extra arguments to supply to the controller manager."
	ControllerManagerConfigDoc.Fields[2].Name = "extraVolumes"
	ControllerManagerConfigDoc.Fields[2].Type = "[]VolumeMountConfig"
	ControllerManagerConfigDoc.Fields[2].Note = ""
	ControllerManagerConfigDoc.Fields[2].Description = "Extra volumes to mount to the controller manager static pod."
	ControllerManagerConfigDoc.Fields[2].Comments[encoder.LineComment] = "Extra volumes to mount to the controller manager static pod."

	ProxyConfigDoc.Type = "ProxyConfig"
	ProxyConfigDoc.Comments[encoder.LineComment] = "ProxyConfig represents the kube proxy configuration options."
	ProxyConfigDoc.Description = "ProxyConfig represents the kube proxy configuration options."

	ProxyConfigDoc.AddExample("", clusterProxyExample)
	ProxyConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "proxy",
		},
	}
	ProxyConfigDoc.Fields = make([]encoder.Doc, 4)
	ProxyConfigDoc.Fields[0].Name = "disabled"
	ProxyConfigDoc.Fields[0].Type = "bool"
	ProxyConfigDoc.Fields[0].Note = ""
	ProxyConfigDoc.Fields[0].Description = "Disable kube-proxy deployment on cluster bootstrap."
	ProxyConfigDoc.Fields[0].Comments[encoder.LineComment] = "Disable kube-proxy deployment on cluster bootstrap."

	ProxyConfigDoc.Fields[0].AddExample("", false)
	ProxyConfigDoc.Fields[1].Name = "image"
	ProxyConfigDoc.Fields[1].Type = "string"
	ProxyConfigDoc.Fields[1].Note = ""
	ProxyConfigDoc.Fields[1].Description = "The container image used in the kube-proxy manifest."
	ProxyConfigDoc.Fields[1].Comments[encoder.LineComment] = "The container image used in the kube-proxy manifest."

	ProxyConfigDoc.Fields[1].AddExample("", clusterProxyImageExample)
	ProxyConfigDoc.Fields[2].Name = "mode"
	ProxyConfigDoc.Fields[2].Type = "string"
	ProxyConfigDoc.Fields[2].Note = ""
	ProxyConfigDoc.Fields[2].Description = "proxy mode of kube-proxy.\nThe default is 'iptables'."
	ProxyConfigDoc.Fields[2].Comments[encoder.LineComment] = "proxy mode of kube-proxy."
	ProxyConfigDoc.Fields[3].Name = "extraArgs"
	ProxyConfigDoc.Fields[3].Type = "map[string]string"
	ProxyConfigDoc.Fields[3].Note = ""
	ProxyConfigDoc.Fields[3].Description = "Extra arguments to supply to kube-proxy."
	ProxyConfigDoc.Fields[3].Comments[encoder.LineComment] = "Extra arguments to supply to kube-proxy."

	SchedulerConfigDoc.Type = "SchedulerConfig"
	SchedulerConfigDoc.Comments[encoder.LineComment] = "SchedulerConfig represents the kube scheduler configuration options."
	SchedulerConfigDoc.Description = "SchedulerConfig represents the kube scheduler configuration options."

	SchedulerConfigDoc.AddExample("", clusterSchedulerExample)
	SchedulerConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "scheduler",
		},
	}
	SchedulerConfigDoc.Fields = make([]encoder.Doc, 3)
	SchedulerConfigDoc.Fields[0].Name = "image"
	SchedulerConfigDoc.Fields[0].Type = "string"
	SchedulerConfigDoc.Fields[0].Note = ""
	SchedulerConfigDoc.Fields[0].Description = "The container image used in the scheduler manifest."
	SchedulerConfigDoc.Fields[0].Comments[encoder.LineComment] = "The container image used in the scheduler manifest."

	SchedulerConfigDoc.Fields[0].AddExample("", clusterSchedulerImageExample)
	SchedulerConfigDoc.Fields[1].Name = "extraArgs"
	SchedulerConfigDoc.Fields[1].Type = "map[string]string"
	SchedulerConfigDoc.Fields[1].Note = ""
	SchedulerConfigDoc.Fields[1].Description = "Extra arguments to supply to the scheduler."
	SchedulerConfigDoc.Fields[1].Comments[encoder.LineComment] = "Extra arguments to supply to the scheduler."
	SchedulerConfigDoc.Fields[2].Name = "extraVolumes"
	SchedulerConfigDoc.Fields[2].Type = "[]VolumeMountConfig"
	SchedulerConfigDoc.Fields[2].Note = ""
	SchedulerConfigDoc.Fields[2].Description = "Extra volumes to mount to the scheduler static pod."
	SchedulerConfigDoc.Fields[2].Comments[encoder.LineComment] = "Extra volumes to mount to the scheduler static pod."

	EtcdConfigDoc.Type = "EtcdConfig"
	EtcdConfigDoc.Comments[encoder.LineComment] = "EtcdConfig represents the etcd configuration options."
	EtcdConfigDoc.Description = "EtcdConfig represents the etcd configuration options."

	EtcdConfigDoc.AddExample("", clusterEtcdExample)
	EtcdConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "etcd",
		},
	}
	EtcdConfigDoc.Fields = make([]encoder.Doc, 4)
	EtcdConfigDoc.Fields[0].Name = "image"
	EtcdConfigDoc.Fields[0].Type = "string"
	EtcdConfigDoc.Fields[0].Note = ""
	EtcdConfigDoc.Fields[0].Description = "The container image used to create the etcd service."
	EtcdConfigDoc.Fields[0].Comments[encoder.LineComment] = "The container image used to create the etcd service."

	EtcdConfigDoc.Fields[0].AddExample("", clusterEtcdImageExample)
	EtcdConfigDoc.Fields[1].Name = "ca"
	EtcdConfigDoc.Fields[1].Type = "PEMEncodedCertificateAndKey"
	EtcdConfigDoc.Fields[1].Note = ""
	EtcdConfigDoc.Fields[1].Description = "The `ca` is the root certificate authority of the PKI.\nIt is composed of a base64 encoded `crt` and `key`."
	EtcdConfigDoc.Fields[1].Comments[encoder.LineComment] = "The `ca` is the root certificate authority of the PKI."

	EtcdConfigDoc.Fields[1].AddExample("", pemEncodedCertificateExample)
	EtcdConfigDoc.Fields[2].Name = "extraArgs"
	EtcdConfigDoc.Fields[2].Type = "map[string]string"
	EtcdConfigDoc.Fields[2].Note = ""
	EtcdConfigDoc.Fields[2].Description = "Extra arguments to supply to etcd.\nNote that the following args are not allowed:\n\n- `name`\n- `data-dir`\n- `initial-cluster-state`\n- `listen-peer-urls`\n- `listen-client-urls`\n- `cert-file`\n- `key-file`\n- `trusted-ca-file`\n- `peer-client-cert-auth`\n- `peer-cert-file`\n- `peer-trusted-ca-file`\n- `peer-key-file`"
	EtcdConfigDoc.Fields[2].Comments[encoder.LineComment] = "Extra arguments to supply to etcd."

	EtcdConfigDoc.Fields[3].Name = "subnet"
	EtcdConfigDoc.Fields[3].Type = "string"
	EtcdConfigDoc.Fields[3].Note = ""
	EtcdConfigDoc.Fields[3].Description = "The subnet from which the advertise URL should be."
	EtcdConfigDoc.Fields[3].Comments[encoder.LineComment] = "The subnet from which the advertise URL should be."

	EtcdConfigDoc.Fields[3].AddExample("", clusterEtcdSubnetExample)

	ClusterNetworkConfigDoc.Type = "ClusterNetworkConfig"
	ClusterNetworkConfigDoc.Comments[encoder.LineComment] = "ClusterNetworkConfig represents kube networking configuration options."
	ClusterNetworkConfigDoc.Description = "ClusterNetworkConfig represents kube networking configuration options."

	ClusterNetworkConfigDoc.AddExample("Configuring with flannel CNI and setting up subnets.", clusterNetworkExample)
	ClusterNetworkConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "network",
		},
	}
	ClusterNetworkConfigDoc.Fields = make([]encoder.Doc, 4)
	ClusterNetworkConfigDoc.Fields[0].Name = "cni"
	ClusterNetworkConfigDoc.Fields[0].Type = "CNIConfig"
	ClusterNetworkConfigDoc.Fields[0].Note = ""
	ClusterNetworkConfigDoc.Fields[0].Description = "The CNI used.\nComposed of \"name\" and \"urls\".\nThe \"name\" key supports the following options: \"flannel\", \"custom\", and \"none\".\n\"flannel\" uses Talos-managed Flannel CNI, and that's the default option.\n\"custom\" uses custom manifests that should be provided in \"urls\".\n\"none\" indicates that Talos will not manage any CNI installation."
	ClusterNetworkConfigDoc.Fields[0].Comments[encoder.LineComment] = "The CNI used."

	ClusterNetworkConfigDoc.Fields[0].AddExample("", clusterCustomCNIExample)
	ClusterNetworkConfigDoc.Fields[1].Name = "dnsDomain"
	ClusterNetworkConfigDoc.Fields[1].Type = "string"
	ClusterNetworkConfigDoc.Fields[1].Note = ""
	ClusterNetworkConfigDoc.Fields[1].Description = "The domain used by Kubernetes DNS.\nThe default is `cluster.local`"
	ClusterNetworkConfigDoc.Fields[1].Comments[encoder.LineComment] = "The domain used by Kubernetes DNS."

	ClusterNetworkConfigDoc.Fields[1].AddExample("", "cluser.local")
	ClusterNetworkConfigDoc.Fields[2].Name = "podSubnets"
	ClusterNetworkConfigDoc.Fields[2].Type = "[]string"
	ClusterNetworkConfigDoc.Fields[2].Note = ""
	ClusterNetworkConfigDoc.Fields[2].Description = "The pod subnet CIDR."
	ClusterNetworkConfigDoc.Fields[2].Comments[encoder.LineComment] = "The pod subnet CIDR."

	ClusterNetworkConfigDoc.Fields[2].AddExample("", []string{"10.244.0.0/16"})
	ClusterNetworkConfigDoc.Fields[3].Name = "serviceSubnets"
	ClusterNetworkConfigDoc.Fields[3].Type = "[]string"
	ClusterNetworkConfigDoc.Fields[3].Note = ""
	ClusterNetworkConfigDoc.Fields[3].Description = "The service subnet CIDR."
	ClusterNetworkConfigDoc.Fields[3].Comments[encoder.LineComment] = "The service subnet CIDR."

	ClusterNetworkConfigDoc.Fields[3].AddExample("", []string{"10.96.0.0/12"})

	CNIConfigDoc.Type = "CNIConfig"
	CNIConfigDoc.Comments[encoder.LineComment] = "CNIConfig represents the CNI configuration options."
	CNIConfigDoc.Description = "CNIConfig represents the CNI configuration options."

	CNIConfigDoc.AddExample("", clusterCustomCNIExample)
	CNIConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterNetworkConfig",
			FieldName: "cni",
		},
	}
	CNIConfigDoc.Fields = make([]encoder.Doc, 2)
	CNIConfigDoc.Fields[0].Name = "name"
	CNIConfigDoc.Fields[0].Type = "string"
	CNIConfigDoc.Fields[0].Note = ""
	CNIConfigDoc.Fields[0].Description = "Name of CNI to use."
	CNIConfigDoc.Fields[0].Comments[encoder.LineComment] = "Name of CNI to use."
	CNIConfigDoc.Fields[0].Values = []string{
		"flannel",
		"custom",
		"none",
	}
	CNIConfigDoc.Fields[1].Name = "urls"
	CNIConfigDoc.Fields[1].Type = "[]string"
	CNIConfigDoc.Fields[1].Note = ""
	CNIConfigDoc.Fields[1].Description = "URLs containing manifests to apply for the CNI.\nShould be present for \"custom\", must be empty for \"flannel\" and \"none\"."
	CNIConfigDoc.Fields[1].Comments[encoder.LineComment] = "URLs containing manifests to apply for the CNI."

	ExternalCloudProviderConfigDoc.Type = "ExternalCloudProviderConfig"
	ExternalCloudProviderConfigDoc.Comments[encoder.LineComment] = "ExternalCloudProviderConfig contains external cloud provider configuration."
	ExternalCloudProviderConfigDoc.Description = "ExternalCloudProviderConfig contains external cloud provider configuration."

	ExternalCloudProviderConfigDoc.AddExample("", clusterExternalCloudProviderConfigExample)
	ExternalCloudProviderConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "externalCloudProvider",
		},
	}
	ExternalCloudProviderConfigDoc.Fields = make([]encoder.Doc, 2)
	ExternalCloudProviderConfigDoc.Fields[0].Name = "enabled"
	ExternalCloudProviderConfigDoc.Fields[0].Type = "bool"
	ExternalCloudProviderConfigDoc.Fields[0].Note = ""
	ExternalCloudProviderConfigDoc.Fields[0].Description = "Enable external cloud provider."
	ExternalCloudProviderConfigDoc.Fields[0].Comments[encoder.LineComment] = "Enable external cloud provider."
	ExternalCloudProviderConfigDoc.Fields[0].Values = []string{
		"true",
		"yes",
		"false",
		"no",
	}
	ExternalCloudProviderConfigDoc.Fields[1].Name = "manifests"
	ExternalCloudProviderConfigDoc.Fields[1].Type = "[]string"
	ExternalCloudProviderConfigDoc.Fields[1].Note = ""
	ExternalCloudProviderConfigDoc.Fields[1].Description = "A list of urls that point to additional manifests for an external cloud provider.\nThese will get automatically deployed as part of the bootstrap."
	ExternalCloudProviderConfigDoc.Fields[1].Comments[encoder.LineComment] = "A list of urls that point to additional manifests for an external cloud provider."

	ExternalCloudProviderConfigDoc.Fields[1].AddExample("", []string{
		"https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/rbac.yaml",
		"https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/aws-cloud-controller-manager-daemonset.yaml",
	})

	AdminKubeconfigConfigDoc.Type = "AdminKubeconfigConfig"
	AdminKubeconfigConfigDoc.Comments[encoder.LineComment] = "AdminKubeconfigConfig contains admin kubeconfig settings."
	AdminKubeconfigConfigDoc.Description = "AdminKubeconfigConfig contains admin kubeconfig settings."

	AdminKubeconfigConfigDoc.AddExample("", clusterAdminKubeconfigExample)
	AdminKubeconfigConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "adminKubeconfig",
		},
	}
	AdminKubeconfigConfigDoc.Fields = make([]encoder.Doc, 1)
	AdminKubeconfigConfigDoc.Fields[0].Name = "certLifetime"
	AdminKubeconfigConfigDoc.Fields[0].Type = "Duration"
	AdminKubeconfigConfigDoc.Fields[0].Note = ""
	AdminKubeconfigConfigDoc.Fields[0].Description = "Admin kubeconfig certificate lifetime (default is 1 year).\nField format accepts any Go time.Duration format ('1h' for one hour, '10m' for ten minutes)."
	AdminKubeconfigConfigDoc.Fields[0].Comments[encoder.LineComment] = "Admin kubeconfig certificate lifetime (default is 1 year)."

	MachineDiskDoc.Type = "MachineDisk"
	MachineDiskDoc.Comments[encoder.LineComment] = "MachineDisk represents the options available for partitioning, formatting, and"
	MachineDiskDoc.Description = "MachineDisk represents the options available for partitioning, formatting, and\nmounting extra disks.\n"

	MachineDiskDoc.AddExample("MachineDisks list example.", machineDisksExample)
	MachineDiskDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineConfig",
			FieldName: "disks",
		},
	}
	MachineDiskDoc.Fields = make([]encoder.Doc, 2)
	MachineDiskDoc.Fields[0].Name = "device"
	MachineDiskDoc.Fields[0].Type = "string"
	MachineDiskDoc.Fields[0].Note = ""
	MachineDiskDoc.Fields[0].Description = "The name of the disk to use."
	MachineDiskDoc.Fields[0].Comments[encoder.LineComment] = "The name of the disk to use."
	MachineDiskDoc.Fields[1].Name = "partitions"
	MachineDiskDoc.Fields[1].Type = "[]DiskPartition"
	MachineDiskDoc.Fields[1].Note = ""
	MachineDiskDoc.Fields[1].Description = "A list of partitions to create on the disk."
	MachineDiskDoc.Fields[1].Comments[encoder.LineComment] = "A list of partitions to create on the disk."

	DiskPartitionDoc.Type = "DiskPartition"
	DiskPartitionDoc.Comments[encoder.LineComment] = "DiskPartition represents the options for a disk partition."
	DiskPartitionDoc.Description = "DiskPartition represents the options for a disk partition."
	DiskPartitionDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineDisk",
			FieldName: "partitions",
		},
	}
	DiskPartitionDoc.Fields = make([]encoder.Doc, 2)
	DiskPartitionDoc.Fields[0].Name = "size"
	DiskPartitionDoc.Fields[0].Type = "DiskSize"
	DiskPartitionDoc.Fields[0].Note = ""
	DiskPartitionDoc.Fields[0].Description = "The size of partition: either bytes or human readable representation. If `size:` is omitted, the partition is sized to occupy the full disk."
	DiskPartitionDoc.Fields[0].Comments[encoder.LineComment] = "The size of partition: either bytes or human readable representation. If `size:` is omitted, the partition is sized to occupy the full disk."

	DiskPartitionDoc.Fields[0].AddExample("Human readable representation.", DiskSize(100000000))

	DiskPartitionDoc.Fields[0].AddExample("Precise value in bytes.", 1024*1024*1024)
	DiskPartitionDoc.Fields[1].Name = "mountpoint"
	DiskPartitionDoc.Fields[1].Type = "string"
	DiskPartitionDoc.Fields[1].Note = ""
	DiskPartitionDoc.Fields[1].Description = "Where to mount the partition."
	DiskPartitionDoc.Fields[1].Comments[encoder.LineComment] = "Where to mount the partition."

	EncryptionConfigDoc.Type = "EncryptionConfig"
	EncryptionConfigDoc.Comments[encoder.LineComment] = "EncryptionConfig represents partition encryption settings."
	EncryptionConfigDoc.Description = "EncryptionConfig represents partition encryption settings."
	EncryptionConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "SystemDiskEncryptionConfig",
			FieldName: "state",
		},
		{
			TypeName:  "SystemDiskEncryptionConfig",
			FieldName: "ephemeral",
		},
	}
	EncryptionConfigDoc.Fields = make([]encoder.Doc, 6)
	EncryptionConfigDoc.Fields[0].Name = "provider"
	EncryptionConfigDoc.Fields[0].Type = "string"
	EncryptionConfigDoc.Fields[0].Note = ""
	EncryptionConfigDoc.Fields[0].Description = "Encryption provider to use for the encryption."
	EncryptionConfigDoc.Fields[0].Comments[encoder.LineComment] = "Encryption provider to use for the encryption."

	EncryptionConfigDoc.Fields[0].AddExample("", "luks2")
	EncryptionConfigDoc.Fields[1].Name = "keys"
	EncryptionConfigDoc.Fields[1].Type = "[]EncryptionKey"
	EncryptionConfigDoc.Fields[1].Note = ""
	EncryptionConfigDoc.Fields[1].Description = "Defines the encryption keys generation and storage method."
	EncryptionConfigDoc.Fields[1].Comments[encoder.LineComment] = "Defines the encryption keys generation and storage method."
	EncryptionConfigDoc.Fields[2].Name = "cipher"
	EncryptionConfigDoc.Fields[2].Type = "string"
	EncryptionConfigDoc.Fields[2].Note = ""
	EncryptionConfigDoc.Fields[2].Description = "Cipher kind to use for the encryption. Depends on the encryption provider."
	EncryptionConfigDoc.Fields[2].Comments[encoder.LineComment] = "Cipher kind to use for the encryption. Depends on the encryption provider."

	EncryptionConfigDoc.Fields[2].AddExample("", "aes-xts-plain64")
	EncryptionConfigDoc.Fields[2].Values = []string{
		"aes-xts-plain64",
		"xchacha12,aes-adiantum-plain64",
		"xchacha20,aes-adiantum-plain64",
	}
	EncryptionConfigDoc.Fields[3].Name = "keySize"
	EncryptionConfigDoc.Fields[3].Type = "uint"
	EncryptionConfigDoc.Fields[3].Note = ""
	EncryptionConfigDoc.Fields[3].Description = "Defines the encryption key length."
	EncryptionConfigDoc.Fields[3].Comments[encoder.LineComment] = "Defines the encryption key length."
	EncryptionConfigDoc.Fields[4].Name = "blockSize"
	EncryptionConfigDoc.Fields[4].Type = "uint64"
	EncryptionConfigDoc.Fields[4].Note = ""
	EncryptionConfigDoc.Fields[4].Description = "Defines the encryption sector size."
	EncryptionConfigDoc.Fields[4].Comments[encoder.LineComment] = "Defines the encryption sector size."

	EncryptionConfigDoc.Fields[4].AddExample("", 4096)
	EncryptionConfigDoc.Fields[5].Name = "options"
	EncryptionConfigDoc.Fields[5].Type = "[]string"
	EncryptionConfigDoc.Fields[5].Note = ""
	EncryptionConfigDoc.Fields[5].Description = "Additional --perf parameters for the LUKS2 encryption."
	EncryptionConfigDoc.Fields[5].Comments[encoder.LineComment] = "Additional --perf parameters for the LUKS2 encryption."

	EncryptionConfigDoc.Fields[5].AddExample("", []string{"no_read_workqueue", "no_write_workqueue"})
	EncryptionConfigDoc.Fields[5].Values = []string{
		"no_read_workqueue",
		"no_write_workqueue",
		"same_cpu_crypt",
	}

	EncryptionKeyDoc.Type = "EncryptionKey"
	EncryptionKeyDoc.Comments[encoder.LineComment] = "EncryptionKey represents configuration for disk encryption key."
	EncryptionKeyDoc.Description = "EncryptionKey represents configuration for disk encryption key."
	EncryptionKeyDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "EncryptionConfig",
			FieldName: "keys",
		},
	}
	EncryptionKeyDoc.Fields = make([]encoder.Doc, 3)
	EncryptionKeyDoc.Fields[0].Name = "static"
	EncryptionKeyDoc.Fields[0].Type = "EncryptionKeyStatic"
	EncryptionKeyDoc.Fields[0].Note = ""
	EncryptionKeyDoc.Fields[0].Description = "Key which value is stored in the configuration file."
	EncryptionKeyDoc.Fields[0].Comments[encoder.LineComment] = "Key which value is stored in the configuration file."
	EncryptionKeyDoc.Fields[1].Name = "nodeID"
	EncryptionKeyDoc.Fields[1].Type = "EncryptionKeyNodeID"
	EncryptionKeyDoc.Fields[1].Note = ""
	EncryptionKeyDoc.Fields[1].Description = "Deterministically generated key from the node UUID and PartitionLabel."
	EncryptionKeyDoc.Fields[1].Comments[encoder.LineComment] = "Deterministically generated key from the node UUID and PartitionLabel."
	EncryptionKeyDoc.Fields[2].Name = "slot"
	EncryptionKeyDoc.Fields[2].Type = "int"
	EncryptionKeyDoc.Fields[2].Note = ""
	EncryptionKeyDoc.Fields[2].Description = "Key slot number for LUKS2 encryption."
	EncryptionKeyDoc.Fields[2].Comments[encoder.LineComment] = "Key slot number for LUKS2 encryption."

	EncryptionKeyStaticDoc.Type = "EncryptionKeyStatic"
	EncryptionKeyStaticDoc.Comments[encoder.LineComment] = "EncryptionKeyStatic represents throw away key type."
	EncryptionKeyStaticDoc.Description = "EncryptionKeyStatic represents throw away key type."
	EncryptionKeyStaticDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "EncryptionKey",
			FieldName: "static",
		},
	}
	EncryptionKeyStaticDoc.Fields = make([]encoder.Doc, 1)
	EncryptionKeyStaticDoc.Fields[0].Name = "passphrase"
	EncryptionKeyStaticDoc.Fields[0].Type = "string"
	EncryptionKeyStaticDoc.Fields[0].Note = ""
	EncryptionKeyStaticDoc.Fields[0].Description = "Defines the static passphrase value."
	EncryptionKeyStaticDoc.Fields[0].Comments[encoder.LineComment] = "Defines the static passphrase value."

	EncryptionKeyNodeIDDoc.Type = "EncryptionKeyNodeID"
	EncryptionKeyNodeIDDoc.Comments[encoder.LineComment] = "EncryptionKeyNodeID represents deterministically generated key from the node UUID and PartitionLabel."
	EncryptionKeyNodeIDDoc.Description = "EncryptionKeyNodeID represents deterministically generated key from the node UUID and PartitionLabel."
	EncryptionKeyNodeIDDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "EncryptionKey",
			FieldName: "nodeID",
		},
	}
	EncryptionKeyNodeIDDoc.Fields = make([]encoder.Doc, 0)

	MachineFileDoc.Type = "MachineFile"
	MachineFileDoc.Comments[encoder.LineComment] = "MachineFile represents a file to write to disk."
	MachineFileDoc.Description = "MachineFile represents a file to write to disk."

	MachineFileDoc.AddExample("MachineFiles usage example.", machineFilesExample)
	MachineFileDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineConfig",
			FieldName: "files",
		},
	}
	MachineFileDoc.Fields = make([]encoder.Doc, 4)
	MachineFileDoc.Fields[0].Name = "content"
	MachineFileDoc.Fields[0].Type = "string"
	MachineFileDoc.Fields[0].Note = ""
	MachineFileDoc.Fields[0].Description = "The contents of the file."
	MachineFileDoc.Fields[0].Comments[encoder.LineComment] = "The contents of the file."
	MachineFileDoc.Fields[1].Name = "permissions"
	MachineFileDoc.Fields[1].Type = "FileMode"
	MachineFileDoc.Fields[1].Note = ""
	MachineFileDoc.Fields[1].Description = "The file's permissions in octal."
	MachineFileDoc.Fields[1].Comments[encoder.LineComment] = "The file's permissions in octal."
	MachineFileDoc.Fields[2].Name = "path"
	MachineFileDoc.Fields[2].Type = "string"
	MachineFileDoc.Fields[2].Note = ""
	MachineFileDoc.Fields[2].Description = "The path of the file."
	MachineFileDoc.Fields[2].Comments[encoder.LineComment] = "The path of the file."
	MachineFileDoc.Fields[3].Name = "op"
	MachineFileDoc.Fields[3].Type = "string"
	MachineFileDoc.Fields[3].Note = ""
	MachineFileDoc.Fields[3].Description = "The operation to use"
	MachineFileDoc.Fields[3].Comments[encoder.LineComment] = "The operation to use"
	MachineFileDoc.Fields[3].Values = []string{
		"create",
		"append",
		"overwrite",
	}

	ExtraHostDoc.Type = "ExtraHost"
	ExtraHostDoc.Comments[encoder.LineComment] = "ExtraHost represents a host entry in /etc/hosts."
	ExtraHostDoc.Description = "ExtraHost represents a host entry in /etc/hosts."

	ExtraHostDoc.AddExample("", networkConfigExtraHostsExample)
	ExtraHostDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "NetworkConfig",
			FieldName: "extraHostEntries",
		},
	}
	ExtraHostDoc.Fields = make([]encoder.Doc, 2)
	ExtraHostDoc.Fields[0].Name = "ip"
	ExtraHostDoc.Fields[0].Type = "string"
	ExtraHostDoc.Fields[0].Note = ""
	ExtraHostDoc.Fields[0].Description = "The IP of the host."
	ExtraHostDoc.Fields[0].Comments[encoder.LineComment] = "The IP of the host."
	ExtraHostDoc.Fields[1].Name = "aliases"
	ExtraHostDoc.Fields[1].Type = "[]string"
	ExtraHostDoc.Fields[1].Note = ""
	ExtraHostDoc.Fields[1].Description = "The host alias."
	ExtraHostDoc.Fields[1].Comments[encoder.LineComment] = "The host alias."

	DeviceDoc.Type = "Device"
	DeviceDoc.Comments[encoder.LineComment] = "Device represents a network interface."
	DeviceDoc.Description = "Device represents a network interface."

	DeviceDoc.AddExample("", machineNetworkConfigExample.NetworkInterfaces)
	DeviceDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "NetworkConfig",
			FieldName: "interfaces",
		},
	}
	DeviceDoc.Fields = make([]encoder.Doc, 13)
	DeviceDoc.Fields[0].Name = "interface"
	DeviceDoc.Fields[0].Type = "string"
	DeviceDoc.Fields[0].Note = ""
	DeviceDoc.Fields[0].Description = "The interface name."
	DeviceDoc.Fields[0].Comments[encoder.LineComment] = "The interface name."

	DeviceDoc.Fields[0].AddExample("", "eth0")
	DeviceDoc.Fields[1].Name = "addresses"
	DeviceDoc.Fields[1].Type = "[]string"
	DeviceDoc.Fields[1].Note = ""
	DeviceDoc.Fields[1].Description = "Assigns static IP addresses to the interface.\nAn address can be specified either in proper CIDR notation or as a standalone address (netmask of all ones is assumed)."
	DeviceDoc.Fields[1].Comments[encoder.LineComment] = "Assigns static IP addresses to the interface."

	DeviceDoc.Fields[1].AddExample("", []string{"10.5.0.0/16", "192.168.3.7"})
	DeviceDoc.Fields[3].Name = "routes"
	DeviceDoc.Fields[3].Type = "[]Route"
	DeviceDoc.Fields[3].Note = ""
	DeviceDoc.Fields[3].Description = "A list of routes associated with the interface.\nIf used in combination with DHCP, these routes will be appended to routes returned by DHCP server."
	DeviceDoc.Fields[3].Comments[encoder.LineComment] = "A list of routes associated with the interface."

	DeviceDoc.Fields[3].AddExample("", networkConfigRoutesExample)
	DeviceDoc.Fields[4].Name = "bond"
	DeviceDoc.Fields[4].Type = "Bond"
	DeviceDoc.Fields[4].Note = ""
	DeviceDoc.Fields[4].Description = "Bond specific options."
	DeviceDoc.Fields[4].Comments[encoder.LineComment] = "Bond specific options."

	DeviceDoc.Fields[4].AddExample("", networkConfigBondExample)
	DeviceDoc.Fields[5].Name = "vlans"
	DeviceDoc.Fields[5].Type = "[]Vlan"
	DeviceDoc.Fields[5].Note = ""
	DeviceDoc.Fields[5].Description = "VLAN specific options."
	DeviceDoc.Fields[5].Comments[encoder.LineComment] = "VLAN specific options."
	DeviceDoc.Fields[6].Name = "mtu"
	DeviceDoc.Fields[6].Type = "int"
	DeviceDoc.Fields[6].Note = ""
	DeviceDoc.Fields[6].Description = "The interface's MTU.\nIf used in combination with DHCP, this will override any MTU settings returned from DHCP server."
	DeviceDoc.Fields[6].Comments[encoder.LineComment] = "The interface's MTU."
	DeviceDoc.Fields[7].Name = "dhcp"
	DeviceDoc.Fields[7].Type = "bool"
	DeviceDoc.Fields[7].Note = ""
	DeviceDoc.Fields[7].Description = "Indicates if DHCP should be used to configure the interface.\nThe following DHCP options are supported:\n\n- `OptionClasslessStaticRoute`\n- `OptionDomainNameServer`\n- `OptionDNSDomainSearchList`\n- `OptionHostName`"
	DeviceDoc.Fields[7].Comments[encoder.LineComment] = "Indicates if DHCP should be used to configure the interface."

	DeviceDoc.Fields[7].AddExample("", true)
	DeviceDoc.Fields[8].Name = "ignore"
	DeviceDoc.Fields[8].Type = "bool"
	DeviceDoc.Fields[8].Note = ""
	DeviceDoc.Fields[8].Description = "Indicates if the interface should be ignored (skips configuration)."
	DeviceDoc.Fields[8].Comments[encoder.LineComment] = "Indicates if the interface should be ignored (skips configuration)."
	DeviceDoc.Fields[9].Name = "dummy"
	DeviceDoc.Fields[9].Type = "bool"
	DeviceDoc.Fields[9].Note = ""
	DeviceDoc.Fields[9].Description = "Indicates if the interface is a dummy interface.\n`dummy` is used to specify that this interface should be a virtual-only, dummy interface."
	DeviceDoc.Fields[9].Comments[encoder.LineComment] = "Indicates if the interface is a dummy interface."
	DeviceDoc.Fields[10].Name = "dhcpOptions"
	DeviceDoc.Fields[10].Type = "DHCPOptions"
	DeviceDoc.Fields[10].Note = ""
	DeviceDoc.Fields[10].Description = "DHCP specific options.\n`dhcp` *must* be set to true for these to take effect."
	DeviceDoc.Fields[10].Comments[encoder.LineComment] = "DHCP specific options."

	DeviceDoc.Fields[10].AddExample("", networkConfigDHCPOptionsExample)
	DeviceDoc.Fields[11].Name = "wireguard"
	DeviceDoc.Fields[11].Type = "DeviceWireguardConfig"
	DeviceDoc.Fields[11].Note = ""
	DeviceDoc.Fields[11].Description = "Wireguard specific configuration.\nIncludes things like private key, listen port, peers."
	DeviceDoc.Fields[11].Comments[encoder.LineComment] = "Wireguard specific configuration."

	DeviceDoc.Fields[11].AddExample("wireguard server example", networkConfigWireguardHostExample)

	DeviceDoc.Fields[11].AddExample("wireguard peer example", networkConfigWireguardPeerExample)
	DeviceDoc.Fields[12].Name = "vip"
	DeviceDoc.Fields[12].Type = "DeviceVIPConfig"
	DeviceDoc.Fields[12].Note = ""
	DeviceDoc.Fields[12].Description = "Virtual (shared) IP address configuration."
	DeviceDoc.Fields[12].Comments[encoder.LineComment] = "Virtual (shared) IP address configuration."

	DeviceDoc.Fields[12].AddExample("", networkConfigVIPLayer2Example)

	DHCPOptionsDoc.Type = "DHCPOptions"
	DHCPOptionsDoc.Comments[encoder.LineComment] = "DHCPOptions contains options for configuring the DHCP settings for a given interface."
	DHCPOptionsDoc.Description = "DHCPOptions contains options for configuring the DHCP settings for a given interface."

	DHCPOptionsDoc.AddExample("", networkConfigDHCPOptionsExample)
	DHCPOptionsDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "Device",
			FieldName: "dhcpOptions",
		},
	}
	DHCPOptionsDoc.Fields = make([]encoder.Doc, 3)
	DHCPOptionsDoc.Fields[0].Name = "routeMetric"
	DHCPOptionsDoc.Fields[0].Type = "uint32"
	DHCPOptionsDoc.Fields[0].Note = ""
	DHCPOptionsDoc.Fields[0].Description = "The priority of all routes received via DHCP."
	DHCPOptionsDoc.Fields[0].Comments[encoder.LineComment] = "The priority of all routes received via DHCP."
	DHCPOptionsDoc.Fields[1].Name = "ipv4"
	DHCPOptionsDoc.Fields[1].Type = "bool"
	DHCPOptionsDoc.Fields[1].Note = ""
	DHCPOptionsDoc.Fields[1].Description = "Enables DHCPv4 protocol for the interface (default is enabled)."
	DHCPOptionsDoc.Fields[1].Comments[encoder.LineComment] = "Enables DHCPv4 protocol for the interface (default is enabled)."
	DHCPOptionsDoc.Fields[2].Name = "ipv6"
	DHCPOptionsDoc.Fields[2].Type = "bool"
	DHCPOptionsDoc.Fields[2].Note = ""
	DHCPOptionsDoc.Fields[2].Description = "Enables DHCPv6 protocol for the interface (default is disabled)."
	DHCPOptionsDoc.Fields[2].Comments[encoder.LineComment] = "Enables DHCPv6 protocol for the interface (default is disabled)."

	DeviceWireguardConfigDoc.Type = "DeviceWireguardConfig"
	DeviceWireguardConfigDoc.Comments[encoder.LineComment] = "DeviceWireguardConfig contains settings for configuring Wireguard network interface."
	DeviceWireguardConfigDoc.Description = "DeviceWireguardConfig contains settings for configuring Wireguard network interface."

	DeviceWireguardConfigDoc.AddExample("wireguard server example", networkConfigWireguardHostExample)

	DeviceWireguardConfigDoc.AddExample("wireguard peer example", networkConfigWireguardPeerExample)
	DeviceWireguardConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "Device",
			FieldName: "wireguard",
		},
	}
	DeviceWireguardConfigDoc.Fields = make([]encoder.Doc, 4)
	DeviceWireguardConfigDoc.Fields[0].Name = "privateKey"
	DeviceWireguardConfigDoc.Fields[0].Type = "string"
	DeviceWireguardConfigDoc.Fields[0].Note = ""
	DeviceWireguardConfigDoc.Fields[0].Description = "Specifies a private key configuration (base64 encoded).\nCan be generated by `wg genkey`."
	DeviceWireguardConfigDoc.Fields[0].Comments[encoder.LineComment] = "Specifies a private key configuration (base64 encoded)."
	DeviceWireguardConfigDoc.Fields[1].Name = "listenPort"
	DeviceWireguardConfigDoc.Fields[1].Type = "int"
	DeviceWireguardConfigDoc.Fields[1].Note = ""
	DeviceWireguardConfigDoc.Fields[1].Description = "Specifies a device's listening port."
	DeviceWireguardConfigDoc.Fields[1].Comments[encoder.LineComment] = "Specifies a device's listening port."
	DeviceWireguardConfigDoc.Fields[2].Name = "firewallMark"
	DeviceWireguardConfigDoc.Fields[2].Type = "int"
	DeviceWireguardConfigDoc.Fields[2].Note = ""
	DeviceWireguardConfigDoc.Fields[2].Description = "Specifies a device's firewall mark."
	DeviceWireguardConfigDoc.Fields[2].Comments[encoder.LineComment] = "Specifies a device's firewall mark."
	DeviceWireguardConfigDoc.Fields[3].Name = "peers"
	DeviceWireguardConfigDoc.Fields[3].Type = "[]DeviceWireguardPeer"
	DeviceWireguardConfigDoc.Fields[3].Note = ""
	DeviceWireguardConfigDoc.Fields[3].Description = "Specifies a list of peer configurations to apply to a device."
	DeviceWireguardConfigDoc.Fields[3].Comments[encoder.LineComment] = "Specifies a list of peer configurations to apply to a device."

	DeviceWireguardPeerDoc.Type = "DeviceWireguardPeer"
	DeviceWireguardPeerDoc.Comments[encoder.LineComment] = "DeviceWireguardPeer a WireGuard device peer configuration."
	DeviceWireguardPeerDoc.Description = "DeviceWireguardPeer a WireGuard device peer configuration."
	DeviceWireguardPeerDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "DeviceWireguardConfig",
			FieldName: "peers",
		},
	}
	DeviceWireguardPeerDoc.Fields = make([]encoder.Doc, 4)
	DeviceWireguardPeerDoc.Fields[0].Name = "publicKey"
	DeviceWireguardPeerDoc.Fields[0].Type = "string"
	DeviceWireguardPeerDoc.Fields[0].Note = ""
	DeviceWireguardPeerDoc.Fields[0].Description = "Specifies the public key of this peer.\nCan be extracted from private key by running `wg pubkey < private.key > public.key && cat public.key`."
	DeviceWireguardPeerDoc.Fields[0].Comments[encoder.LineComment] = "Specifies the public key of this peer."
	DeviceWireguardPeerDoc.Fields[1].Name = "endpoint"
	DeviceWireguardPeerDoc.Fields[1].Type = "string"
	DeviceWireguardPeerDoc.Fields[1].Note = ""
	DeviceWireguardPeerDoc.Fields[1].Description = "Specifies the endpoint of this peer entry."
	DeviceWireguardPeerDoc.Fields[1].Comments[encoder.LineComment] = "Specifies the endpoint of this peer entry."
	DeviceWireguardPeerDoc.Fields[2].Name = "persistentKeepaliveInterval"
	DeviceWireguardPeerDoc.Fields[2].Type = "Duration"
	DeviceWireguardPeerDoc.Fields[2].Note = ""
	DeviceWireguardPeerDoc.Fields[2].Description = "Specifies the persistent keepalive interval for this peer.\nField format accepts any Go time.Duration format ('1h' for one hour, '10m' for ten minutes)."
	DeviceWireguardPeerDoc.Fields[2].Comments[encoder.LineComment] = "Specifies the persistent keepalive interval for this peer."
	DeviceWireguardPeerDoc.Fields[3].Name = "allowedIPs"
	DeviceWireguardPeerDoc.Fields[3].Type = "[]string"
	DeviceWireguardPeerDoc.Fields[3].Note = ""
	DeviceWireguardPeerDoc.Fields[3].Description = "AllowedIPs specifies a list of allowed IP addresses in CIDR notation for this peer."
	DeviceWireguardPeerDoc.Fields[3].Comments[encoder.LineComment] = "AllowedIPs specifies a list of allowed IP addresses in CIDR notation for this peer."

	DeviceVIPConfigDoc.Type = "DeviceVIPConfig"
	DeviceVIPConfigDoc.Comments[encoder.LineComment] = "DeviceVIPConfig contains settings for configuring a Virtual Shared IP on an interface."
	DeviceVIPConfigDoc.Description = "DeviceVIPConfig contains settings for configuring a Virtual Shared IP on an interface."

	DeviceVIPConfigDoc.AddExample("", networkConfigVIPLayer2Example)
	DeviceVIPConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "Device",
			FieldName: "vip",
		},
	}
	DeviceVIPConfigDoc.Fields = make([]encoder.Doc, 3)
	DeviceVIPConfigDoc.Fields[0].Name = "ip"
	DeviceVIPConfigDoc.Fields[0].Type = "string"
	DeviceVIPConfigDoc.Fields[0].Note = ""
	DeviceVIPConfigDoc.Fields[0].Description = "Specifies the IP address to be used."
	DeviceVIPConfigDoc.Fields[0].Comments[encoder.LineComment] = "Specifies the IP address to be used."
	DeviceVIPConfigDoc.Fields[1].Name = "equinixMetal"
	DeviceVIPConfigDoc.Fields[1].Type = "VIPEquinixMetalConfig"
	DeviceVIPConfigDoc.Fields[1].Note = ""
	DeviceVIPConfigDoc.Fields[1].Description = "Specifies the Equinix Metal API settings to assign VIP to the node."
	DeviceVIPConfigDoc.Fields[1].Comments[encoder.LineComment] = "Specifies the Equinix Metal API settings to assign VIP to the node."
	DeviceVIPConfigDoc.Fields[2].Name = "hcloud"
	DeviceVIPConfigDoc.Fields[2].Type = "VIPHCloudConfig"
	DeviceVIPConfigDoc.Fields[2].Note = ""
	DeviceVIPConfigDoc.Fields[2].Description = "Specifies the Hetzner Cloud API settings to assign VIP to the node."
	DeviceVIPConfigDoc.Fields[2].Comments[encoder.LineComment] = "Specifies the Hetzner Cloud API settings to assign VIP to the node."

	VIPEquinixMetalConfigDoc.Type = "VIPEquinixMetalConfig"
	VIPEquinixMetalConfigDoc.Comments[encoder.LineComment] = "VIPEquinixMetalConfig contains settings for Equinix Metal VIP management."
	VIPEquinixMetalConfigDoc.Description = "VIPEquinixMetalConfig contains settings for Equinix Metal VIP management."
	VIPEquinixMetalConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "DeviceVIPConfig",
			FieldName: "equinixMetal",
		},
	}
	VIPEquinixMetalConfigDoc.Fields = make([]encoder.Doc, 1)
	VIPEquinixMetalConfigDoc.Fields[0].Name = "apiToken"
	VIPEquinixMetalConfigDoc.Fields[0].Type = "string"
	VIPEquinixMetalConfigDoc.Fields[0].Note = ""
	VIPEquinixMetalConfigDoc.Fields[0].Description = "Specifies the Equinix Metal API Token."
	VIPEquinixMetalConfigDoc.Fields[0].Comments[encoder.LineComment] = "Specifies the Equinix Metal API Token."

	VIPHCloudConfigDoc.Type = "VIPHCloudConfig"
	VIPHCloudConfigDoc.Comments[encoder.LineComment] = "VIPHCloudConfig contains settings for Hetzner Cloud VIP management."
	VIPHCloudConfigDoc.Description = "VIPHCloudConfig contains settings for Hetzner Cloud VIP management."
	VIPHCloudConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "DeviceVIPConfig",
			FieldName: "hcloud",
		},
	}
	VIPHCloudConfigDoc.Fields = make([]encoder.Doc, 1)
	VIPHCloudConfigDoc.Fields[0].Name = "apiToken"
	VIPHCloudConfigDoc.Fields[0].Type = "string"
	VIPHCloudConfigDoc.Fields[0].Note = ""
	VIPHCloudConfigDoc.Fields[0].Description = "Specifies the Hetzner Cloud API Token."
	VIPHCloudConfigDoc.Fields[0].Comments[encoder.LineComment] = "Specifies the Hetzner Cloud API Token."

	BondDoc.Type = "Bond"
	BondDoc.Comments[encoder.LineComment] = "Bond contains the various options for configuring a bonded interface."
	BondDoc.Description = "Bond contains the various options for configuring a bonded interface."

	BondDoc.AddExample("", networkConfigBondExample)
	BondDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "Device",
			FieldName: "bond",
		},
	}
	BondDoc.Fields = make([]encoder.Doc, 27)
	BondDoc.Fields[0].Name = "interfaces"
	BondDoc.Fields[0].Type = "[]string"
	BondDoc.Fields[0].Note = ""
	BondDoc.Fields[0].Description = "The interfaces that make up the bond."
	BondDoc.Fields[0].Comments[encoder.LineComment] = "The interfaces that make up the bond."
	BondDoc.Fields[1].Name = "arpIPTarget"
	BondDoc.Fields[1].Type = "[]string"
	BondDoc.Fields[1].Note = ""
	BondDoc.Fields[1].Description = "A bond option.\nPlease see the official kernel documentation.\nNot supported at the moment."
	BondDoc.Fields[1].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[2].Name = "mode"
	BondDoc.Fields[2].Type = "string"
	BondDoc.Fields[2].Note = ""
	BondDoc.Fields[2].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[2].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[3].Name = "xmitHashPolicy"
	BondDoc.Fields[3].Type = "string"
	BondDoc.Fields[3].Note = ""
	BondDoc.Fields[3].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[3].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[4].Name = "lacpRate"
	BondDoc.Fields[4].Type = "string"
	BondDoc.Fields[4].Note = ""
	BondDoc.Fields[4].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[4].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[5].Name = "adActorSystem"
	BondDoc.Fields[5].Type = "string"
	BondDoc.Fields[5].Note = ""
	BondDoc.Fields[5].Description = "A bond option.\nPlease see the official kernel documentation.\nNot supported at the moment."
	BondDoc.Fields[5].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[6].Name = "arpValidate"
	BondDoc.Fields[6].Type = "string"
	BondDoc.Fields[6].Note = ""
	BondDoc.Fields[6].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[6].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[7].Name = "arpAllTargets"
	BondDoc.Fields[7].Type = "string"
	BondDoc.Fields[7].Note = ""
	BondDoc.Fields[7].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[7].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[8].Name = "primary"
	BondDoc.Fields[8].Type = "string"
	BondDoc.Fields[8].Note = ""
	BondDoc.Fields[8].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[8].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[9].Name = "primaryReselect"
	BondDoc.Fields[9].Type = "string"
	BondDoc.Fields[9].Note = ""
	BondDoc.Fields[9].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[9].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[10].Name = "failOverMac"
	BondDoc.Fields[10].Type = "string"
	BondDoc.Fields[10].Note = ""
	BondDoc.Fields[10].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[10].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[11].Name = "adSelect"
	BondDoc.Fields[11].Type = "string"
	BondDoc.Fields[11].Note = ""
	BondDoc.Fields[11].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[11].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[12].Name = "miimon"
	BondDoc.Fields[12].Type = "uint32"
	BondDoc.Fields[12].Note = ""
	BondDoc.Fields[12].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[12].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[13].Name = "updelay"
	BondDoc.Fields[13].Type = "uint32"
	BondDoc.Fields[13].Note = ""
	BondDoc.Fields[13].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[13].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[14].Name = "downdelay"
	BondDoc.Fields[14].Type = "uint32"
	BondDoc.Fields[14].Note = ""
	BondDoc.Fields[14].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[14].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[15].Name = "arpInterval"
	BondDoc.Fields[15].Type = "uint32"
	BondDoc.Fields[15].Note = ""
	BondDoc.Fields[15].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[15].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[16].Name = "resendIgmp"
	BondDoc.Fields[16].Type = "uint32"
	BondDoc.Fields[16].Note = ""
	BondDoc.Fields[16].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[16].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[17].Name = "minLinks"
	BondDoc.Fields[17].Type = "uint32"
	BondDoc.Fields[17].Note = ""
	BondDoc.Fields[17].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[17].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[18].Name = "lpInterval"
	BondDoc.Fields[18].Type = "uint32"
	BondDoc.Fields[18].Note = ""
	BondDoc.Fields[18].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[18].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[19].Name = "packetsPerSlave"
	BondDoc.Fields[19].Type = "uint32"
	BondDoc.Fields[19].Note = ""
	BondDoc.Fields[19].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[19].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[20].Name = "numPeerNotif"
	BondDoc.Fields[20].Type = "uint8"
	BondDoc.Fields[20].Note = ""
	BondDoc.Fields[20].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[20].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[21].Name = "tlbDynamicLb"
	BondDoc.Fields[21].Type = "uint8"
	BondDoc.Fields[21].Note = ""
	BondDoc.Fields[21].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[21].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[22].Name = "allSlavesActive"
	BondDoc.Fields[22].Type = "uint8"
	BondDoc.Fields[22].Note = ""
	BondDoc.Fields[22].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[22].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[23].Name = "useCarrier"
	BondDoc.Fields[23].Type = "bool"
	BondDoc.Fields[23].Note = ""
	BondDoc.Fields[23].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[23].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[24].Name = "adActorSysPrio"
	BondDoc.Fields[24].Type = "uint16"
	BondDoc.Fields[24].Note = ""
	BondDoc.Fields[24].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[24].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[25].Name = "adUserPortKey"
	BondDoc.Fields[25].Type = "uint16"
	BondDoc.Fields[25].Note = ""
	BondDoc.Fields[25].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[25].Comments[encoder.LineComment] = "A bond option."
	BondDoc.Fields[26].Name = "peerNotifyDelay"
	BondDoc.Fields[26].Type = "uint32"
	BondDoc.Fields[26].Note = ""
	BondDoc.Fields[26].Description = "A bond option.\nPlease see the official kernel documentation."
	BondDoc.Fields[26].Comments[encoder.LineComment] = "A bond option."

	VlanDoc.Type = "Vlan"
	VlanDoc.Comments[encoder.LineComment] = "Vlan represents vlan settings for a device."
	VlanDoc.Description = "Vlan represents vlan settings for a device."
	VlanDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "Device",
			FieldName: "vlans",
		},
	}
	VlanDoc.Fields = make([]encoder.Doc, 5)
	VlanDoc.Fields[0].Name = "addresses"
	VlanDoc.Fields[0].Type = "[]string"
	VlanDoc.Fields[0].Note = ""
	VlanDoc.Fields[0].Description = "The addresses in CIDR notation or as plain IPs to use."
	VlanDoc.Fields[0].Comments[encoder.LineComment] = "The addresses in CIDR notation or as plain IPs to use."
	VlanDoc.Fields[2].Name = "routes"
	VlanDoc.Fields[2].Type = "[]Route"
	VlanDoc.Fields[2].Note = ""
	VlanDoc.Fields[2].Description = "A list of routes associated with the VLAN."
	VlanDoc.Fields[2].Comments[encoder.LineComment] = "A list of routes associated with the VLAN."
	VlanDoc.Fields[3].Name = "dhcp"
	VlanDoc.Fields[3].Type = "bool"
	VlanDoc.Fields[3].Note = ""
	VlanDoc.Fields[3].Description = "Indicates if DHCP should be used."
	VlanDoc.Fields[3].Comments[encoder.LineComment] = "Indicates if DHCP should be used."
	VlanDoc.Fields[4].Name = "vlanId"
	VlanDoc.Fields[4].Type = "uint16"
	VlanDoc.Fields[4].Note = ""
	VlanDoc.Fields[4].Description = "The VLAN's ID."
	VlanDoc.Fields[4].Comments[encoder.LineComment] = "The VLAN's ID."

	RouteDoc.Type = "Route"
	RouteDoc.Comments[encoder.LineComment] = "Route represents a network route."
	RouteDoc.Description = "Route represents a network route."

	RouteDoc.AddExample("", networkConfigRoutesExample)
	RouteDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "Device",
			FieldName: "routes",
		},
		{
			TypeName:  "Vlan",
			FieldName: "routes",
		},
	}
	RouteDoc.Fields = make([]encoder.Doc, 4)
	RouteDoc.Fields[0].Name = "network"
	RouteDoc.Fields[0].Type = "string"
	RouteDoc.Fields[0].Note = ""
	RouteDoc.Fields[0].Description = "The route's network."
	RouteDoc.Fields[0].Comments[encoder.LineComment] = "The route's network."
	RouteDoc.Fields[1].Name = "gateway"
	RouteDoc.Fields[1].Type = "string"
	RouteDoc.Fields[1].Note = ""
	RouteDoc.Fields[1].Description = "The route's gateway."
	RouteDoc.Fields[1].Comments[encoder.LineComment] = "The route's gateway."
	RouteDoc.Fields[2].Name = "source"
	RouteDoc.Fields[2].Type = "string"
	RouteDoc.Fields[2].Note = ""
	RouteDoc.Fields[2].Description = "The route's source address (optional)."
	RouteDoc.Fields[2].Comments[encoder.LineComment] = "The route's source address (optional)."
	RouteDoc.Fields[3].Name = "metric"
	RouteDoc.Fields[3].Type = "uint32"
	RouteDoc.Fields[3].Note = ""
	RouteDoc.Fields[3].Description = "The optional metric for the route."
	RouteDoc.Fields[3].Comments[encoder.LineComment] = "The optional metric for the route."

	RegistryMirrorConfigDoc.Type = "RegistryMirrorConfig"
	RegistryMirrorConfigDoc.Comments[encoder.LineComment] = "RegistryMirrorConfig represents mirror configuration for a registry."
	RegistryMirrorConfigDoc.Description = "RegistryMirrorConfig represents mirror configuration for a registry."

	RegistryMirrorConfigDoc.AddExample("", machineConfigRegistryMirrorsExample)
	RegistryMirrorConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "RegistriesConfig",
			FieldName: "mirrors",
		},
	}
	RegistryMirrorConfigDoc.Fields = make([]encoder.Doc, 1)
	RegistryMirrorConfigDoc.Fields[0].Name = "endpoints"
	RegistryMirrorConfigDoc.Fields[0].Type = "[]string"
	RegistryMirrorConfigDoc.Fields[0].Note = ""
	RegistryMirrorConfigDoc.Fields[0].Description = "List of endpoints (URLs) for registry mirrors to use.\nEndpoint configures HTTP/HTTPS access mode, host name,\nport and path (if path is not set, it defaults to `/v2`)."
	RegistryMirrorConfigDoc.Fields[0].Comments[encoder.LineComment] = "List of endpoints (URLs) for registry mirrors to use."

	RegistryConfigDoc.Type = "RegistryConfig"
	RegistryConfigDoc.Comments[encoder.LineComment] = "RegistryConfig specifies auth & TLS config per registry."
	RegistryConfigDoc.Description = "RegistryConfig specifies auth & TLS config per registry."

	RegistryConfigDoc.AddExample("", machineConfigRegistryConfigExample)
	RegistryConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "RegistriesConfig",
			FieldName: "config",
		},
	}
	RegistryConfigDoc.Fields = make([]encoder.Doc, 2)
	RegistryConfigDoc.Fields[0].Name = "tls"
	RegistryConfigDoc.Fields[0].Type = "RegistryTLSConfig"
	RegistryConfigDoc.Fields[0].Note = ""
	RegistryConfigDoc.Fields[0].Description = "The TLS configuration for the registry."
	RegistryConfigDoc.Fields[0].Comments[encoder.LineComment] = "The TLS configuration for the registry."

	RegistryConfigDoc.Fields[0].AddExample("", machineConfigRegistryTLSConfigExample1)

	RegistryConfigDoc.Fields[0].AddExample("", machineConfigRegistryTLSConfigExample2)
	RegistryConfigDoc.Fields[1].Name = "auth"
	RegistryConfigDoc.Fields[1].Type = "RegistryAuthConfig"
	RegistryConfigDoc.Fields[1].Note = ""
	RegistryConfigDoc.Fields[1].Description = "The auth configuration for this registry."
	RegistryConfigDoc.Fields[1].Comments[encoder.LineComment] = "The auth configuration for this registry."

	RegistryConfigDoc.Fields[1].AddExample("", machineConfigRegistryAuthConfigExample)

	RegistryAuthConfigDoc.Type = "RegistryAuthConfig"
	RegistryAuthConfigDoc.Comments[encoder.LineComment] = "RegistryAuthConfig specifies authentication configuration for a registry."
	RegistryAuthConfigDoc.Description = "RegistryAuthConfig specifies authentication configuration for a registry."

	RegistryAuthConfigDoc.AddExample("", machineConfigRegistryAuthConfigExample)
	RegistryAuthConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "RegistryConfig",
			FieldName: "auth",
		},
	}
	RegistryAuthConfigDoc.Fields = make([]encoder.Doc, 4)
	RegistryAuthConfigDoc.Fields[0].Name = "username"
	RegistryAuthConfigDoc.Fields[0].Type = "string"
	RegistryAuthConfigDoc.Fields[0].Note = ""
	RegistryAuthConfigDoc.Fields[0].Description = "Optional registry authentication.\nThe meaning of each field is the same with the corresponding field in .docker/config.json."
	RegistryAuthConfigDoc.Fields[0].Comments[encoder.LineComment] = "Optional registry authentication."
	RegistryAuthConfigDoc.Fields[1].Name = "password"
	RegistryAuthConfigDoc.Fields[1].Type = "string"
	RegistryAuthConfigDoc.Fields[1].Note = ""
	RegistryAuthConfigDoc.Fields[1].Description = "Optional registry authentication.\nThe meaning of each field is the same with the corresponding field in .docker/config.json."
	RegistryAuthConfigDoc.Fields[1].Comments[encoder.LineComment] = "Optional registry authentication."
	RegistryAuthConfigDoc.Fields[2].Name = "auth"
	RegistryAuthConfigDoc.Fields[2].Type = "string"
	RegistryAuthConfigDoc.Fields[2].Note = ""
	RegistryAuthConfigDoc.Fields[2].Description = "Optional registry authentication.\nThe meaning of each field is the same with the corresponding field in .docker/config.json."
	RegistryAuthConfigDoc.Fields[2].Comments[encoder.LineComment] = "Optional registry authentication."
	RegistryAuthConfigDoc.Fields[3].Name = "identityToken"
	RegistryAuthConfigDoc.Fields[3].Type = "string"
	RegistryAuthConfigDoc.Fields[3].Note = ""
	RegistryAuthConfigDoc.Fields[3].Description = "Optional registry authentication.\nThe meaning of each field is the same with the corresponding field in .docker/config.json."
	RegistryAuthConfigDoc.Fields[3].Comments[encoder.LineComment] = "Optional registry authentication."

	RegistryTLSConfigDoc.Type = "RegistryTLSConfig"
	RegistryTLSConfigDoc.Comments[encoder.LineComment] = "RegistryTLSConfig specifies TLS config for HTTPS registries."
	RegistryTLSConfigDoc.Description = "RegistryTLSConfig specifies TLS config for HTTPS registries."

	RegistryTLSConfigDoc.AddExample("", machineConfigRegistryTLSConfigExample1)

	RegistryTLSConfigDoc.AddExample("", machineConfigRegistryTLSConfigExample2)
	RegistryTLSConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "RegistryConfig",
			FieldName: "tls",
		},
	}
	RegistryTLSConfigDoc.Fields = make([]encoder.Doc, 3)
	RegistryTLSConfigDoc.Fields[0].Name = "clientIdentity"
	RegistryTLSConfigDoc.Fields[0].Type = "PEMEncodedCertificateAndKey"
	RegistryTLSConfigDoc.Fields[0].Note = ""
	RegistryTLSConfigDoc.Fields[0].Description = "Enable mutual TLS authentication with the registry.\nClient certificate and key should be base64-encoded."
	RegistryTLSConfigDoc.Fields[0].Comments[encoder.LineComment] = "Enable mutual TLS authentication with the registry."

	RegistryTLSConfigDoc.Fields[0].AddExample("", pemEncodedCertificateExample)
	RegistryTLSConfigDoc.Fields[1].Name = "ca"
	RegistryTLSConfigDoc.Fields[1].Type = "Base64Bytes"
	RegistryTLSConfigDoc.Fields[1].Note = ""
	RegistryTLSConfigDoc.Fields[1].Description = "CA registry certificate to add the list of trusted certificates.\nCertificate should be base64-encoded."
	RegistryTLSConfigDoc.Fields[1].Comments[encoder.LineComment] = "CA registry certificate to add the list of trusted certificates."
	RegistryTLSConfigDoc.Fields[2].Name = "insecureSkipVerify"
	RegistryTLSConfigDoc.Fields[2].Type = "bool"
	RegistryTLSConfigDoc.Fields[2].Note = ""
	RegistryTLSConfigDoc.Fields[2].Description = "Skip TLS server certificate verification (not recommended)."
	RegistryTLSConfigDoc.Fields[2].Comments[encoder.LineComment] = "Skip TLS server certificate verification (not recommended)."

	SystemDiskEncryptionConfigDoc.Type = "SystemDiskEncryptionConfig"
	SystemDiskEncryptionConfigDoc.Comments[encoder.LineComment] = "SystemDiskEncryptionConfig specifies system disk partitions encryption settings."
	SystemDiskEncryptionConfigDoc.Description = "SystemDiskEncryptionConfig specifies system disk partitions encryption settings."

	SystemDiskEncryptionConfigDoc.AddExample("", machineSystemDiskEncryptionExample)
	SystemDiskEncryptionConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineConfig",
			FieldName: "systemDiskEncryption",
		},
	}
	SystemDiskEncryptionConfigDoc.Fields = make([]encoder.Doc, 2)
	SystemDiskEncryptionConfigDoc.Fields[0].Name = "state"
	SystemDiskEncryptionConfigDoc.Fields[0].Type = "EncryptionConfig"
	SystemDiskEncryptionConfigDoc.Fields[0].Note = ""
	SystemDiskEncryptionConfigDoc.Fields[0].Description = "State partition encryption."
	SystemDiskEncryptionConfigDoc.Fields[0].Comments[encoder.LineComment] = "State partition encryption."
	SystemDiskEncryptionConfigDoc.Fields[1].Name = "ephemeral"
	SystemDiskEncryptionConfigDoc.Fields[1].Type = "EncryptionConfig"
	SystemDiskEncryptionConfigDoc.Fields[1].Note = ""
	SystemDiskEncryptionConfigDoc.Fields[1].Description = "Ephemeral partition encryption."
	SystemDiskEncryptionConfigDoc.Fields[1].Comments[encoder.LineComment] = "Ephemeral partition encryption."

	FeaturesConfigDoc.Type = "FeaturesConfig"
	FeaturesConfigDoc.Comments[encoder.LineComment] = "FeaturesConfig describe individual Talos features that can be switched on or off."
	FeaturesConfigDoc.Description = "FeaturesConfig describe individual Talos features that can be switched on or off."

	FeaturesConfigDoc.AddExample("", machineFeaturesExample)
	FeaturesConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "MachineConfig",
			FieldName: "features",
		},
	}
	FeaturesConfigDoc.Fields = make([]encoder.Doc, 1)
	FeaturesConfigDoc.Fields[0].Name = "rbac"
	FeaturesConfigDoc.Fields[0].Type = "bool"
	FeaturesConfigDoc.Fields[0].Note = ""
	FeaturesConfigDoc.Fields[0].Description = "Enable role-based access control (RBAC)."
	FeaturesConfigDoc.Fields[0].Comments[encoder.LineComment] = "Enable role-based access control (RBAC)."

	VolumeMountConfigDoc.Type = "VolumeMountConfig"
	VolumeMountConfigDoc.Comments[encoder.LineComment] = "VolumeMountConfig struct describes extra volume mount for the static pods."
	VolumeMountConfigDoc.Description = "VolumeMountConfig struct describes extra volume mount for the static pods."
	VolumeMountConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "APIServerConfig",
			FieldName: "extraVolumes",
		},
		{
			TypeName:  "ControllerManagerConfig",
			FieldName: "extraVolumes",
		},
		{
			TypeName:  "SchedulerConfig",
			FieldName: "extraVolumes",
		},
	}
	VolumeMountConfigDoc.Fields = make([]encoder.Doc, 3)
	VolumeMountConfigDoc.Fields[0].Name = "hostPath"
	VolumeMountConfigDoc.Fields[0].Type = "string"
	VolumeMountConfigDoc.Fields[0].Note = ""
	VolumeMountConfigDoc.Fields[0].Description = "Path on the host."
	VolumeMountConfigDoc.Fields[0].Comments[encoder.LineComment] = "Path on the host."

	VolumeMountConfigDoc.Fields[0].AddExample("", "/var/lib/auth")
	VolumeMountConfigDoc.Fields[1].Name = "mountPath"
	VolumeMountConfigDoc.Fields[1].Type = "string"
	VolumeMountConfigDoc.Fields[1].Note = ""
	VolumeMountConfigDoc.Fields[1].Description = "Path in the container."
	VolumeMountConfigDoc.Fields[1].Comments[encoder.LineComment] = "Path in the container."

	VolumeMountConfigDoc.Fields[1].AddExample("", "/etc/kubernetes/auth")
	VolumeMountConfigDoc.Fields[2].Name = "readonly"
	VolumeMountConfigDoc.Fields[2].Type = "bool"
	VolumeMountConfigDoc.Fields[2].Note = ""
	VolumeMountConfigDoc.Fields[2].Description = "Mount the volume read only."
	VolumeMountConfigDoc.Fields[2].Comments[encoder.LineComment] = "Mount the volume read only."

	VolumeMountConfigDoc.Fields[2].AddExample("", true)

	ClusterInlineManifestDoc.Type = "ClusterInlineManifest"
	ClusterInlineManifestDoc.Comments[encoder.LineComment] = "ClusterInlineManifest struct describes inline bootstrap manifests for the user."
	ClusterInlineManifestDoc.Description = "ClusterInlineManifest struct describes inline bootstrap manifests for the user."
	ClusterInlineManifestDoc.Fields = make([]encoder.Doc, 2)
	ClusterInlineManifestDoc.Fields[0].Name = "name"
	ClusterInlineManifestDoc.Fields[0].Type = "string"
	ClusterInlineManifestDoc.Fields[0].Note = ""
	ClusterInlineManifestDoc.Fields[0].Description = "Name of the manifest.\nName should be unique."
	ClusterInlineManifestDoc.Fields[0].Comments[encoder.LineComment] = "Name of the manifest."

	ClusterInlineManifestDoc.Fields[0].AddExample("", "csi")
	ClusterInlineManifestDoc.Fields[1].Name = "contents"
	ClusterInlineManifestDoc.Fields[1].Type = "string"
	ClusterInlineManifestDoc.Fields[1].Note = ""
	ClusterInlineManifestDoc.Fields[1].Description = "Manifest contents as a string."
	ClusterInlineManifestDoc.Fields[1].Comments[encoder.LineComment] = "Manifest contents as a string."

	ClusterInlineManifestDoc.Fields[1].AddExample("", "/etc/kubernetes/auth")

	NetworkKubeSpanDoc.Type = "NetworkKubeSpan"
	NetworkKubeSpanDoc.Comments[encoder.LineComment] = "NetworkKubeSpan struct describes KubeSpan configuration."
	NetworkKubeSpanDoc.Description = "NetworkKubeSpan struct describes KubeSpan configuration."

	NetworkKubeSpanDoc.AddExample("", networkKubeSpanExample)
	NetworkKubeSpanDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "NetworkConfig",
			FieldName: "kubespan",
		},
	}
	NetworkKubeSpanDoc.Fields = make([]encoder.Doc, 2)
	NetworkKubeSpanDoc.Fields[0].Name = "enabled"
	NetworkKubeSpanDoc.Fields[0].Type = "bool"
	NetworkKubeSpanDoc.Fields[0].Note = ""
	NetworkKubeSpanDoc.Fields[0].Description = "Enable the KubeSpan feature.\nCluster discovery should be enabled with .cluster.discovery.enabled for KubeSpan to be enabled."
	NetworkKubeSpanDoc.Fields[0].Comments[encoder.LineComment] = "Enable the KubeSpan feature."
	NetworkKubeSpanDoc.Fields[1].Name = "allowDownPeerBypass"
	NetworkKubeSpanDoc.Fields[1].Type = "bool"
	NetworkKubeSpanDoc.Fields[1].Note = ""
	NetworkKubeSpanDoc.Fields[1].Description = "Skip sending traffic via KubeSpan if the peer connection state is not up.\nThis provides configurable choice between connectivity and security: either traffic is always\nforced to go via KubeSpan (even if Wireguard peer connection is not up), or traffic can go directly\nto the peer if Wireguard connection can't be established."
	NetworkKubeSpanDoc.Fields[1].Comments[encoder.LineComment] = "Skip sending traffic via KubeSpan if the peer connection state is not up."

	ClusterDiscoveryConfigDoc.Type = "ClusterDiscoveryConfig"
	ClusterDiscoveryConfigDoc.Comments[encoder.LineComment] = "ClusterDiscoveryConfig struct configures cluster membership discovery."
	ClusterDiscoveryConfigDoc.Description = "ClusterDiscoveryConfig struct configures cluster membership discovery."

	ClusterDiscoveryConfigDoc.AddExample("", clusterDiscoveryExample)
	ClusterDiscoveryConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterConfig",
			FieldName: "discovery",
		},
	}
	ClusterDiscoveryConfigDoc.Fields = make([]encoder.Doc, 2)
	ClusterDiscoveryConfigDoc.Fields[0].Name = "enabled"
	ClusterDiscoveryConfigDoc.Fields[0].Type = "bool"
	ClusterDiscoveryConfigDoc.Fields[0].Note = ""
	ClusterDiscoveryConfigDoc.Fields[0].Description = "Enable the cluster membership discovery feature.\nCluster discovery is based on individual registries which are configured under the registries field."
	ClusterDiscoveryConfigDoc.Fields[0].Comments[encoder.LineComment] = "Enable the cluster membership discovery feature."
	ClusterDiscoveryConfigDoc.Fields[1].Name = "registries"
	ClusterDiscoveryConfigDoc.Fields[1].Type = "DiscoveryRegistriesConfig"
	ClusterDiscoveryConfigDoc.Fields[1].Note = ""
	ClusterDiscoveryConfigDoc.Fields[1].Description = "Configure registries used for cluster member discovery."
	ClusterDiscoveryConfigDoc.Fields[1].Comments[encoder.LineComment] = "Configure registries used for cluster member discovery."

	DiscoveryRegistriesConfigDoc.Type = "DiscoveryRegistriesConfig"
	DiscoveryRegistriesConfigDoc.Comments[encoder.LineComment] = "DiscoveryRegistriesConfig struct configures cluster membership discovery."
	DiscoveryRegistriesConfigDoc.Description = "DiscoveryRegistriesConfig struct configures cluster membership discovery."
	DiscoveryRegistriesConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "ClusterDiscoveryConfig",
			FieldName: "registries",
		},
	}
	DiscoveryRegistriesConfigDoc.Fields = make([]encoder.Doc, 2)
	DiscoveryRegistriesConfigDoc.Fields[0].Name = "kubernetes"
	DiscoveryRegistriesConfigDoc.Fields[0].Type = "RegistryKubernetesConfig"
	DiscoveryRegistriesConfigDoc.Fields[0].Note = ""
	DiscoveryRegistriesConfigDoc.Fields[0].Description = "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information\nas annotations on the Node resources."
	DiscoveryRegistriesConfigDoc.Fields[0].Comments[encoder.LineComment] = "Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information"
	DiscoveryRegistriesConfigDoc.Fields[1].Name = "service"
	DiscoveryRegistriesConfigDoc.Fields[1].Type = "RegistryServiceConfig"
	DiscoveryRegistriesConfigDoc.Fields[1].Note = ""
	DiscoveryRegistriesConfigDoc.Fields[1].Description = "Service registry is using an external service to push and pull information about cluster members."
	DiscoveryRegistriesConfigDoc.Fields[1].Comments[encoder.LineComment] = "Service registry is using an external service to push and pull information about cluster members."

	RegistryKubernetesConfigDoc.Type = "RegistryKubernetesConfig"
	RegistryKubernetesConfigDoc.Comments[encoder.LineComment] = "RegistryKubernetesConfig struct configures Kubernetes discovery registry."
	RegistryKubernetesConfigDoc.Description = "RegistryKubernetesConfig struct configures Kubernetes discovery registry."
	RegistryKubernetesConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "DiscoveryRegistriesConfig",
			FieldName: "kubernetes",
		},
	}
	RegistryKubernetesConfigDoc.Fields = make([]encoder.Doc, 1)
	RegistryKubernetesConfigDoc.Fields[0].Name = "disabled"
	RegistryKubernetesConfigDoc.Fields[0].Type = "bool"
	RegistryKubernetesConfigDoc.Fields[0].Note = ""
	RegistryKubernetesConfigDoc.Fields[0].Description = "Disable Kubernetes discovery registry."
	RegistryKubernetesConfigDoc.Fields[0].Comments[encoder.LineComment] = "Disable Kubernetes discovery registry."

	RegistryServiceConfigDoc.Type = "RegistryServiceConfig"
	RegistryServiceConfigDoc.Comments[encoder.LineComment] = "RegistryServiceConfig struct configures Kubernetes discovery registry."
	RegistryServiceConfigDoc.Description = "RegistryServiceConfig struct configures Kubernetes discovery registry."
	RegistryServiceConfigDoc.AppearsIn = []encoder.Appearance{
		{
			TypeName:  "DiscoveryRegistriesConfig",
			FieldName: "service",
		},
	}
	RegistryServiceConfigDoc.Fields = make([]encoder.Doc, 2)
	RegistryServiceConfigDoc.Fields[0].Name = "disabled"
	RegistryServiceConfigDoc.Fields[0].Type = "bool"
	RegistryServiceConfigDoc.Fields[0].Note = ""
	RegistryServiceConfigDoc.Fields[0].Description = "Disable external service discovery registry."
	RegistryServiceConfigDoc.Fields[0].Comments[encoder.LineComment] = "Disable external service discovery registry."
	RegistryServiceConfigDoc.Fields[1].Name = "endpoint"
	RegistryServiceConfigDoc.Fields[1].Type = "string"
	RegistryServiceConfigDoc.Fields[1].Note = ""
	RegistryServiceConfigDoc.Fields[1].Description = "External service endpoint.\nexamples:\n  - value: 'constants.DefaultDiscoveryServiceEndpoint'"
	RegistryServiceConfigDoc.Fields[1].Comments[encoder.LineComment] = "External service endpoint."
}

func (_ Config) Doc() *encoder.Doc {
	return &ConfigDoc
}

func (_ MachineConfig) Doc() *encoder.Doc {
	return &MachineConfigDoc
}

func (_ ClusterConfig) Doc() *encoder.Doc {
	return &ClusterConfigDoc
}

func (_ ExtraMount) Doc() *encoder.Doc {
	return &ExtraMountDoc
}

func (_ KubeletConfig) Doc() *encoder.Doc {
	return &KubeletConfigDoc
}

func (_ KubeletNodeIPConfig) Doc() *encoder.Doc {
	return &KubeletNodeIPConfigDoc
}

func (_ NetworkConfig) Doc() *encoder.Doc {
	return &NetworkConfigDoc
}

func (_ InstallConfig) Doc() *encoder.Doc {
	return &InstallConfigDoc
}

func (_ InstallDiskSelector) Doc() *encoder.Doc {
	return &InstallDiskSelectorDoc
}

func (_ TimeConfig) Doc() *encoder.Doc {
	return &TimeConfigDoc
}

func (_ RegistriesConfig) Doc() *encoder.Doc {
	return &RegistriesConfigDoc
}

func (_ PodCheckpointer) Doc() *encoder.Doc {
	return &PodCheckpointerDoc
}

func (_ CoreDNS) Doc() *encoder.Doc {
	return &CoreDNSDoc
}

func (_ Endpoint) Doc() *encoder.Doc {
	return &EndpointDoc
}

func (_ ControlPlaneConfig) Doc() *encoder.Doc {
	return &ControlPlaneConfigDoc
}

func (_ APIServerConfig) Doc() *encoder.Doc {
	return &APIServerConfigDoc
}

func (_ ControllerManagerConfig) Doc() *encoder.Doc {
	return &ControllerManagerConfigDoc
}

func (_ ProxyConfig) Doc() *encoder.Doc {
	return &ProxyConfigDoc
}

func (_ SchedulerConfig) Doc() *encoder.Doc {
	return &SchedulerConfigDoc
}

func (_ EtcdConfig) Doc() *encoder.Doc {
	return &EtcdConfigDoc
}

func (_ ClusterNetworkConfig) Doc() *encoder.Doc {
	return &ClusterNetworkConfigDoc
}

func (_ CNIConfig) Doc() *encoder.Doc {
	return &CNIConfigDoc
}

func (_ ExternalCloudProviderConfig) Doc() *encoder.Doc {
	return &ExternalCloudProviderConfigDoc
}

func (_ AdminKubeconfigConfig) Doc() *encoder.Doc {
	return &AdminKubeconfigConfigDoc
}

func (_ MachineDisk) Doc() *encoder.Doc {
	return &MachineDiskDoc
}

func (_ DiskPartition) Doc() *encoder.Doc {
	return &DiskPartitionDoc
}

func (_ EncryptionConfig) Doc() *encoder.Doc {
	return &EncryptionConfigDoc
}

func (_ EncryptionKey) Doc() *encoder.Doc {
	return &EncryptionKeyDoc
}

func (_ EncryptionKeyStatic) Doc() *encoder.Doc {
	return &EncryptionKeyStaticDoc
}

func (_ EncryptionKeyNodeID) Doc() *encoder.Doc {
	return &EncryptionKeyNodeIDDoc
}

func (_ MachineFile) Doc() *encoder.Doc {
	return &MachineFileDoc
}

func (_ ExtraHost) Doc() *encoder.Doc {
	return &ExtraHostDoc
}

func (_ Device) Doc() *encoder.Doc {
	return &DeviceDoc
}

func (_ DHCPOptions) Doc() *encoder.Doc {
	return &DHCPOptionsDoc
}

func (_ DeviceWireguardConfig) Doc() *encoder.Doc {
	return &DeviceWireguardConfigDoc
}

func (_ DeviceWireguardPeer) Doc() *encoder.Doc {
	return &DeviceWireguardPeerDoc
}

func (_ DeviceVIPConfig) Doc() *encoder.Doc {
	return &DeviceVIPConfigDoc
}

func (_ VIPEquinixMetalConfig) Doc() *encoder.Doc {
	return &VIPEquinixMetalConfigDoc
}

func (_ VIPHCloudConfig) Doc() *encoder.Doc {
	return &VIPHCloudConfigDoc
}

func (_ Bond) Doc() *encoder.Doc {
	return &BondDoc
}

func (_ Vlan) Doc() *encoder.Doc {
	return &VlanDoc
}

func (_ Route) Doc() *encoder.Doc {
	return &RouteDoc
}

func (_ RegistryMirrorConfig) Doc() *encoder.Doc {
	return &RegistryMirrorConfigDoc
}

func (_ RegistryConfig) Doc() *encoder.Doc {
	return &RegistryConfigDoc
}

func (_ RegistryAuthConfig) Doc() *encoder.Doc {
	return &RegistryAuthConfigDoc
}

func (_ RegistryTLSConfig) Doc() *encoder.Doc {
	return &RegistryTLSConfigDoc
}

func (_ SystemDiskEncryptionConfig) Doc() *encoder.Doc {
	return &SystemDiskEncryptionConfigDoc
}

func (_ FeaturesConfig) Doc() *encoder.Doc {
	return &FeaturesConfigDoc
}

func (_ VolumeMountConfig) Doc() *encoder.Doc {
	return &VolumeMountConfigDoc
}

func (_ ClusterInlineManifest) Doc() *encoder.Doc {
	return &ClusterInlineManifestDoc
}

func (_ NetworkKubeSpan) Doc() *encoder.Doc {
	return &NetworkKubeSpanDoc
}

func (_ ClusterDiscoveryConfig) Doc() *encoder.Doc {
	return &ClusterDiscoveryConfigDoc
}

func (_ DiscoveryRegistriesConfig) Doc() *encoder.Doc {
	return &DiscoveryRegistriesConfigDoc
}

func (_ RegistryKubernetesConfig) Doc() *encoder.Doc {
	return &RegistryKubernetesConfigDoc
}

func (_ RegistryServiceConfig) Doc() *encoder.Doc {
	return &RegistryServiceConfigDoc
}

// GetConfigurationDoc returns documentation for the file ./v1alpha1_types_doc.go.
func GetConfigurationDoc() *encoder.FileDoc {
	return &encoder.FileDoc{
		Name: "Configuration",
		Description: "Package v1alpha1 configuration file contains all the options available for configuring a machine.\n\nTo generate a set of basic configuration files, run:\n\n	talosctl gen config --version v1alpha1 <cluster name> <cluster endpoint>\n\nThis will generate a machine config for each node type, and a talosconfig for the CLI.\n",
		Structs: []*encoder.Doc{
			&ConfigDoc,
			&MachineConfigDoc,
			&ClusterConfigDoc,
			&ExtraMountDoc,
			&KubeletConfigDoc,
			&KubeletNodeIPConfigDoc,
			&NetworkConfigDoc,
			&InstallConfigDoc,
			&InstallDiskSelectorDoc,
			&TimeConfigDoc,
			&RegistriesConfigDoc,
			&PodCheckpointerDoc,
			&CoreDNSDoc,
			&EndpointDoc,
			&ControlPlaneConfigDoc,
			&APIServerConfigDoc,
			&ControllerManagerConfigDoc,
			&ProxyConfigDoc,
			&SchedulerConfigDoc,
			&EtcdConfigDoc,
			&ClusterNetworkConfigDoc,
			&CNIConfigDoc,
			&ExternalCloudProviderConfigDoc,
			&AdminKubeconfigConfigDoc,
			&MachineDiskDoc,
			&DiskPartitionDoc,
			&EncryptionConfigDoc,
			&EncryptionKeyDoc,
			&EncryptionKeyStaticDoc,
			&EncryptionKeyNodeIDDoc,
			&MachineFileDoc,
			&ExtraHostDoc,
			&DeviceDoc,
			&DHCPOptionsDoc,
			&DeviceWireguardConfigDoc,
			&DeviceWireguardPeerDoc,
			&DeviceVIPConfigDoc,
			&VIPEquinixMetalConfigDoc,
			&VIPHCloudConfigDoc,
			&BondDoc,
			&VlanDoc,
			&RouteDoc,
			&RegistryMirrorConfigDoc,
			&RegistryConfigDoc,
			&RegistryAuthConfigDoc,
			&RegistryTLSConfigDoc,
			&SystemDiskEncryptionConfigDoc,
			&FeaturesConfigDoc,
			&VolumeMountConfigDoc,
			&ClusterInlineManifestDoc,
			&NetworkKubeSpanDoc,
			&ClusterDiscoveryConfigDoc,
			&DiscoveryRegistriesConfigDoc,
			&RegistryKubernetesConfigDoc,
			&RegistryServiceConfigDoc,
		},
	}
}
