Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
## Unreleased

### Breaking Changes

#### Billing

- Remove deprecated fields, messages, and enums from billing v1 protos:
`SKUConfig`, `SharedSKUBudget`, `PricingTier`, and `TieredPricingRate`
in `services/contract/v1/pricing_config.proto`; `BillingChannel`,
`ExternalBillingProvider`, and `Address` in
`services/contract/v1/billing_config.proto`; `FeatureOption` and
`FeatureOptions` in `contract_metadata.proto`; `SKUUsageSummary` and
`SharedBudgetUsageSummary` in `endpoint_usage_pricer.proto`; the legacy
`Address` in `billing_details.proto`; and deprecated response fields
`seats` and `contracts`. All removed field numbers and names are now reserved.

## 0.13.0

### New Features ✨
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,25 +1,14 @@
syntax = "proto3";

Check failure on line 1 in proto/sentry_protos/billing/v1/services/billing_details/v1/billing_details.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present message "Address" was deleted from file.

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;
string postal_code = 4;
string address_line_1 = 5;
string address_line_2 = 6;
string address_line_3 = 7;
}

message BillingDetails {
Address address = 1 [deprecated = true];
reserved 1;
reserved "address";
string display_address = 2;
optional string company_name = 3;
optional string billing_email = 4;
sentry_protos.billing.v1.common.v1.Address billing_address = 5;
}

Check failure on line 14 in proto/sentry_protos/billing/v1/services/billing_details/v1/billing_details.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present field "1" with name "address" on message "BillingDetails" was deleted.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
syntax = "proto3";

Check failure on line 1 in proto/sentry_protos/billing/v1/services/contract/v1/billing_config.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present message "Address" was deleted from file.

Check failure on line 1 in proto/sentry_protos/billing/v1/services/contract/v1/billing_config.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present enum "ExternalBillingProvider" was deleted from file.

Check failure on line 1 in proto/sentry_protos/billing/v1/services/contract/v1/billing_config.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present enum "BillingChannel" was deleted from file.

package sentry_protos.billing.v1.services.contract.v1;

Expand All @@ -16,45 +16,9 @@
BILLING_TYPE_PARTNER = 3;
}

// The channel through which the contract is billed.
enum BillingChannel {
option deprecated = true;

BILLING_CHANNEL_UNSPECIFIED = 0;
BILLING_CHANNEL_SELF_SERVE = 1;
BILLING_CHANNEL_SALES = 2;
BILLING_CHANNEL_PARTNER = 3;
}

// The external billing provider used to process payments for the contract.
enum ExternalBillingProvider {
option deprecated = true;

EXTERNAL_BILLING_PROVIDER_UNSPECIFIED = 0;
EXTERNAL_BILLING_PROVIDER_STRIPE = 1;
EXTERNAL_BILLING_PROVIDER_VERCEL = 2;
}

message Address {
option deprecated = true;

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;
}

message BillingConfig {
BillingType billing_type = 1;

// Remaining fields are deprecated
BillingChannel channel = 2 [deprecated = true];
ExternalBillingProvider external_billing_provider = 3 [deprecated = true];
Address address = 4 [deprecated = true];
// Use PricingConfig.billing_period_start_date and PricingConfig.billing_period_end_date
Date contract_start_date = 5 [deprecated = true];
Date contract_end_date = 6 [deprecated = true];
reserved 2 to 6;
reserved "channel", "external_billing_provider", "address", "contract_start_date", "contract_end_date";
}

Check failure on line 24 in proto/sentry_protos/billing/v1/services/contract/v1/billing_config.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present field "6" with name "contract_end_date" on message "BillingConfig" was deleted.

Check failure on line 24 in proto/sentry_protos/billing/v1/services/contract/v1/billing_config.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present field "5" with name "contract_start_date" on message "BillingConfig" was deleted.

Check failure on line 24 in proto/sentry_protos/billing/v1/services/contract/v1/billing_config.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present field "4" with name "address" on message "BillingConfig" was deleted.

Check failure on line 24 in proto/sentry_protos/billing/v1/services/contract/v1/billing_config.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present field "3" with name "external_billing_provider" on message "BillingConfig" was deleted.

Check failure on line 24 in proto/sentry_protos/billing/v1/services/contract/v1/billing_config.proto

View workflow job for this annotation

GitHub Actions / buf-checks

Previously present field "2" with name "channel" on message "BillingConfig" was deleted.
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,6 @@ message OptionValue {
}
}

message FeatureOption {
option deprecated = true;

string key = 1;
bool enabled = 2;
}

message FeatureOptions {
option deprecated = true;

repeated FeatureOption options = 1;
}

message MetadataOption {
string key = 1;
OptionValue value = 2;
Expand All @@ -43,10 +30,6 @@ message ContractMetadata {
MetadataOptions custom_options = 6;
sentry_protos.billing.v1.FeatureOptions billing_features = 7;
string package_uid = 9;

uint64 package_id = 8 [deprecated = true];
// Includes information like plan ID, tier, etc.
MetadataOptions package_metadata = 4 [deprecated = true];
// Entitlements, used in frontend features or gating access to certain features.
FeatureOptions features = 5 [deprecated = true]; //DEPRECATED: use billing_features instead
reserved 4, 5, 8;
reserved "package_metadata", "features", "package_id";
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ syntax = "proto3";
package sentry_protos.billing.v1.services.contract.v1;

import "google/protobuf/timestamp.proto";
import "sentry_protos/billing/v1/services/contract/v1/contract.proto";

message GetUninvoicedContractsRequest {
// Returns Contracts whose current billing period ends before this time and
Expand All @@ -19,7 +18,8 @@ message GetUninvoicedContractsRequest {
}

message GetUninvoicedContractsResponse {
repeated Contract contracts = 1 [deprecated = true]; //DEPRECATED: use contract_ids instead
reserved 1;
reserved "contracts";
// True if additional matching contracts existed beyond max_items and were
// not included in this response.
bool truncated = 2;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,52 +5,6 @@ package sentry_protos.billing.v1.services.contract.v1;
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
import "sentry_protos/billing/v1/services/contract/v1/billing_config.proto";
import "sentry_protos/billing/v1/services/contract/v1/sku.proto";
import "sentry_protos/billing/v1/sku.proto";

message PricingTier {
option deprecated = true;

int64 start = 1;
int64 end = 2;
int64 rate_per_unit_cpe = 3;
}

message TieredPricingRate {
option deprecated = true;

repeated PricingTier tiers = 1;
}

message SKUConfig {
option deprecated = true;

SKU sku = 1 [deprecated = true]; //DEPRECATED: use billing_sku instead
// Base price for the SKU (upgraded reserved volumes or add-on activation fees)
uint64 base_price_cents = 2;
optional uint64 payg_budget_cents = 3;
uint64 reserved_volume = 4 [deprecated = true]; //DEPRECATED: use signed reserved_units instead for support for unlimited/reserved budget categories
TieredPricingRate payg_rate = 5;
TieredPricingRate reserved_rate = 6; // for reserved budget SKUs

oneof reserved_units {
bool is_unlimited = 7;
uint64 num_reserved_units = 8; // the type communicates whether the SKU is unlimited or not, additionally reserved budget SKUs have a non-zero reserved_rate in addition to 0 reserved_units
}

sentry_protos.billing.v1.SKU billing_sku = 9;
}

// Represents a budget that is collectively used by one or more SKUs,
// allowing multiple SKUs to draw from the same reserved budget.
message SharedSKUBudget {
option deprecated = true;

repeated SKU skus = 1 [deprecated = true]; //DEPRECATED: use billing_skus instead
uint64 reserved_budget_cents = 2;
uint64 payg_budget_cents = 3;
repeated sentry_protos.billing.v1.SKU billing_skus = 4;
}

message PAYGBudget {
uint64 budget_cents = 1;
Expand Down Expand Up @@ -88,9 +42,6 @@ message PricingConfig {
optional google.protobuf.Timestamp usage_watermark_ts = 9;

repeated UserConfig user_config = 10;

uint64 base_price_cents = 6 [deprecated = true]; // DEPRECATED: use package instead.
repeated SKUConfig sku_configs = 1 [deprecated = true]; // DEPRECATED: use package/user_parameters instead.
repeated SharedSKUBudget shared_sku_budgets = 2 [deprecated = true]; // DEPRECATED: use package/user_parameters instead.
uint64 max_spend_cents = 5 [deprecated = true]; // DEPRECATED: use user_parameters instead
reserved 1, 2, 5, 6;
reserved "sku_configs", "shared_sku_budgets", "max_spend_cents", "base_price_cents";
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ message GetUsageResponse {
// Usage broken down by day, each containing per-category usage.
repeated DailyUsage days = 1;
repeated DailySeatUsage seat_days = 3;

repeated CategorySeatUsage seats = 2 [deprecated = true]; // DEPRECATED: use seat_days
reserved 2;
reserved "seats";

// The latest timestamp of usage data included in this response (inclusive
// — there is at least one row at exactly this timestamp). Callers persist
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ syntax = "proto3";
package sentry_protos.billing.v1.services.usage_pricer.v1;

import "google/protobuf/timestamp.proto";
import "sentry_protos/billing/v1/sku.proto";

message UsagePricerRequest {
uint64 organization_id = 1;
Expand All @@ -16,28 +15,6 @@ message GetPriceForContractRequest {
google.protobuf.Timestamp usage_start_watermark_ts = 2;
}

message SKUUsageSummary {
// use LineItemUsageSummary instead
option deprecated = true;

sentry_protos.billing.v1.SKU sku = 1;
// Net cents consumed by this SKU in the billing period (after credits/trials applied).
uint64 payg_spend_cents = 2;
// Total units consumed by this SKU in the billing period.
uint64 usage_volume = 3;
}

message SharedBudgetUsageSummary {
// use SharedLineItemUsageSummary instead
option deprecated = true;

repeated sentry_protos.billing.v1.SKU skus = 1;
// Net cents consumed across all SKUs in this shared budget (after credits/trials applied).
uint64 payg_spend_cents = 2;
// Per-SKU breakdown within the shared budget.
repeated SKUUsageSummary sku_summaries = 3;
}

message LineItemUsageSummary {
// Refers to uid in sentry_protos.billing.v1.common.v1.LineItemDetails
string line_item_uid = 1;
Expand All @@ -58,11 +35,8 @@ message SharedLineItemUsageSummary {
}

message UsagePricerResponse {
// use line_item_summaries
repeated SKUUsageSummary sku_summaries = 1 [deprecated = true];

// use shared_line_item_summaries
repeated SharedBudgetUsageSummary shared_budget_summaries = 2 [deprecated = true];
reserved 1, 2;
reserved "sku_summaries", "shared_budget_summaries";

repeated LineItemUsageSummary line_item_summaries = 3;

Expand Down
Loading
Loading