metronome-sdk 3.7.0 → 3.8.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/models/commit.rb +10 -1
  6. data/lib/metronome_sdk/models/contract_v2.rb +290 -7
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +178 -4
  8. data/lib/metronome_sdk/models/credit.rb +10 -1
  9. data/lib/metronome_sdk/models/override.rb +7 -1
  10. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +10 -2
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +3 -1
  12. data/lib/metronome_sdk/models/subscription.rb +90 -2
  13. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  14. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +17 -4
  15. data/lib/metronome_sdk/models/v1/contract_create_params.rb +290 -10
  16. data/lib/metronome_sdk/models/v1/contract_create_response.rb +178 -4
  17. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  18. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  21. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  22. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  23. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  24. data/lib/metronome_sdk/models/v1/package_create_params.rb +279 -10
  25. data/lib/metronome_sdk/models/v1/package_list_response.rb +264 -7
  26. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +264 -7
  27. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +515 -9
  28. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +456 -8
  29. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +456 -8
  30. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  31. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  32. data/lib/metronome_sdk/resources/v1/contracts.rb +68 -1
  33. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  34. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  36. data/lib/metronome_sdk/version.rb +1 -1
  37. data/lib/metronome_sdk.rb +2 -0
  38. data/rbi/metronome_sdk/models/commit.rbi +13 -0
  39. data/rbi/metronome_sdk/models/contract_v2.rbi +715 -3
  40. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +463 -0
  41. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  42. data/rbi/metronome_sdk/models/override.rbi +9 -0
  43. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +11 -1
  44. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +4 -0
  45. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  46. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  47. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +27 -6
  48. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +719 -9
  49. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +463 -0
  50. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  51. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  52. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  53. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  54. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  55. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  56. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  57. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +706 -9
  58. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +693 -3
  59. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +693 -3
  60. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1333 -40
  61. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +1204 -67
  62. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1204 -67
  63. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  64. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  65. data/rbi/metronome_sdk/resources/v1/contracts.rbi +70 -0
  66. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  67. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  68. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  69. data/sig/metronome_sdk/models/commit.rbs +7 -0
  70. data/sig/metronome_sdk/models/contract_v2.rbs +278 -5
  71. data/sig/metronome_sdk/models/contract_without_amendments.rbs +169 -2
  72. data/sig/metronome_sdk/models/credit.rbs +7 -0
  73. data/sig/metronome_sdk/models/override.rbs +7 -0
  74. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  75. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  76. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +7 -0
  77. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +278 -5
  78. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +167 -2
  79. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  80. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  81. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  82. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  83. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  84. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  85. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  86. data/sig/metronome_sdk/models/v1/package_create_params.rbs +271 -5
  87. data/sig/metronome_sdk/models/v1/package_list_response.rbs +265 -5
  88. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +263 -5
  89. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +468 -5
  90. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +428 -5
  91. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +427 -5
  92. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  93. data/sig/metronome_sdk/resources/v1/contracts.rbs +13 -0
  94. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  95. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  96. metadata +8 -2
@@ -793,6 +793,11 @@ module MetronomeSDK
793
793
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddOverride::Type]
794
794
 
795
795
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
796
+ # @!attribute any_commit_or_credit_ids
797
+ #
798
+ # @return [Array<String>, nil]
799
+ optional :any_commit_or_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
800
+
796
801
  # @!attribute billing_frequency
797
802
  #
798
803
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddOverride::OverrideSpecifier::BillingFrequency, nil]
@@ -829,7 +834,8 @@ module MetronomeSDK
829
834
  # @return [Array<String>, nil]
830
835
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
831
836
 
832
- # @!method initialize(billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
837
+ # @!method initialize(any_commit_or_credit_ids: nil, billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
838
+ # @param any_commit_or_credit_ids [Array<String>]
833
839
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddOverride::OverrideSpecifier::BillingFrequency]
834
840
  # @param commit_ids [Array<String>]
835
841
  # @param presentation_group_values [Hash{Symbol=>String, nil}]
@@ -1082,6 +1088,14 @@ module MetronomeSDK
1082
1088
  optional :proration,
1083
1089
  enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::Proration }
1084
1090
 
1091
+ # @!attribute proration_rounding
1092
+ # Rounding configuration for prorated recurring commit amounts.
1093
+ #
1094
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding, nil]
1095
+ optional :proration_rounding,
1096
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding },
1097
+ nil?: true
1098
+
1085
1099
  # @!attribute recurrence_frequency
1086
1100
  # The frequency at which the recurring commits will be created. If not provided: -
1087
1101
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -1115,7 +1129,7 @@ module MetronomeSDK
1115
1129
  # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
1116
1130
  optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
1117
1131
 
1118
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1132
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, proration_rounding: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1119
1133
  # Some parameter documentations has been truncated, see
1120
1134
  # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit}
1121
1135
  # for more details.
@@ -1154,6 +1168,8 @@ module MetronomeSDK
1154
1168
  #
1155
1169
  # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1156
1170
  #
1171
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding, nil] Rounding configuration for prorated recurring commit amounts.
1172
+ #
1157
1173
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1158
1174
  #
1159
1175
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
@@ -1299,6 +1315,103 @@ module MetronomeSDK
1299
1315
  # @return [Array<Symbol>]
1300
1316
  end
1301
1317
 
1318
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit#proration_rounding
1319
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
1320
+ # @!attribute access
1321
+ #
1322
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Access, nil]
1323
+ optional :access,
1324
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Access }
1325
+
1326
+ # @!attribute invoice
1327
+ #
1328
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Invoice, nil]
1329
+ optional :invoice,
1330
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Invoice }
1331
+
1332
+ # @!method initialize(access: nil, invoice: nil)
1333
+ # Rounding configuration for prorated recurring commit amounts.
1334
+ #
1335
+ # @param access [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Access]
1336
+ # @param invoice [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Invoice]
1337
+
1338
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding#access
1339
+ class Access < MetronomeSDK::Internal::Type::BaseModel
1340
+ # @!attribute decimal_places
1341
+ # Number of decimal places to round to. Applied directly to the stored monetary
1342
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1343
+ # nearest 100 in the stored unit).
1344
+ #
1345
+ # @return [Float]
1346
+ required :decimal_places, Float
1347
+
1348
+ # @!attribute rounding_method
1349
+ #
1350
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Access::RoundingMethod]
1351
+ required :rounding_method,
1352
+ enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Access::RoundingMethod }
1353
+
1354
+ # @!method initialize(decimal_places:, rounding_method:)
1355
+ # Some parameter documentations has been truncated, see
1356
+ # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Access}
1357
+ # for more details.
1358
+ #
1359
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
1360
+ #
1361
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Access::RoundingMethod]
1362
+
1363
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Access#rounding_method
1364
+ module RoundingMethod
1365
+ extend MetronomeSDK::Internal::Type::Enum
1366
+
1367
+ HALF_UP = :HALF_UP
1368
+ FLOOR = :FLOOR
1369
+ CEILING = :CEILING
1370
+
1371
+ # @!method self.values
1372
+ # @return [Array<Symbol>]
1373
+ end
1374
+ end
1375
+
1376
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding#invoice
1377
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
1378
+ # @!attribute decimal_places
1379
+ # Number of decimal places to round to. Applied directly to the stored monetary
1380
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1381
+ # nearest 100 in the stored unit).
1382
+ #
1383
+ # @return [Float]
1384
+ required :decimal_places, Float
1385
+
1386
+ # @!attribute rounding_method
1387
+ #
1388
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod]
1389
+ required :rounding_method,
1390
+ enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod }
1391
+
1392
+ # @!method initialize(decimal_places:, rounding_method:)
1393
+ # Some parameter documentations has been truncated, see
1394
+ # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Invoice}
1395
+ # for more details.
1396
+ #
1397
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
1398
+ #
1399
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod]
1400
+
1401
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCommit::ProrationRounding::Invoice#rounding_method
1402
+ module RoundingMethod
1403
+ extend MetronomeSDK::Internal::Type::Enum
1404
+
1405
+ HALF_UP = :HALF_UP
1406
+ FLOOR = :FLOOR
1407
+ CEILING = :CEILING
1408
+
1409
+ # @!method self.values
1410
+ # @return [Array<Symbol>]
1411
+ end
1412
+ end
1413
+ end
1414
+
1302
1415
  # The frequency at which the recurring commits will be created. If not provided: -
1303
1416
  # The commits will be created on the usage invoice frequency. If provided: - The
1304
1417
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1313,6 +1426,7 @@ module MetronomeSDK
1313
1426
  QUARTERLY = :QUARTERLY
1314
1427
  ANNUAL = :ANNUAL
1315
1428
  WEEKLY = :WEEKLY
1429
+ DAILY = :DAILY
1316
1430
 
1317
1431
  # @!method self.values
1318
1432
  # @return [Array<Symbol>]
@@ -1420,6 +1534,14 @@ module MetronomeSDK
1420
1534
  optional :proration,
1421
1535
  enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::Proration }
1422
1536
 
1537
+ # @!attribute proration_rounding
1538
+ # Rounding configuration for prorated recurring credit amounts.
1539
+ #
1540
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding, nil]
1541
+ optional :proration_rounding,
1542
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding },
1543
+ nil?: true
1544
+
1423
1545
  # @!attribute recurrence_frequency
1424
1546
  # The frequency at which the recurring commits will be created. If not provided: -
1425
1547
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -1453,7 +1575,7 @@ module MetronomeSDK
1453
1575
  # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
1454
1576
  optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
1455
1577
 
1456
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1578
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, proration_rounding: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1457
1579
  # Some parameter documentations has been truncated, see
1458
1580
  # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit}
1459
1581
  # for more details.
@@ -1490,6 +1612,8 @@ module MetronomeSDK
1490
1612
  #
1491
1613
  # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1492
1614
  #
1615
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding, nil] Rounding configuration for prorated recurring credit amounts.
1616
+ #
1493
1617
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1494
1618
  #
1495
1619
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
@@ -1610,6 +1734,58 @@ module MetronomeSDK
1610
1734
  # @return [Array<Symbol>]
1611
1735
  end
1612
1736
 
1737
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit#proration_rounding
1738
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
1739
+ # @!attribute access
1740
+ #
1741
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding::Access, nil]
1742
+ optional :access,
1743
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding::Access }
1744
+
1745
+ # @!method initialize(access: nil)
1746
+ # Rounding configuration for prorated recurring credit amounts.
1747
+ #
1748
+ # @param access [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding::Access]
1749
+
1750
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding#access
1751
+ class Access < MetronomeSDK::Internal::Type::BaseModel
1752
+ # @!attribute decimal_places
1753
+ # Number of decimal places to round to. Applied directly to the stored monetary
1754
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1755
+ # nearest 100 in the stored unit).
1756
+ #
1757
+ # @return [Float]
1758
+ required :decimal_places, Float
1759
+
1760
+ # @!attribute rounding_method
1761
+ #
1762
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding::Access::RoundingMethod]
1763
+ required :rounding_method,
1764
+ enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding::Access::RoundingMethod }
1765
+
1766
+ # @!method initialize(decimal_places:, rounding_method:)
1767
+ # Some parameter documentations has been truncated, see
1768
+ # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding::Access}
1769
+ # for more details.
1770
+ #
1771
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
1772
+ #
1773
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding::Access::RoundingMethod]
1774
+
1775
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddRecurringCredit::ProrationRounding::Access#rounding_method
1776
+ module RoundingMethod
1777
+ extend MetronomeSDK::Internal::Type::Enum
1778
+
1779
+ HALF_UP = :HALF_UP
1780
+ FLOOR = :FLOOR
1781
+ CEILING = :CEILING
1782
+
1783
+ # @!method self.values
1784
+ # @return [Array<Symbol>]
1785
+ end
1786
+ end
1787
+ end
1788
+
1613
1789
  # The frequency at which the recurring commits will be created. If not provided: -
1614
1790
  # The commits will be created on the usage invoice frequency. If provided: - The
1615
1791
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1624,6 +1800,7 @@ module MetronomeSDK
1624
1800
  QUARTERLY = :QUARTERLY
1625
1801
  ANNUAL = :ANNUAL
1626
1802
  WEEKLY = :WEEKLY
1803
+ DAILY = :DAILY
1627
1804
 
1628
1805
  # @!method self.values
1629
1806
  # @return [Array<Symbol>]
@@ -1843,6 +2020,12 @@ module MetronomeSDK
1843
2020
  # @return [String, nil]
1844
2021
  optional :id, String
1845
2022
 
2023
+ # @!attribute billing_cycle_config
2024
+ #
2025
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::BillingCycleConfig, nil]
2026
+ optional :billing_cycle_config,
2027
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::BillingCycleConfig }
2028
+
1846
2029
  # @!attribute custom_fields
1847
2030
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1848
2031
  #
@@ -1875,7 +2058,7 @@ module MetronomeSDK
1875
2058
  optional :seat_config,
1876
2059
  -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::SeatConfig }
1877
2060
 
1878
- # @!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, seat_config: nil)
2061
+ # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, billing_cycle_config: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil, seat_config: nil)
1879
2062
  # Some parameter documentations has been truncated, see
1880
2063
  # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription}
1881
2064
  # for more details.
@@ -1896,6 +2079,8 @@ module MetronomeSDK
1896
2079
  #
1897
2080
  # @param id [String]
1898
2081
  #
2082
+ # @param billing_cycle_config [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::BillingCycleConfig]
2083
+ #
1899
2084
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1900
2085
  #
1901
2086
  # @param description [String]
@@ -2012,9 +2197,16 @@ module MetronomeSDK
2012
2197
  # @return [Boolean]
2013
2198
  required :is_prorated, MetronomeSDK::Internal::Type::Boolean
2014
2199
 
2015
- # @!method initialize(invoice_behavior:, is_prorated:)
2200
+ # @!attribute rounding
2201
+ #
2202
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration::Rounding, nil]
2203
+ optional :rounding,
2204
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration::Rounding }
2205
+
2206
+ # @!method initialize(invoice_behavior:, is_prorated:, rounding: nil)
2016
2207
  # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration::InvoiceBehavior]
2017
2208
  # @param is_prorated [Boolean]
2209
+ # @param rounding [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration::Rounding]
2018
2210
 
2019
2211
  # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration#invoice_behavior
2020
2212
  module InvoiceBehavior
@@ -2026,6 +2218,44 @@ module MetronomeSDK
2026
2218
  # @!method self.values
2027
2219
  # @return [Array<Symbol>]
2028
2220
  end
2221
+
2222
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration#rounding
2223
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
2224
+ # @!attribute decimal_places
2225
+ # Number of decimal places to round to. Applied directly to the stored monetary
2226
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2227
+ # nearest 100 in the stored unit).
2228
+ #
2229
+ # @return [Float]
2230
+ required :decimal_places, Float
2231
+
2232
+ # @!attribute rounding_method
2233
+ #
2234
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration::Rounding::RoundingMethod]
2235
+ required :rounding_method,
2236
+ enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration::Rounding::RoundingMethod }
2237
+
2238
+ # @!method initialize(decimal_places:, rounding_method:)
2239
+ # Some parameter documentations has been truncated, see
2240
+ # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration::Rounding}
2241
+ # for more details.
2242
+ #
2243
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2244
+ #
2245
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration::Rounding::RoundingMethod]
2246
+
2247
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::Proration::Rounding#rounding_method
2248
+ module RoundingMethod
2249
+ extend MetronomeSDK::Internal::Type::Enum
2250
+
2251
+ HALF_UP = :HALF_UP
2252
+ FLOOR = :FLOOR
2253
+ CEILING = :CEILING
2254
+
2255
+ # @!method self.values
2256
+ # @return [Array<Symbol>]
2257
+ end
2258
+ end
2029
2259
  end
2030
2260
 
2031
2261
  # Determines how the subscription's quantity is controlled. Defaults to
@@ -2120,6 +2350,46 @@ module MetronomeSDK
2120
2350
  end
2121
2351
  end
2122
2352
 
2353
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription#billing_cycle_config
2354
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
2355
+ # @!attribute anchor_date
2356
+ # The date this subscription's billing cycle is anchored to.
2357
+ #
2358
+ # @return [Time]
2359
+ required :anchor_date, Time
2360
+
2361
+ # @!attribute invoice_placement
2362
+ # Controls whether this subscription consolidates onto usage invoices or gets its
2363
+ # own scheduled invoice.
2364
+ #
2365
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::BillingCycleConfig::InvoicePlacement]
2366
+ required :invoice_placement,
2367
+ enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::BillingCycleConfig::InvoicePlacement }
2368
+
2369
+ # @!method initialize(anchor_date:, invoice_placement:)
2370
+ # Some parameter documentations has been truncated, see
2371
+ # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::BillingCycleConfig}
2372
+ # for more details.
2373
+ #
2374
+ # @param anchor_date [Time] The date this subscription's billing cycle is anchored to.
2375
+ #
2376
+ # @param invoice_placement [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::BillingCycleConfig::InvoicePlacement] Controls whether this subscription consolidates onto usage invoices or gets its
2377
+
2378
+ # Controls whether this subscription consolidates onto usage invoices or gets its
2379
+ # own scheduled invoice.
2380
+ #
2381
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription::BillingCycleConfig#invoice_placement
2382
+ module InvoicePlacement
2383
+ extend MetronomeSDK::Internal::Type::Enum
2384
+
2385
+ ON_SCHEDULED_INVOICE = :ON_SCHEDULED_INVOICE
2386
+ ON_USAGE_INVOICE = :ON_USAGE_INVOICE
2387
+
2388
+ # @!method self.values
2389
+ # @return [Array<Symbol>]
2390
+ end
2391
+ end
2392
+
2123
2393
  # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::AddSubscription#seat_config
2124
2394
  class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
2125
2395
  # @!attribute seat_group_key
@@ -3085,6 +3355,8 @@ module MetronomeSDK
3085
3355
  optional :threshold_amount, Float
3086
3356
 
3087
3357
  # @!attribute threshold_balance_specifiers
3358
+ # Determines which balances are excluded from remaining balance calculation for
3359
+ # threshold billing.
3088
3360
  #
3089
3361
  # @return [Array<MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil]
3090
3362
  optional :threshold_balance_specifiers,
@@ -3114,7 +3386,7 @@ module MetronomeSDK
3114
3386
  #
3115
3387
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
3116
3388
  #
3117
- # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil]
3389
+ # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil] Determines which balances are excluded from remaining balance calculation for th
3118
3390
 
3119
3391
  # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdatePrepaidBalanceThresholdConfiguration#commit
3120
3392
  class Commit < MetronomeSDK::Models::UpdateBaseThresholdCommit
@@ -3297,17 +3569,31 @@ module MetronomeSDK
3297
3569
  optional :invoice_amount,
3298
3570
  -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::InvoiceAmount }
3299
3571
 
3572
+ # @!attribute proration_rounding
3573
+ # Rounding configuration for prorated recurring commit amounts.
3574
+ #
3575
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding, nil]
3576
+ optional :proration_rounding,
3577
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding },
3578
+ nil?: true
3579
+
3300
3580
  # @!attribute rate_type
3301
3581
  #
3302
3582
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::RateType, nil]
3303
3583
  optional :rate_type,
3304
3584
  enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::RateType }
3305
3585
 
3306
- # @!method initialize(id:, access_amount: nil, ending_before: nil, invoice_amount: nil, rate_type: nil)
3586
+ # @!method initialize(id:, access_amount: nil, ending_before: nil, invoice_amount: nil, proration_rounding: nil, rate_type: nil)
3307
3587
  # @param id [String]
3588
+ #
3308
3589
  # @param access_amount [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::AccessAmount]
3590
+ #
3309
3591
  # @param ending_before [Time]
3592
+ #
3310
3593
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::InvoiceAmount]
3594
+ #
3595
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding, nil] Rounding configuration for prorated recurring commit amounts.
3596
+ #
3311
3597
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::RateType]
3312
3598
 
3313
3599
  # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit#access_amount
@@ -3344,6 +3630,103 @@ module MetronomeSDK
3344
3630
  # @param unit_price [Float]
3345
3631
  end
3346
3632
 
3633
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit#proration_rounding
3634
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
3635
+ # @!attribute access
3636
+ #
3637
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Access, nil]
3638
+ optional :access,
3639
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Access }
3640
+
3641
+ # @!attribute invoice
3642
+ #
3643
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Invoice, nil]
3644
+ optional :invoice,
3645
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Invoice }
3646
+
3647
+ # @!method initialize(access: nil, invoice: nil)
3648
+ # Rounding configuration for prorated recurring commit amounts.
3649
+ #
3650
+ # @param access [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Access]
3651
+ # @param invoice [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Invoice]
3652
+
3653
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding#access
3654
+ class Access < MetronomeSDK::Internal::Type::BaseModel
3655
+ # @!attribute decimal_places
3656
+ # Number of decimal places to round to. Applied directly to the stored monetary
3657
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3658
+ # nearest 100 in the stored unit).
3659
+ #
3660
+ # @return [Float]
3661
+ required :decimal_places, Float
3662
+
3663
+ # @!attribute rounding_method
3664
+ #
3665
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod]
3666
+ required :rounding_method,
3667
+ enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod }
3668
+
3669
+ # @!method initialize(decimal_places:, rounding_method:)
3670
+ # Some parameter documentations has been truncated, see
3671
+ # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Access}
3672
+ # for more details.
3673
+ #
3674
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
3675
+ #
3676
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod]
3677
+
3678
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Access#rounding_method
3679
+ module RoundingMethod
3680
+ extend MetronomeSDK::Internal::Type::Enum
3681
+
3682
+ HALF_UP = :HALF_UP
3683
+ FLOOR = :FLOOR
3684
+ CEILING = :CEILING
3685
+
3686
+ # @!method self.values
3687
+ # @return [Array<Symbol>]
3688
+ end
3689
+ end
3690
+
3691
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding#invoice
3692
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
3693
+ # @!attribute decimal_places
3694
+ # Number of decimal places to round to. Applied directly to the stored monetary
3695
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3696
+ # nearest 100 in the stored unit).
3697
+ #
3698
+ # @return [Float]
3699
+ required :decimal_places, Float
3700
+
3701
+ # @!attribute rounding_method
3702
+ #
3703
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod]
3704
+ required :rounding_method,
3705
+ enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod }
3706
+
3707
+ # @!method initialize(decimal_places:, rounding_method:)
3708
+ # Some parameter documentations has been truncated, see
3709
+ # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Invoice}
3710
+ # for more details.
3711
+ #
3712
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
3713
+ #
3714
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod]
3715
+
3716
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit::ProrationRounding::Invoice#rounding_method
3717
+ module RoundingMethod
3718
+ extend MetronomeSDK::Internal::Type::Enum
3719
+
3720
+ HALF_UP = :HALF_UP
3721
+ FLOOR = :FLOOR
3722
+ CEILING = :CEILING
3723
+
3724
+ # @!method self.values
3725
+ # @return [Array<Symbol>]
3726
+ end
3727
+ end
3728
+ end
3729
+
3347
3730
  # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCommit#rate_type
3348
3731
  module RateType
3349
3732
  extend MetronomeSDK::Internal::Type::Enum
@@ -3373,16 +3756,29 @@ module MetronomeSDK
3373
3756
  # @return [Time, nil]
3374
3757
  optional :ending_before, Time
3375
3758
 
3759
+ # @!attribute proration_rounding
3760
+ # Rounding configuration for prorated recurring credit amounts.
3761
+ #
3762
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding, nil]
3763
+ optional :proration_rounding,
3764
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding },
3765
+ nil?: true
3766
+
3376
3767
  # @!attribute rate_type
3377
3768
  #
3378
3769
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::RateType, nil]
3379
3770
  optional :rate_type,
3380
3771
  enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::RateType }
3381
3772
 
3382
- # @!method initialize(id:, access_amount: nil, ending_before: nil, rate_type: nil)
3773
+ # @!method initialize(id:, access_amount: nil, ending_before: nil, proration_rounding: nil, rate_type: nil)
3383
3774
  # @param id [String]
3775
+ #
3384
3776
  # @param access_amount [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::AccessAmount]
3777
+ #
3385
3778
  # @param ending_before [Time]
3779
+ #
3780
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding, nil] Rounding configuration for prorated recurring credit amounts.
3781
+ #
3386
3782
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::RateType]
3387
3783
 
3388
3784
  # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit#access_amount
@@ -3402,6 +3798,58 @@ module MetronomeSDK
3402
3798
  # @param unit_price [Float]
3403
3799
  end
3404
3800
 
3801
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit#proration_rounding
3802
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
3803
+ # @!attribute access
3804
+ #
3805
+ # @return [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding::Access, nil]
3806
+ optional :access,
3807
+ -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding::Access }
3808
+
3809
+ # @!method initialize(access: nil)
3810
+ # Rounding configuration for prorated recurring credit amounts.
3811
+ #
3812
+ # @param access [MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding::Access]
3813
+
3814
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding#access
3815
+ class Access < MetronomeSDK::Internal::Type::BaseModel
3816
+ # @!attribute decimal_places
3817
+ # Number of decimal places to round to. Applied directly to the stored monetary
3818
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3819
+ # nearest 100 in the stored unit).
3820
+ #
3821
+ # @return [Float]
3822
+ required :decimal_places, Float
3823
+
3824
+ # @!attribute rounding_method
3825
+ #
3826
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod]
3827
+ required :rounding_method,
3828
+ enum: -> { MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod }
3829
+
3830
+ # @!method initialize(decimal_places:, rounding_method:)
3831
+ # Some parameter documentations has been truncated, see
3832
+ # {MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding::Access}
3833
+ # for more details.
3834
+ #
3835
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
3836
+ #
3837
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod]
3838
+
3839
+ # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit::ProrationRounding::Access#rounding_method
3840
+ module RoundingMethod
3841
+ extend MetronomeSDK::Internal::Type::Enum
3842
+
3843
+ HALF_UP = :HALF_UP
3844
+ FLOOR = :FLOOR
3845
+ CEILING = :CEILING
3846
+
3847
+ # @!method self.values
3848
+ # @return [Array<Symbol>]
3849
+ end
3850
+ end
3851
+ end
3852
+
3405
3853
  # @see MetronomeSDK::Models::V2::ContractEditResponse::Data::Edit::UpdateRecurringCredit#rate_type
3406
3854
  module RateType
3407
3855
  extend MetronomeSDK::Internal::Type::Enum