#[derive(
Clone,
Default,
PartialEq,
serde::Deserialize,
serde::Serialize,
std::fmt::Debug
)]
#[serde(rename_all = "camelCase", deny_unknown_fields)]
pub struct EventAc {
#[serde(
serialize_with = "crate::k8s_openapi::serialize_api_version",
deserialize_with = "crate::k8s_openapi::deserialize_api_version"
)]
pub api_version: std::marker::PhantomData<Self>,
#[serde(
serialize_with = "crate::k8s_openapi::serialize_kind",
deserialize_with = "crate::k8s_openapi::deserialize_kind"
)]
pub kind: std::marker::PhantomData<Self>,
#[serde(skip_serializing_if = "Option::is_none")]
pub action: Option<std::string::String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecated_count: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecated_first_timestamp: Option<
<::k8s_openapi027::apimachinery::pkg::apis::meta::v1::Time as crate::Optionable>::Optioned,
>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecated_last_timestamp: Option<
<::k8s_openapi027::apimachinery::pkg::apis::meta::v1::Time as crate::Optionable>::Optioned,
>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecated_source: Option<
<::k8s_openapi027::api::core::v1::EventSource as crate::Optionable>::Optioned,
>,
#[serde(skip_serializing_if = "Option::is_none")]
pub event_time: Option<
<::k8s_openapi027::apimachinery::pkg::apis::meta::v1::MicroTime as crate::Optionable>::Optioned,
>,
pub metadata: ::k8s_openapi027::apimachinery::pkg::apis::meta::v1::ObjectMeta,
#[serde(skip_serializing_if = "Option::is_none")]
pub note: Option<std::string::String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reason: Option<std::string::String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub regarding: Option<
<::k8s_openapi027::api::core::v1::ObjectReference as crate::Optionable>::Optioned,
>,
#[serde(skip_serializing_if = "Option::is_none")]
pub related: Option<
<::k8s_openapi027::api::core::v1::ObjectReference as crate::Optionable>::Optioned,
>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reporting_controller: Option<std::string::String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reporting_instance: Option<std::string::String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub series: Option<
<::k8s_openapi027::api::events::v1::EventSeries as crate::Optionable>::Optioned,
>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<std::string::String>,
}
#[automatically_derived]
impl crate::Optionable for k8s_openapi027::api::events::v1::Event {
type Optioned = EventAc;
}
#[automatically_derived]
impl crate::Optionable for EventAc {
type Optioned = EventAc;
}
#[automatically_derived]
#[cfg(feature = "k8s_openapi_convert")]
impl crate::OptionableConvert for k8s_openapi027::api::events::v1::Event {
fn into_optioned(self) -> EventAc {
EventAc {
api_version: Default::default(),
kind: Default::default(),
action: self.action,
deprecated_count: self.deprecated_count,
deprecated_first_timestamp: crate::OptionableConvert::into_optioned(
self.deprecated_first_timestamp,
),
deprecated_last_timestamp: crate::OptionableConvert::into_optioned(
self.deprecated_last_timestamp,
),
deprecated_source: crate::OptionableConvert::into_optioned(
self.deprecated_source,
),
event_time: crate::OptionableConvert::into_optioned(self.event_time),
metadata: self.metadata,
note: self.note,
reason: self.reason,
regarding: crate::OptionableConvert::into_optioned(self.regarding),
related: crate::OptionableConvert::into_optioned(self.related),
reporting_controller: self.reporting_controller,
reporting_instance: self.reporting_instance,
series: crate::OptionableConvert::into_optioned(self.series),
type_: self.type_,
}
}
fn try_from_optioned(value: EventAc) -> Result<Self, crate::Error> {
Ok(Self {
action: value.action,
deprecated_count: value.deprecated_count,
deprecated_first_timestamp: crate::OptionableConvert::try_from_optioned(
value.deprecated_first_timestamp,
)?,
deprecated_last_timestamp: crate::OptionableConvert::try_from_optioned(
value.deprecated_last_timestamp,
)?,
deprecated_source: crate::OptionableConvert::try_from_optioned(
value.deprecated_source,
)?,
event_time: crate::OptionableConvert::try_from_optioned(value.event_time)?,
metadata: value.metadata,
note: value.note,
reason: value.reason,
regarding: crate::OptionableConvert::try_from_optioned(value.regarding)?,
related: crate::OptionableConvert::try_from_optioned(value.related)?,
reporting_controller: value.reporting_controller,
reporting_instance: value.reporting_instance,
series: crate::OptionableConvert::try_from_optioned(value.series)?,
type_: value.type_,
})
}
fn merge(&mut self, other: EventAc) -> Result<(), crate::Error> {
if self.action.is_none() {
self.action = crate::OptionableConvert::try_from_optioned(other.action)?;
} else if let Some(self_value) = self.action.as_mut()
&& let Some(other_value) = other.action
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.deprecated_count.is_none() {
self.deprecated_count = crate::OptionableConvert::try_from_optioned(
other.deprecated_count,
)?;
} else if let Some(self_value) = self.deprecated_count.as_mut()
&& let Some(other_value) = other.deprecated_count
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.deprecated_first_timestamp.is_none() {
self.deprecated_first_timestamp = crate::OptionableConvert::try_from_optioned(
other.deprecated_first_timestamp,
)?;
} else if let Some(self_value) = self.deprecated_first_timestamp.as_mut()
&& let Some(other_value) = other.deprecated_first_timestamp
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.deprecated_last_timestamp.is_none() {
self.deprecated_last_timestamp = crate::OptionableConvert::try_from_optioned(
other.deprecated_last_timestamp,
)?;
} else if let Some(self_value) = self.deprecated_last_timestamp.as_mut()
&& let Some(other_value) = other.deprecated_last_timestamp
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.deprecated_source.is_none() {
self.deprecated_source = crate::OptionableConvert::try_from_optioned(
other.deprecated_source,
)?;
} else if let Some(self_value) = self.deprecated_source.as_mut()
&& let Some(other_value) = other.deprecated_source
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.event_time.is_none() {
self.event_time = crate::OptionableConvert::try_from_optioned(
other.event_time,
)?;
} else if let Some(self_value) = self.event_time.as_mut()
&& let Some(other_value) = other.event_time
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
self.metadata = other.metadata;
if self.note.is_none() {
self.note = crate::OptionableConvert::try_from_optioned(other.note)?;
} else if let Some(self_value) = self.note.as_mut()
&& let Some(other_value) = other.note
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.reason.is_none() {
self.reason = crate::OptionableConvert::try_from_optioned(other.reason)?;
} else if let Some(self_value) = self.reason.as_mut()
&& let Some(other_value) = other.reason
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.regarding.is_none() {
self.regarding = crate::OptionableConvert::try_from_optioned(
other.regarding,
)?;
} else if let Some(self_value) = self.regarding.as_mut()
&& let Some(other_value) = other.regarding
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.related.is_none() {
self.related = crate::OptionableConvert::try_from_optioned(other.related)?;
} else if let Some(self_value) = self.related.as_mut()
&& let Some(other_value) = other.related
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.reporting_controller.is_none() {
self.reporting_controller = crate::OptionableConvert::try_from_optioned(
other.reporting_controller,
)?;
} else if let Some(self_value) = self.reporting_controller.as_mut()
&& let Some(other_value) = other.reporting_controller
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.reporting_instance.is_none() {
self.reporting_instance = crate::OptionableConvert::try_from_optioned(
other.reporting_instance,
)?;
} else if let Some(self_value) = self.reporting_instance.as_mut()
&& let Some(other_value) = other.reporting_instance
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.series.is_none() {
self.series = crate::OptionableConvert::try_from_optioned(other.series)?;
} else if let Some(self_value) = self.series.as_mut()
&& let Some(other_value) = other.series
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
if self.type_.is_none() {
self.type_ = crate::OptionableConvert::try_from_optioned(other.type_)?;
} else if let Some(self_value) = self.type_.as_mut()
&& let Some(other_value) = other.type_
{
crate::OptionableConvert::merge(self_value, other_value)?;
}
Ok(())
}
}
#[automatically_derived]
#[cfg(feature = "k8s_openapi_convert")]
impl crate::OptionedConvert<k8s_openapi027::api::events::v1::Event> for EventAc {
fn from_optionable(value: k8s_openapi027::api::events::v1::Event) -> Self {
crate::OptionableConvert::into_optioned(value)
}
fn try_into_optionable(
self,
) -> Result<k8s_openapi027::api::events::v1::Event, crate::Error> {
crate::OptionableConvert::try_from_optioned(self)
}
fn merge_into(
self,
other: &mut k8s_openapi027::api::events::v1::Event,
) -> Result<(), crate::Error> {
crate::OptionableConvert::merge(other, self)
}
}
impl k8s_openapi027::Resource for EventAc {
const API_VERSION: &'static str = <k8s_openapi027::api::events::v1::Event as k8s_openapi027::Resource>::API_VERSION;
const GROUP: &'static str = <k8s_openapi027::api::events::v1::Event as k8s_openapi027::Resource>::GROUP;
const KIND: &'static str = <k8s_openapi027::api::events::v1::Event as k8s_openapi027::Resource>::KIND;
const VERSION: &'static str = <k8s_openapi027::api::events::v1::Event as k8s_openapi027::Resource>::VERSION;
const URL_PATH_SEGMENT: &'static str = <k8s_openapi027::api::events::v1::Event as k8s_openapi027::Resource>::URL_PATH_SEGMENT;
type Scope = <k8s_openapi027::api::events::v1::Event as k8s_openapi027::Resource>::Scope;
}
impl k8s_openapi027::Metadata for EventAc {
type Ty = <k8s_openapi027::api::events::v1::Event as k8s_openapi027::Metadata>::Ty;
fn metadata(&self) -> &<Self as k8s_openapi027::Metadata>::Ty {
&self.metadata
}
fn metadata_mut(&mut self) -> &mut <Self as k8s_openapi027::Metadata>::Ty {
&mut self.metadata
}
}
#[cfg(test_k8s_openapi_roundtrip)]
#[test]
fn roundtrip_eventac() {
crate::testutil::roundtrip_test::<k8s_openapi027::api::events::v1::Event>();
}