var intOrStringAnyOf … type level … const rootLevel … const itemLevel … const fieldLevel … type ValidationOptions … // ValidateStructural checks that s is a structural schema with the invariants: // // * structurality: both `ForbiddenGenerics` and `ForbiddenExtensions` only have zero values, with the two exceptions for IntOrString. // * RawExtension: for every schema with `x-kubernetes-embedded-resource: true`, `x-kubernetes-preserve-unknown-fields: true` and `type: object` are set // * IntOrString: for `x-kubernetes-int-or-string: true` either `type` is empty under `anyOf` and `allOf` or the schema structure is one of these: // // 1. anyOf: // - type: integer // - type: string // 2. allOf: // - anyOf: // - type: integer // - type: string // - ... zero or more // // * every specified field or array in s is also specified outside of value validation. // * metadata at the root can only restrict the name and generateName, and not be specified at all in nested contexts. // * additionalProperties at the root is not allowed. func ValidateStructural(fldPath *field.Path, s *Structural) field.ErrorList { … } func ValidateStructuralWithOptions(fldPath *field.Path, s *Structural, opts ValidationOptions) field.ErrorList { … } // validateStructuralInvariants checks the invariants of a structural schema. func validateStructuralInvariants(s *Structural, lvl level, fldPath *field.Path, opts ValidationOptions) field.ErrorList { … } func validateStructuralMetadataInvariants(s *Structural, checkMetadata bool, lvl level, fldPath *field.Path) field.ErrorList { … } func isIntOrStringAnyOfPattern(s *Structural) bool { … } func isIntOrStringAllOfPattern(s *Structural) bool { … } // validateGeneric checks the generic fields of a structural schema. func validateGeneric(g *Generic, lvl level, fldPath *field.Path) field.ErrorList { … } // validateExtensions checks Kubernetes vendor extensions of a structural schema. func validateExtensions(x *Extensions, fldPath *field.Path) field.ErrorList { … } // validateValueValidation checks the value validation in a structural schema. func validateValueValidation(v *ValueValidation, skipAnyOf, skipFirstAllOfAnyOf bool, lvl level, fldPath *field.Path, opts ValidationOptions) field.ErrorList { … } // validateNestedValueValidation checks the nested value validation under a logic junctor in a structural schema. func validateNestedValueValidation(v *NestedValueValidation, skipAnyOf, skipAllOfAnyOf bool, lvl level, fldPath *field.Path, opts ValidationOptions) field.ErrorList { … }