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 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 ¶
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.