metronome-sdk 1.0.0 → 2.1.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 (193) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +25 -11
  5. data/lib/metronome_sdk/file_part.rb +10 -7
  6. data/lib/metronome_sdk/internal/body_cursor_page.rb +1 -1
  7. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  8. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +1 -1
  9. data/lib/metronome_sdk/internal/transport/base_client.rb +11 -7
  10. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +34 -31
  11. data/lib/metronome_sdk/internal/type/base_page.rb +1 -1
  12. data/lib/metronome_sdk/internal/type/enum.rb +25 -0
  13. data/lib/metronome_sdk/internal/type/file_input.rb +7 -4
  14. data/lib/metronome_sdk/internal/util.rb +8 -7
  15. data/lib/metronome_sdk/models/contract.rb +1 -0
  16. data/lib/metronome_sdk/models/contract_v2.rb +275 -6
  17. data/lib/metronome_sdk/models/contract_without_amendments.rb +2 -2
  18. data/lib/metronome_sdk/models/hierarchy_configuration.rb +123 -2
  19. data/lib/metronome_sdk/models/payment_gate_config.rb +1 -0
  20. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +1 -0
  21. data/lib/metronome_sdk/models/subscription.rb +95 -1
  22. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  23. data/lib/metronome_sdk/models/v1/alert_create_params.rb +38 -36
  24. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +1 -0
  25. data/lib/metronome_sdk/models/v1/contract_create_params.rb +157 -9
  26. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  27. data/lib/metronome_sdk/models/v1/customer_create_params.rb +11 -1
  28. data/lib/metronome_sdk/models/v1/customer_detail.rb +9 -1
  29. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +19 -25
  30. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  31. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +1 -0
  32. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +1 -0
  33. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +3 -3
  34. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  35. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +12 -12
  36. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +6 -1
  37. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +1 -0
  38. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +1 -0
  39. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +6 -1
  40. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +1 -1
  41. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +41 -38
  42. data/lib/metronome_sdk/models/v1/customers/invoice.rb +256 -16
  43. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  44. data/lib/metronome_sdk/models/v1/payment.rb +157 -0
  45. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  46. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  47. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  48. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  49. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  50. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  51. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +65 -0
  52. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rb +12 -0
  53. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +73 -0
  54. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_response.rb +31 -0
  55. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_params.rb +26 -0
  56. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_response.rb +105 -0
  57. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +9 -1
  58. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +9 -1
  59. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +219 -9
  60. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +195 -8
  61. data/lib/metronome_sdk/resources/v1/alerts.rb +57 -53
  62. data/lib/metronome_sdk/resources/v1/contracts.rb +8 -5
  63. data/lib/metronome_sdk/resources/v1/credit_grants.rb +10 -5
  64. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +70 -51
  65. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +7 -4
  66. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -1
  67. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +57 -1
  68. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -4
  69. data/lib/metronome_sdk/resources/v1/customers.rb +13 -8
  70. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  71. data/lib/metronome_sdk/resources/v1/plans.rb +8 -4
  72. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +75 -0
  73. data/lib/metronome_sdk/resources/v1/settings.rb +55 -0
  74. data/lib/metronome_sdk/resources/v1/usage.rb +4 -2
  75. data/lib/metronome_sdk/resources/v1.rb +8 -0
  76. data/lib/metronome_sdk/resources/v2/contracts.rb +9 -3
  77. data/lib/metronome_sdk/version.rb +1 -1
  78. data/lib/metronome_sdk.rb +17 -0
  79. data/rbi/metronome_sdk/errors.rbi +29 -2
  80. data/rbi/metronome_sdk/file_part.rbi +1 -1
  81. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  82. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  83. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  84. data/rbi/metronome_sdk/models/contract.rbi +5 -0
  85. data/rbi/metronome_sdk/models/contract_v2.rbi +635 -10
  86. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +2 -2
  87. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +286 -6
  88. data/rbi/metronome_sdk/models/payment_gate_config.rbi +5 -0
  89. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +5 -0
  90. data/rbi/metronome_sdk/models/subscription.rbi +190 -0
  91. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  92. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +51 -47
  93. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +5 -0
  94. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +326 -10
  95. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  96. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +11 -0
  97. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +8 -0
  98. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +24 -32
  99. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  100. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +5 -0
  101. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +5 -0
  102. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  103. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  104. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +14 -14
  105. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +11 -0
  106. data/rbi/metronome_sdk/models/v1/customers/billing_config_delete_params.rbi +5 -0
  107. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbi +5 -0
  108. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +6 -0
  109. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +2 -2
  110. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +53 -44
  111. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +462 -38
  112. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  113. data/rbi/metronome_sdk/models/v1/payment.rbi +324 -0
  114. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  115. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  116. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  117. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  118. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  119. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  120. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +115 -0
  121. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbi +25 -0
  122. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +157 -0
  123. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_response.rbi +75 -0
  124. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_params.rbi +50 -0
  125. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_response.rbi +245 -0
  126. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +18 -0
  127. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +18 -0
  128. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +536 -12
  129. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +462 -14
  130. data/rbi/metronome_sdk/resources/v1/alerts.rbi +68 -64
  131. data/rbi/metronome_sdk/resources/v1/contracts.rbi +8 -4
  132. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +10 -5
  133. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +73 -54
  134. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +8 -4
  135. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -2
  136. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +38 -1
  137. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +8 -4
  138. data/rbi/metronome_sdk/resources/v1/customers.rbi +17 -11
  139. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  140. data/rbi/metronome_sdk/resources/v1/plans.rbi +8 -4
  141. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +63 -0
  142. data/rbi/metronome_sdk/resources/v1/settings.rbi +47 -0
  143. data/rbi/metronome_sdk/resources/v1/usage.rbi +4 -2
  144. data/rbi/metronome_sdk/resources/v1.rbi +6 -0
  145. data/rbi/metronome_sdk/resources/v2/contracts.rbi +14 -0
  146. data/sig/metronome_sdk/errors.rbs +7 -0
  147. data/sig/metronome_sdk/file_part.rbs +1 -1
  148. data/sig/metronome_sdk/models/contract.rbs +2 -0
  149. data/sig/metronome_sdk/models/contract_v2.rbs +241 -12
  150. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +87 -6
  151. data/sig/metronome_sdk/models/payment_gate_config.rbs +2 -1
  152. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +2 -1
  153. data/sig/metronome_sdk/models/subscription.rbs +80 -0
  154. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +2 -1
  155. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +91 -5
  156. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  157. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +2 -0
  158. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  159. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  160. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  161. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +2 -0
  162. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +2 -0
  163. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +2 -0
  164. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +2 -0
  165. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +2 -0
  166. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +2 -0
  167. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +244 -19
  168. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  169. data/sig/metronome_sdk/models/v1/payment.rbs +198 -0
  170. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  171. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  172. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  173. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  174. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  175. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  176. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +54 -0
  177. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbs +13 -0
  178. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +64 -0
  179. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_response.rbs +34 -0
  180. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_params.rbs +28 -0
  181. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_response.rbs +102 -0
  182. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +9 -0
  183. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +9 -0
  184. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +184 -7
  185. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +221 -18
  186. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  187. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  188. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  189. data/sig/metronome_sdk/resources/v1/settings/billing_providers.rbs +23 -0
  190. data/sig/metronome_sdk/resources/v1/settings.rbs +19 -0
  191. data/sig/metronome_sdk/resources/v1.rbs +4 -0
  192. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -0
  193. metadata +53 -2
@@ -104,8 +104,8 @@ module MetronomeSDK
104
104
  # Either a **parent** configuration with a list of children or a **child**
105
105
  # configuration with a single parent.
106
106
  #
107
- # @return [MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration, nil]
108
- optional :hierarchy_configuration, union: -> { MetronomeSDK::HierarchyConfiguration }
107
+ # @return [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2, nil]
108
+ optional :hierarchy_configuration, union: -> { MetronomeSDK::ContractV2::HierarchyConfiguration }
109
109
 
110
110
  # @!attribute multiplier_override_prioritization
111
111
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
@@ -254,7 +254,7 @@ module MetronomeSDK
254
254
  #
255
255
  # @param has_more [MetronomeSDK::Models::ContractV2::HasMore] Indicates whether there are more items than the limit for this endpoint. Use the
256
256
  #
257
- # @param hierarchy_configuration [MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration] Either a **parent** configuration with a list of children or a **child** configu
257
+ # @param hierarchy_configuration [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2] Either a **parent** configuration with a list of children or a **child** configu
258
258
  #
259
259
  # @param multiplier_override_prioritization [Symbol, MetronomeSDK::Models::ContractV2::MultiplierOverridePrioritization] Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list price
260
260
  #
@@ -1264,8 +1264,8 @@ module MetronomeSDK
1264
1264
 
1265
1265
  # @!attribute overwrite_rate
1266
1266
  #
1267
- # @return [MetronomeSDK::Models::OverwriteRate, nil]
1268
- optional :overwrite_rate, -> { MetronomeSDK::OverwriteRate }
1267
+ # @return [MetronomeSDK::Models::ContractV2::Override::OverwriteRate, nil]
1268
+ optional :overwrite_rate, -> { MetronomeSDK::ContractV2::Override::OverwriteRate }
1269
1269
 
1270
1270
  # @!attribute priority
1271
1271
  #
@@ -1297,7 +1297,7 @@ module MetronomeSDK
1297
1297
  # @param multiplier [Float]
1298
1298
  # @param override_specifiers [Array<MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier>]
1299
1299
  # @param override_tiers [Array<MetronomeSDK::Models::OverrideTier>]
1300
- # @param overwrite_rate [MetronomeSDK::Models::OverwriteRate]
1300
+ # @param overwrite_rate [MetronomeSDK::Models::ContractV2::Override::OverwriteRate]
1301
1301
  # @param priority [Float]
1302
1302
  # @param product [MetronomeSDK::Models::ContractV2::Override::Product]
1303
1303
  # @param target [Symbol, MetronomeSDK::Models::ContractV2::Override::Target]
@@ -1369,6 +1369,84 @@ module MetronomeSDK
1369
1369
  end
1370
1370
  end
1371
1371
 
1372
+ # @see MetronomeSDK::Models::ContractV2::Override#overwrite_rate
1373
+ class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
1374
+ # @!attribute rate_type
1375
+ #
1376
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::Override::OverwriteRate::RateType]
1377
+ required :rate_type, enum: -> { MetronomeSDK::ContractV2::Override::OverwriteRate::RateType }
1378
+
1379
+ # @!attribute credit_type
1380
+ #
1381
+ # @return [MetronomeSDK::Models::CreditTypeData, nil]
1382
+ optional :credit_type, -> { MetronomeSDK::CreditTypeData }
1383
+
1384
+ # @!attribute custom_rate
1385
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
1386
+ # processors.
1387
+ #
1388
+ # @return [Hash{Symbol=>Object}, nil]
1389
+ optional :custom_rate, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
1390
+
1391
+ # @!attribute is_prorated
1392
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
1393
+ # set to true.
1394
+ #
1395
+ # @return [Boolean, nil]
1396
+ optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
1397
+
1398
+ # @!attribute price
1399
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
1400
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
1401
+ #
1402
+ # @return [Float, nil]
1403
+ optional :price, Float
1404
+
1405
+ # @!attribute quantity
1406
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
1407
+ #
1408
+ # @return [Float, nil]
1409
+ optional :quantity, Float
1410
+
1411
+ # @!attribute tiers
1412
+ # Only set for TIERED rate_type.
1413
+ #
1414
+ # @return [Array<MetronomeSDK::Models::Tier>, nil]
1415
+ optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
1416
+
1417
+ # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1418
+ # Some parameter documentations has been truncated, see
1419
+ # {MetronomeSDK::Models::ContractV2::Override::OverwriteRate} for more details.
1420
+ #
1421
+ # @param rate_type [Symbol, MetronomeSDK::Models::ContractV2::Override::OverwriteRate::RateType]
1422
+ #
1423
+ # @param credit_type [MetronomeSDK::Models::CreditTypeData]
1424
+ #
1425
+ # @param custom_rate [Hash{Symbol=>Object}] Only set for CUSTOM rate_type. This field is interpreted by custom rate processo
1426
+ #
1427
+ # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
1428
+ #
1429
+ # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
1430
+ #
1431
+ # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
1432
+ #
1433
+ # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
1434
+
1435
+ # @see MetronomeSDK::Models::ContractV2::Override::OverwriteRate#rate_type
1436
+ module RateType
1437
+ extend MetronomeSDK::Internal::Type::Enum
1438
+
1439
+ FLAT = :FLAT
1440
+ PERCENTAGE = :PERCENTAGE
1441
+ SUBSCRIPTION = :SUBSCRIPTION
1442
+ TIERED = :TIERED
1443
+ CUSTOM = :CUSTOM
1444
+
1445
+ # @!method self.values
1446
+ # @return [Array<Symbol>]
1447
+ end
1448
+ end
1449
+
1372
1450
  # @see MetronomeSDK::Models::ContractV2::Override#product
1373
1451
  class Product < MetronomeSDK::Internal::Type::BaseModel
1374
1452
  # @!attribute id
@@ -2070,6 +2148,7 @@ module MetronomeSDK
2070
2148
  QUICKBOOKS_ONLINE = :quickbooks_online
2071
2149
  WORKDAY = :workday
2072
2150
  GCP_MARKETPLACE = :gcp_marketplace
2151
+ METRONOME = :metronome
2073
2152
 
2074
2153
  # @!method self.values
2075
2154
  # @return [Array<Symbol>]
@@ -2119,6 +2198,196 @@ module MetronomeSDK
2119
2198
  # @param credits [Boolean] Whether there are more credits on this contract than the limit for this endpoint
2120
2199
  end
2121
2200
 
2201
+ # Either a **parent** configuration with a list of children or a **child**
2202
+ # configuration with a single parent.
2203
+ #
2204
+ # @see MetronomeSDK::Models::ContractV2#hierarchy_configuration
2205
+ module HierarchyConfiguration
2206
+ extend MetronomeSDK::Internal::Type::Union
2207
+
2208
+ variant -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration }
2209
+
2210
+ variant -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2 }
2211
+
2212
+ class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2213
+ # @!attribute children
2214
+ # List of contracts that belong to this parent.
2215
+ #
2216
+ # @return [Array<MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child>]
2217
+ required :children,
2218
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child] }
2219
+
2220
+ # @!attribute parent_behavior
2221
+ #
2222
+ # @return [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior, nil]
2223
+ optional :parent_behavior,
2224
+ -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior }
2225
+
2226
+ # @!method initialize(children:, parent_behavior: nil)
2227
+ # @param children [Array<MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child>] List of contracts that belong to this parent.
2228
+ #
2229
+ # @param parent_behavior [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior]
2230
+
2231
+ class Child < MetronomeSDK::Internal::Type::BaseModel
2232
+ # @!attribute contract_id
2233
+ #
2234
+ # @return [String]
2235
+ required :contract_id, String
2236
+
2237
+ # @!attribute customer_id
2238
+ #
2239
+ # @return [String]
2240
+ required :customer_id, String
2241
+
2242
+ # @!method initialize(contract_id:, customer_id:)
2243
+ # @param contract_id [String]
2244
+ # @param customer_id [String]
2245
+ end
2246
+
2247
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration#parent_behavior
2248
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
2249
+ # @!attribute invoice_consolidation_type
2250
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
2251
+ # generated by the parent in a customer hierarchy
2252
+ #
2253
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
2254
+ # to the consolidated invoice
2255
+ #
2256
+ # **NONE**: Do not generate consolidated invoices
2257
+ #
2258
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType, nil]
2259
+ optional :invoice_consolidation_type,
2260
+ enum: -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType }
2261
+
2262
+ # @!method initialize(invoice_consolidation_type: nil)
2263
+ # Some parameter documentations has been truncated, see
2264
+ # {MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior}
2265
+ # for more details.
2266
+ #
2267
+ # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Account hierarchy M3 - Indicates the desired behavior of consolidated invoices g
2268
+
2269
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
2270
+ # generated by the parent in a customer hierarchy
2271
+ #
2272
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
2273
+ # to the consolidated invoice
2274
+ #
2275
+ # **NONE**: Do not generate consolidated invoices
2276
+ #
2277
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior#invoice_consolidation_type
2278
+ module InvoiceConsolidationType
2279
+ extend MetronomeSDK::Internal::Type::Enum
2280
+
2281
+ CONCATENATE = :CONCATENATE
2282
+ NONE = :NONE
2283
+
2284
+ # @!method self.values
2285
+ # @return [Array<Symbol>]
2286
+ end
2287
+ end
2288
+ end
2289
+
2290
+ class ChildHierarchyConfigurationV2 < MetronomeSDK::Internal::Type::BaseModel
2291
+ # @!attribute parent
2292
+ # The single parent contract/customer for this child.
2293
+ #
2294
+ # @return [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent]
2295
+ required :parent,
2296
+ -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent }
2297
+
2298
+ # @!attribute payer
2299
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
2300
+ # invoice charges **SELF**: The child pays for its own invoice charges **PARENT**:
2301
+ # The parent pays for the child's invoice charges
2302
+ #
2303
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer, nil]
2304
+ optional :payer,
2305
+ enum: -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer }
2306
+
2307
+ # @!attribute usage_statement_behavior
2308
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
2309
+ # on the parent's invoices.
2310
+ #
2311
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
2312
+ # consolidated invoices
2313
+ #
2314
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
2315
+ # consolidated invoices
2316
+ #
2317
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior, nil]
2318
+ optional :usage_statement_behavior,
2319
+ enum: -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior }
2320
+
2321
+ # @!method initialize(parent:, payer: nil, usage_statement_behavior: nil)
2322
+ # Some parameter documentations has been truncated, see
2323
+ # {MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2}
2324
+ # for more details.
2325
+ #
2326
+ # @param parent [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent] The single parent contract/customer for this child.
2327
+ #
2328
+ # @param payer [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer] Account hierarchy M3 - Indicates which customer should pay for the child's invoi
2329
+ #
2330
+ # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior] Account hierarchy M3 - Indicates the behavior of the child's invoice statements
2331
+
2332
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2#parent
2333
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
2334
+ # @!attribute contract_id
2335
+ #
2336
+ # @return [String]
2337
+ required :contract_id, String
2338
+
2339
+ # @!attribute customer_id
2340
+ #
2341
+ # @return [String]
2342
+ required :customer_id, String
2343
+
2344
+ # @!method initialize(contract_id:, customer_id:)
2345
+ # The single parent contract/customer for this child.
2346
+ #
2347
+ # @param contract_id [String]
2348
+ # @param customer_id [String]
2349
+ end
2350
+
2351
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
2352
+ # invoice charges **SELF**: The child pays for its own invoice charges **PARENT**:
2353
+ # The parent pays for the child's invoice charges
2354
+ #
2355
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2#payer
2356
+ module Payer
2357
+ extend MetronomeSDK::Internal::Type::Enum
2358
+
2359
+ SELF = :SELF
2360
+ PARENT = :PARENT
2361
+
2362
+ # @!method self.values
2363
+ # @return [Array<Symbol>]
2364
+ end
2365
+
2366
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
2367
+ # on the parent's invoices.
2368
+ #
2369
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
2370
+ # consolidated invoices
2371
+ #
2372
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
2373
+ # consolidated invoices
2374
+ #
2375
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2#usage_statement_behavior
2376
+ module UsageStatementBehavior
2377
+ extend MetronomeSDK::Internal::Type::Enum
2378
+
2379
+ CONSOLIDATE = :CONSOLIDATE
2380
+ SEPARATE = :SEPARATE
2381
+
2382
+ # @!method self.values
2383
+ # @return [Array<Symbol>]
2384
+ end
2385
+ end
2386
+
2387
+ # @!method self.variants
2388
+ # @return [Array(MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2)]
2389
+ end
2390
+
2122
2391
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
2123
2392
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
2124
2393
  # each multiplier; the one with the lowest priority value will be prioritized
@@ -50,7 +50,7 @@ module MetronomeSDK
50
50
  optional :credits, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Credit] }
51
51
 
52
52
  # @!attribute discounts
53
- # This field's availability is dependent on your client's configuration.
53
+ # This field's availability is dependent on your client's
54
54
  #
55
55
  # @return [Array<MetronomeSDK::Models::Discount>, nil]
56
56
  optional :discounts, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Discount] }
@@ -174,7 +174,7 @@ module MetronomeSDK
174
174
  #
175
175
  # @param credits [Array<MetronomeSDK::Models::Credit>]
176
176
  #
177
- # @param discounts [Array<MetronomeSDK::Models::Discount>] This field's availability is dependent on your client's configuration.
177
+ # @param discounts [Array<MetronomeSDK::Models::Discount>] This field's availability is dependent on your client's
178
178
  #
179
179
  # @param ending_before [Time]
180
180
  #
@@ -19,8 +19,16 @@ module MetronomeSDK
19
19
  required :children,
20
20
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child] }
21
21
 
22
- # @!method initialize(children:)
22
+ # @!attribute parent_behavior
23
+ #
24
+ # @return [MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior, nil]
25
+ optional :parent_behavior,
26
+ -> { MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior }
27
+
28
+ # @!method initialize(children:, parent_behavior: nil)
23
29
  # @param children [Array<MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::Child>] List of contracts that belong to this parent.
30
+ #
31
+ # @param parent_behavior [MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior]
24
32
 
25
33
  class Child < MetronomeSDK::Internal::Type::BaseModel
26
34
  # @!attribute contract_id
@@ -37,6 +45,48 @@ module MetronomeSDK
37
45
  # @param contract_id [String]
38
46
  # @param customer_id [String]
39
47
  end
48
+
49
+ # @see MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration#parent_behavior
50
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
51
+ # @!attribute invoice_consolidation_type
52
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
53
+ # generated by the parent in a customer hierarchy
54
+ #
55
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
56
+ # to the consolidated invoice
57
+ #
58
+ # **NONE**: Do not generate consolidated invoices
59
+ #
60
+ # @return [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType, nil]
61
+ optional :invoice_consolidation_type,
62
+ enum: -> { MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType }
63
+
64
+ # @!method initialize(invoice_consolidation_type: nil)
65
+ # Some parameter documentations has been truncated, see
66
+ # {MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior}
67
+ # for more details.
68
+ #
69
+ # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Account hierarchy M3 - Indicates the desired behavior of consolidated invoices g
70
+
71
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
72
+ # generated by the parent in a customer hierarchy
73
+ #
74
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
75
+ # to the consolidated invoice
76
+ #
77
+ # **NONE**: Do not generate consolidated invoices
78
+ #
79
+ # @see MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior#invoice_consolidation_type
80
+ module InvoiceConsolidationType
81
+ extend MetronomeSDK::Internal::Type::Enum
82
+
83
+ CONCATENATE = :CONCATENATE
84
+ NONE = :NONE
85
+
86
+ # @!method self.values
87
+ # @return [Array<Symbol>]
88
+ end
89
+ end
40
90
  end
41
91
 
42
92
  class ChildHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
@@ -46,8 +96,41 @@ module MetronomeSDK
46
96
  # @return [MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Parent]
47
97
  required :parent, -> { MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent }
48
98
 
49
- # @!method initialize(parent:)
99
+ # @!attribute payer
100
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
101
+ # invoice charges
102
+ #
103
+ # **SELF**: The child pays for its own invoice charges
104
+ #
105
+ # **PARENT**: The parent pays for the child's invoice charges
106
+ #
107
+ # @return [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Payer, nil]
108
+ optional :payer, enum: -> { MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer }
109
+
110
+ # @!attribute usage_statement_behavior
111
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
112
+ # on the parent's invoices.
113
+ #
114
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
115
+ # consolidated invoices
116
+ #
117
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
118
+ # consolidated invoices
119
+ #
120
+ # @return [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior, nil]
121
+ optional :usage_statement_behavior,
122
+ enum: -> { MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior }
123
+
124
+ # @!method initialize(parent:, payer: nil, usage_statement_behavior: nil)
125
+ # Some parameter documentations has been truncated, see
126
+ # {MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration} for
127
+ # more details.
128
+ #
50
129
  # @param parent [MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Parent] The single parent contract/customer for this child.
130
+ #
131
+ # @param payer [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Payer] Account hierarchy M3 - Indicates which customer should pay for the child's invoi
132
+ #
133
+ # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior] Account hierarchy M3 - Indicates the behavior of the child's invoice statements
51
134
 
52
135
  # @see MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration#parent
53
136
  class Parent < MetronomeSDK::Internal::Type::BaseModel
@@ -67,6 +150,44 @@ module MetronomeSDK
67
150
  # @param contract_id [String]
68
151
  # @param customer_id [String]
69
152
  end
153
+
154
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
155
+ # invoice charges
156
+ #
157
+ # **SELF**: The child pays for its own invoice charges
158
+ #
159
+ # **PARENT**: The parent pays for the child's invoice charges
160
+ #
161
+ # @see MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration#payer
162
+ module Payer
163
+ extend MetronomeSDK::Internal::Type::Enum
164
+
165
+ SELF = :SELF
166
+ PARENT = :PARENT
167
+
168
+ # @!method self.values
169
+ # @return [Array<Symbol>]
170
+ end
171
+
172
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
173
+ # on the parent's invoices.
174
+ #
175
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
176
+ # consolidated invoices
177
+ #
178
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
179
+ # consolidated invoices
180
+ #
181
+ # @see MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration#usage_statement_behavior
182
+ module UsageStatementBehavior
183
+ extend MetronomeSDK::Internal::Type::Enum
184
+
185
+ CONSOLIDATE = :CONSOLIDATE
186
+ SEPARATE = :SEPARATE
187
+
188
+ # @!method self.values
189
+ # @return [Array<Symbol>]
190
+ end
70
191
  end
71
192
 
72
193
  # @!method self.variants
@@ -139,6 +139,7 @@ module MetronomeSDK
139
139
  NONE = :NONE
140
140
  STRIPE = :STRIPE
141
141
  ANROK = :ANROK
142
+ AVALARA = :AVALARA
142
143
  PRECALCULATED = :PRECALCULATED
143
144
 
144
145
  # @!method self.values
@@ -139,6 +139,7 @@ module MetronomeSDK
139
139
  NONE = :NONE
140
140
  STRIPE = :STRIPE
141
141
  ANROK = :ANROK
142
+ AVALARA = :AVALARA
142
143
  PRECALCULATED = :PRECALCULATED
143
144
 
144
145
  # @!method self.values
@@ -3,6 +3,12 @@
3
3
  module MetronomeSDK
4
4
  module Models
5
5
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
6
+ # @!attribute billing_periods
7
+ # Previous, current, and next billing periods for the subscription.
8
+ #
9
+ # @return [MetronomeSDK::Models::Subscription::BillingPeriods]
10
+ required :billing_periods, -> { MetronomeSDK::Subscription::BillingPeriods }
11
+
6
12
  # @!attribute collection_schedule
7
13
  #
8
14
  # @return [Symbol, MetronomeSDK::Models::Subscription::CollectionSchedule]
@@ -18,6 +24,11 @@ module MetronomeSDK
18
24
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
19
25
  # directly on the subscription. `initial_quantity` must be provided with this
20
26
  # option. Compatible with recurring commits/credits that use POOLED allocation.
27
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
28
+ # add user_123) to increment and decrement a subscription quantity, rather than
29
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
30
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
31
+ # provided with this option.
21
32
  #
22
33
  # @return [Symbol, MetronomeSDK::Models::Subscription::QuantityManagementMode]
23
34
  required :quantity_management_mode, enum: -> { MetronomeSDK::Subscription::QuantityManagementMode }
@@ -71,10 +82,12 @@ module MetronomeSDK
71
82
  # @return [String, nil]
72
83
  optional :name, String
73
84
 
74
- # @!method initialize(collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil)
85
+ # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil)
75
86
  # Some parameter documentations has been truncated, see
76
87
  # {MetronomeSDK::Models::Subscription} for more details.
77
88
  #
89
+ # @param billing_periods [MetronomeSDK::Models::Subscription::BillingPeriods] Previous, current, and next billing periods for the subscription.
90
+ #
78
91
  # @param collection_schedule [Symbol, MetronomeSDK::Models::Subscription::CollectionSchedule]
79
92
  #
80
93
  # @param proration [MetronomeSDK::Models::Subscription::Proration]
@@ -99,6 +112,82 @@ module MetronomeSDK
99
112
  #
100
113
  # @param name [String]
101
114
 
115
+ # @see MetronomeSDK::Models::Subscription#billing_periods
116
+ class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
117
+ # @!attribute current
118
+ #
119
+ # @return [MetronomeSDK::Models::Subscription::BillingPeriods::Current, nil]
120
+ optional :current, -> { MetronomeSDK::Subscription::BillingPeriods::Current }
121
+
122
+ # @!attribute next_
123
+ #
124
+ # @return [MetronomeSDK::Models::Subscription::BillingPeriods::Next, nil]
125
+ optional :next_, -> { MetronomeSDK::Subscription::BillingPeriods::Next }, api_name: :next
126
+
127
+ # @!attribute previous
128
+ #
129
+ # @return [MetronomeSDK::Models::Subscription::BillingPeriods::Previous, nil]
130
+ optional :previous, -> { MetronomeSDK::Subscription::BillingPeriods::Previous }
131
+
132
+ # @!method initialize(current: nil, next_: nil, previous: nil)
133
+ # Previous, current, and next billing periods for the subscription.
134
+ #
135
+ # @param current [MetronomeSDK::Models::Subscription::BillingPeriods::Current]
136
+ # @param next_ [MetronomeSDK::Models::Subscription::BillingPeriods::Next]
137
+ # @param previous [MetronomeSDK::Models::Subscription::BillingPeriods::Previous]
138
+
139
+ # @see MetronomeSDK::Models::Subscription::BillingPeriods#current
140
+ class Current < MetronomeSDK::Internal::Type::BaseModel
141
+ # @!attribute ending_before
142
+ #
143
+ # @return [Time]
144
+ required :ending_before, Time
145
+
146
+ # @!attribute starting_at
147
+ #
148
+ # @return [Time]
149
+ required :starting_at, Time
150
+
151
+ # @!method initialize(ending_before:, starting_at:)
152
+ # @param ending_before [Time]
153
+ # @param starting_at [Time]
154
+ end
155
+
156
+ # @see MetronomeSDK::Models::Subscription::BillingPeriods#next_
157
+ class Next < MetronomeSDK::Internal::Type::BaseModel
158
+ # @!attribute ending_before
159
+ #
160
+ # @return [Time]
161
+ required :ending_before, Time
162
+
163
+ # @!attribute starting_at
164
+ #
165
+ # @return [Time]
166
+ required :starting_at, Time
167
+
168
+ # @!method initialize(ending_before:, starting_at:)
169
+ # @param ending_before [Time]
170
+ # @param starting_at [Time]
171
+ end
172
+
173
+ # @see MetronomeSDK::Models::Subscription::BillingPeriods#previous
174
+ class Previous < MetronomeSDK::Internal::Type::BaseModel
175
+ # @!attribute ending_before
176
+ #
177
+ # @return [Time]
178
+ required :ending_before, Time
179
+
180
+ # @!attribute starting_at
181
+ #
182
+ # @return [Time]
183
+ required :starting_at, Time
184
+
185
+ # @!method initialize(ending_before:, starting_at:)
186
+ # @param ending_before [Time]
187
+ # @param starting_at [Time]
188
+ end
189
+ end
190
+
102
191
  # @see MetronomeSDK::Models::Subscription#collection_schedule
103
192
  module CollectionSchedule
104
193
  extend MetronomeSDK::Internal::Type::Enum
@@ -142,6 +231,11 @@ module MetronomeSDK
142
231
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
143
232
  # directly on the subscription. `initial_quantity` must be provided with this
144
233
  # option. Compatible with recurring commits/credits that use POOLED allocation.
234
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
235
+ # add user_123) to increment and decrement a subscription quantity, rather than
236
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
237
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
238
+ # provided with this option.
145
239
  #
146
240
  # @see MetronomeSDK::Models::Subscription#quantity_management_mode
147
241
  module QuantityManagementMode