kube_core::object

Struct Object

source
pub struct Object<P, U>
where P: Clone, U: Clone,
{ pub types: Option<TypeMeta>, pub metadata: ObjectMeta, pub spec: P, pub status: Option<U>, }
Expand description

A standard Kubernetes object with .spec and .status.

This is a convenience struct provided for serialization/deserialization. It is slightly stricter than [’DynamicObject`] in that it enforces the spec/status convention, and as such will not in general work with all api-discovered resources.

This can be used to tie existing resources to smaller, local struct variants to optimize for memory use. E.g. if you are only interested in a few fields, but you store tons of them in memory with reflectors.

Fields§

§types: Option<TypeMeta>

The type fields, not always present

§metadata: ObjectMeta

Resource metadata

Contains information common to most resources about the Resource, including the object name, annotations, labels and more.

§spec: P

The Spec struct of a resource. I.e. PodSpec, DeploymentSpec, etc.

This defines the desired state of the Resource as specified by the user.

§status: Option<U>

The Status of a resource. I.e. PodStatus, DeploymentStatus, etc.

This publishes the state of the Resource as observed by the controller. Use U = NotUsed when a status does not exist.

Implementations§

source§

impl<P, U> Object<P, U>
where P: Clone, U: Clone,

source

pub fn new(name: &str, ar: &ApiResource, spec: P) -> Self

A constructor that takes Resource values from an ApiResource

source

pub fn within(self, ns: &str) -> Self

Attach a namespace to an Object

Trait Implementations§

source§

impl<P, U> Clone for Object<P, U>
where P: Clone + Clone, U: Clone + Clone,

source§

fn clone(&self) -> Object<P, U>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<P, U> Debug for Object<P, U>
where P: Clone + Debug, U: Clone + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, P, U> Deserialize<'de> for Object<P, U>
where P: Clone + Deserialize<'de>, U: Clone + Deserialize<'de> + Default,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<P, U> HasSpec for Object<P, U>
where P: Clone, U: Clone,

source§

type Spec = P

The type of the spec of this resource
source§

fn spec(&self) -> &Self::Spec

Returns a reference to the spec of the object
source§

fn spec_mut(&mut self) -> &mut Self::Spec

Returns a mutable reference to the spec of the object
source§

impl<P, U> HasStatus for Object<P, U>
where P: Clone, U: Clone,

source§

type Status = U

The type of the status object
source§

fn status(&self) -> Option<&Self::Status>

Returns an optional reference to the status of the object
source§

fn status_mut(&mut self) -> &mut Option<Self::Status>

Returns an optional mutable reference to the status of the object
source§

impl<P, U> Resource for Object<P, U>
where P: Clone, U: Clone,

source§

type DynamicType = ApiResource

Type information for types that do not know their resource information at compile time. Read more
source§

type Scope = DynamicResourceScope

Type information for the api scope of the resource when known at compile time Read more
source§

fn group(dt: &ApiResource) -> Cow<'_, str>

Returns group of this object
source§

fn version(dt: &ApiResource) -> Cow<'_, str>

Returns version of this object
source§

fn kind(dt: &ApiResource) -> Cow<'_, str>

Returns kind of this object
source§

fn plural(dt: &ApiResource) -> Cow<'_, str>

Returns the plural name of the kind Read more
source§

fn api_version(dt: &ApiResource) -> Cow<'_, str>

Returns apiVersion of this object
source§

fn meta(&self) -> &ObjectMeta

Metadata that all persisted resources must have
source§

fn meta_mut(&mut self) -> &mut ObjectMeta

Metadata that all persisted resources must have
source§

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

Creates a url path for http requests for this resource
source§

fn object_ref(&self, dt: &Self::DynamicType) -> ObjectReference

Generates an object reference for the resource
source§

fn controller_owner_ref(&self, dt: &Self::DynamicType) -> Option<OwnerReference>

Generates a controller owner reference pointing to this resource Read more
source§

fn owner_ref(&self, dt: &Self::DynamicType) -> Option<OwnerReference>

Generates an owner reference pointing to this resource Read more
source§

impl<P, U> Serialize for Object<P, U>
where P: Clone + Serialize, U: Clone + Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<P, U> Freeze for Object<P, U>
where P: Freeze, U: Freeze,

§

impl<P, U> RefUnwindSafe for Object<P, U>

§

impl<P, U> Send for Object<P, U>
where P: Send, U: Send,

§

impl<P, U> Sync for Object<P, U>
where P: Sync, U: Sync,

§

impl<P, U> Unpin for Object<P, U>
where P: Unpin, U: Unpin,

§

impl<P, U> UnwindSafe for Object<P, U>
where P: UnwindSafe, U: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<K> ResourceExt for K
where K: Resource,

source§

fn name_unchecked(&self) -> String

Returns the name of the resource, panicking if it is unset Read more
source§

fn name_any(&self) -> String

Returns the most useful name identifier available Read more
source§

fn namespace(&self) -> Option<String>

The namespace the resource is in
source§

fn resource_version(&self) -> Option<String>

The resource version
source§

fn uid(&self) -> Option<String>

Unique ID (if you delete resource and then create a new resource with the same name, it will have different ID)
source§

fn creation_timestamp(&self) -> Option<Time>

Returns the creation timestamp Read more
source§

fn labels(&self) -> &BTreeMap<String, String>

Returns resource labels
source§

fn labels_mut(&mut self) -> &mut BTreeMap<String, String>

Provides mutable access to the labels
source§

fn annotations(&self) -> &BTreeMap<String, String>

Returns resource annotations
source§

fn annotations_mut(&mut self) -> &mut BTreeMap<String, String>

Provider mutable access to the annotations
source§

fn owner_references(&self) -> &[OwnerReference]

Returns resource owner references
source§

fn owner_references_mut(&mut self) -> &mut Vec<OwnerReference>

Provides mutable access to the owner references
source§

fn finalizers(&self) -> &[String]

Returns resource finalizers
source§

fn finalizers_mut(&mut self) -> &mut Vec<String>

Provides mutable access to the finalizers
source§

fn managed_fields(&self) -> &[ManagedFieldsEntry]

Returns managed fields
source§

fn managed_fields_mut(&mut self) -> &mut Vec<ManagedFieldsEntry>

Provides mutable access to managed fields
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,