| // Copyright 2020 The gRPC Authors |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Local copy of Envoy xDS proto file, used for testing only. |
| |
| syntax = "proto3"; |
| |
| package envoy.type.v3; |
| |
| // A fractional percentage is used in cases in which for performance reasons performing floating |
| // point to integer conversions during randomness calculations is undesirable. The message includes |
| // both a numerator and denominator that together determine the final fractional value. |
| // |
| // * **Example**: 1/100 = 1%. |
| // * **Example**: 3/10000 = 0.03%. |
| message FractionalPercent { |
| // Fraction percentages support several fixed denominator values. |
| enum DenominatorType { |
| // 100. |
| // |
| // **Example**: 1/100 = 1%. |
| HUNDRED = 0; |
| |
| // 10,000. |
| // |
| // **Example**: 1/10000 = 0.01%. |
| TEN_THOUSAND = 1; |
| |
| // 1,000,000. |
| // |
| // **Example**: 1/1000000 = 0.0001%. |
| MILLION = 2; |
| } |
| |
| // Specifies the numerator. Defaults to 0. |
| uint32 numerator = 1; |
| |
| // Specifies the denominator. If the denominator specified is less than the numerator, the final |
| // fractional percentage is capped at 1 (100%). |
| DenominatorType denominator = 2; |
| } |