diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index 5ee10715..05e1eecb 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v1836 \ No newline at end of file +v1838 \ No newline at end of file diff --git a/lib/stripe/resources/payment_link.rb b/lib/stripe/resources/payment_link.rb index 050b257d..8f8a1f8f 100644 --- a/lib/stripe/resources/payment_link.rb +++ b/lib/stripe/resources/payment_link.rb @@ -652,16 +652,86 @@ 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 # The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. 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. + attr_accessor :price_data # The quantity of the line item being purchased. attr_accessor :quantity - def initialize(adjustable_quantity: nil, price: nil, quantity: nil) + def initialize(adjustable_quantity: nil, price: nil, price_data: nil, quantity: nil) @adjustable_quantity = adjustable_quantity @price = price + @price_data = price_data @quantity = quantity end end diff --git a/lib/stripe/services/payment_link_service.rb b/lib/stripe/services/payment_link_service.rb index e62624e7..bedd02f5 100644 --- a/lib/stripe/services/payment_link_service.rb +++ b/lib/stripe/services/payment_link_service.rb @@ -366,16 +366,86 @@ 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 # The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. 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. + attr_accessor :price_data # The quantity of the line item being purchased. attr_accessor :quantity - def initialize(adjustable_quantity: nil, price: nil, quantity: nil) + def initialize(adjustable_quantity: nil, price: nil, price_data: nil, quantity: nil) @adjustable_quantity = adjustable_quantity @price = price + @price_data = price_data @quantity = quantity end end diff --git a/rbi/stripe.rbi b/rbi/stripe.rbi index dff68788..e07ab4a0 100644 --- a/rbi/stripe.rbi +++ b/rbi/stripe.rbi @@ -62946,6 +62946,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::PaymentLink::CreateParams::LineItem::PriceData::ProductData)) + } + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + sig { + returns(T.nilable(::Stripe::PaymentLink::CreateParams::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::PaymentLink::CreateParams::LineItem::PriceData::ProductData), recurring: T.nilable(::Stripe::PaymentLink::CreateParams::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::PaymentLink::CreateParams::LineItem::AdjustableQuantity)) @@ -62954,13 +63030,16 @@ module Stripe # The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. sig { returns(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. + sig { returns(T.nilable(::Stripe::PaymentLink::CreateParams::LineItem::PriceData)) } + attr_accessor :price_data # The quantity of the line item being purchased. sig { returns(Integer) } attr_accessor :quantity sig { - params(adjustable_quantity: T.nilable(::Stripe::PaymentLink::CreateParams::LineItem::AdjustableQuantity), price: String, quantity: Integer).void + params(adjustable_quantity: T.nilable(::Stripe::PaymentLink::CreateParams::LineItem::AdjustableQuantity), price: String, price_data: T.nilable(::Stripe::PaymentLink::CreateParams::LineItem::PriceData), quantity: Integer).void } - def initialize(adjustable_quantity: nil, price: nil, quantity: nil); end + def initialize(adjustable_quantity: nil, price: nil, price_data: nil, quantity: nil); end end class OptionalItem < Stripe::RequestParams class AdjustableQuantity < Stripe::RequestParams @@ -159605,6 +159684,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::PaymentLinkService::CreateParams::LineItem::PriceData::ProductData)) + } + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + sig { + returns(T.nilable(::Stripe::PaymentLinkService::CreateParams::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::PaymentLinkService::CreateParams::LineItem::PriceData::ProductData), recurring: T.nilable(::Stripe::PaymentLinkService::CreateParams::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::PaymentLinkService::CreateParams::LineItem::AdjustableQuantity)) @@ -159613,13 +159768,16 @@ module Stripe # The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. sig { returns(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. + sig { returns(T.nilable(::Stripe::PaymentLinkService::CreateParams::LineItem::PriceData)) } + attr_accessor :price_data # The quantity of the line item being purchased. sig { returns(Integer) } attr_accessor :quantity sig { - params(adjustable_quantity: T.nilable(::Stripe::PaymentLinkService::CreateParams::LineItem::AdjustableQuantity), price: String, quantity: Integer).void + params(adjustable_quantity: T.nilable(::Stripe::PaymentLinkService::CreateParams::LineItem::AdjustableQuantity), price: String, price_data: T.nilable(::Stripe::PaymentLinkService::CreateParams::LineItem::PriceData), quantity: Integer).void } - def initialize(adjustable_quantity: nil, price: nil, quantity: nil); end + def initialize(adjustable_quantity: nil, price: nil, price_data: nil, quantity: nil); end end class OptionalItem < Stripe::RequestParams class AdjustableQuantity < Stripe::RequestParams diff --git a/rbi/stripe/resources/payment_link.rbi b/rbi/stripe/resources/payment_link.rbi index d85010cf..2c930896 100644 --- a/rbi/stripe/resources/payment_link.rbi +++ b/rbi/stripe/resources/payment_link.rbi @@ -824,6 +824,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::PaymentLink::CreateParams::LineItem::PriceData::ProductData)) + } + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + sig { + returns(T.nilable(::Stripe::PaymentLink::CreateParams::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::PaymentLink::CreateParams::LineItem::PriceData::ProductData), recurring: T.nilable(::Stripe::PaymentLink::CreateParams::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::PaymentLink::CreateParams::LineItem::AdjustableQuantity)) @@ -832,13 +908,16 @@ module Stripe # The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. sig { returns(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. + sig { returns(T.nilable(::Stripe::PaymentLink::CreateParams::LineItem::PriceData)) } + attr_accessor :price_data # The quantity of the line item being purchased. sig { returns(Integer) } attr_accessor :quantity sig { - params(adjustable_quantity: T.nilable(::Stripe::PaymentLink::CreateParams::LineItem::AdjustableQuantity), price: String, quantity: Integer).void + params(adjustable_quantity: T.nilable(::Stripe::PaymentLink::CreateParams::LineItem::AdjustableQuantity), price: String, price_data: T.nilable(::Stripe::PaymentLink::CreateParams::LineItem::PriceData), quantity: Integer).void } - def initialize(adjustable_quantity: nil, price: nil, quantity: nil); end + def initialize(adjustable_quantity: nil, price: nil, price_data: nil, quantity: nil); end end class OptionalItem < Stripe::RequestParams class AdjustableQuantity < Stripe::RequestParams diff --git a/rbi/stripe/services/payment_link_service.rbi b/rbi/stripe/services/payment_link_service.rbi index aa9620e7..63cfd92e 100644 --- a/rbi/stripe/services/payment_link_service.rbi +++ b/rbi/stripe/services/payment_link_service.rbi @@ -382,6 +382,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::PaymentLinkService::CreateParams::LineItem::PriceData::ProductData)) + } + attr_accessor :product_data + # The recurring components of a price such as `interval` and `interval_count`. + sig { + returns(T.nilable(::Stripe::PaymentLinkService::CreateParams::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::PaymentLinkService::CreateParams::LineItem::PriceData::ProductData), recurring: T.nilable(::Stripe::PaymentLinkService::CreateParams::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::PaymentLinkService::CreateParams::LineItem::AdjustableQuantity)) @@ -390,13 +466,16 @@ module Stripe # The ID of the [Price](https://stripe.com/docs/api/prices) or [Plan](https://stripe.com/docs/api/plans) object. sig { returns(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. + sig { returns(T.nilable(::Stripe::PaymentLinkService::CreateParams::LineItem::PriceData)) } + attr_accessor :price_data # The quantity of the line item being purchased. sig { returns(Integer) } attr_accessor :quantity sig { - params(adjustable_quantity: T.nilable(::Stripe::PaymentLinkService::CreateParams::LineItem::AdjustableQuantity), price: String, quantity: Integer).void + params(adjustable_quantity: T.nilable(::Stripe::PaymentLinkService::CreateParams::LineItem::AdjustableQuantity), price: String, price_data: T.nilable(::Stripe::PaymentLinkService::CreateParams::LineItem::PriceData), quantity: Integer).void } - def initialize(adjustable_quantity: nil, price: nil, quantity: nil); end + def initialize(adjustable_quantity: nil, price: nil, price_data: nil, quantity: nil); end end class OptionalItem < Stripe::RequestParams class AdjustableQuantity < Stripe::RequestParams