...
1
2// This file was autogenerated by go-to-protobuf. Do not edit it manually!
3
4syntax = "proto2";
5
6package github.com.openshift.api.quota.v1;
7
8import "k8s.io/api/core/v1/generated.proto";
9import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
10import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
11
12// Package-wide variables from generator "generated".
13option go_package = "github.com/openshift/api/quota/v1";
14
15// AppliedClusterResourceQuota mirrors ClusterResourceQuota at a project scope, for projection
16// into a project. It allows a project-admin to know which ClusterResourceQuotas are applied to
17// his project and their associated usage.
18//
19// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
20// +openshift:compatibility-gen:level=1
21message AppliedClusterResourceQuota {
22 // metadata is the standard object's metadata.
23 // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
24 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
25
26 // Spec defines the desired quota
27 optional ClusterResourceQuotaSpec spec = 2;
28
29 // Status defines the actual enforced quota and its current usage
30 optional ClusterResourceQuotaStatus status = 3;
31}
32
33// AppliedClusterResourceQuotaList is a collection of AppliedClusterResourceQuotas
34//
35// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
36// +openshift:compatibility-gen:level=1
37message AppliedClusterResourceQuotaList {
38 // metadata is the standard list's metadata.
39 // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
40 optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
41
42 // Items is a list of AppliedClusterResourceQuota
43 repeated AppliedClusterResourceQuota items = 2;
44}
45
46// ClusterResourceQuota mirrors ResourceQuota at a cluster scope. This object is easily convertible to
47// synthetic ResourceQuota object to allow quota evaluation re-use.
48//
49// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
50// +openshift:compatibility-gen:level=1
51message ClusterResourceQuota {
52 // metadata is the standard object's metadata.
53 // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
54 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
55
56 // Spec defines the desired quota
57 optional ClusterResourceQuotaSpec spec = 2;
58
59 // Status defines the actual enforced quota and its current usage
60 optional ClusterResourceQuotaStatus status = 3;
61}
62
63// ClusterResourceQuotaList is a collection of ClusterResourceQuotas
64//
65// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
66// +openshift:compatibility-gen:level=1
67message ClusterResourceQuotaList {
68 // metadata is the standard list's metadata.
69 // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
70 optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
71
72 // Items is a list of ClusterResourceQuotas
73 repeated ClusterResourceQuota items = 2;
74}
75
76// ClusterResourceQuotaSelector is used to select projects. At least one of LabelSelector or AnnotationSelector
77// must present. If only one is present, it is the only selection criteria. If both are specified,
78// the project must match both restrictions.
79message ClusterResourceQuotaSelector {
80 // LabelSelector is used to select projects by label.
81 // +optional
82 // +nullable
83 optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labels = 1;
84
85 // AnnotationSelector is used to select projects by annotation.
86 // +optional
87 // +nullable
88 map<string, string> annotations = 2;
89}
90
91// ClusterResourceQuotaSpec defines the desired quota restrictions
92message ClusterResourceQuotaSpec {
93 // Selector is the selector used to match projects.
94 // It should only select active projects on the scale of dozens (though it can select
95 // many more less active projects). These projects will contend on object creation through
96 // this resource.
97 optional ClusterResourceQuotaSelector selector = 1;
98
99 // Quota defines the desired quota
100 optional k8s.io.api.core.v1.ResourceQuotaSpec quota = 2;
101}
102
103// ClusterResourceQuotaStatus defines the actual enforced quota and its current usage
104message ClusterResourceQuotaStatus {
105 // Total defines the actual enforced quota and its current usage across all projects
106 optional k8s.io.api.core.v1.ResourceQuotaStatus total = 1;
107
108 // Namespaces slices the usage by project. This division allows for quick resolution of
109 // deletion reconciliation inside of a single project without requiring a recalculation
110 // across all projects. This can be used to pull the deltas for a given project.
111 // +optional
112 // +nullable
113 repeated ResourceQuotaStatusByNamespace namespaces = 2;
114}
115
116// ResourceQuotaStatusByNamespace gives status for a particular project
117message ResourceQuotaStatusByNamespace {
118 // Namespace the project this status applies to
119 optional string namespace = 1;
120
121 // Status indicates how many resources have been consumed by this project
122 optional k8s.io.api.core.v1.ResourceQuotaStatus status = 2;
123}
124
View as plain text