scheme

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2023 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package scheme defines some useful function for group version.

Index

Constants

This section is empty.

Variables

View Source
var EmptyObjectKind = emptyObjectKind{}

EmptyObjectKind implements the ObjectKind interface as a noop.

Functions

func ParseKindArg

func ParseKindArg(arg string) (*GroupVersionKind, GroupKind)

ParseKindArg takes the common style of string which may be either `Kind.group.com` or `Kind.version.group.com` and parses it out into both possibilities. This code takes no responsibility for knowing which representation was intended but with a knowledge of all GroupKinds, calling code can take a very good guess. If there are only two segments, then `*GroupVersionResource` is nil. `Kind.group.com` -> `group=com, version=group, kind=Kind` and `group=group.com, kind=Kind`.

func ParseResourceArg

func ParseResourceArg(arg string) (*GroupVersionResource, GroupResource)

ParseResourceArg takes the common style of string which may be either `resource.group.com` or `resource.version.group.com` and parses it out into both possibilities. This code takes no responsibility for knowing which representation was intended but with a knowledge of all GroupVersions, calling code can take a very good guess. If there are only two segments, then `*GroupVersionResource` is nil. `resource.group.com` -> `group=com, version=group, resource=resource` and `group=group.com, resource=resource`.

Types

type GroupKind

type GroupKind struct {
	Group string
	Kind  string
}

GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types.

func ParseGroupKind

func ParseGroupKind(gk string) GroupKind

ParseGroupKind parse a string to GroupKind.

func (GroupKind) Empty

func (gk GroupKind) Empty() bool

Empty return true if group and kine is zero value.

func (GroupKind) String

func (gk GroupKind) String() string

String defines the string format of GroupKind.

func (GroupKind) WithVersion

func (gk GroupKind) WithVersion(version string) GroupVersionKind

WithVersion fill GroupKind with version.

type GroupResource

type GroupResource struct {
	Group    string
	Resource string
}

GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types.

func ParseGroupResource

func ParseGroupResource(gr string) GroupResource

ParseGroupResource turns "resource.group" string into a GroupResource struct. Empty strings are allowed for each field.

func (GroupResource) Empty

func (gr GroupResource) Empty() bool

Empty return true if Group and Resource both 0.

func (GroupResource) String

func (gr GroupResource) String() string

String defines the string format of GroupResource.

func (GroupResource) WithVersion

func (gr GroupResource) WithVersion(version string) GroupVersionResource

WithVersion add version to GroupVersionResource.

type GroupVersion

type GroupVersion struct {
	Group   string
	Version string
}

GroupVersion contains the "group" and the "version", which uniquely identifies the API.

func ParseGroupVersion

func ParseGroupVersion(gv string) (GroupVersion, error)

ParseGroupVersion turns "group/version" string into a GroupVersion struct. It reports error if it cannot parse the string.

func (GroupVersion) Empty

func (gv GroupVersion) Empty() bool

Empty returns true if group and version are empty.

func (GroupVersion) Identifier

func (gv GroupVersion) Identifier() string

Identifier implements runtime.GroupVersioner interface.

func (GroupVersion) KindForGroupVersionKinds

func (gv GroupVersion) KindForGroupVersionKinds(kinds []GroupVersionKind) (target GroupVersionKind, ok bool)

KindForGroupVersionKinds identifies the preferred GroupVersionKind out of a list. It returns ok false if none of the options match the group. It prefers a match to group and version over just group. TODO: Move GroupVersion to a package under pkg/runtime, since it's used by scheme. TODO: Introduce an adapter type between GroupVersion and runtime.GroupVersioner, and use LegacyCodec(GroupVersion)

in fewer places.

func (GroupVersion) String

func (gv GroupVersion) String() string

String puts "group" and "version" into a single "group/version" string. For the legacy v1 it returns "v1".

func (GroupVersion) WithKind

func (gv GroupVersion) WithKind(kind string) GroupVersionKind

WithKind creates a GroupVersionKind based on the method receiver's GroupVersion and the passed Kind.

func (GroupVersion) WithResource

func (gv GroupVersion) WithResource(resource string) GroupVersionResource

WithResource creates a GroupVersionResource based on the method receiver's GroupVersion and the passed Resource.

type GroupVersionKind

type GroupVersionKind struct {
	Group   string
	Version string
	Kind    string
}

GroupVersionKind unambiguously identifies a kind. It doesn't anonymously include GroupVersion to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshaling.

func FromAPIVersionAndKind

func FromAPIVersionAndKind(apiVersion, kind string) GroupVersionKind

FromAPIVersionAndKind returns a GVK representing the provided fields for types that do not use TypeMeta. This method exists to support test types and legacy serializations that have a distinct group and kind. TODO: further reduce usage of this method.

func (GroupVersionKind) Empty

func (gvk GroupVersionKind) Empty() bool

Empty returns true if group, version, and kind are empty.

func (GroupVersionKind) GroupKind

func (gvk GroupVersionKind) GroupKind() GroupKind

GroupKind returns the group kind.

func (GroupVersionKind) GroupVersion

func (gvk GroupVersionKind) GroupVersion() GroupVersion

GroupVersion returns the group version.

func (GroupVersionKind) String

func (gvk GroupVersionKind) String() string

String returns the string format of GroupVersionKind.

func (GroupVersionKind) ToAPIVersionAndKind

func (gvk GroupVersionKind) ToAPIVersionAndKind() (string, string)

ToAPIVersionAndKind is a convenience method for satisfying runtime.Object on types that do not use TypeMeta.

type GroupVersionResource

type GroupVersionResource struct {
	Group    string
	Version  string
	Resource string
}

GroupVersionResource unambiguously identifies a resource. It doesn't anonymously include GroupVersion to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshaling.

func (GroupVersionResource) Empty

func (gvr GroupVersionResource) Empty() bool

Empty returns true if GroupVersionResource is 0.

func (GroupVersionResource) GroupResource

func (gvr GroupVersionResource) GroupResource() GroupResource

GroupResource return the group resource of GroupVersionResource.

func (GroupVersionResource) GroupVersion

func (gvr GroupVersionResource) GroupVersion() GroupVersion

GroupVersion return the version of GroupVersionResource.

func (GroupVersionResource) String

func (gvr GroupVersionResource) String() string

String defines the string format of GroupVersionResource.

type GroupVersions

type GroupVersions []GroupVersion

GroupVersions can be used to represent a set of desired group versions. TODO: Move GroupVersions to a package under pkg/runtime, since it's used by scheme. TODO: Introduce an adapter type between GroupVersions and runtime.GroupVersioner, and use LegacyCodec(GroupVersion)

in fewer places.

func (GroupVersions) Identifier

func (gvs GroupVersions) Identifier() string

Identifier implements runtime.GroupVersioner interface.

func (GroupVersions) KindForGroupVersionKinds

func (gvs GroupVersions) KindForGroupVersionKinds(kinds []GroupVersionKind) (GroupVersionKind, bool)

KindForGroupVersionKinds identifies the preferred GroupVersionKind out of a list. It returns ok false if none of the options match the group.

type ObjectKind

type ObjectKind interface {
	// SetGroupVersionKind sets or clears the intended serialized kind of an object. Passing kind nil
	// should clear the current setting.
	SetGroupVersionKind(kind GroupVersionKind)
	// GroupVersionKind returns the stored group, version, and kind of an object, or nil if the object does
	// not expose or provide these fields.
	GroupVersionKind() GroupVersionKind
}

ObjectKind is used by serialization to set type information from the Scheme onto the serialized version of an object. For objects that cannot be serialized or have unique requirements, this interface may be a no-op.

Jump to

Keyboard shortcuts

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