From cf523d889d1ae3292a08642e9898fb7fc3f9b834 Mon Sep 17 00:00:00 2001 From: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com> Date: Tue, 15 Apr 2025 20:21:45 +0000 Subject: [PATCH] Update generated code for v1680 --- OPENAPI_VERSION | 2 +- lib/stripe/resources/checkout/session.rb | 73 +++++++- .../services/checkout/session_service.rb | 73 +++++++- rbi/stripe.rbi | 170 +++++++++++++++++- rbi/stripe/resources/checkout/session.rbi | 84 ++++++++- .../services/checkout/session_service.rbi | 86 ++++++++- 6 files changed, 477 insertions(+), 11 deletions(-) diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index fddebf3d..08e7681c 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v1679 \ No newline at end of file +v1680 \ No newline at end of file diff --git a/lib/stripe/resources/checkout/session.rb b/lib/stripe/resources/checkout/session.rb index ee321272..f9656863 100644 --- a/lib/stripe/resources/checkout/session.rb +++ b/lib/stripe/resources/checkout/session.rb @@ -3496,14 +3496,83 @@ module Stripe @minimum = minimum end end + + class PriceData < Stripe::RequestParams + class ProductData < Stripe::RequestParams + # The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + attr_accessor :description + # A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + attr_accessor :images + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + attr_accessor :metadata + # The product's name, meant to be displayable to the customer. + attr_accessor :name + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + attr_accessor :tax_code + + def initialize(description: nil, images: nil, metadata: nil, name: nil, tax_code: nil) + @description = description + @images = images + @metadata = metadata + @name = name + @tax_code = tax_code + end + end + + class Recurring < Stripe::RequestParams + # Specifies billing frequency. Either `day`, `week`, `month` or `year`. + attr_accessor :interval + # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + attr_accessor :interval_count + + def initialize(interval: nil, interval_count: nil) + @interval = interval + @interval_count = interval_count + end + end + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + attr_accessor :currency + # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + attr_accessor :product + # Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + attr_accessor :recurring + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + attr_accessor :tax_behavior + # A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + attr_accessor :unit_amount + # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + attr_accessor :unit_amount_decimal + + def initialize( + currency: nil, + product: nil, + product_data: nil, + recurring: nil, + tax_behavior: nil, + unit_amount: nil, + unit_amount_decimal: nil + ) + @currency = currency + @product = product + @product_data = product_data + @recurring = recurring + @tax_behavior = tax_behavior + @unit_amount = unit_amount + @unit_amount_decimal = unit_amount_decimal + end + end # When set, provides configuration for this item’s quantity to be adjusted by the customer during Checkout. attr_accessor :adjustable_quantity # ID of an existing line item. attr_accessor :id # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. attr_accessor :metadata - # The ID of the [Price](https://stripe.com/docs/api/prices). + # The ID of the [Price](https://stripe.com/docs/api/prices). One of `price` or `price_data` is required when creating a new line item. attr_accessor :price + # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required when creating a new line item. + attr_accessor :price_data # The quantity of the line item being purchased. attr_accessor :quantity # The [tax rates](https://stripe.com/docs/api/tax_rates) which apply to this line item. @@ -3514,6 +3583,7 @@ module Stripe id: nil, metadata: nil, price: nil, + price_data: nil, quantity: nil, tax_rates: nil ) @@ -3521,6 +3591,7 @@ module Stripe @id = id @metadata = metadata @price = price + @price_data = price_data @quantity = quantity @tax_rates = tax_rates end diff --git a/lib/stripe/services/checkout/session_service.rb b/lib/stripe/services/checkout/session_service.rb index d0c4b6ef..3358f222 100644 --- a/lib/stripe/services/checkout/session_service.rb +++ b/lib/stripe/services/checkout/session_service.rb @@ -2414,14 +2414,83 @@ module Stripe @minimum = minimum end end + + class PriceData < Stripe::RequestParams + class ProductData < Stripe::RequestParams + # The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + attr_accessor :description + # A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + attr_accessor :images + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + attr_accessor :metadata + # The product's name, meant to be displayable to the customer. + attr_accessor :name + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + attr_accessor :tax_code + + def initialize(description: nil, images: nil, metadata: nil, name: nil, tax_code: nil) + @description = description + @images = images + @metadata = metadata + @name = name + @tax_code = tax_code + end + end + + class Recurring < Stripe::RequestParams + # Specifies billing frequency. Either `day`, `week`, `month` or `year`. + attr_accessor :interval + # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + attr_accessor :interval_count + + def initialize(interval: nil, interval_count: nil) + @interval = interval + @interval_count = interval_count + end + end + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + attr_accessor :currency + # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + attr_accessor :product + # Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + attr_accessor :recurring + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + attr_accessor :tax_behavior + # A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + attr_accessor :unit_amount + # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + attr_accessor :unit_amount_decimal + + def initialize( + currency: nil, + product: nil, + product_data: nil, + recurring: nil, + tax_behavior: nil, + unit_amount: nil, + unit_amount_decimal: nil + ) + @currency = currency + @product = product + @product_data = product_data + @recurring = recurring + @tax_behavior = tax_behavior + @unit_amount = unit_amount + @unit_amount_decimal = unit_amount_decimal + end + end # When set, provides configuration for this item’s quantity to be adjusted by the customer during Checkout. attr_accessor :adjustable_quantity # ID of an existing line item. attr_accessor :id # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. attr_accessor :metadata - # The ID of the [Price](https://stripe.com/docs/api/prices). + # The ID of the [Price](https://stripe.com/docs/api/prices). One of `price` or `price_data` is required when creating a new line item. attr_accessor :price + # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required when creating a new line item. + attr_accessor :price_data # The quantity of the line item being purchased. attr_accessor :quantity # The [tax rates](https://stripe.com/docs/api/tax_rates) which apply to this line item. @@ -2432,6 +2501,7 @@ module Stripe id: nil, metadata: nil, price: nil, + price_data: nil, quantity: nil, tax_rates: nil ) @@ -2439,6 +2509,7 @@ module Stripe @id = id @metadata = metadata @price = price + @price_data = price_data @quantity = quantity @tax_rates = tax_rates end diff --git a/rbi/stripe.rbi b/rbi/stripe.rbi index ac0362d4..0a3d5ec2 100644 --- a/rbi/stripe.rbi +++ b/rbi/stripe.rbi @@ -22633,6 +22633,82 @@ module Stripe } def initialize(enabled: nil, maximum: nil, minimum: nil); end end + class PriceData < Stripe::RequestParams + class ProductData < Stripe::RequestParams + # The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + sig { returns(T.nilable(String)) } + attr_accessor :description + # A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :images + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + sig { returns(T.nilable(T::Hash[String, String])) } + attr_accessor :metadata + # The product's name, meant to be displayable to the customer. + sig { returns(String) } + attr_accessor :name + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + sig { returns(T.nilable(String)) } + attr_accessor :tax_code + sig { + params(description: T.nilable(String), images: T.nilable(T::Array[String]), metadata: T.nilable(T::Hash[String, String]), name: String, tax_code: T.nilable(String)).void + } + def initialize( + description: nil, + images: nil, + metadata: nil, + name: nil, + tax_code: nil + ); end + end + class Recurring < Stripe::RequestParams + # Specifies billing frequency. Either `day`, `week`, `month` or `year`. + sig { returns(String) } + attr_accessor :interval + # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + sig { returns(T.nilable(Integer)) } + attr_accessor :interval_count + sig { params(interval: String, interval_count: T.nilable(Integer)).void } + def initialize(interval: nil, interval_count: nil); end + end + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + sig { returns(String) } + attr_accessor :currency + # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + sig { returns(T.nilable(String)) } + attr_accessor :product + # Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + sig { + returns(T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData::ProductData)) + } + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + sig { + returns(T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData::Recurring)) + } + attr_accessor :recurring + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + sig { returns(T.nilable(String)) } + attr_accessor :tax_behavior + # A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + sig { returns(T.nilable(Integer)) } + attr_accessor :unit_amount + # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + sig { returns(T.nilable(String)) } + attr_accessor :unit_amount_decimal + sig { + params(currency: String, product: T.nilable(String), product_data: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData::ProductData), recurring: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData::Recurring), tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void + } + def initialize( + currency: nil, + product: nil, + product_data: nil, + recurring: nil, + tax_behavior: nil, + unit_amount: nil, + unit_amount_decimal: nil + ); end + end # When set, provides configuration for this item’s quantity to be adjusted by the customer during Checkout. sig { returns(T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::AdjustableQuantity)) @@ -22644,9 +22720,12 @@ module Stripe # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. sig { returns(T.nilable(T.nilable(T.any(String, T::Hash[String, String])))) } attr_accessor :metadata - # The ID of the [Price](https://stripe.com/docs/api/prices). + # The ID of the [Price](https://stripe.com/docs/api/prices). One of `price` or `price_data` is required when creating a new line item. sig { returns(T.nilable(String)) } attr_accessor :price + # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required when creating a new line item. + sig { returns(T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData)) } + attr_accessor :price_data # The quantity of the line item being purchased. sig { returns(T.nilable(T.nilable(T.any(String, Integer)))) } attr_accessor :quantity @@ -22654,13 +22733,14 @@ module Stripe sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) } attr_accessor :tax_rates sig { - params(adjustable_quantity: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::AdjustableQuantity), id: T.nilable(String), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), price: T.nilable(String), quantity: T.nilable(T.nilable(T.any(String, Integer))), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void + params(adjustable_quantity: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::AdjustableQuantity), id: T.nilable(String), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), price: T.nilable(String), price_data: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData), quantity: T.nilable(T.nilable(T.any(String, Integer))), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void } def initialize( adjustable_quantity: nil, id: nil, metadata: nil, price: nil, + price_data: nil, quantity: nil, tax_rates: nil ); end @@ -122236,6 +122316,82 @@ module Stripe } def initialize(enabled: nil, maximum: nil, minimum: nil); end end + class PriceData < Stripe::RequestParams + class ProductData < Stripe::RequestParams + # The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + sig { returns(T.nilable(String)) } + attr_accessor :description + # A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :images + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + sig { returns(T.nilable(T::Hash[String, String])) } + attr_accessor :metadata + # The product's name, meant to be displayable to the customer. + sig { returns(String) } + attr_accessor :name + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + sig { returns(T.nilable(String)) } + attr_accessor :tax_code + sig { + params(description: T.nilable(String), images: T.nilable(T::Array[String]), metadata: T.nilable(T::Hash[String, String]), name: String, tax_code: T.nilable(String)).void + } + def initialize( + description: nil, + images: nil, + metadata: nil, + name: nil, + tax_code: nil + ); end + end + class Recurring < Stripe::RequestParams + # Specifies billing frequency. Either `day`, `week`, `month` or `year`. + sig { returns(String) } + attr_accessor :interval + # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + sig { returns(T.nilable(Integer)) } + attr_accessor :interval_count + sig { params(interval: String, interval_count: T.nilable(Integer)).void } + def initialize(interval: nil, interval_count: nil); end + end + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + sig { returns(String) } + attr_accessor :currency + # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + sig { returns(T.nilable(String)) } + attr_accessor :product + # Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + sig { + returns(T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData::ProductData)) + } + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + sig { + returns(T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData::Recurring)) + } + attr_accessor :recurring + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + sig { returns(T.nilable(String)) } + attr_accessor :tax_behavior + # A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + sig { returns(T.nilable(Integer)) } + attr_accessor :unit_amount + # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + sig { returns(T.nilable(String)) } + attr_accessor :unit_amount_decimal + sig { + params(currency: String, product: T.nilable(String), product_data: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData::ProductData), recurring: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData::Recurring), tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void + } + def initialize( + currency: nil, + product: nil, + product_data: nil, + recurring: nil, + tax_behavior: nil, + unit_amount: nil, + unit_amount_decimal: nil + ); end + end # When set, provides configuration for this item’s quantity to be adjusted by the customer during Checkout. sig { returns(T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::AdjustableQuantity)) @@ -122247,9 +122403,14 @@ module Stripe # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. sig { returns(T.nilable(T.nilable(T.any(String, T::Hash[String, String])))) } attr_accessor :metadata - # The ID of the [Price](https://stripe.com/docs/api/prices). + # The ID of the [Price](https://stripe.com/docs/api/prices). One of `price` or `price_data` is required when creating a new line item. sig { returns(T.nilable(String)) } attr_accessor :price + # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required when creating a new line item. + sig { + returns(T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData)) + } + attr_accessor :price_data # The quantity of the line item being purchased. sig { returns(T.nilable(T.nilable(T.any(String, Integer)))) } attr_accessor :quantity @@ -122257,13 +122418,14 @@ module Stripe sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) } attr_accessor :tax_rates sig { - params(adjustable_quantity: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::AdjustableQuantity), id: T.nilable(String), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), price: T.nilable(String), quantity: T.nilable(T.nilable(T.any(String, Integer))), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void + params(adjustable_quantity: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::AdjustableQuantity), id: T.nilable(String), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), price: T.nilable(String), price_data: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData), quantity: T.nilable(T.nilable(T.any(String, Integer))), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void } def initialize( adjustable_quantity: nil, id: nil, metadata: nil, price: nil, + price_data: nil, quantity: nil, tax_rates: nil ); end diff --git a/rbi/stripe/resources/checkout/session.rbi b/rbi/stripe/resources/checkout/session.rbi index a33b5a5f..22d60b6b 100644 --- a/rbi/stripe/resources/checkout/session.rbi +++ b/rbi/stripe/resources/checkout/session.rbi @@ -4010,6 +4010,82 @@ module Stripe } def initialize(enabled: nil, maximum: nil, minimum: nil); end end + class PriceData < Stripe::RequestParams + class ProductData < Stripe::RequestParams + # The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + sig { returns(T.nilable(String)) } + attr_accessor :description + # A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :images + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + sig { returns(T.nilable(T::Hash[String, String])) } + attr_accessor :metadata + # The product's name, meant to be displayable to the customer. + sig { returns(String) } + attr_accessor :name + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + sig { returns(T.nilable(String)) } + attr_accessor :tax_code + sig { + params(description: T.nilable(String), images: T.nilable(T::Array[String]), metadata: T.nilable(T::Hash[String, String]), name: String, tax_code: T.nilable(String)).void + } + def initialize( + description: nil, + images: nil, + metadata: nil, + name: nil, + tax_code: nil + ); end + end + class Recurring < Stripe::RequestParams + # Specifies billing frequency. Either `day`, `week`, `month` or `year`. + sig { returns(String) } + attr_accessor :interval + # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + sig { returns(T.nilable(Integer)) } + attr_accessor :interval_count + sig { params(interval: String, interval_count: T.nilable(Integer)).void } + def initialize(interval: nil, interval_count: nil); end + end + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + sig { returns(String) } + attr_accessor :currency + # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + sig { returns(T.nilable(String)) } + attr_accessor :product + # Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + sig { + returns(T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData::ProductData)) + } + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + sig { + returns(T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData::Recurring)) + } + attr_accessor :recurring + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + sig { returns(T.nilable(String)) } + attr_accessor :tax_behavior + # A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + sig { returns(T.nilable(Integer)) } + attr_accessor :unit_amount + # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + sig { returns(T.nilable(String)) } + attr_accessor :unit_amount_decimal + sig { + params(currency: String, product: T.nilable(String), product_data: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData::ProductData), recurring: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData::Recurring), tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void + } + def initialize( + currency: nil, + product: nil, + product_data: nil, + recurring: nil, + tax_behavior: nil, + unit_amount: nil, + unit_amount_decimal: nil + ); end + end # When set, provides configuration for this item’s quantity to be adjusted by the customer during Checkout. sig { returns(T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::AdjustableQuantity)) @@ -4021,9 +4097,12 @@ module Stripe # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. sig { returns(T.nilable(T.nilable(T.any(String, T::Hash[String, String])))) } attr_accessor :metadata - # The ID of the [Price](https://stripe.com/docs/api/prices). + # The ID of the [Price](https://stripe.com/docs/api/prices). One of `price` or `price_data` is required when creating a new line item. sig { returns(T.nilable(String)) } attr_accessor :price + # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required when creating a new line item. + sig { returns(T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData)) } + attr_accessor :price_data # The quantity of the line item being purchased. sig { returns(T.nilable(T.nilable(T.any(String, Integer)))) } attr_accessor :quantity @@ -4031,13 +4110,14 @@ module Stripe sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) } attr_accessor :tax_rates sig { - params(adjustable_quantity: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::AdjustableQuantity), id: T.nilable(String), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), price: T.nilable(String), quantity: T.nilable(T.nilable(T.any(String, Integer))), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void + params(adjustable_quantity: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::AdjustableQuantity), id: T.nilable(String), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), price: T.nilable(String), price_data: T.nilable(::Stripe::Checkout::Session::UpdateParams::LineItem::PriceData), quantity: T.nilable(T.nilable(T.any(String, Integer))), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void } def initialize( adjustable_quantity: nil, id: nil, metadata: nil, price: nil, + price_data: nil, quantity: nil, tax_rates: nil ); end diff --git a/rbi/stripe/services/checkout/session_service.rbi b/rbi/stripe/services/checkout/session_service.rbi index 9390ffae..60854f34 100644 --- a/rbi/stripe/services/checkout/session_service.rbi +++ b/rbi/stripe/services/checkout/session_service.rbi @@ -2555,6 +2555,82 @@ module Stripe } def initialize(enabled: nil, maximum: nil, minimum: nil); end end + class PriceData < Stripe::RequestParams + class ProductData < Stripe::RequestParams + # The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. + sig { returns(T.nilable(String)) } + attr_accessor :description + # A list of up to 8 URLs of images for this product, meant to be displayable to the customer. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :images + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. + sig { returns(T.nilable(T::Hash[String, String])) } + attr_accessor :metadata + # The product's name, meant to be displayable to the customer. + sig { returns(String) } + attr_accessor :name + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID. + sig { returns(T.nilable(String)) } + attr_accessor :tax_code + sig { + params(description: T.nilable(String), images: T.nilable(T::Array[String]), metadata: T.nilable(T::Hash[String, String]), name: String, tax_code: T.nilable(String)).void + } + def initialize( + description: nil, + images: nil, + metadata: nil, + name: nil, + tax_code: nil + ); end + end + class Recurring < Stripe::RequestParams + # Specifies billing frequency. Either `day`, `week`, `month` or `year`. + sig { returns(String) } + attr_accessor :interval + # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks). + sig { returns(T.nilable(Integer)) } + attr_accessor :interval_count + sig { params(interval: String, interval_count: T.nilable(Integer)).void } + def initialize(interval: nil, interval_count: nil); end + end + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). + sig { returns(String) } + attr_accessor :currency + # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to. One of `product` or `product_data` is required. + sig { returns(T.nilable(String)) } + attr_accessor :product + # Data used to generate a new [Product](https://docs.stripe.com/api/products) object inline. One of `product` or `product_data` is required. + sig { + returns(T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData::ProductData)) + } + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + sig { + returns(T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData::Recurring)) + } + attr_accessor :recurring + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed. + sig { returns(T.nilable(String)) } + attr_accessor :tax_behavior + # A non-negative integer in cents (or local equivalent) representing how much to charge. One of `unit_amount` or `unit_amount_decimal` is required. + sig { returns(T.nilable(Integer)) } + attr_accessor :unit_amount + # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set. + sig { returns(T.nilable(String)) } + attr_accessor :unit_amount_decimal + sig { + params(currency: String, product: T.nilable(String), product_data: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData::ProductData), recurring: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData::Recurring), tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void + } + def initialize( + currency: nil, + product: nil, + product_data: nil, + recurring: nil, + tax_behavior: nil, + unit_amount: nil, + unit_amount_decimal: nil + ); end + end # When set, provides configuration for this item’s quantity to be adjusted by the customer during Checkout. sig { returns(T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::AdjustableQuantity)) @@ -2566,9 +2642,14 @@ module Stripe # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. sig { returns(T.nilable(T.nilable(T.any(String, T::Hash[String, String])))) } attr_accessor :metadata - # The ID of the [Price](https://stripe.com/docs/api/prices). + # The ID of the [Price](https://stripe.com/docs/api/prices). One of `price` or `price_data` is required when creating a new line item. sig { returns(T.nilable(String)) } attr_accessor :price + # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required when creating a new line item. + sig { + returns(T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData)) + } + attr_accessor :price_data # The quantity of the line item being purchased. sig { returns(T.nilable(T.nilable(T.any(String, Integer)))) } attr_accessor :quantity @@ -2576,13 +2657,14 @@ module Stripe sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) } attr_accessor :tax_rates sig { - params(adjustable_quantity: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::AdjustableQuantity), id: T.nilable(String), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), price: T.nilable(String), quantity: T.nilable(T.nilable(T.any(String, Integer))), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void + params(adjustable_quantity: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::AdjustableQuantity), id: T.nilable(String), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), price: T.nilable(String), price_data: T.nilable(::Stripe::Checkout::SessionService::UpdateParams::LineItem::PriceData), quantity: T.nilable(T.nilable(T.any(String, Integer))), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void } def initialize( adjustable_quantity: nil, id: nil, metadata: nil, price: nil, + price_data: nil, quantity: nil, tax_rates: nil ); end