#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContainerResourceMetricSource {
#[prost(string, optional, tag="1")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="2")]
pub target: ::core::option::Option<MetricTarget>,
#[prost(string, optional, tag="3")]
pub container: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContainerResourceMetricStatus {
#[prost(string, optional, tag="1")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="2")]
pub current: ::core::option::Option<MetricValueStatus>,
#[prost(string, optional, tag="3")]
pub container: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CrossVersionObjectReference {
#[prost(string, optional, tag="1")]
pub kind: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="2")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="3")]
pub api_version: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExternalMetricSource {
#[prost(message, optional, tag="1")]
pub metric: ::core::option::Option<MetricIdentifier>,
#[prost(message, optional, tag="2")]
pub target: ::core::option::Option<MetricTarget>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExternalMetricStatus {
#[prost(message, optional, tag="1")]
pub metric: ::core::option::Option<MetricIdentifier>,
#[prost(message, optional, tag="2")]
pub current: ::core::option::Option<MetricValueStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HpaScalingPolicy {
#[prost(string, optional, tag="1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag="2")]
pub value: ::core::option::Option<i32>,
#[prost(int32, optional, tag="3")]
pub period_seconds: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HpaScalingRules {
#[prost(int32, optional, tag="3")]
pub stabilization_window_seconds: ::core::option::Option<i32>,
#[prost(string, optional, tag="1")]
pub select_policy: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag="2")]
pub policies: ::prost::alloc::vec::Vec<HpaScalingPolicy>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HorizontalPodAutoscaler {
#[prost(message, optional, tag="1")]
pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
#[prost(message, optional, tag="2")]
pub spec: ::core::option::Option<HorizontalPodAutoscalerSpec>,
#[prost(message, optional, tag="3")]
pub status: ::core::option::Option<HorizontalPodAutoscalerStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HorizontalPodAutoscalerBehavior {
#[prost(message, optional, tag="1")]
pub scale_up: ::core::option::Option<HpaScalingRules>,
#[prost(message, optional, tag="2")]
pub scale_down: ::core::option::Option<HpaScalingRules>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HorizontalPodAutoscalerCondition {
#[prost(string, optional, tag="1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="2")]
pub status: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="3")]
pub last_transition_time: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
#[prost(string, optional, tag="4")]
pub reason: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="5")]
pub message: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HorizontalPodAutoscalerList {
#[prost(message, optional, tag="1")]
pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
#[prost(message, repeated, tag="2")]
pub items: ::prost::alloc::vec::Vec<HorizontalPodAutoscaler>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HorizontalPodAutoscalerSpec {
#[prost(message, optional, tag="1")]
pub scale_target_ref: ::core::option::Option<CrossVersionObjectReference>,
#[prost(int32, optional, tag="2")]
pub min_replicas: ::core::option::Option<i32>,
#[prost(int32, optional, tag="3")]
pub max_replicas: ::core::option::Option<i32>,
#[prost(message, repeated, tag="4")]
pub metrics: ::prost::alloc::vec::Vec<MetricSpec>,
#[prost(message, optional, tag="5")]
pub behavior: ::core::option::Option<HorizontalPodAutoscalerBehavior>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HorizontalPodAutoscalerStatus {
#[prost(int64, optional, tag="1")]
pub observed_generation: ::core::option::Option<i64>,
#[prost(message, optional, tag="2")]
pub last_scale_time: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
#[prost(int32, optional, tag="3")]
pub current_replicas: ::core::option::Option<i32>,
#[prost(int32, optional, tag="4")]
pub desired_replicas: ::core::option::Option<i32>,
#[prost(message, repeated, tag="5")]
pub current_metrics: ::prost::alloc::vec::Vec<MetricStatus>,
#[prost(message, repeated, tag="6")]
pub conditions: ::prost::alloc::vec::Vec<HorizontalPodAutoscalerCondition>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MetricIdentifier {
#[prost(string, optional, tag="1")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="2")]
pub selector: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MetricSpec {
#[prost(string, optional, tag="1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="2")]
pub object: ::core::option::Option<ObjectMetricSource>,
#[prost(message, optional, tag="3")]
pub pods: ::core::option::Option<PodsMetricSource>,
#[prost(message, optional, tag="4")]
pub resource: ::core::option::Option<ResourceMetricSource>,
#[prost(message, optional, tag="7")]
pub container_resource: ::core::option::Option<ContainerResourceMetricSource>,
#[prost(message, optional, tag="5")]
pub external: ::core::option::Option<ExternalMetricSource>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MetricStatus {
#[prost(string, optional, tag="1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="2")]
pub object: ::core::option::Option<ObjectMetricStatus>,
#[prost(message, optional, tag="3")]
pub pods: ::core::option::Option<PodsMetricStatus>,
#[prost(message, optional, tag="4")]
pub resource: ::core::option::Option<ResourceMetricStatus>,
#[prost(message, optional, tag="7")]
pub container_resource: ::core::option::Option<ContainerResourceMetricStatus>,
#[prost(message, optional, tag="5")]
pub external: ::core::option::Option<ExternalMetricStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MetricTarget {
#[prost(string, optional, tag="1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="2")]
pub value: ::core::option::Option<super::super::super::apimachinery::pkg::api::resource::Quantity>,
#[prost(message, optional, tag="3")]
pub average_value: ::core::option::Option<super::super::super::apimachinery::pkg::api::resource::Quantity>,
#[prost(int32, optional, tag="4")]
pub average_utilization: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MetricValueStatus {
#[prost(message, optional, tag="1")]
pub value: ::core::option::Option<super::super::super::apimachinery::pkg::api::resource::Quantity>,
#[prost(message, optional, tag="2")]
pub average_value: ::core::option::Option<super::super::super::apimachinery::pkg::api::resource::Quantity>,
#[prost(int32, optional, tag="3")]
pub average_utilization: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectMetricSource {
#[prost(message, optional, tag="1")]
pub described_object: ::core::option::Option<CrossVersionObjectReference>,
#[prost(message, optional, tag="2")]
pub target: ::core::option::Option<MetricTarget>,
#[prost(message, optional, tag="3")]
pub metric: ::core::option::Option<MetricIdentifier>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectMetricStatus {
#[prost(message, optional, tag="1")]
pub metric: ::core::option::Option<MetricIdentifier>,
#[prost(message, optional, tag="2")]
pub current: ::core::option::Option<MetricValueStatus>,
#[prost(message, optional, tag="3")]
pub described_object: ::core::option::Option<CrossVersionObjectReference>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PodsMetricSource {
#[prost(message, optional, tag="1")]
pub metric: ::core::option::Option<MetricIdentifier>,
#[prost(message, optional, tag="2")]
pub target: ::core::option::Option<MetricTarget>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PodsMetricStatus {
#[prost(message, optional, tag="1")]
pub metric: ::core::option::Option<MetricIdentifier>,
#[prost(message, optional, tag="2")]
pub current: ::core::option::Option<MetricValueStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceMetricSource {
#[prost(string, optional, tag="1")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="2")]
pub target: ::core::option::Option<MetricTarget>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceMetricStatus {
#[prost(string, optional, tag="1")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="2")]
pub current: ::core::option::Option<MetricValueStatus>,
}
impl crate::Resource for HorizontalPodAutoscaler {
const API_VERSION: &'static str = "autoscaling/v2";
const GROUP: &'static str = "autoscaling";
const VERSION: &'static str = "v2";
const KIND: &'static str = "HorizontalPodAutoscaler";
const NAME: &'static str = "horizontalpodautoscalers";
}
impl crate::HasMetadata for HorizontalPodAutoscaler {
type Metadata = crate::apimachinery::pkg::apis::meta::v1::ObjectMeta;
fn metadata(&self) -> Option<&<Self as crate::HasMetadata>::Metadata> {
self.metadata.as_ref()
}
fn metadata_mut(&mut self) -> Option<&mut <Self as crate::HasMetadata>::Metadata> {
self.metadata.as_mut()
}
}
impl crate::HasSpec for HorizontalPodAutoscaler {
type Spec = crate::api::autoscaling::v2::HorizontalPodAutoscalerSpec;
fn spec(&self) -> Option<&<Self as crate::HasSpec>::Spec> {
self.spec.as_ref()
}
fn spec_mut(&mut self) -> Option<&mut <Self as crate::HasSpec>::Spec> {
self.spec.as_mut()
}
}
impl crate::HasStatus for HorizontalPodAutoscaler {
type Status = crate::api::autoscaling::v2::HorizontalPodAutoscalerStatus;
fn status(&self) -> Option<&<Self as crate::HasStatus>::Status> {
self.status.as_ref()
}
fn status_mut(&mut self) -> Option<&mut <Self as crate::HasStatus>::Status> {
self.status.as_mut()
}
}
impl crate::HasConditions for HorizontalPodAutoscaler {
type Condition = crate::api::autoscaling::v2::HorizontalPodAutoscalerCondition;
fn conditions(&self) -> Option<&[<Self as crate::HasConditions>::Condition]> {
self.status.as_ref().map(|s| s.conditions.as_slice())
}
fn conditions_mut(&mut self) -> Option<&mut Vec<<Self as crate::HasConditions>::Condition>> {
self.status
.as_mut()
.and_then(|s| Some(s.conditions.as_mut()))
}
}