// Code generated by cue get go. DO NOT EDIT.

//cue:generate cue get go k8s.io/api/core/v1

/*
	Package v1 is a generated protocol buffer package.

	It is generated from these files:
		k8s.io/kubernetes/vendor/k8s.io/api/core/v1/generated.proto

	It has these top-level messages:
		AWSElasticBlockStoreVolumeSource
		Affinity
		AttachedVolume
		AvoidPods
		AzureDiskVolumeSource
		AzureFilePersistentVolumeSource
		AzureFileVolumeSource
		Binding
		CSIPersistentVolumeSource
		CSIVolumeSource
		Capabilities
		CephFSPersistentVolumeSource
		CephFSVolumeSource
		CinderPersistentVolumeSource
		CinderVolumeSource
		ClientIPConfig
		ComponentCondition
		ComponentStatus
		ComponentStatusList
		ConfigMap
		ConfigMapEnvSource
		ConfigMapKeySelector
		ConfigMapList
		ConfigMapNodeConfigSource
		ConfigMapProjection
		ConfigMapVolumeSource
		Container
		ContainerImage
		ContainerPort
		ContainerState
		ContainerStateRunning
		ContainerStateTerminated
		ContainerStateWaiting
		ContainerStatus
		DaemonEndpoint
		DownwardAPIProjection
		DownwardAPIVolumeFile
		DownwardAPIVolumeSource
		EmptyDirVolumeSource
		EndpointAddress
		EndpointPort
		EndpointSubset
		Endpoints
		EndpointsList
		EnvFromSource
		EnvVar
		EnvVarSource
		Event
		EventList
		EventSeries
		EventSource
		ExecAction
		FCVolumeSource
		FlexPersistentVolumeSource
		FlexVolumeSource
		FlockerVolumeSource
		GCEPersistentDiskVolumeSource
		GitRepoVolumeSource
		GlusterfsPersistentVolumeSource
		GlusterfsVolumeSource
		HTTPGetAction
		HTTPHeader
		Handler
		HostAlias
		HostPathVolumeSource
		ISCSIPersistentVolumeSource
		ISCSIVolumeSource
		KeyToPath
		Lifecycle
		LimitRange
		LimitRangeItem
		LimitRangeList
		LimitRangeSpec
		List
		LoadBalancerIngress
		LoadBalancerStatus
		LocalObjectReference
		LocalVolumeSource
		NFSVolumeSource
		Namespace
		NamespaceList
		NamespaceSpec
		NamespaceStatus
		Node
		NodeAddress
		NodeAffinity
		NodeCondition
		NodeConfigSource
		NodeConfigStatus
		NodeDaemonEndpoints
		NodeList
		NodeProxyOptions
		NodeResources
		NodeSelector
		NodeSelectorRequirement
		NodeSelectorTerm
		NodeSpec
		NodeStatus
		NodeSystemInfo
		ObjectFieldSelector
		ObjectReference
		PersistentVolume
		PersistentVolumeClaim
		PersistentVolumeClaimCondition
		PersistentVolumeClaimList
		PersistentVolumeClaimSpec
		PersistentVolumeClaimStatus
		PersistentVolumeClaimVolumeSource
		PersistentVolumeList
		PersistentVolumeSource
		PersistentVolumeSpec
		PersistentVolumeStatus
		PhotonPersistentDiskVolumeSource
		Pod
		PodAffinity
		PodAffinityTerm
		PodAntiAffinity
		PodAttachOptions
		PodCondition
		PodDNSConfig
		PodDNSConfigOption
		PodExecOptions
		PodList
		PodLogOptions
		PodPortForwardOptions
		PodProxyOptions
		PodReadinessGate
		PodSecurityContext
		PodSignature
		PodSpec
		PodStatus
		PodStatusResult
		PodTemplate
		PodTemplateList
		PodTemplateSpec
		PortworxVolumeSource
		Preconditions
		PreferAvoidPodsEntry
		PreferredSchedulingTerm
		Probe
		ProjectedVolumeSource
		QuobyteVolumeSource
		RBDPersistentVolumeSource
		RBDVolumeSource
		RangeAllocation
		ReplicationController
		ReplicationControllerCondition
		ReplicationControllerList
		ReplicationControllerSpec
		ReplicationControllerStatus
		ResourceFieldSelector
		ResourceQuota
		ResourceQuotaList
		ResourceQuotaSpec
		ResourceQuotaStatus
		ResourceRequirements
		SELinuxOptions
		ScaleIOPersistentVolumeSource
		ScaleIOVolumeSource
		ScopeSelector
		ScopedResourceSelectorRequirement
		Secret
		SecretEnvSource
		SecretKeySelector
		SecretList
		SecretProjection
		SecretReference
		SecretVolumeSource
		SecurityContext
		SerializedReference
		Service
		ServiceAccount
		ServiceAccountList
		ServiceAccountTokenProjection
		ServiceList
		ServicePort
		ServiceProxyOptions
		ServiceSpec
		ServiceStatus
		SessionAffinityConfig
		StorageOSPersistentVolumeSource
		StorageOSVolumeSource
		Sysctl
		TCPSocketAction
		Taint
		Toleration
		TopologySelectorLabelRequirement
		TopologySelectorTerm
		TypedLocalObjectReference
		Volume
		VolumeDevice
		VolumeMount
		VolumeNodeAffinity
		VolumeProjection
		VolumeSource
		VsphereVirtualDiskVolumeSource
		WeightedPodAffinityTerm
		WindowsSecurityContextOptions
*/
package v1
