From 3733f2b794926c6b29a135a84ca05e4f0f12d78c Mon Sep 17 00:00:00 2001 From: Noah Martin Date: Fri, 1 May 2026 16:14:24 -0700 Subject: [PATCH 1/2] ref: Add address fields to invoice --- Cargo.lock | 2 +- .../billing/v1/common/v1/address.proto | 13 +++++++++++++ .../billing_details/v1/billing_details.proto | 7 ++++++- .../billing/v1/services/contract/v1/invoice.proto | 3 +++ 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 proto/sentry_protos/billing/v1/common/v1/address.proto diff --git a/Cargo.lock b/Cargo.lock index 059871c..eaeef32 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -717,7 +717,7 @@ checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "sentry_protos" -version = "0.8.23" +version = "0.8.24" dependencies = [ "prost", "prost-types", diff --git a/proto/sentry_protos/billing/v1/common/v1/address.proto b/proto/sentry_protos/billing/v1/common/v1/address.proto new file mode 100644 index 0000000..2eaa0ee --- /dev/null +++ b/proto/sentry_protos/billing/v1/common/v1/address.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package sentry_protos.billing.v1.common.v1; + +message Address { + string city = 1; + string region = 2; + string country_code = 3; + string postal_code = 4; + string address_line_1 = 5; + string address_line_2 = 6; + string address_line_3 = 7; +} diff --git a/proto/sentry_protos/billing/v1/services/billing_details/v1/billing_details.proto b/proto/sentry_protos/billing/v1/services/billing_details/v1/billing_details.proto index 0cdddd6..864bef5 100644 --- a/proto/sentry_protos/billing/v1/services/billing_details/v1/billing_details.proto +++ b/proto/sentry_protos/billing/v1/services/billing_details/v1/billing_details.proto @@ -2,7 +2,11 @@ syntax = "proto3"; package sentry_protos.billing.v1.services.billing_details.v1; +import "sentry_protos/billing/v1/common/v1/address.proto"; + message Address { + option deprecated = true; + string city = 1; string region = 2; string country_code = 3; @@ -13,8 +17,9 @@ message Address { } message BillingDetails { - Address address = 1; + Address address = 1 [deprecated = true]; string display_address = 2; optional string company_name = 3; optional string billing_email = 4; + sentry_protos.billing.v1.common.v1.Address billing_address = 5; } diff --git a/proto/sentry_protos/billing/v1/services/contract/v1/invoice.proto b/proto/sentry_protos/billing/v1/services/contract/v1/invoice.proto index 3742f26..ae561dc 100644 --- a/proto/sentry_protos/billing/v1/services/contract/v1/invoice.proto +++ b/proto/sentry_protos/billing/v1/services/contract/v1/invoice.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package sentry_protos.billing.v1.services.contract.v1; import "google/protobuf/timestamp.proto"; +import "sentry_protos/billing/v1/common/v1/address.proto"; // This is not the same as LineItemDetails, it includes // items not related to the package such as tax. @@ -21,4 +22,6 @@ message Invoice { bool paid = 5; google.protobuf.Timestamp date_added = 6; string guid = 7; + bool needs_charged = 8; + sentry_protos.billing.v1.common.v1.Address address = 9; } From 72320b5d48834ef889ca64ba0d98fa988a9b2193 Mon Sep 17 00:00:00 2001 From: "getsantry[bot]" <66042841+getsantry[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 23:18:04 +0000 Subject: [PATCH 2/2] chore: Regenerate Rust bindings --- rust/src/sentry_protos.billing.v1.common.v1.rs | 17 +++++++++++++++++ ...os.billing.v1.services.billing_details.v1.rs | 5 +++++ ...ry_protos.billing.v1.services.contract.v1.rs | 4 ++++ 3 files changed, 26 insertions(+) diff --git a/rust/src/sentry_protos.billing.v1.common.v1.rs b/rust/src/sentry_protos.billing.v1.common.v1.rs index e0d91b6..b8f6699 100644 --- a/rust/src/sentry_protos.billing.v1.common.v1.rs +++ b/rust/src/sentry_protos.billing.v1.common.v1.rs @@ -1,4 +1,21 @@ // This file is @generated by prost-build. +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct Address { + #[prost(string, tag = "1")] + pub city: ::prost::alloc::string::String, + #[prost(string, tag = "2")] + pub region: ::prost::alloc::string::String, + #[prost(string, tag = "3")] + pub country_code: ::prost::alloc::string::String, + #[prost(string, tag = "4")] + pub postal_code: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub address_line_1: ::prost::alloc::string::String, + #[prost(string, tag = "6")] + pub address_line_2: ::prost::alloc::string::String, + #[prost(string, tag = "7")] + pub address_line_3: ::prost::alloc::string::String, +} /// Defines how usage data is transformed into a billable line item through arithmetic operations. #[derive(Clone, PartialEq, ::prost::Message)] pub struct BillableMetric { diff --git a/rust/src/sentry_protos.billing.v1.services.billing_details.v1.rs b/rust/src/sentry_protos.billing.v1.services.billing_details.v1.rs index 2d54390..9e7f12b 100644 --- a/rust/src/sentry_protos.billing.v1.services.billing_details.v1.rs +++ b/rust/src/sentry_protos.billing.v1.services.billing_details.v1.rs @@ -18,6 +18,7 @@ pub struct Address { } #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct BillingDetails { + #[deprecated] #[prost(message, optional, tag = "1")] pub address: ::core::option::Option
, #[prost(string, tag = "2")] @@ -26,6 +27,10 @@ pub struct BillingDetails { pub company_name: ::core::option::Option<::prost::alloc::string::String>, #[prost(string, optional, tag = "4")] pub billing_email: ::core::option::Option<::prost::alloc::string::String>, + #[prost(message, optional, tag = "5")] + pub billing_address: ::core::option::Option< + super::super::super::common::v1::Address, + >, } #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] pub struct GetBillingDetailsRequest { diff --git a/rust/src/sentry_protos.billing.v1.services.contract.v1.rs b/rust/src/sentry_protos.billing.v1.services.contract.v1.rs index 861e553..15673b0 100644 --- a/rust/src/sentry_protos.billing.v1.services.contract.v1.rs +++ b/rust/src/sentry_protos.billing.v1.services.contract.v1.rs @@ -462,6 +462,10 @@ pub struct Invoice { pub date_added: ::core::option::Option<::prost_types::Timestamp>, #[prost(string, tag = "7")] pub guid: ::prost::alloc::string::String, + #[prost(bool, tag = "8")] + pub needs_charged: bool, + #[prost(message, optional, tag = "9")] + pub address: ::core::option::Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct CreateContractRequest {