diff --git a/Cargo.lock b/Cargo.lock index ba5c3c8e..ad90a3fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -717,7 +717,7 @@ checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "sentry_protos" -version = "0.8.29" +version = "0.8.30" dependencies = [ "prost", "prost-types", diff --git a/proto/sentry_protos/billing/v1/services/usage/v1/endpoint_usage.proto b/proto/sentry_protos/billing/v1/services/usage/v1/endpoint_usage.proto index 73babbfe..2a3c4673 100644 --- a/proto/sentry_protos/billing/v1/services/usage/v1/endpoint_usage.proto +++ b/proto/sentry_protos/billing/v1/services/usage/v1/endpoint_usage.proto @@ -36,6 +36,12 @@ message GetUsageResponse { repeated DailySeatUsage seat_days = 3; repeated CategorySeatUsage seats = 2 [deprecated = true]; // DEPRECATED: use seat_days + + // The latest timestamp of usage data included in this response (inclusive + // — there is at least one row at exactly this timestamp). Callers persist + // this as the contract's watermark; subsequent queries should resume + // strictly after this timestamp to avoid double-counting the boundary. + optional google.protobuf.Timestamp last_usage_ts = 4; } message GetUsageRequest { diff --git a/rust/src/sentry_protos.billing.v1.services.usage.v1.rs b/rust/src/sentry_protos.billing.v1.services.usage.v1.rs index a170e385..8611ba68 100644 --- a/rust/src/sentry_protos.billing.v1.services.usage.v1.rs +++ b/rust/src/sentry_protos.billing.v1.services.usage.v1.rs @@ -78,6 +78,12 @@ pub struct GetUsageResponse { #[deprecated] #[prost(message, repeated, tag = "2")] pub seats: ::prost::alloc::vec::Vec, + /// The latest timestamp of usage data included in this response (inclusive + /// — there is at least one row at exactly this timestamp). Callers persist + /// this as the contract's watermark; subsequent queries should resume + /// strictly after this timestamp to avoid double-counting the boundary. + #[prost(message, optional, tag = "4")] + pub last_usage_ts: ::core::option::Option<::prost_types::Timestamp>, } #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct GetUsageRequest {