import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; import type { IBinaryWriter } from "@protobuf-ts/runtime"; import type { BinaryReadOptions } from "@protobuf-ts/runtime"; import type { IBinaryReader } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { Distribution_Exemplar } from "../../distribution"; /** * Distribution represents a frequency distribution of double-valued sample * points. It contains the size of the population of sample points plus * additional optional information: * * * the arithmetic mean of the samples * * the minimum and maximum of the samples * * the sum-squared-deviation of the samples, used to compute variance * * a histogram of the values of the sample points * * @generated from protobuf message google.api.servicecontrol.v1.Distribution */ export interface Distribution { /** * The total number of samples in the distribution. Must be >= 0. * * @generated from protobuf field: int64 count = 1; */ count: bigint; /** * The arithmetic mean of the samples in the distribution. If `count` is * zero then this field must be zero. * * @generated from protobuf field: double mean = 2; */ mean: number; /** * The minimum of the population of values. Ignored if `count` is zero. * * @generated from protobuf field: double minimum = 3; */ minimum: number; /** * The maximum of the population of values. Ignored if `count` is zero. * * @generated from protobuf field: double maximum = 4; */ maximum: number; /** * The sum of squared deviations from the mean: * Sum[i=1..count]((x_i - mean)^2) * where each x_i is a sample values. If `count` is zero then this field * must be zero, otherwise validation of the request fails. * * @generated from protobuf field: double sum_of_squared_deviation = 5; */ sumOfSquaredDeviation: number; /** * The number of samples in each histogram bucket. `bucket_counts` are * optional. If present, they must sum to the `count` value. * * The buckets are defined below in `bucket_option`. There are N buckets. * `bucket_counts[0]` is the number of samples in the underflow bucket. * `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples * in each of the finite buckets. And `bucket_counts[N] is the number * of samples in the overflow bucket. See the comments of `bucket_option` * below for more details. * * Any suffix of trailing zeros may be omitted. * * @generated from protobuf field: repeated int64 bucket_counts = 6; */ bucketCounts: bigint[]; /** * @generated from protobuf oneof: bucket_option */ bucketOption: { oneofKind: "linearBuckets"; /** * Buckets with constant width. * * @generated from protobuf field: google.api.servicecontrol.v1.Distribution.LinearBuckets linear_buckets = 7; */ linearBuckets: Distribution_LinearBuckets; } | { oneofKind: "exponentialBuckets"; /** * Buckets with exponentially growing width. * * @generated from protobuf field: google.api.servicecontrol.v1.Distribution.ExponentialBuckets exponential_buckets = 8; */ exponentialBuckets: Distribution_ExponentialBuckets; } | { oneofKind: "explicitBuckets"; /** * Buckets with arbitrary user-provided width. * * @generated from protobuf field: google.api.servicecontrol.v1.Distribution.ExplicitBuckets explicit_buckets = 9; */ explicitBuckets: Distribution_ExplicitBuckets; } | { oneofKind: undefined; }; /** * Example points. Must be in increasing order of `value` field. * * @generated from protobuf field: repeated google.api.Distribution.Exemplar exemplars = 10; */ exemplars: Distribution_Exemplar[]; } /** * Describing buckets with constant width. * * @generated from protobuf message google.api.servicecontrol.v1.Distribution.LinearBuckets */ export interface Distribution_LinearBuckets { /** * The number of finite buckets. With the underflow and overflow buckets, * the total number of buckets is `num_finite_buckets` + 2. * See comments on `bucket_options` for details. * * @generated from protobuf field: int32 num_finite_buckets = 1; */ numFiniteBuckets: number; /** * The i'th linear bucket covers the interval * [offset + (i-1) * width, offset + i * width) * where i ranges from 1 to num_finite_buckets, inclusive. * Must be strictly positive. * * @generated from protobuf field: double width = 2; */ width: number; /** * The i'th linear bucket covers the interval * [offset + (i-1) * width, offset + i * width) * where i ranges from 1 to num_finite_buckets, inclusive. * * @generated from protobuf field: double offset = 3; */ offset: number; } /** * Describing buckets with exponentially growing width. * * @generated from protobuf message google.api.servicecontrol.v1.Distribution.ExponentialBuckets */ export interface Distribution_ExponentialBuckets { /** * The number of finite buckets. With the underflow and overflow buckets, * the total number of buckets is `num_finite_buckets` + 2. * See comments on `bucket_options` for details. * * @generated from protobuf field: int32 num_finite_buckets = 1; */ numFiniteBuckets: number; /** * The i'th exponential bucket covers the interval * [scale * growth_factor^(i-1), scale * growth_factor^i) * where i ranges from 1 to num_finite_buckets inclusive. * Must be larger than 1.0. * * @generated from protobuf field: double growth_factor = 2; */ growthFactor: number; /** * The i'th exponential bucket covers the interval * [scale * growth_factor^(i-1), scale * growth_factor^i) * where i ranges from 1 to num_finite_buckets inclusive. * Must be > 0. * * @generated from protobuf field: double scale = 3; */ scale: number; } /** * Describing buckets with arbitrary user-provided width. * * @generated from protobuf message google.api.servicecontrol.v1.Distribution.ExplicitBuckets */ export interface Distribution_ExplicitBuckets { /** * 'bound' is a list of strictly increasing boundaries between * buckets. Note that a list of length N-1 defines N buckets because * of fenceposting. See comments on `bucket_options` for details. * * The i'th finite bucket covers the interval * [bound[i-1], bound[i]) * where i ranges from 1 to bound_size() - 1. Note that there are no * finite buckets at all if 'bound' only contains a single element; in * that special case the single bound defines the boundary between the * underflow and overflow buckets. * * bucket number lower bound upper bound * i == 0 (underflow) -inf bound[i] * 0 < i < bound_size() bound[i-1] bound[i] * i == bound_size() (overflow) bound[i-1] +inf * * @generated from protobuf field: repeated double bounds = 1; */ bounds: number[]; } declare class Distribution$Type extends MessageType { constructor(); create(value?: PartialMessage): Distribution; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Distribution): Distribution; internalBinaryWrite(message: Distribution, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.api.servicecontrol.v1.Distribution */ export declare const Distribution: Distribution$Type; declare class Distribution_LinearBuckets$Type extends MessageType { constructor(); create(value?: PartialMessage): Distribution_LinearBuckets; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Distribution_LinearBuckets): Distribution_LinearBuckets; internalBinaryWrite(message: Distribution_LinearBuckets, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.api.servicecontrol.v1.Distribution.LinearBuckets */ export declare const Distribution_LinearBuckets: Distribution_LinearBuckets$Type; declare class Distribution_ExponentialBuckets$Type extends MessageType { constructor(); create(value?: PartialMessage): Distribution_ExponentialBuckets; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Distribution_ExponentialBuckets): Distribution_ExponentialBuckets; internalBinaryWrite(message: Distribution_ExponentialBuckets, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.api.servicecontrol.v1.Distribution.ExponentialBuckets */ export declare const Distribution_ExponentialBuckets: Distribution_ExponentialBuckets$Type; declare class Distribution_ExplicitBuckets$Type extends MessageType { constructor(); create(value?: PartialMessage): Distribution_ExplicitBuckets; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Distribution_ExplicitBuckets): Distribution_ExplicitBuckets; internalBinaryWrite(message: Distribution_ExplicitBuckets, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.api.servicecontrol.v1.Distribution.ExplicitBuckets */ export declare const Distribution_ExplicitBuckets: Distribution_ExplicitBuckets$Type; export {};