metronome-sdk 1.0.0 → 2.0.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 (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +55 -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 +7 -10
  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_v2.rb +256 -6
  16. data/lib/metronome_sdk/models/contract_without_amendments.rb +2 -2
  17. data/lib/metronome_sdk/models/hierarchy_configuration.rb +99 -2
  18. data/lib/metronome_sdk/models/payment_gate_config.rb +1 -0
  19. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +1 -0
  20. data/lib/metronome_sdk/models/subscription.rb +85 -1
  21. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  22. data/lib/metronome_sdk/models/v1/alert_create_params.rb +38 -36
  23. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/contract_create_params.rb +101 -3
  25. data/lib/metronome_sdk/models/v1/customer_detail.rb +9 -1
  26. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +5 -15
  27. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  28. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +3 -3
  29. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  30. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +12 -12
  31. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +40 -38
  32. data/lib/metronome_sdk/models/v1/customers/invoice.rb +136 -18
  33. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  34. data/lib/metronome_sdk/models/v1/payment.rb +151 -0
  35. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  36. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  37. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  38. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  39. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  40. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  41. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +9 -1
  42. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +9 -1
  43. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +186 -3
  44. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +195 -8
  45. data/lib/metronome_sdk/resources/v1/alerts.rb +57 -53
  46. data/lib/metronome_sdk/resources/v1/contracts.rb +4 -3
  47. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +70 -51
  48. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +55 -0
  49. data/lib/metronome_sdk/resources/v1/customers.rb +7 -4
  50. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  51. data/lib/metronome_sdk/resources/v1/usage.rb +4 -2
  52. data/lib/metronome_sdk/resources/v1.rb +4 -0
  53. data/lib/metronome_sdk/resources/v2/contracts.rb +9 -3
  54. data/lib/metronome_sdk/version.rb +1 -1
  55. data/lib/metronome_sdk.rb +9 -0
  56. data/rbi/metronome_sdk/errors.rbi +29 -2
  57. data/rbi/metronome_sdk/file_part.rbi +1 -1
  58. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  59. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  60. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  61. data/rbi/metronome_sdk/models/contract_v2.rbi +603 -10
  62. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +2 -2
  63. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +250 -6
  64. data/rbi/metronome_sdk/models/payment_gate_config.rbi +5 -0
  65. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +5 -0
  66. data/rbi/metronome_sdk/models/subscription.rbi +175 -0
  67. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  68. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +51 -47
  69. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +5 -0
  70. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +257 -4
  71. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +8 -0
  72. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +6 -21
  73. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  74. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  75. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  76. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +14 -14
  77. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +48 -44
  78. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +246 -58
  79. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  80. data/rbi/metronome_sdk/models/v1/payment.rbi +316 -0
  81. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  82. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  83. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  84. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  85. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  86. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  87. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +18 -0
  88. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +18 -0
  89. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +498 -6
  90. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +462 -14
  91. data/rbi/metronome_sdk/resources/v1/alerts.rbi +68 -64
  92. data/rbi/metronome_sdk/resources/v1/contracts.rbi +4 -3
  93. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +73 -54
  94. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +36 -0
  95. data/rbi/metronome_sdk/resources/v1/customers.rbi +7 -4
  96. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  97. data/rbi/metronome_sdk/resources/v1/usage.rbi +4 -2
  98. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  99. data/rbi/metronome_sdk/resources/v2/contracts.rbi +14 -0
  100. data/sig/metronome_sdk/errors.rbs +7 -0
  101. data/sig/metronome_sdk/file_part.rbs +1 -1
  102. data/sig/metronome_sdk/models/contract_v2.rbs +239 -12
  103. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +87 -6
  104. data/sig/metronome_sdk/models/payment_gate_config.rbs +2 -1
  105. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +2 -1
  106. data/sig/metronome_sdk/models/subscription.rbs +80 -0
  107. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +2 -1
  108. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +91 -5
  109. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  110. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  111. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  112. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +137 -24
  113. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  114. data/sig/metronome_sdk/models/v1/payment.rbs +191 -0
  115. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  116. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  117. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  118. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  119. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  120. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  121. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +9 -0
  122. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +9 -0
  123. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +182 -7
  124. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +221 -18
  125. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  126. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  127. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  128. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -0
  129. metadata +29 -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
@@ -2119,6 +2197,178 @@ module MetronomeSDK
2119
2197
  # @param credits [Boolean] Whether there are more credits on this contract than the limit for this endpoint
2120
2198
  end
2121
2199
 
2200
+ # Either a **parent** configuration with a list of children or a **child**
2201
+ # configuration with a single parent.
2202
+ #
2203
+ # @see MetronomeSDK::Models::ContractV2#hierarchy_configuration
2204
+ module HierarchyConfiguration
2205
+ extend MetronomeSDK::Internal::Type::Union
2206
+
2207
+ variant -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration }
2208
+
2209
+ variant -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2 }
2210
+
2211
+ class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2212
+ # @!attribute children
2213
+ # List of contracts that belong to this parent.
2214
+ #
2215
+ # @return [Array<MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child>]
2216
+ required :children,
2217
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child] }
2218
+
2219
+ # @!attribute parent_behavior
2220
+ #
2221
+ # @return [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior, nil]
2222
+ optional :parent_behavior,
2223
+ -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior }
2224
+
2225
+ # @!method initialize(children:, parent_behavior: nil)
2226
+ # @param children [Array<MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child>] List of contracts that belong to this parent.
2227
+ #
2228
+ # @param parent_behavior [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior]
2229
+
2230
+ class Child < MetronomeSDK::Internal::Type::BaseModel
2231
+ # @!attribute contract_id
2232
+ #
2233
+ # @return [String]
2234
+ required :contract_id, String
2235
+
2236
+ # @!attribute customer_id
2237
+ #
2238
+ # @return [String]
2239
+ required :customer_id, String
2240
+
2241
+ # @!method initialize(contract_id:, customer_id:)
2242
+ # @param contract_id [String]
2243
+ # @param customer_id [String]
2244
+ end
2245
+
2246
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration#parent_behavior
2247
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
2248
+ # @!attribute invoice_consolidation_type
2249
+ # Indicates the desired behavior of consolidated invoices generated by the parent
2250
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
2251
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
2252
+ # consolidated invoices
2253
+ #
2254
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType, nil]
2255
+ optional :invoice_consolidation_type,
2256
+ enum: -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType }
2257
+
2258
+ # @!method initialize(invoice_consolidation_type: nil)
2259
+ # Some parameter documentations has been truncated, see
2260
+ # {MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior}
2261
+ # for more details.
2262
+ #
2263
+ # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Indicates the desired behavior of consolidated invoices generated by the parent
2264
+
2265
+ # Indicates the desired behavior of consolidated invoices generated by the parent
2266
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
2267
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
2268
+ # consolidated invoices
2269
+ #
2270
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior#invoice_consolidation_type
2271
+ module InvoiceConsolidationType
2272
+ extend MetronomeSDK::Internal::Type::Enum
2273
+
2274
+ CONCATENATE = :CONCATENATE
2275
+ NONE = :NONE
2276
+
2277
+ # @!method self.values
2278
+ # @return [Array<Symbol>]
2279
+ end
2280
+ end
2281
+ end
2282
+
2283
+ class ChildHierarchyConfigurationV2 < MetronomeSDK::Internal::Type::BaseModel
2284
+ # @!attribute parent
2285
+ # The single parent contract/customer for this child.
2286
+ #
2287
+ # @return [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent]
2288
+ required :parent,
2289
+ -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent }
2290
+
2291
+ # @!attribute payer
2292
+ # Indicates whether the child or parent should pay for the child's invoice charges
2293
+ #
2294
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer, nil]
2295
+ optional :payer,
2296
+ enum: -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer }
2297
+
2298
+ # @!attribute usage_statement_behavior
2299
+ # Indicates the behavior of the child's invoice statements on the parent's
2300
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
2301
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
2302
+ # appear on parent's consolidated invoices
2303
+ #
2304
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior, nil]
2305
+ optional :usage_statement_behavior,
2306
+ enum: -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior }
2307
+
2308
+ # @!method initialize(parent:, payer: nil, usage_statement_behavior: nil)
2309
+ # Some parameter documentations has been truncated, see
2310
+ # {MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2}
2311
+ # for more details.
2312
+ #
2313
+ # @param parent [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent] The single parent contract/customer for this child.
2314
+ #
2315
+ # @param payer [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer] Indicates whether the child or parent should pay for the child's invoice charges
2316
+ #
2317
+ # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior] Indicates the behavior of the child's invoice statements on the parent's invoice
2318
+
2319
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2#parent
2320
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
2321
+ # @!attribute contract_id
2322
+ #
2323
+ # @return [String]
2324
+ required :contract_id, String
2325
+
2326
+ # @!attribute customer_id
2327
+ #
2328
+ # @return [String]
2329
+ required :customer_id, String
2330
+
2331
+ # @!method initialize(contract_id:, customer_id:)
2332
+ # The single parent contract/customer for this child.
2333
+ #
2334
+ # @param contract_id [String]
2335
+ # @param customer_id [String]
2336
+ end
2337
+
2338
+ # Indicates whether the child or parent should pay for the child's invoice charges
2339
+ #
2340
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2#payer
2341
+ module Payer
2342
+ extend MetronomeSDK::Internal::Type::Enum
2343
+
2344
+ SELF = :SELF
2345
+ PARENT = :PARENT
2346
+
2347
+ # @!method self.values
2348
+ # @return [Array<Symbol>]
2349
+ end
2350
+
2351
+ # Indicates the behavior of the child's invoice statements on the parent's
2352
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
2353
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
2354
+ # appear on parent's consolidated invoices
2355
+ #
2356
+ # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2#usage_statement_behavior
2357
+ module UsageStatementBehavior
2358
+ extend MetronomeSDK::Internal::Type::Enum
2359
+
2360
+ CONSOLIDATE = :CONSOLIDATE
2361
+ SEPARATE = :SEPARATE
2362
+
2363
+ # @!method self.values
2364
+ # @return [Array<Symbol>]
2365
+ end
2366
+ end
2367
+
2368
+ # @!method self.variants
2369
+ # @return [Array(MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2)]
2370
+ end
2371
+
2122
2372
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
2123
2373
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
2124
2374
  # 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,42 @@ 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
+ # Indicates the desired behavior of consolidated invoices generated by the parent
53
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
54
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
55
+ # consolidated invoices
56
+ #
57
+ # @return [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType, nil]
58
+ optional :invoice_consolidation_type,
59
+ enum: -> { MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType }
60
+
61
+ # @!method initialize(invoice_consolidation_type: nil)
62
+ # Some parameter documentations has been truncated, see
63
+ # {MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior}
64
+ # for more details.
65
+ #
66
+ # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Indicates the desired behavior of consolidated invoices generated by the parent
67
+
68
+ # Indicates the desired behavior of consolidated invoices generated by the parent
69
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
70
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
71
+ # consolidated invoices
72
+ #
73
+ # @see MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior#invoice_consolidation_type
74
+ module InvoiceConsolidationType
75
+ extend MetronomeSDK::Internal::Type::Enum
76
+
77
+ CONCATENATE = :CONCATENATE
78
+ NONE = :NONE
79
+
80
+ # @!method self.values
81
+ # @return [Array<Symbol>]
82
+ end
83
+ end
40
84
  end
41
85
 
42
86
  class ChildHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
@@ -46,8 +90,32 @@ module MetronomeSDK
46
90
  # @return [MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Parent]
47
91
  required :parent, -> { MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent }
48
92
 
49
- # @!method initialize(parent:)
93
+ # @!attribute payer
94
+ # Indicates whether the parent should pay for the child's invoice charges
95
+ #
96
+ # @return [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Payer, nil]
97
+ optional :payer, enum: -> { MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer }
98
+
99
+ # @!attribute usage_statement_behavior
100
+ # Indicates the behavior of the child's invoice statements on the parent's
101
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
102
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
103
+ # appear on parent's consolidated invoices
104
+ #
105
+ # @return [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior, nil]
106
+ optional :usage_statement_behavior,
107
+ enum: -> { MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior }
108
+
109
+ # @!method initialize(parent:, payer: nil, usage_statement_behavior: nil)
110
+ # Some parameter documentations has been truncated, see
111
+ # {MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration} for
112
+ # more details.
113
+ #
50
114
  # @param parent [MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Parent] The single parent contract/customer for this child.
115
+ #
116
+ # @param payer [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Payer] Indicates whether the parent should pay for the child's invoice charges
117
+ #
118
+ # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior] Indicates the behavior of the child's invoice statements on the parent's invoice
51
119
 
52
120
  # @see MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration#parent
53
121
  class Parent < MetronomeSDK::Internal::Type::BaseModel
@@ -67,6 +135,35 @@ module MetronomeSDK
67
135
  # @param contract_id [String]
68
136
  # @param customer_id [String]
69
137
  end
138
+
139
+ # Indicates whether the parent should pay for the child's invoice charges
140
+ #
141
+ # @see MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration#payer
142
+ module Payer
143
+ extend MetronomeSDK::Internal::Type::Enum
144
+
145
+ SELF = :SELF
146
+ PARENT = :PARENT
147
+
148
+ # @!method self.values
149
+ # @return [Array<Symbol>]
150
+ end
151
+
152
+ # Indicates the behavior of the child's invoice statements on the parent's
153
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
154
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
155
+ # appear on parent's consolidated invoices
156
+ #
157
+ # @see MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration#usage_statement_behavior
158
+ module UsageStatementBehavior
159
+ extend MetronomeSDK::Internal::Type::Enum
160
+
161
+ CONSOLIDATE = :CONSOLIDATE
162
+ SEPARATE = :SEPARATE
163
+
164
+ # @!method self.values
165
+ # @return [Array<Symbol>]
166
+ end
70
167
  end
71
168
 
72
169
  # @!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]
@@ -71,10 +77,12 @@ module MetronomeSDK
71
77
  # @return [String, nil]
72
78
  optional :name, String
73
79
 
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)
80
+ # @!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
81
  # Some parameter documentations has been truncated, see
76
82
  # {MetronomeSDK::Models::Subscription} for more details.
77
83
  #
84
+ # @param billing_periods [MetronomeSDK::Models::Subscription::BillingPeriods] Previous, current, and next billing periods for the subscription.
85
+ #
78
86
  # @param collection_schedule [Symbol, MetronomeSDK::Models::Subscription::CollectionSchedule]
79
87
  #
80
88
  # @param proration [MetronomeSDK::Models::Subscription::Proration]
@@ -99,6 +107,82 @@ module MetronomeSDK
99
107
  #
100
108
  # @param name [String]
101
109
 
110
+ # @see MetronomeSDK::Models::Subscription#billing_periods
111
+ class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
112
+ # @!attribute current
113
+ #
114
+ # @return [MetronomeSDK::Models::Subscription::BillingPeriods::Current, nil]
115
+ optional :current, -> { MetronomeSDK::Subscription::BillingPeriods::Current }
116
+
117
+ # @!attribute next_
118
+ #
119
+ # @return [MetronomeSDK::Models::Subscription::BillingPeriods::Next, nil]
120
+ optional :next_, -> { MetronomeSDK::Subscription::BillingPeriods::Next }, api_name: :next
121
+
122
+ # @!attribute previous
123
+ #
124
+ # @return [MetronomeSDK::Models::Subscription::BillingPeriods::Previous, nil]
125
+ optional :previous, -> { MetronomeSDK::Subscription::BillingPeriods::Previous }
126
+
127
+ # @!method initialize(current: nil, next_: nil, previous: nil)
128
+ # Previous, current, and next billing periods for the subscription.
129
+ #
130
+ # @param current [MetronomeSDK::Models::Subscription::BillingPeriods::Current]
131
+ # @param next_ [MetronomeSDK::Models::Subscription::BillingPeriods::Next]
132
+ # @param previous [MetronomeSDK::Models::Subscription::BillingPeriods::Previous]
133
+
134
+ # @see MetronomeSDK::Models::Subscription::BillingPeriods#current
135
+ class Current < MetronomeSDK::Internal::Type::BaseModel
136
+ # @!attribute ending_before
137
+ #
138
+ # @return [Time]
139
+ required :ending_before, Time
140
+
141
+ # @!attribute starting_at
142
+ #
143
+ # @return [Time]
144
+ required :starting_at, Time
145
+
146
+ # @!method initialize(ending_before:, starting_at:)
147
+ # @param ending_before [Time]
148
+ # @param starting_at [Time]
149
+ end
150
+
151
+ # @see MetronomeSDK::Models::Subscription::BillingPeriods#next_
152
+ class Next < MetronomeSDK::Internal::Type::BaseModel
153
+ # @!attribute ending_before
154
+ #
155
+ # @return [Time]
156
+ required :ending_before, Time
157
+
158
+ # @!attribute starting_at
159
+ #
160
+ # @return [Time]
161
+ required :starting_at, Time
162
+
163
+ # @!method initialize(ending_before:, starting_at:)
164
+ # @param ending_before [Time]
165
+ # @param starting_at [Time]
166
+ end
167
+
168
+ # @see MetronomeSDK::Models::Subscription::BillingPeriods#previous
169
+ class Previous < MetronomeSDK::Internal::Type::BaseModel
170
+ # @!attribute ending_before
171
+ #
172
+ # @return [Time]
173
+ required :ending_before, Time
174
+
175
+ # @!attribute starting_at
176
+ #
177
+ # @return [Time]
178
+ required :starting_at, Time
179
+
180
+ # @!method initialize(ending_before:, starting_at:)
181
+ # @param ending_before [Time]
182
+ # @param starting_at [Time]
183
+ end
184
+ end
185
+
102
186
  # @see MetronomeSDK::Models::Subscription#collection_schedule
103
187
  module CollectionSchedule
104
188
  extend MetronomeSDK::Internal::Type::Enum
@@ -9,21 +9,25 @@ module MetronomeSDK
9
9
  include MetronomeSDK::Internal::Type::RequestParameters
10
10
 
11
11
  # @!attribute id
12
- # The Metronome ID of the alert
12
+ # The Metronome ID of the threshold notification
13
13
  #
14
14
  # @return [String]
15
15
  required :id, String
16
16
 
17
17
  # @!attribute release_uniqueness_key
18
- # If true, resets the uniqueness key on this alert so it can be re-used
18
+ # If true, resets the uniqueness key on this threshold notification so it can be
19
+ # re-used
19
20
  #
20
21
  # @return [Boolean, nil]
21
22
  optional :release_uniqueness_key, MetronomeSDK::Internal::Type::Boolean
22
23
 
23
24
  # @!method initialize(id:, release_uniqueness_key: nil, request_options: {})
24
- # @param id [String] The Metronome ID of the alert
25
+ # Some parameter documentations has been truncated, see
26
+ # {MetronomeSDK::Models::V1::AlertArchiveParams} for more details.
25
27
  #
26
- # @param release_uniqueness_key [Boolean] If true, resets the uniqueness key on this alert so it can be re-used
28
+ # @param id [String] The Metronome ID of the threshold notification
29
+ #
30
+ # @param release_uniqueness_key [Boolean] If true, resets the uniqueness key on this threshold notification so it can be r
27
31
  #
28
32
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
29
33
  end