Trait kube::Resource[][src]

pub trait Resource {
    type DynamicType: Send + Sync + 'static;
    fn kind(dt: &Self::DynamicType) -> Cow<'_, str>;
fn group(dt: &Self::DynamicType) -> Cow<'_, str>;
fn version(dt: &Self::DynamicType) -> Cow<'_, str>;
fn meta(&self) -> &ObjectMeta;
fn name(&self) -> String;
fn namespace(&self) -> Option<String>;
fn resource_ver(&self) -> Option<String>; fn api_version(dt: &Self::DynamicType) -> Cow<'_, str> { ... }
fn plural(dt: &Self::DynamicType) -> Cow<'_, str> { ... }
fn url_path(dt: &Self::DynamicType, namespace: Option<&str>) -> String { ... } }

An accessor trait for a kubernetes Resource.

This is for a subset of Kubernetes type that do not end in List. These types, using ObjectMeta, SHOULD all have required properties:

  • .metadata
  • .metadata.name

And these optional properties:

  • .metadata.namespace
  • .metadata.resource_version

This avoids a bunch of the unnecessary unwrap mechanics for apps.

Associated Types

type DynamicType: Send + Sync + 'static[src]

Type information for types that do not know their resource information at compile time.

Types that know their metadata at compile time should select DynamicType = (). Types that require some information at runtime should select DynamicType as type of this information.

See DynamicObject for a valid implementation of non-k8s-openapi resources.

Loading content...

Required methods

fn kind(dt: &Self::DynamicType) -> Cow<'_, str>[src]

Returns kind of this object

fn group(dt: &Self::DynamicType) -> Cow<'_, str>[src]

Returns group of this object

fn version(dt: &Self::DynamicType) -> Cow<'_, str>[src]

Returns version of this object

fn meta(&self) -> &ObjectMeta[src]

Metadata that all persisted resources must have

fn name(&self) -> String[src]

The name of the resource

fn namespace(&self) -> Option<String>[src]

The namespace the resource is in

fn resource_ver(&self) -> Option<String>[src]

The resource version

Loading content...

Provided methods

fn api_version(dt: &Self::DynamicType) -> Cow<'_, str>[src]

Returns apiVersion of this object

fn plural(dt: &Self::DynamicType) -> Cow<'_, str>[src]

Returns the plural name of the kind

This is known as the resource in apimachinery, we rename it for disambiguation. By default, we infer this name through pluralization.

The pluralization process is not recommended to be relied upon, and is only used for k8s_openapi types, where we maintain a list of special pluralisations for compatibility.

Thus when used with DynamicObject or kube-derive, we override this with correct values.

fn url_path(dt: &Self::DynamicType, namespace: Option<&str>) -> String[src]

Creates a url path for http requests for this resource

Loading content...

Implementors

impl Resource for DynamicObject[src]

impl<K> Resource for K where
    K: Metadata<Ty = ObjectMeta>, 
[src]

Implement accessor trait for any ObjectMeta-using Kubernetes Resource

type DynamicType = ()

Loading content...