diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index 0963e32fc..32951953e 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v878 \ No newline at end of file +v879 \ No newline at end of file diff --git a/lib/stripe/object_types.rb b/lib/stripe/object_types.rb index d7e365412..3fb708233 100644 --- a/lib/stripe/object_types.rb +++ b/lib/stripe/object_types.rb @@ -24,6 +24,10 @@ def self.object_names_to_classes Balance.object_name => Balance, BalanceTransaction.object_name => BalanceTransaction, BankAccount.object_name => BankAccount, + Billing::Meter.object_name => Billing::Meter, + Billing::MeterEvent.object_name => Billing::MeterEvent, + Billing::MeterEventAdjustment.object_name => Billing::MeterEventAdjustment, + Billing::MeterEventSummary.object_name => Billing::MeterEventSummary, BillingPortal::Configuration.object_name => BillingPortal::Configuration, BillingPortal::Session.object_name => BillingPortal::Session, Capability.object_name => Capability, diff --git a/lib/stripe/resources.rb b/lib/stripe/resources.rb index f738e09b1..b34be48fd 100644 --- a/lib/stripe/resources.rb +++ b/lib/stripe/resources.rb @@ -12,6 +12,10 @@ require "stripe/resources/balance" require "stripe/resources/balance_transaction" require "stripe/resources/bank_account" +require "stripe/resources/billing/meter" +require "stripe/resources/billing/meter_event" +require "stripe/resources/billing/meter_event_adjustment" +require "stripe/resources/billing/meter_event_summary" require "stripe/resources/billing_portal/configuration" require "stripe/resources/billing_portal/session" require "stripe/resources/capability" diff --git a/lib/stripe/resources/billing/meter.rb b/lib/stripe/resources/billing/meter.rb new file mode 100644 index 000000000..49bcf2e0f --- /dev/null +++ b/lib/stripe/resources/billing/meter.rb @@ -0,0 +1,83 @@ +# File generated from our OpenAPI spec +# frozen_string_literal: true + +module Stripe + module Billing + # A billing meter is a resource that allows you to track usage of a particular event. For example, you might create a billing meter to track the number of API calls made by a particular user. You can then use the billing meter to charge the user for the number of API calls they make. + class Meter < APIResource + extend Stripe::APIOperations::Create + extend Stripe::APIOperations::List + extend Stripe::APIOperations::NestedResource + include Stripe::APIOperations::Save + + OBJECT_NAME = "billing.meter" + def self.object_name + "billing.meter" + end + + nested_resource_class_methods :event_summary, + operations: %i[list], + resource_plural: "event_summaries" + + # Creates a billing meter + def self.create(params = {}, opts = {}) + request_stripe_object(method: :post, path: "/v1/billing/meters", params: params, opts: opts) + end + + # Deactivates a billing meter + def deactivate(params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/billing/meters/%s/deactivate", { id: CGI.escape(self["id"]) }), + params: params, + opts: opts + ) + end + + # Deactivates a billing meter + def self.deactivate(id, params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/billing/meters/%s/deactivate", { id: CGI.escape(id) }), + params: params, + opts: opts + ) + end + + # Retrieve a list of billing meters. + def self.list(filters = {}, opts = {}) + request_stripe_object(method: :get, path: "/v1/billing/meters", params: filters, opts: opts) + end + + # Reactivates a billing meter + def reactivate(params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/billing/meters/%s/reactivate", { id: CGI.escape(self["id"]) }), + params: params, + opts: opts + ) + end + + # Reactivates a billing meter + def self.reactivate(id, params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/billing/meters/%s/reactivate", { id: CGI.escape(id) }), + params: params, + opts: opts + ) + end + + # Updates a billing meter + def self.update(id, params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/billing/meters/%s", { id: CGI.escape(id) }), + params: params, + opts: opts + ) + end + end + end +end diff --git a/lib/stripe/resources/billing/meter_event.rb b/lib/stripe/resources/billing/meter_event.rb new file mode 100644 index 000000000..53190ce8a --- /dev/null +++ b/lib/stripe/resources/billing/meter_event.rb @@ -0,0 +1,27 @@ +# File generated from our OpenAPI spec +# frozen_string_literal: true + +module Stripe + module Billing + # A billing meter event represents a customer's usage of a product. Meter events are used to bill a customer based on their usage. + # Meter events are associated with billing meters, which define the shape of the event's payload and how those events are aggregated for billing. + class MeterEvent < APIResource + extend Stripe::APIOperations::Create + + OBJECT_NAME = "billing.meter_event" + def self.object_name + "billing.meter_event" + end + + # Creates a billing meter event + def self.create(params = {}, opts = {}) + request_stripe_object( + method: :post, + path: "/v1/billing/meter_events", + params: params, + opts: opts + ) + end + end + end +end diff --git a/lib/stripe/resources/billing/meter_event_adjustment.rb b/lib/stripe/resources/billing/meter_event_adjustment.rb new file mode 100644 index 000000000..1da80385d --- /dev/null +++ b/lib/stripe/resources/billing/meter_event_adjustment.rb @@ -0,0 +1,26 @@ +# File generated from our OpenAPI spec +# frozen_string_literal: true + +module Stripe + module Billing + # A billing meter event adjustment represents the status of a meter event adjustment. + class MeterEventAdjustment < APIResource + extend Stripe::APIOperations::Create + + OBJECT_NAME = "billing.meter_event_adjustment" + def self.object_name + "billing.meter_event_adjustment" + end + + # Creates a billing meter event adjustment + def self.create(params = {}, opts = {}) + request_stripe_object( + method: :post, + path: "/v1/billing/meter_event_adjustments", + params: params, + opts: opts + ) + end + end + end +end diff --git a/lib/stripe/resources/billing/meter_event_summary.rb b/lib/stripe/resources/billing/meter_event_summary.rb new file mode 100644 index 000000000..0fb71afd5 --- /dev/null +++ b/lib/stripe/resources/billing/meter_event_summary.rb @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec +# frozen_string_literal: true + +module Stripe + module Billing + # A billing meter event summary represents an aggregated view of a customer's billing meter events within a specified timeframe. It indicates how much + # usage was accrued by a customer for that period. + class MeterEventSummary < APIResource + OBJECT_NAME = "billing.meter_event_summary" + def self.object_name + "billing.meter_event_summary" + end + end + end +end