Skip to content

Commit

Permalink
Merge pull request #1360 from stripe/latest-codegen-beta
Browse files Browse the repository at this point in the history
Update generated code for beta
  • Loading branch information
stripe-openapi[bot] authored Mar 14, 2024
2 parents c36c240 + 7ddec7d commit b594bd5
Show file tree
Hide file tree
Showing 26 changed files with 428 additions and 121 deletions.
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

0 comments on commit b594bd5

Please sign in to comment.