Documentation ¶
Overview ¶
Package validation has functions for validating the correctness of api objects and explaining what is wrong with them when they aren't valid.
Index ¶
- Constants
- Variables
- func AccumulateUniqueHostPorts(containers []api.Container, accumulator *sets.String, fldPath *field.Path) field.ErrorList
- func InclusiveRangeErrorMsg(lo, hi int) string
- func IsSecretKey(value string) bool
- func IsValidPathSegmentName(name string) []string
- func IsValidPathSegmentPrefix(name string) []string
- func NameIsDNS952Label(name string, prefix bool) []string
- func NameIsDNSLabel(name string, prefix bool) []string
- func NameIsDNSSubdomain(name string, prefix bool) []string
- func NewInvalidTypeError(expected reflect.Kind, observed reflect.Kind, fieldName string) error
- func ValidateAffinityInPodAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList
- func ValidateAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList
- func ValidateConfigMap(cfg *api.ConfigMap) field.ErrorList
- func ValidateConfigMapUpdate(newCfg, oldCfg *api.ConfigMap) field.ErrorList
- func ValidateEndpoints(endpoints *api.Endpoints) field.ErrorList
- func ValidateEndpointsSpecificAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList
- func ValidateEndpointsUpdate(newEndpoints, oldEndpoints *api.Endpoints) field.ErrorList
- func ValidateEvent(event *api.Event) field.ErrorList
- func ValidateHasLabel(meta api.ObjectMeta, fldPath *field.Path, key, expectedValue string) field.ErrorList
- func ValidateImmutableField(newVal, oldVal interface{}, fldPath *field.Path) field.ErrorList
- func ValidateLimitRange(limitRange *api.LimitRange) field.ErrorList
- func ValidateLoadBalancerStatus(status *api.LoadBalancerStatus, fldPath *field.Path) field.ErrorList
- func ValidateNamespace(namespace *api.Namespace) field.ErrorList
- func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *api.Namespace) field.ErrorList
- func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *api.Namespace) field.ErrorList
- func ValidateNamespaceUpdate(newNamespace *api.Namespace, oldNamespace *api.Namespace) field.ErrorList
- func ValidateNode(node *api.Node) field.ErrorList
- func ValidateNodeSelector(nodeSelector *api.NodeSelector, fldPath *field.Path) field.ErrorList
- func ValidateNodeSelectorRequirement(rq api.NodeSelectorRequirement, fldPath *field.Path) field.ErrorList
- func ValidateNodeSelectorTerm(term api.NodeSelectorTerm, fldPath *field.Path) field.ErrorList
- func ValidateNodeSpecificAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList
- func ValidateNodeUpdate(node, oldNode *api.Node) field.ErrorList
- func ValidateNonEmptySelector(selectorMap map[string]string, fldPath *field.Path) field.ErrorList
- func ValidateNonnegativeField(value int64, fldPath *field.Path) field.ErrorList
- func ValidateNonnegativeQuantity(value resource.Quantity, fldPath *field.Path) field.ErrorList
- func ValidateObjectMeta(meta *api.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc, ...) field.ErrorList
- func ValidateObjectMetaUpdate(newMeta, oldMeta *api.ObjectMeta, fldPath *field.Path) field.ErrorList
- func ValidateOwnerReferences(ownerReferences []api.OwnerReference, fldPath *field.Path) field.ErrorList
- func ValidatePathSegmentName(name string, prefix bool) []string
- func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList
- func ValidatePersistentVolumeClaim(pvc *api.PersistentVolumeClaim) field.ErrorList
- func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) field.ErrorList
- func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) field.ErrorList
- func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *api.PersistentVolume) field.ErrorList
- func ValidatePersistentVolumeUpdate(newPv, oldPv *api.PersistentVolume) field.ErrorList
- func ValidatePod(pod *api.Pod) field.ErrorList
- func ValidatePodBinding(binding *api.Binding) field.ErrorList
- func ValidatePodLogOptions(opts *api.PodLogOptions) field.ErrorList
- func ValidatePodSecurityContext(securityContext *api.PodSecurityContext, spec *api.PodSpec, ...) field.ErrorList
- func ValidatePodSpec(spec *api.PodSpec, fldPath *field.Path) field.ErrorList
- func ValidatePodSpecificAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList
- func ValidatePodStatusUpdate(newPod, oldPod *api.Pod) field.ErrorList
- func ValidatePodTemplate(pod *api.PodTemplate) field.ErrorList
- func ValidatePodTemplateSpec(spec *api.PodTemplateSpec, fldPath *field.Path) field.ErrorList
- func ValidatePodTemplateSpecForRC(template *api.PodTemplateSpec, selectorMap map[string]string, replicas int32, ...) field.ErrorList
- func ValidatePodTemplateUpdate(newPod, oldPod *api.PodTemplate) field.ErrorList
- func ValidatePodUpdate(newPod, oldPod *api.Pod) field.ErrorList
- func ValidatePreferredSchedulingTerms(terms []api.PreferredSchedulingTerm, fldPath *field.Path) field.ErrorList
- func ValidateReadOnlyPersistentDisks(volumes []api.Volume, fldPath *field.Path) field.ErrorList
- func ValidateReplicationController(controller *api.ReplicationController) field.ErrorList
- func ValidateReplicationControllerSpec(spec *api.ReplicationControllerSpec, fldPath *field.Path) field.ErrorList
- func ValidateReplicationControllerStatusUpdate(controller, oldController *api.ReplicationController) field.ErrorList
- func ValidateReplicationControllerUpdate(controller, oldController *api.ReplicationController) field.ErrorList
- func ValidateResourceQuota(resourceQuota *api.ResourceQuota) field.ErrorList
- func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) field.ErrorList
- func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) field.ErrorList
- func ValidateResourceRequirements(requirements *api.ResourceRequirements, fldPath *field.Path) field.ErrorList
- func ValidateSecret(secret *api.Secret) field.ErrorList
- func ValidateSecretUpdate(newSecret, oldSecret *api.Secret) field.ErrorList
- func ValidateSecurityContext(sc *api.SecurityContext, fldPath *field.Path) field.ErrorList
- func ValidateService(service *api.Service) field.ErrorList
- func ValidateServiceAccount(serviceAccount *api.ServiceAccount) field.ErrorList
- func ValidateServiceAccountUpdate(newServiceAccount, oldServiceAccount *api.ServiceAccount) field.ErrorList
- func ValidateServiceStatusUpdate(service, oldService *api.Service) field.ErrorList
- func ValidateServiceUpdate(service, oldService *api.Service) field.ErrorList
- func ValidateTaintsInNodeAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList
- func ValidateTolerationsInPodAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList
- type InvalidTypeError
- type NullSchema
- type Schema
- type SwaggerSchema
- type TypeNotFoundError
- type ValidateNameFunc
Constants ¶
const SecretKeyFmt string = "\\.?" + validation.DNS1123LabelFmt + "(\\." + validation.DNS1123LabelFmt + ")*"
Variables ¶
var BannedOwners = map[unversioned.GroupVersionKind]struct{}{ v1.SchemeGroupVersion.WithKind("Event"): {}, }
BannedOwners is a black list of object that are not allowed to be owners.
var IdRangeErrorMsg string = InclusiveRangeErrorMsg(0, math.MaxInt32)
var NameMayNotBe = []string{".", ".."}
NameMayNotBe specifies strings that cannot be used as names specified as path segments (like the REST API or etcd store)
var NameMayNotContain = []string{"/", "%"}
NameMayNotContain specifies substrings that cannot be used in names specified as path segments (like the REST API or etcd store)
var PortNameErrorMsg string = fmt.Sprintf(`must be an IANA_SVC_NAME (at most 15 characters, matching regex %s, it must contain at least one letter [a-z], and hyphens cannot be adjacent to other hyphens): e.g. "http"`, validation.IdentifierNoHyphensBeginEndFmt)
var PortRangeErrorMsg string = InclusiveRangeErrorMsg(1, 65535)
var RepairMalformedUpdates bool = true
TODO: delete this global variable when we enable the validation of common fields by default.
var ValidateConfigMapName = NameIsDNSSubdomain
ValidateConfigMapName can be used to check whether the given ConfigMap name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidateEndpointsName = NameIsDNSSubdomain
ValidateEndpointsName can be used to check whether the given endpoints name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidateLimitRangeName = NameIsDNSSubdomain
ValidateLimitRangeName can be used to check whether the given limit range name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidateNamespaceName = NameIsDNSLabel
ValidateNamespaceName can be used to check whether the given namespace name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidateNodeName = NameIsDNSSubdomain
ValidateNodeName can be used to check whether the given node name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidatePersistentVolumeName = NameIsDNSSubdomain
ValidatePersistentVolumeName checks that a name is appropriate for a PersistentVolumeName object.
var ValidatePodName = NameIsDNSSubdomain
ValidatePodName can be used to check whether the given pod name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidateReplicationControllerName = NameIsDNSSubdomain
ValidateReplicationControllerName can be used to check whether the given replication controller name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidateResourceQuotaName = NameIsDNSSubdomain
ValidateResourceQuotaName can be used to check whether the given resource quota name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidateSecretName = NameIsDNSSubdomain
ValidateSecretName can be used to check whether the given secret name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidateServiceAccountName = NameIsDNSSubdomain
ValidateServiceAccountName can be used to check whether the given service account name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
var ValidateServiceName = NameIsDNS952Label
ValidateServiceName can be used to check whether the given service name is valid. Prefix indicates this name will be used as part of generation, in which case trailing dashes are allowed.
Functions ¶
func AccumulateUniqueHostPorts ¶
func AccumulateUniqueHostPorts(containers []api.Container, accumulator *sets.String, fldPath *field.Path) field.ErrorList
AccumulateUniqueHostPorts extracts each HostPort of each Container, accumulating the results and returning an error if any ports conflict.
func InclusiveRangeErrorMsg ¶ added in v1.0.0
func IsSecretKey ¶
IsSecretKey tests for a string that conforms to the definition of a subdomain in DNS (RFC 1123), except that a leading dot is allowed
func IsValidPathSegmentName ¶
IsValidPathSegmentName validates the name can be safely encoded as a path segment
func IsValidPathSegmentPrefix ¶
IsValidPathSegmentPrefix validates the name can be used as a prefix for a name which will be encoded as a path segment It does not check for exact matches with disallowed names, since an arbitrary suffix might make the name valid
func NameIsDNS952Label ¶
NameIsDNS952Label is a ValidateNameFunc for names that must be a DNS 952 label.
func NameIsDNSLabel ¶
NameIsDNSLabel is a ValidateNameFunc for names that must be a DNS 1123 label.
func NameIsDNSSubdomain ¶
NameIsDNSSubdomain is a ValidateNameFunc for names that must be a DNS subdomain.
func NewInvalidTypeError ¶
func ValidateAffinityInPodAnnotations ¶ added in v1.0.0
func ValidateAffinityInPodAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList
ValidateAffinityInPodAnnotations tests that the serialized Affinity in Pod.Annotations has valid data
func ValidateAnnotations ¶
ValidateAnnotations validates that a set of annotations are correctly defined.
func ValidateConfigMap ¶ added in v1.0.0
ValidateConfigMap tests whether required fields in the ConfigMap are set.
func ValidateConfigMapUpdate ¶ added in v1.0.0
ValidateConfigMapUpdate tests if required fields in the ConfigMap are set.
func ValidateEndpoints ¶
ValidateEndpoints tests if required fields are set.
func ValidateEndpointsSpecificAnnotations ¶ added in v1.1.0
func ValidateEndpointsUpdate ¶
ValidateEndpointsUpdate tests to make sure an endpoints update can be applied.
func ValidateEvent ¶
ValidateEvent makes sure that the event makes sense.
func ValidateHasLabel ¶ added in v1.1.0
func ValidateHasLabel(meta api.ObjectMeta, fldPath *field.Path, key, expectedValue string) field.ErrorList
ValidateHasLabel requires that api.ObjectMeta has a Label with key and expectedValue
func ValidateImmutableField ¶
func ValidateLimitRange ¶
func ValidateLimitRange(limitRange *api.LimitRange) field.ErrorList
ValidateLimitRange tests if required fields in the LimitRange are set.
func ValidateLoadBalancerStatus ¶
func ValidateLoadBalancerStatus(status *api.LoadBalancerStatus, fldPath *field.Path) field.ErrorList
ValidateLoadBalancerStatus validates required fields on a LoadBalancerStatus
func ValidateNamespace ¶
ValidateNamespace tests if required fields are set.
func ValidateNamespaceFinalizeUpdate ¶
ValidateNamespaceFinalizeUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields that cannot be changed.
func ValidateNamespaceStatusUpdate ¶
ValidateNamespaceStatusUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields that cannot be changed.
func ValidateNamespaceUpdate ¶
func ValidateNamespaceUpdate(newNamespace *api.Namespace, oldNamespace *api.Namespace) field.ErrorList
ValidateNamespaceUpdate tests to make sure a namespace update can be applied. newNamespace is updated with fields that cannot be changed
func ValidateNode ¶
ValidateNode tests if required fields in the node are set.
func ValidateNodeSelector ¶ added in v1.0.0
ValidateNodeSelector tests that the specified nodeSelector fields has valid data
func ValidateNodeSelectorRequirement ¶ added in v1.0.0
func ValidateNodeSelectorRequirement(rq api.NodeSelectorRequirement, fldPath *field.Path) field.ErrorList
ValidateNodeSelectorRequirement tests that the specified NodeSelectorRequirement fields has valid data
func ValidateNodeSelectorTerm ¶ added in v1.0.0
ValidateNodeSelectorTerm tests that the specified node selector term has valid data
func ValidateNodeSpecificAnnotations ¶ added in v1.1.0
func ValidateNodeUpdate ¶
ValidateNodeUpdate tests to make sure a node update can be applied. Modifies oldNode.
func ValidateNonEmptySelector ¶
Validates that the given selector is non-empty.
func ValidateNonnegativeField ¶ added in v1.0.0
Validates that given value is not negative.
func ValidateNonnegativeQuantity ¶ added in v1.0.0
Validates that a Quantity is not negative
func ValidateObjectMeta ¶
func ValidateObjectMeta(meta *api.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc, fldPath *field.Path) field.ErrorList
ValidateObjectMeta validates an object's metadata on creation. It expects that name generation has already been performed. It doesn't return an error for rootscoped resources with namespace, because namespace should already be cleared before. TODO: Remove calls to this method scattered in validations of specific resources, e.g., ValidatePodUpdate.
func ValidateObjectMetaUpdate ¶
func ValidateObjectMetaUpdate(newMeta, oldMeta *api.ObjectMeta, fldPath *field.Path) field.ErrorList
ValidateObjectMetaUpdate validates an object's metadata when updated
func ValidateOwnerReferences ¶ added in v1.1.0
func ValidatePathSegmentName ¶
ValidatePathSegmentName validates the name can be safely encoded as a path segment
func ValidatePersistentVolume ¶
func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList
func ValidatePersistentVolumeClaim ¶
func ValidatePersistentVolumeClaim(pvc *api.PersistentVolumeClaim) field.ErrorList
func ValidatePersistentVolumeClaimStatusUpdate ¶
func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) field.ErrorList
func ValidatePersistentVolumeClaimUpdate ¶
func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) field.ErrorList
func ValidatePersistentVolumeStatusUpdate ¶
func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *api.PersistentVolume) field.ErrorList
ValidatePersistentVolumeStatusUpdate tests to see if the status update is legal for an end user to make. newPv is updated with fields that cannot be changed.
func ValidatePersistentVolumeUpdate ¶
func ValidatePersistentVolumeUpdate(newPv, oldPv *api.PersistentVolume) field.ErrorList
ValidatePersistentVolumeUpdate tests to see if the update is legal for an end user to make. newPv is updated with fields that cannot be changed.
func ValidatePod ¶
ValidatePod tests if required fields in the pod are set.
func ValidatePodBinding ¶ added in v1.0.0
ValidatePodBinding tests if required fields in the pod binding are legal.
func ValidatePodLogOptions ¶
func ValidatePodLogOptions(opts *api.PodLogOptions) field.ErrorList
func ValidatePodSecurityContext ¶
func ValidatePodSecurityContext(securityContext *api.PodSecurityContext, spec *api.PodSpec, specPath, fldPath *field.Path) field.ErrorList
ValidatePodSecurityContext test that the specified PodSecurityContext has valid data.
func ValidatePodSpec ¶
ValidatePodSpec tests that the specified PodSpec has valid data. This includes checking formatting and uniqueness. It also canonicalizes the structure by setting default values and implementing any backwards-compatibility tricks.
func ValidatePodSpecificAnnotations ¶ added in v1.1.0
func ValidatePodStatusUpdate ¶
ValidatePodStatusUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields that cannot be changed.
func ValidatePodTemplate ¶
func ValidatePodTemplate(pod *api.PodTemplate) field.ErrorList
ValidatePodTemplate tests if required fields in the pod template are set.
func ValidatePodTemplateSpec ¶
ValidatePodTemplateSpec validates the spec of a pod template
func ValidatePodTemplateSpecForRC ¶
func ValidatePodTemplateSpecForRC(template *api.PodTemplateSpec, selectorMap map[string]string, replicas int32, fldPath *field.Path) field.ErrorList
Validates the given template and ensures that it is in accordance with the desrired selector and replicas.
func ValidatePodTemplateUpdate ¶
func ValidatePodTemplateUpdate(newPod, oldPod *api.PodTemplate) field.ErrorList
ValidatePodTemplateUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields that cannot be changed.
func ValidatePodUpdate ¶
ValidatePodUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields that cannot be changed.
func ValidatePreferredSchedulingTerms ¶ added in v1.0.0
func ValidatePreferredSchedulingTerms(terms []api.PreferredSchedulingTerm, fldPath *field.Path) field.ErrorList
ValidatePreferredSchedulingTerms tests that the specified SoftNodeAffinity fields has valid data
func ValidateReplicationController ¶
func ValidateReplicationController(controller *api.ReplicationController) field.ErrorList
ValidateReplicationController tests if required fields in the replication controller are set.
func ValidateReplicationControllerSpec ¶
func ValidateReplicationControllerSpec(spec *api.ReplicationControllerSpec, fldPath *field.Path) field.ErrorList
ValidateReplicationControllerSpec tests if required fields in the replication controller spec are set.
func ValidateReplicationControllerStatusUpdate ¶
func ValidateReplicationControllerStatusUpdate(controller, oldController *api.ReplicationController) field.ErrorList
ValidateReplicationControllerStatusUpdate tests if required fields in the replication controller are set.
func ValidateReplicationControllerUpdate ¶
func ValidateReplicationControllerUpdate(controller, oldController *api.ReplicationController) field.ErrorList
ValidateReplicationControllerUpdate tests if required fields in the replication controller are set.
func ValidateResourceQuota ¶
func ValidateResourceQuota(resourceQuota *api.ResourceQuota) field.ErrorList
ValidateResourceQuota tests if required fields in the ResourceQuota are set.
func ValidateResourceQuotaStatusUpdate ¶
func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) field.ErrorList
ValidateResourceQuotaStatusUpdate tests to see if the status update is legal for an end user to make. newResourceQuota is updated with fields that cannot be changed.
func ValidateResourceQuotaUpdate ¶
func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) field.ErrorList
ValidateResourceQuotaUpdate tests to see if the update is legal for an end user to make. newResourceQuota is updated with fields that cannot be changed.
func ValidateResourceRequirements ¶
func ValidateResourceRequirements(requirements *api.ResourceRequirements, fldPath *field.Path) field.ErrorList
Validates resource requirement spec.
func ValidateSecret ¶
ValidateSecret tests if required fields in the Secret are set.
func ValidateSecretUpdate ¶
ValidateSecretUpdate tests if required fields in the Secret are set.
func ValidateSecurityContext ¶
ValidateSecurityContext ensure the security context contains valid settings
func ValidateService ¶
ValidateService tests if required fields in the service are set.
func ValidateServiceAccount ¶
func ValidateServiceAccount(serviceAccount *api.ServiceAccount) field.ErrorList
ValidateServiceAccount tests if required fields in the ServiceAccount are set.
func ValidateServiceAccountUpdate ¶
func ValidateServiceAccountUpdate(newServiceAccount, oldServiceAccount *api.ServiceAccount) field.ErrorList
ValidateServiceAccountUpdate tests if required fields in the ServiceAccount are set.
func ValidateServiceStatusUpdate ¶ added in v1.0.0
ValidateServiceStatusUpdate tests if required fields in the Service are set when updating status.
func ValidateServiceUpdate ¶
ValidateServiceUpdate tests if required fields in the service are set during an update
Types ¶
type InvalidTypeError ¶
type InvalidTypeError struct { ExpectedKind reflect.Kind ObservedKind reflect.Kind FieldName string }
func (*InvalidTypeError) Error ¶
func (i *InvalidTypeError) Error() string
type NullSchema ¶
type NullSchema struct{}
func (NullSchema) ValidateBytes ¶
func (NullSchema) ValidateBytes(data []byte) error
type Schema ¶
Schema is an interface that knows how to validate an API object serialized to a byte array.
type SwaggerSchema ¶
type SwaggerSchema struct {
// contains filtered or unexported fields
}
func (*SwaggerSchema) ValidateBytes ¶
func (s *SwaggerSchema) ValidateBytes(data []byte) error
func (*SwaggerSchema) ValidateObject ¶
func (s *SwaggerSchema) ValidateObject(obj interface{}, fieldName, typeName string) []error
type TypeNotFoundError ¶ added in v1.1.0
type TypeNotFoundError string
TypeNotFoundError is returned when specified type can not found in schema
func (TypeNotFoundError) Error ¶ added in v1.1.0
func (tnfe TypeNotFoundError) Error() string
type ValidateNameFunc ¶
ValidateNameFunc validates that the provided name is valid for a given resource type. Not all resources have the same validation rules for names. Prefix is true if the name will have a value appended to it. If the name is not valid, this returns a list of descriptions of individual characteristics of the value that were not valid. Otherwise this returns an empty list or nil.