Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update generated code for beta #1360

Merged
merged 11 commits into from
Mar 14, 2024
5 changes: 1 addition & 4 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,7 @@ Metrics/BlockLength:
- "test/**/*.rb"

Metrics/ClassLength:
Exclude:
# Test classes get quite large, so exclude the test directory from having
# to adhere to this rule.
- "test/**/*.rb"
Enabled: false

Metrics/MethodLength:
# There's ~2 long methods in `StripeClient` and one in `NestedResource`. If
Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## 10.12.0 - 2024-03-14
* [#1359](https://github.com/stripe/stripe-ruby/pull/1359) Update generated code
* Add support for new resources `Issuing.PersonalizationDesign` and `Issuing.PhysicalBundle`
* Add support for `create`, `list`, `retrieve`, and `update` methods on resource `PersonalizationDesign`
* Add support for `list` and `retrieve` methods on resource `PhysicalBundle`
* [#1354](https://github.com/stripe/stripe-ruby/pull/1354) Refactor after SDK based generation pattern
* [#1347](https://github.com/stripe/stripe-ruby/pull/1347) Reorder methods with lexographical sort
* [#1355](https://github.com/stripe/stripe-ruby/pull/1355) Disable Metrics/ClassLength
* [#1351](https://github.com/stripe/stripe-ruby/pull/1351) Update CHANGELOG.md

## 10.12.0-beta.1 - 2024-02-29
* [#1352](https://github.com/stripe/stripe-ruby/pull/1352) Update generated code for beta
Release specs are identical.
Expand Down
2 changes: 1 addition & 1 deletion OPENAPI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v857
v879
13 changes: 8 additions & 5 deletions lib/stripe/object_types.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true

# rubocop:disable Metrics/MethodLength
Expand All @@ -11,9 +10,9 @@ def self.object_names_to_classes
# data structures
ListObject.object_name => ListObject,
SearchResultObject.object_name => SearchResultObject,

# business objects
File.object_name_alt => File,

# The beginning of the section generated from our OpenAPI spec
Account.object_name => Account,
AccountLink.object_name => AccountLink,
AccountNotice.object_name => AccountNotice,
Expand All @@ -25,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,
Expand Down Expand Up @@ -61,8 +64,7 @@ def self.object_names_to_classes
FinancialConnections::AccountInferredBalance.object_name =>
FinancialConnections::AccountInferredBalance,
FinancialConnections::AccountOwner.object_name => FinancialConnections::AccountOwner,
FinancialConnections::AccountOwnership.object_name =>
FinancialConnections::AccountOwnership,
FinancialConnections::AccountOwnership.object_name => FinancialConnections::AccountOwnership,
FinancialConnections::Session.object_name => FinancialConnections::Session,
FinancialConnections::Transaction.object_name => FinancialConnections::Transaction,
FundingInstructions.object_name => FundingInstructions,
Expand Down Expand Up @@ -152,6 +154,7 @@ def self.object_names_to_classes
UsageRecord.object_name => UsageRecord,
UsageRecordSummary.object_name => UsageRecordSummary,
WebhookEndpoint.object_name => WebhookEndpoint,
# The end of the section generated from our OpenAPI spec
}
end
end
Expand Down
4 changes: 4 additions & 0 deletions lib/stripe/resources.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/resources/account.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ class Account < APIResource
extend Stripe::APIOperations::Create
include Stripe::APIOperations::Delete
extend Stripe::APIOperations::List
include Stripe::APIOperations::Save
extend Stripe::APIOperations::NestedResource
include Stripe::APIOperations::Save

OBJECT_NAME = "account"
def self.object_name
Expand Down
83 changes: 83 additions & 0 deletions lib/stripe/resources/billing/meter.rb
Original file line number Diff line number Diff line change
@@ -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/%<id>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/%<id>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/%<id>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/%<id>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/%<id>s", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end
end
end
end
27 changes: 27 additions & 0 deletions lib/stripe/resources/billing/meter_event.rb
Original file line number Diff line number Diff line change
@@ -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
26 changes: 26 additions & 0 deletions lib/stripe/resources/billing/meter_event_adjustment.rb
Original file line number Diff line number Diff line change
@@ -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
15 changes: 15 additions & 0 deletions lib/stripe/resources/billing/meter_event_summary.rb
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion lib/stripe/resources/charge.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ module Stripe
class Charge < APIResource
extend Stripe::APIOperations::Create
extend Stripe::APIOperations::List
extend Stripe::APIOperations::NestedResource
extend Stripe::APIOperations::Search
include Stripe::APIOperations::Save
extend Stripe::APIOperations::NestedResource

OBJECT_NAME = "charge"
def self.object_name
Expand Down
21 changes: 21 additions & 0 deletions lib/stripe/resources/confirmation_token.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,26 @@ class ConfirmationToken < APIResource
def self.object_name
"confirmation_token"
end

def test_helpers
TestHelpers.new(self)
end

class TestHelpers < APIResourceTestHelpers
RESOURCE_CLASS = ConfirmationToken
def self.resource_class
"ConfirmationToken"
end

# Creates a test mode Confirmation Token server side for your integration tests.
def self.create(params = {}, opts = {})
request_stripe_object(
method: :post,
path: "/v1/test_helpers/confirmation_tokens",
params: params,
opts: opts
)
end
end
end
end
2 changes: 1 addition & 1 deletion lib/stripe/resources/customer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ class Customer < APIResource
extend Stripe::APIOperations::Create
include Stripe::APIOperations::Delete
extend Stripe::APIOperations::List
extend Stripe::APIOperations::NestedResource
extend Stripe::APIOperations::Search
include Stripe::APIOperations::Save
extend Stripe::APIOperations::NestedResource

OBJECT_NAME = "customer"
def self.object_name
Expand Down
62 changes: 61 additions & 1 deletion lib/stripe/resources/invoice.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ class Invoice < APIResource
extend Stripe::APIOperations::Create
include Stripe::APIOperations::Delete
extend Stripe::APIOperations::List
extend Stripe::APIOperations::NestedResource
extend Stripe::APIOperations::Search
include Stripe::APIOperations::Save
extend Stripe::APIOperations::NestedResource

OBJECT_NAME = "invoice"
def self.object_name
Expand All @@ -49,6 +49,26 @@ def self.object_name

nested_resource_class_methods :payment, operations: %i[retrieve list]

# Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.
def add_lines(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/invoices/%<invoice>s/add_lines", { invoice: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end

# Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.
def self.add_lines(invoice, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/invoices/%<invoice>s/add_lines", { invoice: CGI.escape(invoice) }),
params: params,
opts: opts
)
end

# Attaches a PaymentIntent to the invoice, adding it to the list of payments.
# When the PaymentIntent's status changes to succeeded, the payment is credited
# to the invoice, increasing its amount_paid. When the invoice is fully paid, the
Expand Down Expand Up @@ -199,6 +219,26 @@ def self.pay(invoice, params = {}, opts = {})
)
end

# Removes multiple line items from an invoice. This is only possible when an invoice is still a draft.
def remove_lines(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/invoices/%<invoice>s/remove_lines", { invoice: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end

# Removes multiple line items from an invoice. This is only possible when an invoice is still a draft.
def self.remove_lines(invoice, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/invoices/%<invoice>s/remove_lines", { invoice: CGI.escape(invoice) }),
params: params,
opts: opts
)
end

def self.search(params = {}, opts = {})
request_stripe_object(method: :get, path: "/v1/invoices/search", params: params, opts: opts)
end
Expand Down Expand Up @@ -255,6 +295,26 @@ def self.update(id, params = {}, opts = {})
)
end

# Updates multiple line items on an invoice. This is only possible when an invoice is still a draft.
def update_lines(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/invoices/%<invoice>s/update_lines", { invoice: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end

# Updates multiple line items on an invoice. This is only possible when an invoice is still a draft.
def self.update_lines(invoice, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/invoices/%<invoice>s/update_lines", { invoice: CGI.escape(invoice) }),
params: params,
opts: opts
)
end

# Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://stripe.com/docs/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found.
def void_invoice(params = {}, opts = {})
request_stripe_object(
Expand Down
Loading
Loading