kubernetes/staging/src/k8s.io/apiserver/pkg/cel/common/values.go

// UnstructuredToVal converts a Kubernetes unstructured data element to a CEL Val.
// The root schema of custom resource schema is expected contain type meta and object meta schemas.
// If Embedded resources do not contain type meta and object meta schemas, they will be added automatically.
func UnstructuredToVal(unstructured interface{}

type unknownPreserved

func (t *unknownPreserved) ConvertToNative(refType reflect.Type) (interface{}

func (t *unknownPreserved) ConvertToType(typeValue ref.Type) ref.Val {}

func (t *unknownPreserved) Equal(other ref.Val) ref.Val {}

func (t *unknownPreserved) Type() ref.Type {}

func (t *unknownPreserved) Value() interface{}

type unstructuredMapList

func (t *unstructuredMapList) getMap() map[interface{}

// toMapKey returns a valid golang map key for the given element of the map list.
// element must be a valid map list entry where all map key props are scalar types (which are comparable in go
// and valid for use in a golang map key).
func (t *unstructuredMapList) toMapKey(element interface{}

// Equal on a map list ignores list element order.
func (t *unstructuredMapList) Equal(other ref.Val) ref.Val {}

// Add for a map list `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values
// are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with
// non-intersecting keys are appended, retaining their partial order.
func (t *unstructuredMapList) Add(other ref.Val) ref.Val {}

// escapeKeyProps returns identifiers with Escape applied to each.
// Identifiers that cannot be escaped are left as-is. They are inaccessible to CEL programs but are
// are still needed internally to perform equality checks.
func escapeKeyProps(idents []string) []string {}

type unstructuredSetList

func (t *unstructuredSetList) getSet() map[interface{}

// Equal on a map list ignores list element order.
func (t *unstructuredSetList) Equal(other ref.Val) ref.Val {}

// Add for a set list `X + Y` performs a union where the array positions of all elements in `X` are preserved and
// non-intersecting elements in `Y` are appended, retaining their partial order.
func (t *unstructuredSetList) Add(other ref.Val) ref.Val {}

type unstructuredList

var _

func (t *unstructuredList) ConvertToNative(typeDesc reflect.Type) (interface{}

func (t *unstructuredList) ConvertToType(typeValue ref.Type) ref.Val {}

func (t *unstructuredList) Equal(other ref.Val) ref.Val {}

func (t *unstructuredList) Type() ref.Type {}

func (t *unstructuredList) Value() interface{}

func (t *unstructuredList) Add(other ref.Val) ref.Val {}

func (t *unstructuredList) Contains(val ref.Val) ref.Val {}

func (t *unstructuredList) Get(idx ref.Val) ref.Val {}

func (t *unstructuredList) Iterator() traits.Iterator {}

type listIterator

func (it *listIterator) HasNext() ref.Val {}

func (it *listIterator) Next() ref.Val {}

func (t *unstructuredList) Size() ref.Val {}

type unstructuredMap

var _

func (t *unstructuredMap) ConvertToNative(typeDesc reflect.Type) (interface{}

func (t *unstructuredMap) ConvertToType(typeValue ref.Type) ref.Val {}

func (t *unstructuredMap) Equal(other ref.Val) ref.Val {}

func (t *unstructuredMap) Type() ref.Type {}

func (t *unstructuredMap) Value() interface{}

func (t *unstructuredMap) Contains(key ref.Val) ref.Val {}

func (t *unstructuredMap) Get(key ref.Val) ref.Val {}

func (t *unstructuredMap) Iterator() traits.Iterator {}

type mapIterator

func (it *mapIterator) HasNext() ref.Val {}

func (it *mapIterator) Next() ref.Val {}

func (t *unstructuredMap) Size() ref.Val {}

func (t *unstructuredMap) Find(key ref.Val) (ref.Val, bool) {}