k8s_pb/api/extensions/v1beta1/
mod.rs

1// This file is @generated by prost-build.
2/// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for
3/// more information.
4/// DaemonSet represents the configuration of a daemon set.
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct DaemonSet {
7    /// Standard object's metadata.
8    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
9    /// +optional
10    #[prost(message, optional, tag = "1")]
11    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
12    /// The desired behavior of this daemon set.
13    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
14    /// +optional
15    #[prost(message, optional, tag = "2")]
16    pub spec: ::core::option::Option<DaemonSetSpec>,
17    /// The current status of this daemon set. This data may be
18    /// out of date by some window of time.
19    /// Populated by the system.
20    /// Read-only.
21    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
22    /// +optional
23    #[prost(message, optional, tag = "3")]
24    pub status: ::core::option::Option<DaemonSetStatus>,
25}
26/// DaemonSetCondition describes the state of a DaemonSet at a certain point.
27#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
28pub struct DaemonSetCondition {
29    /// Type of DaemonSet condition.
30    #[prost(string, optional, tag = "1")]
31    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
32    /// Status of the condition, one of True, False, Unknown.
33    #[prost(string, optional, tag = "2")]
34    pub status: ::core::option::Option<::prost::alloc::string::String>,
35    /// Last time the condition transitioned from one status to another.
36    /// +optional
37    #[prost(message, optional, tag = "3")]
38    pub last_transition_time:
39        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
40    /// The reason for the condition's last transition.
41    /// +optional
42    #[prost(string, optional, tag = "4")]
43    pub reason: ::core::option::Option<::prost::alloc::string::String>,
44    /// A human readable message indicating details about the transition.
45    /// +optional
46    #[prost(string, optional, tag = "5")]
47    pub message: ::core::option::Option<::prost::alloc::string::String>,
48}
49/// DaemonSetList is a collection of daemon sets.
50#[derive(Clone, PartialEq, ::prost::Message)]
51pub struct DaemonSetList {
52    /// Standard list metadata.
53    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
54    /// +optional
55    #[prost(message, optional, tag = "1")]
56    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
57    /// A list of daemon sets.
58    #[prost(message, repeated, tag = "2")]
59    pub items: ::prost::alloc::vec::Vec<DaemonSet>,
60}
61/// DaemonSetSpec is the specification of a daemon set.
62#[derive(Clone, PartialEq, ::prost::Message)]
63pub struct DaemonSetSpec {
64    /// A label query over pods that are managed by the daemon set.
65    /// Must match in order to be controlled.
66    /// If empty, defaulted to labels on Pod template.
67    /// More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors>
68    /// +optional
69    #[prost(message, optional, tag = "1")]
70    pub selector:
71        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
72    /// An object that describes the pod that will be created.
73    /// The DaemonSet will create exactly one copy of this pod on every node
74    /// that matches the template's node selector (or on every node if no node
75    /// selector is specified).
76    /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template>
77    #[prost(message, optional, tag = "2")]
78    pub template: ::core::option::Option<super::super::core::v1::PodTemplateSpec>,
79    /// An update strategy to replace existing DaemonSet pods with new pods.
80    /// +optional
81    #[prost(message, optional, tag = "3")]
82    pub update_strategy: ::core::option::Option<DaemonSetUpdateStrategy>,
83    /// The minimum number of seconds for which a newly created DaemonSet pod should
84    /// be ready without any of its container crashing, for it to be considered
85    /// available. Defaults to 0 (pod will be considered available as soon as it
86    /// is ready).
87    /// +optional
88    #[prost(int32, optional, tag = "4")]
89    pub min_ready_seconds: ::core::option::Option<i32>,
90    /// DEPRECATED.
91    /// A sequence number representing a specific generation of the template.
92    /// Populated by the system. It can be set only during the creation.
93    /// +optional
94    #[prost(int64, optional, tag = "5")]
95    pub template_generation: ::core::option::Option<i64>,
96    /// The number of old history to retain to allow rollback.
97    /// This is a pointer to distinguish between explicit zero and not specified.
98    /// Defaults to 10.
99    /// +optional
100    #[prost(int32, optional, tag = "6")]
101    pub revision_history_limit: ::core::option::Option<i32>,
102}
103/// DaemonSetStatus represents the current status of a daemon set.
104#[derive(Clone, PartialEq, ::prost::Message)]
105pub struct DaemonSetStatus {
106    /// The number of nodes that are running at least 1
107    /// daemon pod and are supposed to run the daemon pod.
108    /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/>
109    #[prost(int32, optional, tag = "1")]
110    pub current_number_scheduled: ::core::option::Option<i32>,
111    /// The number of nodes that are running the daemon pod, but are
112    /// not supposed to run the daemon pod.
113    /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/>
114    #[prost(int32, optional, tag = "2")]
115    pub number_misscheduled: ::core::option::Option<i32>,
116    /// The total number of nodes that should be running the daemon
117    /// pod (including nodes correctly running the daemon pod).
118    /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/>
119    #[prost(int32, optional, tag = "3")]
120    pub desired_number_scheduled: ::core::option::Option<i32>,
121    /// The number of nodes that should be running the daemon pod and have one
122    /// or more of the daemon pod running and ready.
123    #[prost(int32, optional, tag = "4")]
124    pub number_ready: ::core::option::Option<i32>,
125    /// The most recent generation observed by the daemon set controller.
126    /// +optional
127    #[prost(int64, optional, tag = "5")]
128    pub observed_generation: ::core::option::Option<i64>,
129    /// The total number of nodes that are running updated daemon pod
130    /// +optional
131    #[prost(int32, optional, tag = "6")]
132    pub updated_number_scheduled: ::core::option::Option<i32>,
133    /// The number of nodes that should be running the
134    /// daemon pod and have one or more of the daemon pod running and
135    /// available (ready for at least spec.minReadySeconds)
136    /// +optional
137    #[prost(int32, optional, tag = "7")]
138    pub number_available: ::core::option::Option<i32>,
139    /// The number of nodes that should be running the
140    /// daemon pod and have none of the daemon pod running and available
141    /// (ready for at least spec.minReadySeconds)
142    /// +optional
143    #[prost(int32, optional, tag = "8")]
144    pub number_unavailable: ::core::option::Option<i32>,
145    /// Count of hash collisions for the DaemonSet. The DaemonSet controller
146    /// uses this field as a collision avoidance mechanism when it needs to
147    /// create the name for the newest ControllerRevision.
148    /// +optional
149    #[prost(int32, optional, tag = "9")]
150    pub collision_count: ::core::option::Option<i32>,
151    /// Represents the latest available observations of a DaemonSet's current state.
152    /// +optional
153    /// +patchMergeKey=type
154    /// +patchStrategy=merge
155    /// +listType=map
156    /// +listMapKey=type
157    #[prost(message, repeated, tag = "10")]
158    pub conditions: ::prost::alloc::vec::Vec<DaemonSetCondition>,
159}
160/// DaemonSetUpdateStrategy indicates the strategy that the DaemonSet
161/// controller will use to perform updates. It includes any additional parameters
162/// necessary to perform the update for the indicated strategy.
163#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
164pub struct DaemonSetUpdateStrategy {
165    /// Type of daemon set update. Can be "RollingUpdate" or "OnDelete".
166    /// Default is OnDelete.
167    /// +optional
168    #[prost(string, optional, tag = "1")]
169    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
170    /// Rolling update config params. Present only if type = "RollingUpdate".
171    /// ---
172    /// TODO: Update this to follow our convention for oneOf, whatever we decide it
173    /// to be. Same as Deployment `strategy.rollingUpdate`.
174    /// See <https://github.com/kubernetes/kubernetes/issues/35345>
175    /// +optional
176    #[prost(message, optional, tag = "2")]
177    pub rolling_update: ::core::option::Option<RollingUpdateDaemonSet>,
178}
179/// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for
180/// more information.
181/// Deployment enables declarative updates for Pods and ReplicaSets.
182#[derive(Clone, PartialEq, ::prost::Message)]
183pub struct Deployment {
184    /// Standard object metadata.
185    /// +optional
186    #[prost(message, optional, tag = "1")]
187    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
188    /// Specification of the desired behavior of the Deployment.
189    /// +optional
190    #[prost(message, optional, tag = "2")]
191    pub spec: ::core::option::Option<DeploymentSpec>,
192    /// Most recently observed status of the Deployment.
193    /// +optional
194    #[prost(message, optional, tag = "3")]
195    pub status: ::core::option::Option<DeploymentStatus>,
196}
197/// DeploymentCondition describes the state of a deployment at a certain point.
198#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
199pub struct DeploymentCondition {
200    /// Type of deployment condition.
201    #[prost(string, optional, tag = "1")]
202    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
203    /// Status of the condition, one of True, False, Unknown.
204    #[prost(string, optional, tag = "2")]
205    pub status: ::core::option::Option<::prost::alloc::string::String>,
206    /// The last time this condition was updated.
207    #[prost(message, optional, tag = "6")]
208    pub last_update_time:
209        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
210    /// Last time the condition transitioned from one status to another.
211    #[prost(message, optional, tag = "7")]
212    pub last_transition_time:
213        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
214    /// The reason for the condition's last transition.
215    #[prost(string, optional, tag = "4")]
216    pub reason: ::core::option::Option<::prost::alloc::string::String>,
217    /// A human readable message indicating details about the transition.
218    #[prost(string, optional, tag = "5")]
219    pub message: ::core::option::Option<::prost::alloc::string::String>,
220}
221/// DeploymentList is a list of Deployments.
222#[derive(Clone, PartialEq, ::prost::Message)]
223pub struct DeploymentList {
224    /// Standard list metadata.
225    /// +optional
226    #[prost(message, optional, tag = "1")]
227    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
228    /// Items is the list of Deployments.
229    #[prost(message, repeated, tag = "2")]
230    pub items: ::prost::alloc::vec::Vec<Deployment>,
231}
232/// DEPRECATED.
233/// DeploymentRollback stores the information required to rollback a deployment.
234#[derive(Clone, PartialEq, ::prost::Message)]
235pub struct DeploymentRollback {
236    /// Required: This must match the Name of a deployment.
237    #[prost(string, optional, tag = "1")]
238    pub name: ::core::option::Option<::prost::alloc::string::String>,
239    /// The annotations to be updated to a deployment
240    /// +optional
241    #[prost(btree_map = "string, string", tag = "2")]
242    pub updated_annotations:
243        ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
244    /// The config of this deployment rollback.
245    #[prost(message, optional, tag = "3")]
246    pub rollback_to: ::core::option::Option<RollbackConfig>,
247}
248/// DeploymentSpec is the specification of the desired behavior of the Deployment.
249#[derive(Clone, PartialEq, ::prost::Message)]
250pub struct DeploymentSpec {
251    /// Number of desired pods. This is a pointer to distinguish between explicit
252    /// zero and not specified. Defaults to 1.
253    /// +optional
254    #[prost(int32, optional, tag = "1")]
255    pub replicas: ::core::option::Option<i32>,
256    /// Label selector for pods. Existing ReplicaSets whose pods are
257    /// selected by this will be the ones affected by this deployment.
258    /// +optional
259    #[prost(message, optional, tag = "2")]
260    pub selector:
261        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
262    /// Template describes the pods that will be created.
263    #[prost(message, optional, tag = "3")]
264    pub template: ::core::option::Option<super::super::core::v1::PodTemplateSpec>,
265    /// The deployment strategy to use to replace existing pods with new ones.
266    /// +optional
267    /// +patchStrategy=retainKeys
268    #[prost(message, optional, tag = "4")]
269    pub strategy: ::core::option::Option<DeploymentStrategy>,
270    /// Minimum number of seconds for which a newly created pod should be ready
271    /// without any of its container crashing, for it to be considered available.
272    /// Defaults to 0 (pod will be considered available as soon as it is ready)
273    /// +optional
274    #[prost(int32, optional, tag = "5")]
275    pub min_ready_seconds: ::core::option::Option<i32>,
276    /// The number of old ReplicaSets to retain to allow rollback.
277    /// This is a pointer to distinguish between explicit zero and not specified.
278    /// This is set to the max value of int32 (i.e. 2147483647) by default, which
279    /// means "retaining all old ReplicaSets".
280    /// +optional
281    #[prost(int32, optional, tag = "6")]
282    pub revision_history_limit: ::core::option::Option<i32>,
283    /// Indicates that the deployment is paused and will not be processed by the
284    /// deployment controller.
285    /// +optional
286    #[prost(bool, optional, tag = "7")]
287    pub paused: ::core::option::Option<bool>,
288    /// DEPRECATED.
289    /// The config this deployment is rolling back to. Will be cleared after rollback is done.
290    /// +optional
291    #[prost(message, optional, tag = "8")]
292    pub rollback_to: ::core::option::Option<RollbackConfig>,
293    /// The maximum time in seconds for a deployment to make progress before it
294    /// is considered to be failed. The deployment controller will continue to
295    /// process failed deployments and a condition with a ProgressDeadlineExceeded
296    /// reason will be surfaced in the deployment status. Note that progress will
297    /// not be estimated during the time a deployment is paused. This is set to
298    /// the max value of int32 (i.e. 2147483647) by default, which means "no deadline".
299    /// +optional
300    #[prost(int32, optional, tag = "9")]
301    pub progress_deadline_seconds: ::core::option::Option<i32>,
302}
303/// DeploymentStatus is the most recently observed status of the Deployment.
304#[derive(Clone, PartialEq, ::prost::Message)]
305pub struct DeploymentStatus {
306    /// The generation observed by the deployment controller.
307    /// +optional
308    #[prost(int64, optional, tag = "1")]
309    pub observed_generation: ::core::option::Option<i64>,
310    /// Total number of non-terminating pods targeted by this deployment (their labels match the selector).
311    /// +optional
312    #[prost(int32, optional, tag = "2")]
313    pub replicas: ::core::option::Option<i32>,
314    /// Total number of non-terminating pods targeted by this deployment that have the desired template spec.
315    /// +optional
316    #[prost(int32, optional, tag = "3")]
317    pub updated_replicas: ::core::option::Option<i32>,
318    /// Total number of non-terminating pods targeted by this Deployment with a Ready Condition.
319    /// +optional
320    #[prost(int32, optional, tag = "7")]
321    pub ready_replicas: ::core::option::Option<i32>,
322    /// Total number of available non-terminating pods (ready for at least minReadySeconds) targeted by this deployment.
323    /// +optional
324    #[prost(int32, optional, tag = "4")]
325    pub available_replicas: ::core::option::Option<i32>,
326    /// Total number of unavailable pods targeted by this deployment. This is the total number of
327    /// pods that are still required for the deployment to have 100% available capacity. They may
328    /// either be pods that are running but not yet available or pods that still have not been created.
329    /// +optional
330    #[prost(int32, optional, tag = "5")]
331    pub unavailable_replicas: ::core::option::Option<i32>,
332    /// Total number of terminating pods targeted by this deployment. Terminating pods have a non-null
333    /// .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase.
334    ///
335    /// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default).
336    /// +optional
337    #[prost(int32, optional, tag = "9")]
338    pub terminating_replicas: ::core::option::Option<i32>,
339    /// Represents the latest available observations of a deployment's current state.
340    /// +patchMergeKey=type
341    /// +patchStrategy=merge
342    /// +listType=map
343    /// +listMapKey=type
344    #[prost(message, repeated, tag = "6")]
345    pub conditions: ::prost::alloc::vec::Vec<DeploymentCondition>,
346    /// Count of hash collisions for the Deployment. The Deployment controller uses this
347    /// field as a collision avoidance mechanism when it needs to create the name for the
348    /// newest ReplicaSet.
349    /// +optional
350    #[prost(int32, optional, tag = "8")]
351    pub collision_count: ::core::option::Option<i32>,
352}
353/// DeploymentStrategy describes how to replace existing pods with new ones.
354#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
355pub struct DeploymentStrategy {
356    /// Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.
357    /// +optional
358    #[prost(string, optional, tag = "1")]
359    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
360    /// Rolling update config params. Present only if DeploymentStrategyType =
361    /// RollingUpdate.
362    /// ---
363    /// TODO: Update this to follow our convention for oneOf, whatever we decide it
364    /// to be.
365    /// +optional
366    #[prost(message, optional, tag = "2")]
367    pub rolling_update: ::core::option::Option<RollingUpdateDeployment>,
368}
369/// HTTPIngressPath associates a path with a backend. Incoming urls matching the
370/// path are forwarded to the backend.
371#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
372pub struct HttpIngressPath {
373    /// Path is matched against the path of an incoming request. Currently it can
374    /// contain characters disallowed from the conventional "path" part of a URL
375    /// as defined by RFC 3986. Paths must begin with a '/'. When unspecified,
376    /// all paths from incoming requests are matched.
377    /// +optional
378    #[prost(string, optional, tag = "1")]
379    pub path: ::core::option::Option<::prost::alloc::string::String>,
380    /// PathType determines the interpretation of the Path matching. PathType can
381    /// be one of the following values:
382    /// * Exact: Matches the URL path exactly.
383    /// * Prefix: Matches based on a URL path prefix split by '/'. Matching is
384    ///    done on a path element by element basis. A path element refers is the
385    ///    list of labels in the path split by the '/' separator. A request is a
386    ///    match for path p if every p is an element-wise prefix of p of the
387    ///    request path. Note that if the last element of the path is a substring
388    ///    of the last element in request path, it is not a match (e.g. /foo/bar
389    ///    matches /foo/bar/baz, but does not match /foo/barbaz).
390    /// * ImplementationSpecific: Interpretation of the Path matching is up to
391    ///    the IngressClass. Implementations can treat this as a separate PathType
392    ///    or treat it identically to Prefix or Exact path types.
393    /// Implementations are required to support all path types.
394    /// Defaults to ImplementationSpecific.
395    #[prost(string, optional, tag = "3")]
396    pub path_type: ::core::option::Option<::prost::alloc::string::String>,
397    /// Backend defines the referenced service endpoint to which the traffic
398    /// will be forwarded to.
399    #[prost(message, optional, tag = "2")]
400    pub backend: ::core::option::Option<IngressBackend>,
401}
402/// HTTPIngressRuleValue is a list of http selectors pointing to backends.
403/// In the example: <http://<host>/<path>?<searchpart>> -> backend where
404/// where parts of the url correspond to RFC 3986, this resource will be used
405/// to match against everything after the last '/' and before the first '?'
406/// or '#'.
407#[derive(Clone, PartialEq, ::prost::Message)]
408pub struct HttpIngressRuleValue {
409    /// A collection of paths that map requests to backends.
410    /// +listType=atomic
411    #[prost(message, repeated, tag = "1")]
412    pub paths: ::prost::alloc::vec::Vec<HttpIngressPath>,
413}
414/// DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock.
415/// IPBlock describes a particular CIDR (Ex. "192.168.1.0/24","2001:db8::/64") that is allowed
416/// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs
417/// that should not be included within this rule.
418#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
419pub struct IpBlock {
420    /// CIDR is a string representing the IP Block
421    /// Valid examples are "192.168.1.0/24" or "2001:db8::/64"
422    #[prost(string, optional, tag = "1")]
423    pub cidr: ::core::option::Option<::prost::alloc::string::String>,
424    /// Except is a slice of CIDRs that should not be included within an IP Block
425    /// Valid examples are "192.168.1.0/24" or "2001:db8::/64"
426    /// Except values will be rejected if they are outside the CIDR range
427    /// +optional
428    /// +listType=atomic
429    #[prost(string, repeated, tag = "2")]
430    pub except: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
431}
432/// Ingress is a collection of rules that allow inbound connections to reach the
433/// endpoints defined by a backend. An Ingress can be configured to give services
434/// externally-reachable urls, load balance traffic, terminate SSL, offer name
435/// based virtual hosting etc.
436/// DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.
437#[derive(Clone, PartialEq, ::prost::Message)]
438pub struct Ingress {
439    /// Standard object's metadata.
440    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
441    /// +optional
442    #[prost(message, optional, tag = "1")]
443    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
444    /// Spec is the desired state of the Ingress.
445    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
446    /// +optional
447    #[prost(message, optional, tag = "2")]
448    pub spec: ::core::option::Option<IngressSpec>,
449    /// Status is the current state of the Ingress.
450    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
451    /// +optional
452    #[prost(message, optional, tag = "3")]
453    pub status: ::core::option::Option<IngressStatus>,
454}
455/// IngressBackend describes all endpoints for a given service and port.
456#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
457pub struct IngressBackend {
458    /// Specifies the name of the referenced service.
459    /// +optional
460    #[prost(string, optional, tag = "1")]
461    pub service_name: ::core::option::Option<::prost::alloc::string::String>,
462    /// Specifies the port of the referenced service.
463    /// +optional
464    #[prost(message, optional, tag = "2")]
465    pub service_port:
466        ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
467    /// Resource is an ObjectRef to another Kubernetes resource in the namespace
468    /// of the Ingress object. If resource is specified, serviceName and servicePort
469    /// must not be specified.
470    /// +optional
471    #[prost(message, optional, tag = "3")]
472    pub resource: ::core::option::Option<super::super::core::v1::TypedLocalObjectReference>,
473}
474/// IngressList is a collection of Ingress.
475#[derive(Clone, PartialEq, ::prost::Message)]
476pub struct IngressList {
477    /// Standard object's metadata.
478    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
479    /// +optional
480    #[prost(message, optional, tag = "1")]
481    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
482    /// Items is the list of Ingress.
483    #[prost(message, repeated, tag = "2")]
484    pub items: ::prost::alloc::vec::Vec<Ingress>,
485}
486/// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.
487#[derive(Clone, PartialEq, ::prost::Message)]
488pub struct IngressLoadBalancerIngress {
489    /// IP is set for load-balancer ingress points that are IP based.
490    /// +optional
491    #[prost(string, optional, tag = "1")]
492    pub ip: ::core::option::Option<::prost::alloc::string::String>,
493    /// Hostname is set for load-balancer ingress points that are DNS based.
494    /// +optional
495    #[prost(string, optional, tag = "2")]
496    pub hostname: ::core::option::Option<::prost::alloc::string::String>,
497    /// Ports provides information about the ports exposed by this LoadBalancer.
498    /// +listType=atomic
499    /// +optional
500    #[prost(message, repeated, tag = "4")]
501    pub ports: ::prost::alloc::vec::Vec<IngressPortStatus>,
502}
503/// LoadBalancerStatus represents the status of a load-balancer.
504#[derive(Clone, PartialEq, ::prost::Message)]
505pub struct IngressLoadBalancerStatus {
506    /// Ingress is a list containing ingress points for the load-balancer.
507    /// +optional
508    /// +listType=atomic
509    #[prost(message, repeated, tag = "1")]
510    pub ingress: ::prost::alloc::vec::Vec<IngressLoadBalancerIngress>,
511}
512/// IngressPortStatus represents the error condition of a service port
513#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
514pub struct IngressPortStatus {
515    /// Port is the port number of the ingress port.
516    #[prost(int32, optional, tag = "1")]
517    pub port: ::core::option::Option<i32>,
518    /// Protocol is the protocol of the ingress port.
519    /// The supported values are: "TCP", "UDP", "SCTP"
520    #[prost(string, optional, tag = "2")]
521    pub protocol: ::core::option::Option<::prost::alloc::string::String>,
522    /// Error is to record the problem with the service port
523    /// The format of the error shall comply with the following rules:
524    /// - built-in error values shall be specified in this file and those shall use
525    ///    CamelCase names
526    /// - cloud provider specific error values must have names that comply with the
527    ///    format foo.example.com/CamelCase.
528    /// ---
529    /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
530    /// +optional
531    /// +kubebuilder:validation:Required
532    /// +kubebuilder:validation:Pattern=`^([a-z0-9](\[-a-z0-9\]*[a-z0-9])?(\.[a-z0-9](\[-a-z0-9\]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?\[A-Za-z0-9\])$`
533    /// +kubebuilder:validation:MaxLength=316
534    #[prost(string, optional, tag = "3")]
535    pub error: ::core::option::Option<::prost::alloc::string::String>,
536}
537/// IngressRule represents the rules mapping the paths under a specified host to
538/// the related backend services. Incoming requests are first evaluated for a host
539/// match, then routed to the backend associated with the matching IngressRuleValue.
540#[derive(Clone, PartialEq, ::prost::Message)]
541pub struct IngressRule {
542    /// Host is the fully qualified domain name of a network host, as defined by RFC 3986.
543    /// Note the following deviations from the "host" part of the
544    /// URI as defined in RFC 3986:
545    /// 1. IPs are not allowed. Currently an IngressRuleValue can only apply to
546    ///     the IP in the Spec of the parent Ingress.
547    /// 2. The `:` delimiter is not respected because ports are not allowed.
548    /// 	  Currently the port of an Ingress is implicitly :80 for http and
549    /// 	  :443 for https.
550    /// Both these may change in the future.
551    /// Incoming requests are matched against the host before the
552    /// IngressRuleValue. If the host is unspecified, the Ingress routes all
553    /// traffic based on the specified IngressRuleValue.
554    ///
555    /// Host can be "precise" which is a domain name without the terminating dot of
556    /// a network host (e.g. "foo.bar.com") or "wildcard", which is a domain name
557    /// prefixed with a single wildcard label (e.g. "*.foo.com").
558    /// The wildcard character '*' must appear by itself as the first DNS label and
559    /// matches only a single label. You cannot have a wildcard label by itself (e.g. Host == "*").
560    /// Requests will be matched against the Host field in the following way:
561    /// 1. If Host is precise, the request matches this rule if the http host header is equal to Host.
562    /// 2. If Host is a wildcard, then the request matches this rule if the http host header
563    /// is to equal to the suffix (removing the first label) of the wildcard rule.
564    /// +optional
565    #[prost(string, optional, tag = "1")]
566    pub host: ::core::option::Option<::prost::alloc::string::String>,
567    /// IngressRuleValue represents a rule to route requests for this IngressRule.
568    /// If unspecified, the rule defaults to a http catch-all. Whether that sends
569    /// just traffic matching the host to the default backend or all traffic to the
570    /// default backend, is left to the controller fulfilling the Ingress. Http is
571    /// currently the only supported IngressRuleValue.
572    /// +optional
573    #[prost(message, optional, tag = "2")]
574    pub ingress_rule_value: ::core::option::Option<IngressRuleValue>,
575}
576/// IngressRuleValue represents a rule to apply against incoming requests. If the
577/// rule is satisfied, the request is routed to the specified backend. Currently
578/// mixing different types of rules in a single Ingress is disallowed, so exactly
579/// one of the following must be set.
580#[derive(Clone, PartialEq, ::prost::Message)]
581pub struct IngressRuleValue {
582    /// http is a list of http selectors pointing to backends.
583    /// A path is matched against the path of an incoming request. Currently it can
584    /// contain characters disallowed from the conventional "path" part of a URL
585    /// as defined by RFC 3986. Paths must begin with a '/'.
586    /// A backend defines the referenced service endpoint to which the traffic
587    /// will be forwarded to.
588    #[prost(message, optional, tag = "1")]
589    pub http: ::core::option::Option<HttpIngressRuleValue>,
590}
591/// IngressSpec describes the Ingress the user wishes to exist.
592#[derive(Clone, PartialEq, ::prost::Message)]
593pub struct IngressSpec {
594    /// IngressClassName is the name of the IngressClass cluster resource. The
595    /// associated IngressClass defines which controller will implement the
596    /// resource. This replaces the deprecated `kubernetes.io/ingress.class`
597    /// annotation. For backwards compatibility, when that annotation is set, it
598    /// must be given precedence over this field. The controller may emit a
599    /// warning if the field and annotation have different values.
600    /// Implementations of this API should ignore Ingresses without a class
601    /// specified. An IngressClass resource may be marked as default, which can
602    /// be used to set a default value for this field. For more information,
603    /// refer to the IngressClass documentation.
604    /// +optional
605    #[prost(string, optional, tag = "4")]
606    pub ingress_class_name: ::core::option::Option<::prost::alloc::string::String>,
607    /// A default backend capable of servicing requests that don't match any
608    /// rule. At least one of 'backend' or 'rules' must be specified. This field
609    /// is optional to allow the loadbalancer controller or defaulting logic to
610    /// specify a global default.
611    /// +optional
612    #[prost(message, optional, tag = "1")]
613    pub backend: ::core::option::Option<IngressBackend>,
614    /// TLS configuration. Currently the Ingress only supports a single TLS
615    /// port, 443. If multiple members of this list specify different hosts, they
616    /// will be multiplexed on the same port according to the hostname specified
617    /// through the SNI TLS extension, if the ingress controller fulfilling the
618    /// ingress supports SNI.
619    /// +optional
620    /// +listType=atomic
621    #[prost(message, repeated, tag = "2")]
622    pub tls: ::prost::alloc::vec::Vec<IngressTls>,
623    /// A list of host rules used to configure the Ingress. If unspecified, or
624    /// no rule matches, all traffic is sent to the default backend.
625    /// +optional
626    /// +listType=atomic
627    #[prost(message, repeated, tag = "3")]
628    pub rules: ::prost::alloc::vec::Vec<IngressRule>,
629}
630/// IngressStatus describe the current state of the Ingress.
631#[derive(Clone, PartialEq, ::prost::Message)]
632pub struct IngressStatus {
633    /// LoadBalancer contains the current status of the load-balancer.
634    /// +optional
635    #[prost(message, optional, tag = "1")]
636    pub load_balancer: ::core::option::Option<IngressLoadBalancerStatus>,
637}
638/// IngressTLS describes the transport layer security associated with an Ingress.
639#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
640pub struct IngressTls {
641    /// Hosts are a list of hosts included in the TLS certificate. The values in
642    /// this list must match the name/s used in the tlsSecret. Defaults to the
643    /// wildcard host setting for the loadbalancer controller fulfilling this
644    /// Ingress, if left unspecified.
645    /// +optional
646    /// +listType=atomic
647    #[prost(string, repeated, tag = "1")]
648    pub hosts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
649    /// SecretName is the name of the secret used to terminate SSL traffic on 443.
650    /// Field is left optional to allow SSL routing based on SNI hostname alone.
651    /// If the SNI host in a listener conflicts with the "Host" header field used
652    /// by an IngressRule, the SNI host is used for termination and value of the
653    /// Host header is used for routing.
654    /// +optional
655    #[prost(string, optional, tag = "2")]
656    pub secret_name: ::core::option::Option<::prost::alloc::string::String>,
657}
658/// DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy.
659/// NetworkPolicy describes what network traffic is allowed for a set of Pods
660#[derive(Clone, PartialEq, ::prost::Message)]
661pub struct NetworkPolicy {
662    /// Standard object's metadata.
663    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
664    /// +optional
665    #[prost(message, optional, tag = "1")]
666    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
667    /// Specification of the desired behavior for this NetworkPolicy.
668    /// +optional
669    #[prost(message, optional, tag = "2")]
670    pub spec: ::core::option::Option<NetworkPolicySpec>,
671}
672/// DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule.
673/// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods
674/// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.
675/// This type is beta-level in 1.8
676#[derive(Clone, PartialEq, ::prost::Message)]
677pub struct NetworkPolicyEgressRule {
678    /// List of destination ports for outgoing traffic.
679    /// Each item in this list is combined using a logical OR. If this field is
680    /// empty or missing, this rule matches all ports (traffic not restricted by port).
681    /// If this field is present and contains at least one item, then this rule allows
682    /// traffic only if the traffic matches at least one port in the list.
683    /// +optional
684    /// +listType=atomic
685    #[prost(message, repeated, tag = "1")]
686    pub ports: ::prost::alloc::vec::Vec<NetworkPolicyPort>,
687    /// List of destinations for outgoing traffic of pods selected for this rule.
688    /// Items in this list are combined using a logical OR operation. If this field is
689    /// empty or missing, this rule matches all destinations (traffic not restricted by
690    /// destination). If this field is present and contains at least one item, this rule
691    /// allows traffic only if the traffic matches at least one item in the to list.
692    /// +optional
693    /// +listType=atomic
694    #[prost(message, repeated, tag = "2")]
695    pub to: ::prost::alloc::vec::Vec<NetworkPolicyPeer>,
696}
697/// DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule.
698/// This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.
699#[derive(Clone, PartialEq, ::prost::Message)]
700pub struct NetworkPolicyIngressRule {
701    /// List of ports which should be made accessible on the pods selected for this rule.
702    /// Each item in this list is combined using a logical OR.
703    /// If this field is empty or missing, this rule matches all ports (traffic not restricted by port).
704    /// If this field is present and contains at least one item, then this rule allows traffic
705    /// only if the traffic matches at least one port in the list.
706    /// +optional
707    /// +listType=atomic
708    #[prost(message, repeated, tag = "1")]
709    pub ports: ::prost::alloc::vec::Vec<NetworkPolicyPort>,
710    /// List of sources which should be able to access the pods selected for this rule.
711    /// Items in this list are combined using a logical OR operation.
712    /// If this field is empty or missing, this rule matches all sources (traffic not restricted by source).
713    /// If this field is present and contains at least one item, this rule allows traffic only if the
714    /// traffic matches at least one item in the from list.
715    /// +optional
716    /// +listType=atomic
717    #[prost(message, repeated, tag = "2")]
718    pub from: ::prost::alloc::vec::Vec<NetworkPolicyPeer>,
719}
720/// DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList.
721/// Network Policy List is a list of NetworkPolicy objects.
722#[derive(Clone, PartialEq, ::prost::Message)]
723pub struct NetworkPolicyList {
724    /// Standard list metadata.
725    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
726    /// +optional
727    #[prost(message, optional, tag = "1")]
728    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
729    /// Items is a list of schema objects.
730    #[prost(message, repeated, tag = "2")]
731    pub items: ::prost::alloc::vec::Vec<NetworkPolicy>,
732}
733/// DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.
734#[derive(Clone, PartialEq, ::prost::Message)]
735pub struct NetworkPolicyPeer {
736    /// This is a label selector which selects Pods. This field follows standard label
737    /// selector semantics; if present but empty, it selects all pods.
738    ///
739    /// If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects
740    /// the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.
741    /// Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.
742    /// +optional
743    #[prost(message, optional, tag = "1")]
744    pub pod_selector:
745        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
746    /// Selects Namespaces using cluster-scoped labels. This field follows standard label
747    /// selector semantics; if present but empty, it selects all namespaces.
748    ///
749    /// If PodSelector is also set, then the NetworkPolicyPeer as a whole selects
750    /// the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.
751    /// Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.
752    /// +optional
753    #[prost(message, optional, tag = "2")]
754    pub namespace_selector:
755        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
756    /// IPBlock defines policy on a particular IPBlock. If this field is set then
757    /// neither of the other fields can be.
758    /// +optional
759    #[prost(message, optional, tag = "3")]
760    pub ip_block: ::core::option::Option<IpBlock>,
761}
762/// DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.
763#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
764pub struct NetworkPolicyPort {
765    /// Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match.
766    /// If not specified, this field defaults to TCP.
767    /// +optional
768    #[prost(string, optional, tag = "1")]
769    pub protocol: ::core::option::Option<::prost::alloc::string::String>,
770    /// The port on the given protocol. This can either be a numerical or named
771    /// port on a pod. If this field is not provided, this matches all port names and
772    /// numbers.
773    /// If present, only traffic on the specified protocol AND port will be matched.
774    /// +optional
775    #[prost(message, optional, tag = "2")]
776    pub port: ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
777    /// If set, indicates that the range of ports from port to endPort, inclusive,
778    /// should be allowed by the policy. This field cannot be defined if the port field
779    /// is not defined or if the port field is defined as a named (string) port.
780    /// The endPort must be equal or greater than port.
781    /// +optional
782    #[prost(int32, optional, tag = "3")]
783    pub end_port: ::core::option::Option<i32>,
784}
785/// DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.
786#[derive(Clone, PartialEq, ::prost::Message)]
787pub struct NetworkPolicySpec {
788    /// Selects the pods to which this NetworkPolicy object applies.  The array of ingress rules
789    /// is applied to any pods selected by this field. Multiple network policies can select the
790    /// same set of pods.  In this case, the ingress rules for each are combined additively.
791    /// This field is NOT optional and follows standard label selector semantics.
792    /// An empty podSelector matches all pods in this namespace.
793    #[prost(message, optional, tag = "1")]
794    pub pod_selector:
795        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
796    /// List of ingress rules to be applied to the selected pods.
797    /// Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod
798    /// OR if the traffic source is the pod's local node,
799    /// OR if the traffic matches at least one ingress rule across all of the NetworkPolicy
800    /// objects whose podSelector matches the pod.
801    /// If this field is empty then this NetworkPolicy does not allow any traffic
802    /// (and serves solely to ensure that the pods it selects are isolated by default).
803    /// +optional
804    /// +listType=atomic
805    #[prost(message, repeated, tag = "2")]
806    pub ingress: ::prost::alloc::vec::Vec<NetworkPolicyIngressRule>,
807    /// List of egress rules to be applied to the selected pods. Outgoing traffic is
808    /// allowed if there are no NetworkPolicies selecting the pod (and cluster policy
809    /// otherwise allows the traffic), OR if the traffic matches at least one egress rule
810    /// across all of the NetworkPolicy objects whose podSelector matches the pod. If
811    /// this field is empty then this NetworkPolicy limits all outgoing traffic (and serves
812    /// solely to ensure that the pods it selects are isolated by default).
813    /// This field is beta-level in 1.8
814    /// +optional
815    /// +listType=atomic
816    #[prost(message, repeated, tag = "3")]
817    pub egress: ::prost::alloc::vec::Vec<NetworkPolicyEgressRule>,
818    /// List of rule types that the NetworkPolicy relates to.
819    /// Valid options are \["Ingress"\], \["Egress"\], or \["Ingress", "Egress"\].
820    /// If this field is not specified, it will default based on the existence of Ingress or Egress rules;
821    /// policies that contain an Egress section are assumed to affect Egress, and all policies
822    /// (whether or not they contain an Ingress section) are assumed to affect Ingress.
823    /// If you want to write an egress-only policy, you must explicitly specify policyTypes \[ "Egress" \].
824    /// Likewise, if you want to write a policy that specifies that no egress is allowed,
825    /// you must specify a policyTypes value that include "Egress" (since such a policy would not include
826    /// an Egress section and would otherwise default to just \[ "Ingress" \]).
827    /// This field is beta-level in 1.8
828    /// +optional
829    /// +listType=atomic
830    #[prost(string, repeated, tag = "4")]
831    pub policy_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
832}
833/// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for
834/// more information.
835/// ReplicaSet ensures that a specified number of pod replicas are running at any given time.
836#[derive(Clone, PartialEq, ::prost::Message)]
837pub struct ReplicaSet {
838    /// If the Labels of a ReplicaSet are empty, they are defaulted to
839    /// be the same as the Pod(s) that the ReplicaSet manages.
840    /// Standard object's metadata. More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
841    /// +optional
842    #[prost(message, optional, tag = "1")]
843    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
844    /// Spec defines the specification of the desired behavior of the ReplicaSet.
845    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
846    /// +optional
847    #[prost(message, optional, tag = "2")]
848    pub spec: ::core::option::Option<ReplicaSetSpec>,
849    /// Status is the most recently observed status of the ReplicaSet.
850    /// This data may be out of date by some window of time.
851    /// Populated by the system.
852    /// Read-only.
853    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
854    /// +optional
855    #[prost(message, optional, tag = "3")]
856    pub status: ::core::option::Option<ReplicaSetStatus>,
857}
858/// ReplicaSetCondition describes the state of a replica set at a certain point.
859#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
860pub struct ReplicaSetCondition {
861    /// Type of replica set condition.
862    #[prost(string, optional, tag = "1")]
863    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
864    /// Status of the condition, one of True, False, Unknown.
865    #[prost(string, optional, tag = "2")]
866    pub status: ::core::option::Option<::prost::alloc::string::String>,
867    /// The last time the condition transitioned from one status to another.
868    /// +optional
869    #[prost(message, optional, tag = "3")]
870    pub last_transition_time:
871        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
872    /// The reason for the condition's last transition.
873    /// +optional
874    #[prost(string, optional, tag = "4")]
875    pub reason: ::core::option::Option<::prost::alloc::string::String>,
876    /// A human readable message indicating details about the transition.
877    /// +optional
878    #[prost(string, optional, tag = "5")]
879    pub message: ::core::option::Option<::prost::alloc::string::String>,
880}
881/// ReplicaSetList is a collection of ReplicaSets.
882#[derive(Clone, PartialEq, ::prost::Message)]
883pub struct ReplicaSetList {
884    /// Standard list metadata.
885    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds>
886    /// +optional
887    #[prost(message, optional, tag = "1")]
888    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
889    /// List of ReplicaSets.
890    /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicaset>
891    #[prost(message, repeated, tag = "2")]
892    pub items: ::prost::alloc::vec::Vec<ReplicaSet>,
893}
894/// ReplicaSetSpec is the specification of a ReplicaSet.
895#[derive(Clone, PartialEq, ::prost::Message)]
896pub struct ReplicaSetSpec {
897    /// Replicas is the number of desired pods.
898    /// This is a pointer to distinguish between explicit zero and unspecified.
899    /// Defaults to 1.
900    /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicaset>
901    /// +optional
902    #[prost(int32, optional, tag = "1")]
903    pub replicas: ::core::option::Option<i32>,
904    /// Minimum number of seconds for which a newly created pod should be ready
905    /// without any of its container crashing, for it to be considered available.
906    /// Defaults to 0 (pod will be considered available as soon as it is ready)
907    /// +optional
908    #[prost(int32, optional, tag = "4")]
909    pub min_ready_seconds: ::core::option::Option<i32>,
910    /// Selector is a label query over pods that should match the replica count.
911    /// If the selector is empty, it is defaulted to the labels present on the pod template.
912    /// Label keys and values that must match in order to be controlled by this replica set.
913    /// More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors>
914    /// +optional
915    #[prost(message, optional, tag = "2")]
916    pub selector:
917        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
918    /// Template is the object that describes the pod that will be created if
919    /// insufficient replicas are detected.
920    /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/#pod-template>
921    /// +optional
922    #[prost(message, optional, tag = "3")]
923    pub template: ::core::option::Option<super::super::core::v1::PodTemplateSpec>,
924}
925/// ReplicaSetStatus represents the current status of a ReplicaSet.
926#[derive(Clone, PartialEq, ::prost::Message)]
927pub struct ReplicaSetStatus {
928    /// Replicas is the most recently observed number of non-terminating pods.
929    /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicaset>
930    #[prost(int32, optional, tag = "1")]
931    pub replicas: ::core::option::Option<i32>,
932    /// The number of non-terminating pods that have labels matching the labels of the pod template of the replicaset.
933    /// +optional
934    #[prost(int32, optional, tag = "2")]
935    pub fully_labeled_replicas: ::core::option::Option<i32>,
936    /// The number of non-terminating pods targeted by this ReplicaSet with a Ready Condition.
937    /// +optional
938    #[prost(int32, optional, tag = "4")]
939    pub ready_replicas: ::core::option::Option<i32>,
940    /// The number of available non-terminating pods (ready for at least minReadySeconds) for this replica set.
941    /// +optional
942    #[prost(int32, optional, tag = "5")]
943    pub available_replicas: ::core::option::Option<i32>,
944    /// The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp
945    /// and have not yet reached the Failed or Succeeded .status.phase.
946    ///
947    /// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default).
948    /// +optional
949    #[prost(int32, optional, tag = "7")]
950    pub terminating_replicas: ::core::option::Option<i32>,
951    /// ObservedGeneration reflects the generation of the most recently observed ReplicaSet.
952    /// +optional
953    #[prost(int64, optional, tag = "3")]
954    pub observed_generation: ::core::option::Option<i64>,
955    /// Represents the latest available observations of a replica set's current state.
956    /// +optional
957    /// +patchMergeKey=type
958    /// +patchStrategy=merge
959    /// +listType=map
960    /// +listMapKey=type
961    #[prost(message, repeated, tag = "6")]
962    pub conditions: ::prost::alloc::vec::Vec<ReplicaSetCondition>,
963}
964/// DEPRECATED.
965#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
966pub struct RollbackConfig {
967    /// The revision to rollback to. If set to 0, rollback to the last revision.
968    /// +optional
969    #[prost(int64, optional, tag = "1")]
970    pub revision: ::core::option::Option<i64>,
971}
972/// Spec to control the desired behavior of daemon set rolling update.
973#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
974pub struct RollingUpdateDaemonSet {
975    /// The maximum number of DaemonSet pods that can be unavailable during the
976    /// update. Value can be an absolute number (ex: 5) or a percentage of total
977    /// number of DaemonSet pods at the start of the update (ex: 10%). Absolute
978    /// number is calculated from percentage by rounding up.
979    /// This cannot be 0 if MaxSurge is 0
980    /// Default value is 1.
981    /// Example: when this is set to 30%, at most 30% of the total number of nodes
982    /// that should be running the daemon pod (i.e. status.desiredNumberScheduled)
983    /// can have their pods stopped for an update at any given time. The update
984    /// starts by stopping at most 30% of those DaemonSet pods and then brings
985    /// up new DaemonSet pods in their place. Once the new pods are available,
986    /// it then proceeds onto other DaemonSet pods, thus ensuring that at least
987    /// 70% of original number of DaemonSet pods are available at all times during
988    /// the update.
989    /// +optional
990    #[prost(message, optional, tag = "1")]
991    pub max_unavailable:
992        ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
993    /// The maximum number of nodes with an existing available DaemonSet pod that
994    /// can have an updated DaemonSet pod during during an update.
995    /// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
996    /// This can not be 0 if MaxUnavailable is 0.
997    /// Absolute number is calculated from percentage by rounding up to a minimum of 1.
998    /// Default value is 0.
999    /// Example: when this is set to 30%, at most 30% of the total number of nodes
1000    /// that should be running the daemon pod (i.e. status.desiredNumberScheduled)
1001    /// can have their a new pod created before the old pod is marked as deleted.
1002    /// The update starts by launching new pods on 30% of nodes. Once an updated
1003    /// pod is available (Ready for at least minReadySeconds) the old DaemonSet pod
1004    /// on that node is marked deleted. If the old pod becomes unavailable for any
1005    /// reason (Ready transitions to false, is evicted, or is drained) an updated
1006    /// pod is immediately created on that node without considering surge limits.
1007    /// Allowing surge implies the possibility that the resources consumed by the
1008    /// daemonset on any given node can double if the readiness check fails, and
1009    /// so resource intensive daemonsets should take into account that they may
1010    /// cause evictions during disruption.
1011    /// This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.
1012    /// +optional
1013    #[prost(message, optional, tag = "2")]
1014    pub max_surge: ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
1015}
1016/// Spec to control the desired behavior of rolling update.
1017#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1018pub struct RollingUpdateDeployment {
1019    /// The maximum number of pods that can be unavailable during the update.
1020    /// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
1021    /// Absolute number is calculated from percentage by rounding down.
1022    /// This can not be 0 if MaxSurge is 0.
1023    /// By default, a fixed value of 1 is used.
1024    /// Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods
1025    /// immediately when the rolling update starts. Once new pods are ready, old RC
1026    /// can be scaled down further, followed by scaling up the new RC, ensuring
1027    /// that the total number of pods available at all times during the update is at
1028    /// least 70% of desired pods.
1029    /// +optional
1030    #[prost(message, optional, tag = "1")]
1031    pub max_unavailable:
1032        ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
1033    /// The maximum number of pods that can be scheduled above the desired number of
1034    /// pods.
1035    /// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
1036    /// This can not be 0 if MaxUnavailable is 0.
1037    /// Absolute number is calculated from percentage by rounding up.
1038    /// By default, a value of 1 is used.
1039    /// Example: when this is set to 30%, the new RC can be scaled up immediately when
1040    /// the rolling update starts, such that the total number of old and new pods do not exceed
1041    /// 130% of desired pods. Once old pods have been killed,
1042    /// new RC can be scaled up further, ensuring that total number of pods running
1043    /// at any time during the update is at most 130% of desired pods.
1044    /// +optional
1045    #[prost(message, optional, tag = "2")]
1046    pub max_surge: ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
1047}
1048/// represents a scaling request for a resource.
1049#[derive(Clone, PartialEq, ::prost::Message)]
1050pub struct Scale {
1051    /// Standard object metadata; More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.>
1052    /// +optional
1053    #[prost(message, optional, tag = "1")]
1054    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
1055    /// defines the behavior of the scale. More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.>
1056    /// +optional
1057    #[prost(message, optional, tag = "2")]
1058    pub spec: ::core::option::Option<ScaleSpec>,
1059    /// current status of the scale. More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.> Read-only.
1060    /// +optional
1061    #[prost(message, optional, tag = "3")]
1062    pub status: ::core::option::Option<ScaleStatus>,
1063}
1064/// describes the attributes of a scale subresource
1065#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1066pub struct ScaleSpec {
1067    /// desired number of instances for the scaled object.
1068    /// +optional
1069    /// +k8s:optional
1070    /// +default=0
1071    /// +k8s:minimum=0
1072    #[prost(int32, optional, tag = "1")]
1073    pub replicas: ::core::option::Option<i32>,
1074}
1075/// represents the current status of a scale subresource.
1076#[derive(Clone, PartialEq, ::prost::Message)]
1077pub struct ScaleStatus {
1078    /// actual number of observed instances of the scaled object.
1079    #[prost(int32, optional, tag = "1")]
1080    pub replicas: ::core::option::Option<i32>,
1081    /// selector is a label query over pods that should match the replicas count. More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/>
1082    /// +optional
1083    /// +mapType=atomic
1084    #[prost(btree_map = "string, string", tag = "2")]
1085    pub selector:
1086        ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1087    /// label selector for pods that should match the replicas count. This is a serializated
1088    /// version of both map-based and more expressive set-based selectors. This is done to
1089    /// avoid introspection in the clients. The string will be in the same format as the
1090    /// query-param syntax. If the target type only supports map-based selectors, both this
1091    /// field and map-based selector field are populated.
1092    /// More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors>
1093    /// +optional
1094    #[prost(string, optional, tag = "3")]
1095    pub target_selector: ::core::option::Option<::prost::alloc::string::String>,
1096}