From eecd27fbdbb725fcd1aa325b84c5f24dff0474ce Mon Sep 17 00:00:00 2001 From: Alberto Leal Date: Tue, 10 Nov 2026 14:15:56 -0500 Subject: [PATCH 1/2] feat(billing): Add ResetProductTrial engagement protos Request and response messages for an EngagementService method that clears an organization's ended product trials for one line item, so staff can let it start that product trial again, as Allow Trial does on legacy. Refs REVENG-724 --- .../v1/endpoint_reset_product_trial.proto | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 proto/sentry_protos/billing/v1/services/engagement/v1/endpoint_reset_product_trial.proto diff --git a/proto/sentry_protos/billing/v1/services/engagement/v1/endpoint_reset_product_trial.proto b/proto/sentry_protos/billing/v1/services/engagement/v1/endpoint_reset_product_trial.proto new file mode 100644 index 00000000..c110c07c --- /dev/null +++ b/proto/sentry_protos/billing/v1/services/engagement/v1/endpoint_reset_product_trial.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + +package sentry_protos.billing.v1.services.engagement.v1; + +// Clears an organization's ended product trials for one line item so it can start another. +message ResetProductTrialRequest { + uint64 organization_id = 1; + string line_item_uid = 2; +} + +message ResetProductTrialResponse { + // Whether any ended product trial was cleared. + bool reset = 1; +} From 5bb1df2f94298af47d88168ebdadb6b89d125306 Mon Sep 17 00:00:00 2001 From: "getsantry[bot]" <66042841+getsantry[bot]@users.noreply.github.com> Date: Tue, 10 Nov 2026 19:50:40 +0000 Subject: [PATCH 2/2] chore: Regenerate Rust bindings --- Cargo.lock | 2 +- ...try_protos.billing.v1.services.engagement.v1.rs | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 15958c87..6a666a43 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -717,7 +717,7 @@ checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "sentry_protos" -version = "0.118.0" +version = "0.119.0" dependencies = [ "prost", "prost-types", diff --git a/rust/src/sentry_protos.billing.v1.services.engagement.v1.rs b/rust/src/sentry_protos.billing.v1.services.engagement.v1.rs index ec61c61c..4c0842bd 100644 --- a/rust/src/sentry_protos.billing.v1.services.engagement.v1.rs +++ b/rust/src/sentry_protos.billing.v1.services.engagement.v1.rs @@ -807,6 +807,20 @@ pub struct RedeemPromoCodeResponse { #[prost(string, optional, tag = "6")] pub campaign: ::core::option::Option<::prost::alloc::string::String>, } +/// Clears an organization's ended product trials for one line item so it can start another. +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ResetProductTrialRequest { + #[prost(uint64, tag = "1")] + pub organization_id: u64, + #[prost(string, tag = "2")] + pub line_item_uid: ::prost::alloc::string::String, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ResetProductTrialResponse { + /// Whether any ended product trial was cleared. + #[prost(bool, tag = "1")] + pub reset: bool, +} /// Clears an organization's ended subscription trials so it can start another. #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] pub struct ResetSubscriptionTrialRequest {