unstructured

package
v0.31.0-alpha.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2024 License: Apache-2.0 Imports: 13 Imported by: 13,892

Documentation

Index

Constants

This section is empty.

Variables

View Source
var UnstructuredJSONScheme runtime.Codec = unstructuredJSONScheme{}

UnstructuredJSONScheme is capable of converting JSON data into the Unstructured type, which can be used for generic access to objects without a predefined scheme. TODO: move into serializer/json.

Functions

func NestedBool

func NestedBool(obj map[string]interface{}, fields ...string) (bool, bool, error)

NestedBool returns the bool value of a nested field. Returns false if value is not found and an error if not a bool.

func NestedFieldCopy

func NestedFieldCopy(obj map[string]interface{}, fields ...string) (interface{}, bool, error)

NestedFieldCopy returns a deep copy of the value of a nested field. Returns false if the value is missing. No error is returned for a nil field.

Note: fields passed to this function are treated as keys within the passed object; no array/slice syntax is supported.

func NestedFieldNoCopy

func NestedFieldNoCopy(obj map[string]interface{}, fields ...string) (interface{}, bool, error)

NestedFieldNoCopy returns a reference to a nested field. Returns false if value is not found and an error if unable to traverse obj.

Note: fields passed to this function are treated as keys within the passed object; no array/slice syntax is supported.

func NestedFloat64

func NestedFloat64(obj map[string]interface{}, fields ...string) (float64, bool, error)

NestedFloat64 returns the float64 value of a nested field. Returns false if value is not found and an error if not a float64.

func NestedInt64

func NestedInt64(obj map[string]interface{}, fields ...string) (int64, bool, error)

NestedInt64 returns the int64 value of a nested field. Returns false if value is not found and an error if not an int64.

func NestedMap

func NestedMap(obj map[string]interface{}, fields ...string) (map[string]interface{}, bool, error)

NestedMap returns a deep copy of map[string]interface{} value of a nested field. Returns false if value is not found and an error if not a map[string]interface{}.

func NestedSlice

func NestedSlice(obj map[string]interface{}, fields ...string) ([]interface{}, bool, error)

NestedSlice returns a deep copy of []interface{} value of a nested field. Returns false if value is not found and an error if not a []interface{}.

func NestedString

func NestedString(obj map[string]interface{}, fields ...string) (string, bool, error)

NestedString returns the string value of a nested field. Returns false if value is not found and an error if not a string.

func NestedStringMap

func NestedStringMap(obj map[string]interface{}, fields ...string) (map[string]string, bool, error)

NestedStringMap returns a copy of map[string]string value of a nested field. Returns false if value is not found and an error if not a map[string]interface{} or contains non-string values in the map.

func NestedStringSlice

func NestedStringSlice(obj map[string]interface{}, fields ...string) ([]string, bool, error)

NestedStringSlice returns a copy of []string value of a nested field. Returns false if value is not found and an error if not a []interface{} or contains non-string items in the slice.

func NewJSONFallbackEncoder added in v0.17.0

func NewJSONFallbackEncoder(encoder runtime.Encoder) runtime.Encoder

func RemoveNestedField

func RemoveNestedField(obj map[string]interface{}, fields ...string)

RemoveNestedField removes the nested field from the obj.

func SetNestedField

func SetNestedField(obj map[string]interface{}, value interface{}, fields ...string) error

SetNestedField sets the value of a nested field to a deep copy of the value provided. Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.

func SetNestedMap

func SetNestedMap(obj map[string]interface{}, value map[string]interface{}, fields ...string) error

SetNestedMap sets the map[string]interface{} value of a nested field. Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.

func SetNestedSlice

func SetNestedSlice(obj map[string]interface{}, value []interface{}, fields ...string) error

SetNestedSlice sets the slice value of a nested field. Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.

func SetNestedStringMap

func SetNestedStringMap(obj map[string]interface{}, value map[string]string, fields ...string) error

SetNestedStringMap sets the map[string]string value of a nested field. Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.

func SetNestedStringSlice

func SetNestedStringSlice(obj map[string]interface{}, value []string, fields ...string) error

SetNestedStringSlice sets the string slice value of a nested field. Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.

Types

type Unstructured

type Unstructured struct {
	// Object is a JSON compatible map with string, float, int, bool, []interface{}, or
	// map[string]interface{}
	// children.
	Object map[string]interface{}
}

Unstructured allows objects that do not have Golang structs registered to be manipulated generically. This can be used to deal with the API objects from a plug-in. Unstructured objects still have functioning TypeMeta features-- kind, version, etc.

WARNING: This object has accessors for the v1 standard metadata. You *MUST NOT* use this type if you are dealing with objects that are not in the server meta v1 schema.

TODO: make the serialization part of this type distinct from the field accessors. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +k8s:deepcopy-gen=true

func (*Unstructured) DeepCopy

func (in *Unstructured) DeepCopy() *Unstructured

func (*Unstructured) DeepCopyInto

func (in *Unstructured) DeepCopyInto(out *Unstructured)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Unstructured) DeepCopyObject

func (in *Unstructured) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Unstructured) EachListItem

func (obj *Unstructured) EachListItem(fn func(runtime.Object) error) error

func (*Unstructured) EachListItemWithAlloc added in v0.28.0

func (obj *Unstructured) EachListItemWithAlloc(fn func(runtime.Object) error) error

func (*Unstructured) GetAPIVersion

func (u *Unstructured) GetAPIVersion() string

func (*Unstructured) GetAnnotations

func (u *Unstructured) GetAnnotations() map[string]string

func (*Unstructured) GetContinue

func (u *Unstructured) GetContinue() string

func (*Unstructured) GetCreationTimestamp

func (u *Unstructured) GetCreationTimestamp() metav1.Time

func (*Unstructured) GetDeletionGracePeriodSeconds

func (u *Unstructured) GetDeletionGracePeriodSeconds() *int64

func (*Unstructured) GetDeletionTimestamp

func (u *Unstructured) GetDeletionTimestamp() *metav1.Time

func (*Unstructured) GetFinalizers

func (u *Unstructured) GetFinalizers() []string

func (*Unstructured) GetGenerateName

func (u *Unstructured) GetGenerateName() string

func (*Unstructured) GetGeneration

func (u *Unstructured) GetGeneration() int64

func (*Unstructured) GetKind

func (u *Unstructured) GetKind() string

func (*Unstructured) GetLabels

func (u *Unstructured) GetLabels() map[string]string

func (*Unstructured) GetManagedFields

func (u *Unstructured) GetManagedFields() []metav1.ManagedFieldsEntry

func (*Unstructured) GetName

func (u *Unstructured) GetName() string

func (*Unstructured) GetNamespace

func (u *Unstructured) GetNamespace() string

func (*Unstructured) GetObjectKind

func (obj *Unstructured) GetObjectKind() schema.ObjectKind

func (*Unstructured) GetOwnerReferences

func (u *Unstructured) GetOwnerReferences() []metav1.OwnerReference

func (*Unstructured) GetRemainingItemCount

func (u *Unstructured) GetRemainingItemCount() *int64

func (*Unstructured) GetResourceVersion

func (u *Unstructured) GetResourceVersion() string
func (u *Unstructured) GetSelfLink() string

func (*Unstructured) GetUID

func (u *Unstructured) GetUID() types.UID

func (*Unstructured) GroupVersionKind

func (u *Unstructured) GroupVersionKind() schema.GroupVersionKind

func (*Unstructured) IsList

func (obj *Unstructured) IsList() bool

func (*Unstructured) MarshalJSON

func (u *Unstructured) MarshalJSON() ([]byte, error)

MarshalJSON ensures that the unstructured object produces proper JSON when passed to Go's standard JSON library.

func (*Unstructured) NewEmptyInstance

func (in *Unstructured) NewEmptyInstance() runtime.Unstructured

NewEmptyInstance returns a new instance of the concrete type containing only kind/apiVersion and no other data. This should be called instead of reflect.New() for unstructured types because the go type alone does not preserve kind/apiVersion info.

func (*Unstructured) SetAPIVersion

func (u *Unstructured) SetAPIVersion(version string)

func (*Unstructured) SetAnnotations

func (u *Unstructured) SetAnnotations(annotations map[string]string)

func (*Unstructured) SetContinue

func (u *Unstructured) SetContinue(c string)

func (*Unstructured) SetCreationTimestamp

func (u *Unstructured) SetCreationTimestamp(timestamp metav1.Time)

func (*Unstructured) SetDeletionGracePeriodSeconds

func (u *Unstructured) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64)

func (*Unstructured) SetDeletionTimestamp

func (u *Unstructured) SetDeletionTimestamp(timestamp *metav1.Time)

func (*Unstructured) SetFinalizers

func (u *Unstructured) SetFinalizers(finalizers []string)

func (*Unstructured) SetGenerateName

func (u *Unstructured) SetGenerateName(generateName string)

func (*Unstructured) SetGeneration

func (u *Unstructured) SetGeneration(generation int64)

func (*Unstructured) SetGroupVersionKind

func (u *Unstructured) SetGroupVersionKind(gvk schema.GroupVersionKind)

func (*Unstructured) SetKind

func (u *Unstructured) SetKind(kind string)

func (*Unstructured) SetLabels

func (u *Unstructured) SetLabels(labels map[string]string)

func (*Unstructured) SetManagedFields

func (u *Unstructured) SetManagedFields(managedFields []metav1.ManagedFieldsEntry)

func (*Unstructured) SetName

func (u *Unstructured) SetName(name string)

func (*Unstructured) SetNamespace

func (u *Unstructured) SetNamespace(namespace string)

func (*Unstructured) SetOwnerReferences

func (u *Unstructured) SetOwnerReferences(references []metav1.OwnerReference)

func (*Unstructured) SetRemainingItemCount

func (u *Unstructured) SetRemainingItemCount(c *int64)

func (*Unstructured) SetResourceVersion

func (u *Unstructured) SetResourceVersion(resourceVersion string)
func (u *Unstructured) SetSelfLink(selfLink string)

func (*Unstructured) SetUID

func (u *Unstructured) SetUID(uid types.UID)

func (*Unstructured) SetUnstructuredContent

func (obj *Unstructured) SetUnstructuredContent(content map[string]interface{})

func (*Unstructured) ToList

func (obj *Unstructured) ToList() (*UnstructuredList, error)

func (*Unstructured) UnmarshalJSON

func (u *Unstructured) UnmarshalJSON(b []byte) error

UnmarshalJSON ensures that the unstructured object properly decodes JSON when passed to Go's standard JSON library.

func (*Unstructured) UnstructuredContent

func (obj *Unstructured) UnstructuredContent() map[string]interface{}

type UnstructuredList

type UnstructuredList struct {
	Object map[string]interface{}

	// Items is a list of unstructured objects.
	Items []Unstructured `json:"items"`
}

UnstructuredList allows lists that do not have Golang structs registered to be manipulated generically. This can be used to deal with the API lists from a plug-in. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +k8s:deepcopy-gen=true

func (*UnstructuredList) DeepCopy

func (u *UnstructuredList) DeepCopy() *UnstructuredList

func (*UnstructuredList) DeepCopyInto

func (in *UnstructuredList) DeepCopyInto(out *UnstructuredList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*UnstructuredList) DeepCopyObject

func (in *UnstructuredList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*UnstructuredList) EachListItem

func (u *UnstructuredList) EachListItem(fn func(runtime.Object) error) error

func (*UnstructuredList) EachListItemWithAlloc added in v0.28.0

func (u *UnstructuredList) EachListItemWithAlloc(fn func(runtime.Object) error) error

func (*UnstructuredList) GetAPIVersion

func (u *UnstructuredList) GetAPIVersion() string

func (*UnstructuredList) GetContinue

func (u *UnstructuredList) GetContinue() string

func (*UnstructuredList) GetKind

func (u *UnstructuredList) GetKind() string

func (*UnstructuredList) GetObjectKind

func (u *UnstructuredList) GetObjectKind() schema.ObjectKind

func (*UnstructuredList) GetRemainingItemCount

func (u *UnstructuredList) GetRemainingItemCount() *int64

func (*UnstructuredList) GetResourceVersion

func (u *UnstructuredList) GetResourceVersion() string
func (u *UnstructuredList) GetSelfLink() string

func (*UnstructuredList) GroupVersionKind

func (u *UnstructuredList) GroupVersionKind() schema.GroupVersionKind

func (*UnstructuredList) IsList

func (u *UnstructuredList) IsList() bool

func (*UnstructuredList) MarshalJSON

func (u *UnstructuredList) MarshalJSON() ([]byte, error)

MarshalJSON ensures that the unstructured list object produces proper JSON when passed to Go's standard JSON library.

func (*UnstructuredList) NewEmptyInstance

func (u *UnstructuredList) NewEmptyInstance() runtime.Unstructured

NewEmptyInstance returns a new instance of the concrete type containing only kind/apiVersion and no other data. This should be called instead of reflect.New() for unstructured types because the go type alone does not preserve kind/apiVersion info.

func (*UnstructuredList) SetAPIVersion

func (u *UnstructuredList) SetAPIVersion(version string)

func (*UnstructuredList) SetContinue

func (u *UnstructuredList) SetContinue(c string)

func (*UnstructuredList) SetGroupVersionKind

func (u *UnstructuredList) SetGroupVersionKind(gvk schema.GroupVersionKind)

func (*UnstructuredList) SetKind

func (u *UnstructuredList) SetKind(kind string)

func (*UnstructuredList) SetRemainingItemCount

func (u *UnstructuredList) SetRemainingItemCount(c *int64)

func (*UnstructuredList) SetResourceVersion

func (u *UnstructuredList) SetResourceVersion(version string)
func (u *UnstructuredList) SetSelfLink(selfLink string)

func (*UnstructuredList) SetUnstructuredContent

func (obj *UnstructuredList) SetUnstructuredContent(content map[string]interface{})

SetUnstructuredContent obeys the conventions of List and keeps Items and the items array in sync. If items is not an array of objects in the incoming map, then any mismatched item will be removed.

func (*UnstructuredList) UnmarshalJSON

func (u *UnstructuredList) UnmarshalJSON(b []byte) error

UnmarshalJSON ensures that the unstructured list object properly decodes JSON when passed to Go's standard JSON library.

func (*UnstructuredList) UnstructuredContent

func (u *UnstructuredList) UnstructuredContent() map[string]interface{}

UnstructuredContent returns a map contain an overlay of the Items field onto the Object field. Items always overwrites overlay.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL