metronome-sdk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/type/array_of.rb +1 -0
  5. data/lib/metronome_sdk/internal/type/base_model.rb +3 -1
  6. data/lib/metronome_sdk/internal/type/converter.rb +27 -0
  7. data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
  8. data/lib/metronome_sdk/internal/type/union.rb +9 -7
  9. data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
  10. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +54 -5
  11. data/lib/metronome_sdk/models/v1/contract_create_params.rb +60 -11
  12. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +8 -1
  13. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +10 -1
  14. data/lib/metronome_sdk/models/v1/customers/invoice.rb +13 -1
  15. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +10 -1
  16. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +10 -1
  17. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +76 -13
  18. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +34 -3
  19. data/lib/metronome_sdk/resources/v1/contracts/products.rb +3 -1
  20. data/lib/metronome_sdk/resources/v2/contracts.rb +6 -2
  21. data/lib/metronome_sdk/version.rb +1 -1
  22. data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
  23. data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
  24. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
  25. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +76 -3
  26. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +84 -11
  27. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +9 -0
  28. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +13 -0
  29. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +16 -0
  30. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +10 -0
  31. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +10 -0
  32. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +96 -11
  33. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +33 -0
  34. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +2 -0
  35. data/rbi/metronome_sdk/resources/v2/contracts.rbi +8 -0
  36. data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
  37. data/sig/metronome_sdk/internal/type/union.rbs +2 -2
  38. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
  39. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +38 -3
  40. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +38 -3
  41. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
  42. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +7 -0
  43. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
  44. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +5 -0
  45. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +5 -0
  46. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +48 -3
  47. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +17 -0
  48. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
  49. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  50. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f9187736fec618127a408109837bbb6e2d715b3ae0debd060599129149fea1e
4
- data.tar.gz: d41f6d4d3f47eae6467c52876975a9aa6c2aa40028bd35b364dfef51aa1f3593
3
+ metadata.gz: 1b6d2ecfc5a635976f250cecb6fa6c7b332f5779a7f947aa9fec0a3bdbe709ac
4
+ data.tar.gz: 9f2e2e93d6e3582458bb1a147ab3961df59656ff060e379b9e82c9a3014eefc8
5
5
  SHA512:
6
- metadata.gz: 337a65e90e271961a81fb9f54a24b9da95b8570043e2c62946638799c7ca15fb16f747e60db4fb81a2f7bf870210b4428e34ab1550a1229f4e4df2d23549bdf3
7
- data.tar.gz: 73612d3f74abcd90e3ee46c16bbeb68837c3cb1da6206171ac0535a7e638e684e9c6495be268cf90f65d319ad2400d75f99628a049c0b171e301a89e72235c4c
6
+ metadata.gz: 819a57ee71e4d1f8220dd90b691fed840c893225ef19e80196660bdfe8acdbe915babaa211881ab69c463e1886607203ffadb0f3ff7b0e64aa6123081c1fbd51
7
+ data.tar.gz: 80a9dcdb292e99ca7dc6759fe7c4694f2d48a50bfe272a650ef2901a85f7b70e02c013baca5e5385e5b0c7944fc28473d0f822cf4aa1838d683625851ce32fef
data/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0 (2025-08-15)
4
+
5
+ Full Changelog: [v0.2.0...v0.3.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v0.2.0...v0.3.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([dc85d2b](https://github.com/Metronome-Industries/metronome-ruby/commit/dc85d2b1e840bb8a99500a34d4560c635d023776))
10
+ * **api:** api update ([b2fe3ed](https://github.com/Metronome-Industries/metronome-ruby/commit/b2fe3edfa51151ff1c6a9f15da363591b46202b7))
11
+ * **api:** api update ([361462c](https://github.com/Metronome-Industries/metronome-ruby/commit/361462c038856e72c4e889b7365b204bb3a914c6))
12
+ * **api:** api update ([acc5999](https://github.com/Metronome-Industries/metronome-ruby/commit/acc599977b528e8d916ee99d9fd9ec2a35a91b65))
13
+ * **api:** api update ([f8ffd7b](https://github.com/Metronome-Industries/metronome-ruby/commit/f8ffd7bb950eef4563012f0b96bda2f9f4a9d160))
14
+ * **api:** api update ([760744e](https://github.com/Metronome-Industries/metronome-ruby/commit/760744ef3f5155ca5202810537943a80efaa1e0f))
15
+ * **api:** api update ([6a16947](https://github.com/Metronome-Industries/metronome-ruby/commit/6a169473afa8d1d1793304afb2cd742b9c1c1b7e))
16
+ * **api:** api update ([2b47d83](https://github.com/Metronome-Industries/metronome-ruby/commit/2b47d832c06878b9725cae05f887117ad98c73d8))
17
+ * **api:** api update ([1f496c7](https://github.com/Metronome-Industries/metronome-ruby/commit/1f496c72f3c73542350c357219ff2ec6b528d2f3))
18
+ * **api:** api update ([ff4d847](https://github.com/Metronome-Industries/metronome-ruby/commit/ff4d8478d49d587bdaf70a7b52fb18fb6662d7e3))
19
+ * **api:** api update ([49702e6](https://github.com/Metronome-Industries/metronome-ruby/commit/49702e67db92e2b7495ec88e127c8a60e862a685))
20
+
21
+
22
+ ### Chores
23
+
24
+ * collect metadata from type DSL ([45d8eb1](https://github.com/Metronome-Industries/metronome-ruby/commit/45d8eb1c1ea599b68e3fcd6571d27390e52a09db))
25
+ * **internal:** update comment in script ([de52ac2](https://github.com/Metronome-Industries/metronome-ruby/commit/de52ac2965601808912f1e55952d731641132361))
26
+ * update @stainless-api/prism-cli to v5.15.0 ([6ad9705](https://github.com/Metronome-Industries/metronome-ruby/commit/6ad9705b1a25dfb037e3625e669f8d1cdc144b7a))
27
+
3
28
  ## 0.2.0 (2025-07-31)
4
29
 
5
30
  Full Changelog: [v0.1.0...v0.2.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v0.1.0...v0.2.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "metronome-sdk", "~> 0.2.0"
20
+ gem "metronome-sdk", "~> 0.3.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -148,6 +148,7 @@ module MetronomeSDK
148
148
  # @option spec [Boolean] :"nil?"
149
149
  def initialize(type_info, spec = {})
150
150
  @item_type_fn = MetronomeSDK::Internal::Type::Converter.type_info(type_info || spec)
151
+ @meta = MetronomeSDK::Internal::Type::Converter.meta_info(type_info, spec)
151
152
  @nilable = spec.fetch(:nil?, false)
152
153
  end
153
154
 
@@ -52,6 +52,7 @@ module MetronomeSDK
52
52
  #
53
53
  # @option spec [Boolean] :"nil?"
54
54
  private def add_field(name_sym, required:, type_info:, spec:)
55
+ meta = MetronomeSDK::Internal::Type::Converter.meta_info(type_info, spec)
55
56
  type_fn, info =
56
57
  case type_info
57
58
  in Proc | MetronomeSDK::Internal::Type::Converter | Class
@@ -81,7 +82,8 @@ module MetronomeSDK
81
82
  required: required,
82
83
  nilable: nilable,
83
84
  const: const,
84
- type_fn: type_fn
85
+ type_fn: type_fn,
86
+ meta: meta
85
87
  }
86
88
 
87
89
  define_method(setter) do |value|
@@ -98,6 +98,33 @@ module MetronomeSDK
98
98
  end
99
99
  end
100
100
 
101
+ # @api private
102
+ #
103
+ # @param type_info [Hash{Symbol=>Object}, Proc, MetronomeSDK::Internal::Type::Converter, Class] .
104
+ #
105
+ # @option type_info [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
106
+ #
107
+ # @option type_info [Proc] :enum
108
+ #
109
+ # @option type_info [Proc] :union
110
+ #
111
+ # @option type_info [Boolean] :"nil?"
112
+ #
113
+ # @param spec [Hash{Symbol=>Object}, Proc, MetronomeSDK::Internal::Type::Converter, Class] .
114
+ #
115
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
116
+ #
117
+ # @option spec [Proc] :enum
118
+ #
119
+ # @option spec [Proc] :union
120
+ #
121
+ # @option spec [Boolean] :"nil?"
122
+ #
123
+ # @return [Hash{Symbol=>Object}]
124
+ def meta_info(type_info, spec)
125
+ [spec, type_info].grep(Hash).first.to_h.except(:const, :enum, :union, :nil?)
126
+ end
127
+
101
128
  # @api private
102
129
  #
103
130
  # @param translate_names [Boolean]
@@ -168,6 +168,7 @@ module MetronomeSDK
168
168
  # @option spec [Boolean] :"nil?"
169
169
  def initialize(type_info, spec = {})
170
170
  @item_type_fn = MetronomeSDK::Internal::Type::Converter.type_info(type_info || spec)
171
+ @meta = MetronomeSDK::Internal::Type::Converter.meta_info(type_info, spec)
171
172
  @nilable = spec.fetch(:nil?, false)
172
173
  end
173
174
 
@@ -12,20 +12,20 @@ module MetronomeSDK
12
12
  #
13
13
  # All of the specified variant info for this union.
14
14
  #
15
- # @return [Array<Array(Symbol, Proc)>]
15
+ # @return [Array<Array(Symbol, Proc, Hash{Symbol=>Object})>]
16
16
  private def known_variants = (@known_variants ||= [])
17
17
 
18
18
  # @api private
19
19
  #
20
- # @return [Array<Array(Symbol, Object)>]
20
+ # @return [Array<Array(Symbol, Object, Hash{Symbol=>Object})>]
21
21
  protected def derefed_variants
22
- known_variants.map { |key, variant_fn| [key, variant_fn.call] }
22
+ known_variants.map { |key, variant_fn, meta| [key, variant_fn.call, meta] }
23
23
  end
24
24
 
25
25
  # All of the specified variants for this union.
26
26
  #
27
27
  # @return [Array<Object>]
28
- def variants = derefed_variants.map(&:last)
28
+ def variants = derefed_variants.map { _2 }
29
29
 
30
30
  # @api private
31
31
  #
@@ -51,12 +51,13 @@ module MetronomeSDK
51
51
  #
52
52
  # @option spec [Boolean] :"nil?"
53
53
  private def variant(key, spec = nil)
54
+ meta = MetronomeSDK::Internal::Type::Converter.meta_info(nil, spec)
54
55
  variant_info =
55
56
  case key
56
57
  in Symbol
57
- [key, MetronomeSDK::Internal::Type::Converter.type_info(spec)]
58
+ [key, MetronomeSDK::Internal::Type::Converter.type_info(spec), meta]
58
59
  in Proc | MetronomeSDK::Internal::Type::Converter | Class | Hash
59
- [nil, MetronomeSDK::Internal::Type::Converter.type_info(key)]
60
+ [nil, MetronomeSDK::Internal::Type::Converter.type_info(key), meta]
60
61
  end
61
62
 
62
63
  known_variants << variant_info
@@ -79,7 +80,8 @@ module MetronomeSDK
79
80
  return nil if key == MetronomeSDK::Internal::OMIT
80
81
 
81
82
  key = key.to_sym if key.is_a?(String)
82
- known_variants.find { |k,| k == key }&.last&.call
83
+ _, found = known_variants.find { |k,| k == key }
84
+ found&.call
83
85
  else
84
86
  nil
85
87
  end
@@ -8,14 +8,27 @@ module MetronomeSDK
8
8
  # @return [MetronomeSDK::Models::CreditTypeData, nil]
9
9
  optional :credit_type, -> { MetronomeSDK::CreditTypeData }
10
10
 
11
+ # @!attribute do_not_invoice
12
+ # This field is only applicable to commit invoice schedules. If true, this
13
+ # schedule will not generate an invoice.
14
+ #
15
+ # @return [Boolean, nil]
16
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
17
+
11
18
  # @!attribute schedule_items
12
19
  #
13
20
  # @return [Array<MetronomeSDK::Models::SchedulePointInTime::ScheduleItem>, nil]
14
21
  optional :schedule_items,
15
22
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::SchedulePointInTime::ScheduleItem] }
16
23
 
17
- # @!method initialize(credit_type: nil, schedule_items: nil)
24
+ # @!method initialize(credit_type: nil, do_not_invoice: nil, schedule_items: nil)
25
+ # Some parameter documentations has been truncated, see
26
+ # {MetronomeSDK::Models::SchedulePointInTime} for more details.
27
+ #
18
28
  # @param credit_type [MetronomeSDK::Models::CreditTypeData]
29
+ #
30
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
31
+ #
19
32
  # @param schedule_items [Array<MetronomeSDK::Models::SchedulePointInTime::ScheduleItem>]
20
33
 
21
34
  class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
@@ -479,6 +479,13 @@ module MetronomeSDK
479
479
  # @return [String, nil]
480
480
  optional :credit_type_id, String
481
481
 
482
+ # @!attribute do_not_invoice
483
+ # This field is only applicable to commit invoice schedules. If true, this
484
+ # schedule will not generate an invoice.
485
+ #
486
+ # @return [Boolean, nil]
487
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
488
+
482
489
  # @!attribute recurring_schedule
483
490
  # Enter the unit price and quantity for the charge or instead only send the
484
491
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -497,7 +504,7 @@ module MetronomeSDK
497
504
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem]
498
505
  }
499
506
 
500
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
507
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
501
508
  # Some parameter documentations has been truncated, see
502
509
  # {MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule} for
503
510
  # more details.
@@ -509,6 +516,8 @@ module MetronomeSDK
509
516
  #
510
517
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
511
518
  #
519
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
520
+ #
512
521
  # @param recurring_schedule [MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
513
522
  #
514
523
  # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -781,7 +790,20 @@ module MetronomeSDK
781
790
  # @return [Hash{Symbol=>String}, nil]
782
791
  optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
783
792
 
784
- # @!method initialize(payment_type:, invoice_metadata: nil)
793
+ # @!attribute on_session_payment
794
+ # If true, the payment will be made assuming the customer is present (i.e. on
795
+ # session).
796
+ #
797
+ # If false, the payment will be made assuming the customer is not present (i.e.
798
+ # off session). For cardholders from a country with an e-mandate requirement (e.g.
799
+ # India), the payment may be declined.
800
+ #
801
+ # If left blank, will default to false.
802
+ #
803
+ # @return [Boolean, nil]
804
+ optional :on_session_payment, MetronomeSDK::Internal::Type::Boolean
805
+
806
+ # @!method initialize(payment_type:, invoice_metadata: nil, on_session_payment: nil)
785
807
  # Some parameter documentations has been truncated, see
786
808
  # {MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig}
787
809
  # for more details.
@@ -791,6 +813,8 @@ module MetronomeSDK
791
813
  # @param payment_type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
792
814
  #
793
815
  # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
816
+ #
817
+ # @param on_session_payment [Boolean] If true, the payment will be made assuming the customer is present (i.e. on sess
794
818
 
795
819
  # If left blank, will default to INVOICE
796
820
  #
@@ -1241,6 +1265,13 @@ module MetronomeSDK
1241
1265
  # @return [String, nil]
1242
1266
  optional :credit_type_id, String
1243
1267
 
1268
+ # @!attribute do_not_invoice
1269
+ # This field is only applicable to commit invoice schedules. If true, this
1270
+ # schedule will not generate an invoice.
1271
+ #
1272
+ # @return [Boolean, nil]
1273
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
1274
+
1244
1275
  # @!attribute recurring_schedule
1245
1276
  # Enter the unit price and quantity for the charge or instead only send the
1246
1277
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -1259,7 +1290,7 @@ module MetronomeSDK
1259
1290
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractAmendParams::Discount::Schedule::ScheduleItem]
1260
1291
  }
1261
1292
 
1262
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
1293
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
1263
1294
  # Some parameter documentations has been truncated, see
1264
1295
  # {MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule} for more
1265
1296
  # details.
@@ -1268,6 +1299,8 @@ module MetronomeSDK
1268
1299
  #
1269
1300
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
1270
1301
  #
1302
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
1303
+ #
1271
1304
  # @param recurring_schedule [MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
1272
1305
  #
1273
1306
  # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -1981,6 +2014,11 @@ module MetronomeSDK
1981
2014
  # @return [MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule]
1982
2015
  required :schedule, -> { MetronomeSDK::V1::ContractAmendParams::ScheduledCharge::Schedule }
1983
2016
 
2017
+ # @!attribute custom_fields
2018
+ #
2019
+ # @return [Hash{Symbol=>String}, nil]
2020
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
2021
+
1984
2022
  # @!attribute name
1985
2023
  # displayed on invoices
1986
2024
  #
@@ -1993,11 +2031,13 @@ module MetronomeSDK
1993
2031
  # @return [String, nil]
1994
2032
  optional :netsuite_sales_order_id, String
1995
2033
 
1996
- # @!method initialize(product_id:, schedule:, name: nil, netsuite_sales_order_id: nil)
2034
+ # @!method initialize(product_id:, schedule:, custom_fields: nil, name: nil, netsuite_sales_order_id: nil)
1997
2035
  # @param product_id [String]
1998
2036
  #
1999
2037
  # @param schedule [MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
2000
2038
  #
2039
+ # @param custom_fields [Hash{Symbol=>String}]
2040
+ #
2001
2041
  # @param name [String] displayed on invoices
2002
2042
  #
2003
2043
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
@@ -2010,6 +2050,13 @@ module MetronomeSDK
2010
2050
  # @return [String, nil]
2011
2051
  optional :credit_type_id, String
2012
2052
 
2053
+ # @!attribute do_not_invoice
2054
+ # This field is only applicable to commit invoice schedules. If true, this
2055
+ # schedule will not generate an invoice.
2056
+ #
2057
+ # @return [Boolean, nil]
2058
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
2059
+
2013
2060
  # @!attribute recurring_schedule
2014
2061
  # Enter the unit price and quantity for the charge or instead only send the
2015
2062
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -2030,7 +2077,7 @@ module MetronomeSDK
2030
2077
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem]
2031
2078
  }
2032
2079
 
2033
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
2080
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
2034
2081
  # Some parameter documentations has been truncated, see
2035
2082
  # {MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule} for
2036
2083
  # more details.
@@ -2039,6 +2086,8 @@ module MetronomeSDK
2039
2086
  #
2040
2087
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
2041
2088
  #
2089
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
2090
+ #
2042
2091
  # @param recurring_schedule [MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
2043
2092
  #
2044
2093
  # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -724,6 +724,13 @@ module MetronomeSDK
724
724
  # @return [String, nil]
725
725
  optional :credit_type_id, String
726
726
 
727
+ # @!attribute do_not_invoice
728
+ # This field is only applicable to commit invoice schedules. If true, this
729
+ # schedule will not generate an invoice.
730
+ #
731
+ # @return [Boolean, nil]
732
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
733
+
727
734
  # @!attribute recurring_schedule
728
735
  # Enter the unit price and quantity for the charge or instead only send the
729
736
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -742,7 +749,7 @@ module MetronomeSDK
742
749
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem]
743
750
  }
744
751
 
745
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
752
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
746
753
  # Some parameter documentations has been truncated, see
747
754
  # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule} for
748
755
  # more details.
@@ -754,6 +761,8 @@ module MetronomeSDK
754
761
  #
755
762
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
756
763
  #
764
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
765
+ #
757
766
  # @param recurring_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
758
767
  #
759
768
  # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -1024,7 +1033,20 @@ module MetronomeSDK
1024
1033
  # @return [Hash{Symbol=>String}, nil]
1025
1034
  optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
1026
1035
 
1027
- # @!method initialize(payment_type:, invoice_metadata: nil)
1036
+ # @!attribute on_session_payment
1037
+ # If true, the payment will be made assuming the customer is present (i.e. on
1038
+ # session).
1039
+ #
1040
+ # If false, the payment will be made assuming the customer is not present (i.e.
1041
+ # off session). For cardholders from a country with an e-mandate requirement (e.g.
1042
+ # India), the payment may be declined.
1043
+ #
1044
+ # If left blank, will default to false.
1045
+ #
1046
+ # @return [Boolean, nil]
1047
+ optional :on_session_payment, MetronomeSDK::Internal::Type::Boolean
1048
+
1049
+ # @!method initialize(payment_type:, invoice_metadata: nil, on_session_payment: nil)
1028
1050
  # Some parameter documentations has been truncated, see
1029
1051
  # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig}
1030
1052
  # for more details.
@@ -1034,6 +1056,8 @@ module MetronomeSDK
1034
1056
  # @param payment_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
1035
1057
  #
1036
1058
  # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1059
+ #
1060
+ # @param on_session_payment [Boolean] If true, the payment will be made assuming the customer is present (i.e. on sess
1037
1061
 
1038
1062
  # If left blank, will default to INVOICE
1039
1063
  #
@@ -1484,6 +1508,13 @@ module MetronomeSDK
1484
1508
  # @return [String, nil]
1485
1509
  optional :credit_type_id, String
1486
1510
 
1511
+ # @!attribute do_not_invoice
1512
+ # This field is only applicable to commit invoice schedules. If true, this
1513
+ # schedule will not generate an invoice.
1514
+ #
1515
+ # @return [Boolean, nil]
1516
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
1517
+
1487
1518
  # @!attribute recurring_schedule
1488
1519
  # Enter the unit price and quantity for the charge or instead only send the
1489
1520
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -1502,7 +1533,7 @@ module MetronomeSDK
1502
1533
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::ScheduleItem]
1503
1534
  }
1504
1535
 
1505
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
1536
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
1506
1537
  # Some parameter documentations has been truncated, see
1507
1538
  # {MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule} for more
1508
1539
  # details.
@@ -1511,6 +1542,8 @@ module MetronomeSDK
1511
1542
  #
1512
1543
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
1513
1544
  #
1545
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
1546
+ #
1514
1547
  # @param recurring_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
1515
1548
  #
1516
1549
  # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -2653,8 +2686,8 @@ module MetronomeSDK
2653
2686
  required :unit_price, Float
2654
2687
 
2655
2688
  # @!attribute quantity
2656
- # This field is currently required. Upcoming recurring commit/credit configuration
2657
- # options will allow it to be optional.
2689
+ # This field is required unless a subscription is attached via
2690
+ # `subscription_config`.
2658
2691
  #
2659
2692
  # @return [Float, nil]
2660
2693
  optional :quantity, Float
@@ -2670,7 +2703,7 @@ module MetronomeSDK
2670
2703
  #
2671
2704
  # @param unit_price [Float]
2672
2705
  #
2673
- # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2706
+ # @param quantity [Float] This field is required unless a subscription is attached via `subscription_confi
2674
2707
  end
2675
2708
 
2676
2709
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#commit_duration
@@ -3184,8 +3217,8 @@ module MetronomeSDK
3184
3217
  required :unit_price, Float
3185
3218
 
3186
3219
  # @!attribute quantity
3187
- # This field is currently required. Upcoming recurring commit/credit configuration
3188
- # options will allow it to be optional.
3220
+ # This field is required unless a subscription is attached via
3221
+ # `subscription_config`.
3189
3222
  #
3190
3223
  # @return [Float, nil]
3191
3224
  optional :quantity, Float
@@ -3201,7 +3234,7 @@ module MetronomeSDK
3201
3234
  #
3202
3235
  # @param unit_price [Float]
3203
3236
  #
3204
- # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
3237
+ # @param quantity [Float] This field is required unless a subscription is attached via `subscription_confi
3205
3238
  end
3206
3239
 
3207
3240
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#commit_duration
@@ -3636,6 +3669,11 @@ module MetronomeSDK
3636
3669
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule]
3637
3670
  required :schedule, -> { MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule }
3638
3671
 
3672
+ # @!attribute custom_fields
3673
+ #
3674
+ # @return [Hash{Symbol=>String}, nil]
3675
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
3676
+
3639
3677
  # @!attribute name
3640
3678
  # displayed on invoices
3641
3679
  #
@@ -3648,11 +3686,13 @@ module MetronomeSDK
3648
3686
  # @return [String, nil]
3649
3687
  optional :netsuite_sales_order_id, String
3650
3688
 
3651
- # @!method initialize(product_id:, schedule:, name: nil, netsuite_sales_order_id: nil)
3689
+ # @!method initialize(product_id:, schedule:, custom_fields: nil, name: nil, netsuite_sales_order_id: nil)
3652
3690
  # @param product_id [String]
3653
3691
  #
3654
3692
  # @param schedule [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
3655
3693
  #
3694
+ # @param custom_fields [Hash{Symbol=>String}]
3695
+ #
3656
3696
  # @param name [String] displayed on invoices
3657
3697
  #
3658
3698
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
@@ -3665,6 +3705,13 @@ module MetronomeSDK
3665
3705
  # @return [String, nil]
3666
3706
  optional :credit_type_id, String
3667
3707
 
3708
+ # @!attribute do_not_invoice
3709
+ # This field is only applicable to commit invoice schedules. If true, this
3710
+ # schedule will not generate an invoice.
3711
+ #
3712
+ # @return [Boolean, nil]
3713
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
3714
+
3668
3715
  # @!attribute recurring_schedule
3669
3716
  # Enter the unit price and quantity for the charge or instead only send the
3670
3717
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -3685,7 +3732,7 @@ module MetronomeSDK
3685
3732
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem]
3686
3733
  }
3687
3734
 
3688
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
3735
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
3689
3736
  # Some parameter documentations has been truncated, see
3690
3737
  # {MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule} for
3691
3738
  # more details.
@@ -3694,6 +3741,8 @@ module MetronomeSDK
3694
3741
  #
3695
3742
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
3696
3743
  #
3744
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
3745
+ #
3697
3746
  # @param recurring_schedule [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
3698
3747
  #
3699
3748
  # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -38,6 +38,11 @@ module MetronomeSDK
38
38
  # @return [Array<String>, nil]
39
39
  optional :composite_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
40
40
 
41
+ # @!attribute custom_fields
42
+ #
43
+ # @return [Hash{Symbol=>String}, nil]
44
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
45
+
41
46
  # @!attribute exclude_free_usage
42
47
  # Beta feature only available for composite products. If true, products with $0
43
48
  # will not be included when computing composite usage. Defaults to false
@@ -107,7 +112,7 @@ module MetronomeSDK
107
112
  # @return [Array<String>, nil]
108
113
  optional :tags, MetronomeSDK::Internal::Type::ArrayOf[String]
109
114
 
110
- # @!method initialize(name:, type:, billable_metric_id: nil, composite_product_ids: nil, composite_tags: nil, exclude_free_usage: nil, is_refundable: nil, netsuite_internal_item_id: nil, netsuite_overage_item_id: nil, presentation_group_key: nil, pricing_group_key: nil, quantity_conversion: nil, quantity_rounding: nil, tags: nil, request_options: {})
115
+ # @!method initialize(name:, type:, billable_metric_id: nil, composite_product_ids: nil, composite_tags: nil, custom_fields: nil, exclude_free_usage: nil, is_refundable: nil, netsuite_internal_item_id: nil, netsuite_overage_item_id: nil, presentation_group_key: nil, pricing_group_key: nil, quantity_conversion: nil, quantity_rounding: nil, tags: nil, request_options: {})
111
116
  # Some parameter documentations has been truncated, see
112
117
  # {MetronomeSDK::Models::V1::Contracts::ProductCreateParams} for more details.
113
118
  #
@@ -121,6 +126,8 @@ module MetronomeSDK
121
126
  #
122
127
  # @param composite_tags [Array<String>] Required for COMPOSITE products
123
128
  #
129
+ # @param custom_fields [Hash{Symbol=>String}]
130
+ #
124
131
  # @param exclude_free_usage [Boolean] Beta feature only available for composite products. If true, products with $0 wi
125
132
  #
126
133
  # @param is_refundable [Boolean] This field's availability is dependent on your client's configuration. Defaults
@@ -244,6 +244,13 @@ module MetronomeSDK
244
244
  # @return [String, nil]
245
245
  optional :credit_type_id, String
246
246
 
247
+ # @!attribute do_not_invoice
248
+ # This field is only applicable to commit invoice schedules. If true, this
249
+ # schedule will not generate an invoice.
250
+ #
251
+ # @return [Boolean, nil]
252
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
253
+
247
254
  # @!attribute recurring_schedule
248
255
  # Enter the unit price and quantity for the charge or instead only send the
249
256
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -264,7 +271,7 @@ module MetronomeSDK
264
271
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::CommitCreateParams::InvoiceSchedule::ScheduleItem]
265
272
  }
266
273
 
267
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
274
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
268
275
  # Some parameter documentations has been truncated, see
269
276
  # {MetronomeSDK::Models::V1::Customers::CommitCreateParams::InvoiceSchedule} for
270
277
  # more details.
@@ -276,6 +283,8 @@ module MetronomeSDK
276
283
  #
277
284
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
278
285
  #
286
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
287
+ #
279
288
  # @param recurring_schedule [MetronomeSDK::Models::V1::Customers::CommitCreateParams::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
280
289
  #
281
290
  # @param schedule_items [Array<MetronomeSDK::Models::V1::Customers::CommitCreateParams::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -237,6 +237,16 @@ module MetronomeSDK
237
237
  # @return [Float]
238
238
  required :total, Float
239
239
 
240
+ # @!attribute type
241
+ # The type of line item. Possible values are 'aws_royalty',
242
+ # 'applied_commit_or_credit', 'scheduled', 'commit_purchase', 'cpu_conversion',
243
+ # 'discount', 'gcp_royalty', 'postpaid_trueup', 'professional_services',
244
+ # 'subscription', 'usage', 'legacy', 'minimum', 'product_charge',
245
+ # 'trial_discount', 'rollover', 'seat', 'grouped_charge'.
246
+ #
247
+ # @return [String]
248
+ required :type, String
249
+
240
250
  # @!attribute applied_commit_or_credit
241
251
  # Details about the credit or commit that was applied to this line item. Only
242
252
  # present on line items with product of `USAGE`, `SUBSCRIPTION` or `COMPOSITE`
@@ -460,7 +470,7 @@ module MetronomeSDK
460
470
  # @return [Float, nil]
461
471
  optional :unit_price, Float
462
472
 
463
- # @!method initialize(credit_type:, name:, total:, applied_commit_or_credit: nil, commit_custom_fields: nil, commit_id: nil, commit_netsuite_item_id: nil, commit_netsuite_sales_order_id: nil, commit_segment_id: nil, commit_type: nil, custom_fields: nil, discount_custom_fields: nil, discount_id: nil, ending_before: nil, group_key: nil, group_value: nil, is_prorated: nil, list_price: nil, metadata: nil, netsuite_invoice_billing_end: nil, netsuite_invoice_billing_start: nil, netsuite_item_id: nil, postpaid_commit: nil, presentation_group_values: nil, pricing_group_values: nil, product_custom_fields: nil, product_id: nil, product_tags: nil, product_type: nil, professional_service_custom_fields: nil, professional_service_id: nil, quantity: nil, reseller_type: nil, scheduled_charge_custom_fields: nil, scheduled_charge_id: nil, starting_at: nil, sub_line_items: nil, subscription_custom_fields: nil, tier: nil, unit_price: nil)
473
+ # @!method initialize(credit_type:, name:, total:, type:, applied_commit_or_credit: nil, commit_custom_fields: nil, commit_id: nil, commit_netsuite_item_id: nil, commit_netsuite_sales_order_id: nil, commit_segment_id: nil, commit_type: nil, custom_fields: nil, discount_custom_fields: nil, discount_id: nil, ending_before: nil, group_key: nil, group_value: nil, is_prorated: nil, list_price: nil, metadata: nil, netsuite_invoice_billing_end: nil, netsuite_invoice_billing_start: nil, netsuite_item_id: nil, postpaid_commit: nil, presentation_group_values: nil, pricing_group_values: nil, product_custom_fields: nil, product_id: nil, product_tags: nil, product_type: nil, professional_service_custom_fields: nil, professional_service_id: nil, quantity: nil, reseller_type: nil, scheduled_charge_custom_fields: nil, scheduled_charge_id: nil, starting_at: nil, sub_line_items: nil, subscription_custom_fields: nil, tier: nil, unit_price: nil)
464
474
  # Some parameter documentations has been truncated, see
465
475
  # {MetronomeSDK::Models::V1::Customers::Invoice::LineItem} for more details.
466
476
  #
@@ -470,6 +480,8 @@ module MetronomeSDK
470
480
  #
471
481
  # @param total [Float]
472
482
  #
483
+ # @param type [String] The type of line item. Possible values are 'aws_royalty', 'applied_commit_or_cre
484
+ #
473
485
  # @param applied_commit_or_credit [MetronomeSDK::Models::V1::Customers::Invoice::LineItem::AppliedCommitOrCredit] Details about the credit or commit that was applied to this line item. Only pres
474
486
  #
475
487
  # @param commit_custom_fields [Hash{Symbol=>String}]