Documentation ¶
Overview ¶
Package scheme defines some useful function for group version.
Index ¶
- Variables
- func ParseKindArg(arg string) (*GroupVersionKind, GroupKind)
- func ParseResourceArg(arg string) (*GroupVersionResource, GroupResource)
- type GroupKind
- type GroupResource
- type GroupVersion
- func (gv GroupVersion) Empty() bool
- func (gv GroupVersion) Identifier() string
- func (gv GroupVersion) KindForGroupVersionKinds(kinds []GroupVersionKind) (target GroupVersionKind, ok bool)
- func (gv GroupVersion) String() string
- func (gv GroupVersion) WithKind(kind string) GroupVersionKind
- func (gv GroupVersion) WithResource(resource string) GroupVersionResource
- type GroupVersionKind
- type GroupVersionResource
- type GroupVersions
- type ObjectKind
Constants ¶
This section is empty.
Variables ¶
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 ¶
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 ¶
ParseGroupKind parse a string to GroupKind.
func (GroupKind) WithVersion ¶
func (gk GroupKind) WithVersion(version string) GroupVersionKind
WithVersion fill GroupKind with version.
type GroupResource ¶
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 ¶
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 ¶
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 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 ¶
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 zero value.
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 group 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.