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
@@ -1913,6 +1913,12 @@ module MetronomeSDK
1913
1913
  )
1914
1914
  end
1915
1915
 
1916
+ sig { returns(T.nilable(T::Array[String])) }
1917
+ attr_reader :any_commit_or_credit_ids
1918
+
1919
+ sig { params(any_commit_or_credit_ids: T::Array[String]).void }
1920
+ attr_writer :any_commit_or_credit_ids
1921
+
1916
1922
  sig do
1917
1923
  returns(
1918
1924
  T.nilable(
@@ -1972,6 +1978,7 @@ module MetronomeSDK
1972
1978
 
1973
1979
  sig do
1974
1980
  params(
1981
+ any_commit_or_credit_ids: T::Array[String],
1975
1982
  billing_frequency:
1976
1983
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverrideSpecifier::BillingFrequency::OrSymbol,
1977
1984
  commit_ids: T::Array[String],
@@ -1983,6 +1990,7 @@ module MetronomeSDK
1983
1990
  ).returns(T.attached_class)
1984
1991
  end
1985
1992
  def self.new(
1993
+ any_commit_or_credit_ids: nil,
1986
1994
  billing_frequency: nil,
1987
1995
  commit_ids: nil,
1988
1996
  presentation_group_values: nil,
@@ -1996,6 +2004,7 @@ module MetronomeSDK
1996
2004
  sig do
1997
2005
  override.returns(
1998
2006
  {
2007
+ any_commit_or_credit_ids: T::Array[String],
1999
2008
  billing_frequency:
2000
2009
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverrideSpecifier::BillingFrequency::TaggedSymbol,
2001
2010
  commit_ids: T::Array[String],
@@ -2504,6 +2513,26 @@ module MetronomeSDK
2504
2513
  end
2505
2514
  attr_writer :proration
2506
2515
 
2516
+ # Rounding configuration for prorated recurring commit amounts.
2517
+ sig do
2518
+ returns(
2519
+ T.nilable(
2520
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding
2521
+ )
2522
+ )
2523
+ end
2524
+ attr_reader :proration_rounding
2525
+
2526
+ sig do
2527
+ params(
2528
+ proration_rounding:
2529
+ T.nilable(
2530
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::OrHash
2531
+ )
2532
+ ).void
2533
+ end
2534
+ attr_writer :proration_rounding
2535
+
2507
2536
  # The frequency at which the recurring commits will be created. If not provided: -
2508
2537
  # The commits will be created on the usage invoice frequency. If provided: - The
2509
2538
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2591,6 +2620,10 @@ module MetronomeSDK
2591
2620
  netsuite_sales_order_id: String,
2592
2621
  proration:
2593
2622
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Proration::OrSymbol,
2623
+ proration_rounding:
2624
+ T.nilable(
2625
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::OrHash
2626
+ ),
2594
2627
  recurrence_frequency:
2595
2628
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::RecurrenceFrequency::OrSymbol,
2596
2629
  rollover_fraction: Float,
@@ -2632,6 +2665,8 @@ module MetronomeSDK
2632
2665
  # Determines whether the first and last commit will be prorated. If not provided,
2633
2666
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2634
2667
  proration: nil,
2668
+ # Rounding configuration for prorated recurring commit amounts.
2669
+ proration_rounding: nil,
2635
2670
  # The frequency at which the recurring commits will be created. If not provided: -
2636
2671
  # The commits will be created on the usage invoice frequency. If provided: - The
2637
2672
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2679,6 +2714,10 @@ module MetronomeSDK
2679
2714
  netsuite_sales_order_id: String,
2680
2715
  proration:
2681
2716
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Proration::TaggedSymbol,
2717
+ proration_rounding:
2718
+ T.nilable(
2719
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding
2720
+ ),
2682
2721
  recurrence_frequency:
2683
2722
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol,
2684
2723
  rollover_fraction: Float,
@@ -2978,6 +3017,255 @@ module MetronomeSDK
2978
3017
  end
2979
3018
  end
2980
3019
 
3020
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
3021
+ OrHash =
3022
+ T.type_alias do
3023
+ T.any(
3024
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding,
3025
+ MetronomeSDK::Internal::AnyHash
3026
+ )
3027
+ end
3028
+
3029
+ sig do
3030
+ returns(
3031
+ T.nilable(
3032
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access
3033
+ )
3034
+ )
3035
+ end
3036
+ attr_reader :access
3037
+
3038
+ sig do
3039
+ params(
3040
+ access:
3041
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::OrHash
3042
+ ).void
3043
+ end
3044
+ attr_writer :access
3045
+
3046
+ sig do
3047
+ returns(
3048
+ T.nilable(
3049
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice
3050
+ )
3051
+ )
3052
+ end
3053
+ attr_reader :invoice
3054
+
3055
+ sig do
3056
+ params(
3057
+ invoice:
3058
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::OrHash
3059
+ ).void
3060
+ end
3061
+ attr_writer :invoice
3062
+
3063
+ # Rounding configuration for prorated recurring commit amounts.
3064
+ sig do
3065
+ params(
3066
+ access:
3067
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::OrHash,
3068
+ invoice:
3069
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::OrHash
3070
+ ).returns(T.attached_class)
3071
+ end
3072
+ def self.new(access: nil, invoice: nil)
3073
+ end
3074
+
3075
+ sig do
3076
+ override.returns(
3077
+ {
3078
+ access:
3079
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access,
3080
+ invoice:
3081
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice
3082
+ }
3083
+ )
3084
+ end
3085
+ def to_hash
3086
+ end
3087
+
3088
+ class Access < MetronomeSDK::Internal::Type::BaseModel
3089
+ OrHash =
3090
+ T.type_alias do
3091
+ T.any(
3092
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access,
3093
+ MetronomeSDK::Internal::AnyHash
3094
+ )
3095
+ end
3096
+
3097
+ # Number of decimal places to round to. Applied directly to the stored monetary
3098
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3099
+ # nearest 100 in the stored unit).
3100
+ sig { returns(Float) }
3101
+ attr_accessor :decimal_places
3102
+
3103
+ sig do
3104
+ returns(
3105
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3106
+ )
3107
+ end
3108
+ attr_accessor :rounding_method
3109
+
3110
+ sig do
3111
+ params(
3112
+ decimal_places: Float,
3113
+ rounding_method:
3114
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
3115
+ ).returns(T.attached_class)
3116
+ end
3117
+ def self.new(
3118
+ # Number of decimal places to round to. Applied directly to the stored monetary
3119
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3120
+ # nearest 100 in the stored unit).
3121
+ decimal_places:,
3122
+ rounding_method:
3123
+ )
3124
+ end
3125
+
3126
+ sig do
3127
+ override.returns(
3128
+ {
3129
+ decimal_places: Float,
3130
+ rounding_method:
3131
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3132
+ }
3133
+ )
3134
+ end
3135
+ def to_hash
3136
+ end
3137
+
3138
+ module RoundingMethod
3139
+ extend MetronomeSDK::Internal::Type::Enum
3140
+
3141
+ TaggedSymbol =
3142
+ T.type_alias do
3143
+ T.all(
3144
+ Symbol,
3145
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::RoundingMethod
3146
+ )
3147
+ end
3148
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3149
+
3150
+ HALF_UP =
3151
+ T.let(
3152
+ :HALF_UP,
3153
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3154
+ )
3155
+ FLOOR =
3156
+ T.let(
3157
+ :FLOOR,
3158
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3159
+ )
3160
+ CEILING =
3161
+ T.let(
3162
+ :CEILING,
3163
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3164
+ )
3165
+
3166
+ sig do
3167
+ override.returns(
3168
+ T::Array[
3169
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3170
+ ]
3171
+ )
3172
+ end
3173
+ def self.values
3174
+ end
3175
+ end
3176
+ end
3177
+
3178
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
3179
+ OrHash =
3180
+ T.type_alias do
3181
+ T.any(
3182
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice,
3183
+ MetronomeSDK::Internal::AnyHash
3184
+ )
3185
+ end
3186
+
3187
+ # Number of decimal places to round to. Applied directly to the stored monetary
3188
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3189
+ # nearest 100 in the stored unit).
3190
+ sig { returns(Float) }
3191
+ attr_accessor :decimal_places
3192
+
3193
+ sig do
3194
+ returns(
3195
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
3196
+ )
3197
+ end
3198
+ attr_accessor :rounding_method
3199
+
3200
+ sig do
3201
+ params(
3202
+ decimal_places: Float,
3203
+ rounding_method:
3204
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
3205
+ ).returns(T.attached_class)
3206
+ end
3207
+ def self.new(
3208
+ # Number of decimal places to round to. Applied directly to the stored monetary
3209
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3210
+ # nearest 100 in the stored unit).
3211
+ decimal_places:,
3212
+ rounding_method:
3213
+ )
3214
+ end
3215
+
3216
+ sig do
3217
+ override.returns(
3218
+ {
3219
+ decimal_places: Float,
3220
+ rounding_method:
3221
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
3222
+ }
3223
+ )
3224
+ end
3225
+ def to_hash
3226
+ end
3227
+
3228
+ module RoundingMethod
3229
+ extend MetronomeSDK::Internal::Type::Enum
3230
+
3231
+ TaggedSymbol =
3232
+ T.type_alias do
3233
+ T.all(
3234
+ Symbol,
3235
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod
3236
+ )
3237
+ end
3238
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3239
+
3240
+ HALF_UP =
3241
+ T.let(
3242
+ :HALF_UP,
3243
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
3244
+ )
3245
+ FLOOR =
3246
+ T.let(
3247
+ :FLOOR,
3248
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
3249
+ )
3250
+ CEILING =
3251
+ T.let(
3252
+ :CEILING,
3253
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
3254
+ )
3255
+
3256
+ sig do
3257
+ override.returns(
3258
+ T::Array[
3259
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
3260
+ ]
3261
+ )
3262
+ end
3263
+ def self.values
3264
+ end
3265
+ end
3266
+ end
3267
+ end
3268
+
2981
3269
  # The frequency at which the recurring commits will be created. If not provided: -
2982
3270
  # The commits will be created on the usage invoice frequency. If provided: - The
2983
3271
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3015,6 +3303,11 @@ module MetronomeSDK
3015
3303
  :WEEKLY,
3016
3304
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
3017
3305
  )
3306
+ DAILY =
3307
+ T.let(
3308
+ :DAILY,
3309
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
3310
+ )
3018
3311
 
3019
3312
  sig do
3020
3313
  override.returns(
@@ -3195,6 +3488,26 @@ module MetronomeSDK
3195
3488
  end
3196
3489
  attr_writer :proration
3197
3490
 
3491
+ # Rounding configuration for prorated recurring credit amounts.
3492
+ sig do
3493
+ returns(
3494
+ T.nilable(
3495
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding
3496
+ )
3497
+ )
3498
+ end
3499
+ attr_reader :proration_rounding
3500
+
3501
+ sig do
3502
+ params(
3503
+ proration_rounding:
3504
+ T.nilable(
3505
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::OrHash
3506
+ )
3507
+ ).void
3508
+ end
3509
+ attr_writer :proration_rounding
3510
+
3198
3511
  # The frequency at which the recurring commits will be created. If not provided: -
3199
3512
  # The commits will be created on the usage invoice frequency. If provided: - The
3200
3513
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3280,6 +3593,10 @@ module MetronomeSDK
3280
3593
  netsuite_sales_order_id: String,
3281
3594
  proration:
3282
3595
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Proration::OrSymbol,
3596
+ proration_rounding:
3597
+ T.nilable(
3598
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::OrHash
3599
+ ),
3283
3600
  recurrence_frequency:
3284
3601
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::OrSymbol,
3285
3602
  rollover_fraction: Float,
@@ -3319,6 +3636,8 @@ module MetronomeSDK
3319
3636
  # Determines whether the first and last commit will be prorated. If not provided,
3320
3637
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3321
3638
  proration: nil,
3639
+ # Rounding configuration for prorated recurring credit amounts.
3640
+ proration_rounding: nil,
3322
3641
  # The frequency at which the recurring commits will be created. If not provided: -
3323
3642
  # The commits will be created on the usage invoice frequency. If provided: - The
3324
3643
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3364,6 +3683,10 @@ module MetronomeSDK
3364
3683
  netsuite_sales_order_id: String,
3365
3684
  proration:
3366
3685
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Proration::TaggedSymbol,
3686
+ proration_rounding:
3687
+ T.nilable(
3688
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding
3689
+ ),
3367
3690
  recurrence_frequency:
3368
3691
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol,
3369
3692
  rollover_fraction: Float,
@@ -3625,57 +3948,200 @@ module MetronomeSDK
3625
3948
  end
3626
3949
  end
3627
3950
 
3628
- # The frequency at which the recurring commits will be created. If not provided: -
3629
- # The commits will be created on the usage invoice frequency. If provided: - The
3630
- # period defined in the duration will correspond to this frequency. - Commits will
3631
- # be created aligned with the recurring commit's starting_at rather than the usage
3632
- # invoice dates.
3633
- module RecurrenceFrequency
3634
- extend MetronomeSDK::Internal::Type::Enum
3635
-
3636
- TaggedSymbol =
3951
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
3952
+ OrHash =
3637
3953
  T.type_alias do
3638
- T.all(
3639
- Symbol,
3640
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency
3954
+ T.any(
3955
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding,
3956
+ MetronomeSDK::Internal::AnyHash
3641
3957
  )
3642
3958
  end
3643
- OrSymbol = T.type_alias { T.any(Symbol, String) }
3644
-
3645
- MONTHLY =
3646
- T.let(
3647
- :MONTHLY,
3648
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
3649
- )
3650
- QUARTERLY =
3651
- T.let(
3652
- :QUARTERLY,
3653
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
3654
- )
3655
- ANNUAL =
3656
- T.let(
3657
- :ANNUAL,
3658
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
3659
- )
3660
- WEEKLY =
3661
- T.let(
3662
- :WEEKLY,
3663
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
3664
- )
3665
3959
 
3666
3960
  sig do
3667
- override.returns(
3668
- T::Array[
3669
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
3670
- ]
3961
+ returns(
3962
+ T.nilable(
3963
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access
3964
+ )
3671
3965
  )
3672
3966
  end
3673
- def self.values
3674
- end
3675
- end
3676
- end
3967
+ attr_reader :access
3677
3968
 
3678
- class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
3969
+ sig do
3970
+ params(
3971
+ access:
3972
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::OrHash
3973
+ ).void
3974
+ end
3975
+ attr_writer :access
3976
+
3977
+ # Rounding configuration for prorated recurring credit amounts.
3978
+ sig do
3979
+ params(
3980
+ access:
3981
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::OrHash
3982
+ ).returns(T.attached_class)
3983
+ end
3984
+ def self.new(access: nil)
3985
+ end
3986
+
3987
+ sig do
3988
+ override.returns(
3989
+ {
3990
+ access:
3991
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access
3992
+ }
3993
+ )
3994
+ end
3995
+ def to_hash
3996
+ end
3997
+
3998
+ class Access < MetronomeSDK::Internal::Type::BaseModel
3999
+ OrHash =
4000
+ T.type_alias do
4001
+ T.any(
4002
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access,
4003
+ MetronomeSDK::Internal::AnyHash
4004
+ )
4005
+ end
4006
+
4007
+ # Number of decimal places to round to. Applied directly to the stored monetary
4008
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4009
+ # nearest 100 in the stored unit).
4010
+ sig { returns(Float) }
4011
+ attr_accessor :decimal_places
4012
+
4013
+ sig do
4014
+ returns(
4015
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4016
+ )
4017
+ end
4018
+ attr_accessor :rounding_method
4019
+
4020
+ sig do
4021
+ params(
4022
+ decimal_places: Float,
4023
+ rounding_method:
4024
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
4025
+ ).returns(T.attached_class)
4026
+ end
4027
+ def self.new(
4028
+ # Number of decimal places to round to. Applied directly to the stored monetary
4029
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4030
+ # nearest 100 in the stored unit).
4031
+ decimal_places:,
4032
+ rounding_method:
4033
+ )
4034
+ end
4035
+
4036
+ sig do
4037
+ override.returns(
4038
+ {
4039
+ decimal_places: Float,
4040
+ rounding_method:
4041
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4042
+ }
4043
+ )
4044
+ end
4045
+ def to_hash
4046
+ end
4047
+
4048
+ module RoundingMethod
4049
+ extend MetronomeSDK::Internal::Type::Enum
4050
+
4051
+ TaggedSymbol =
4052
+ T.type_alias do
4053
+ T.all(
4054
+ Symbol,
4055
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::RoundingMethod
4056
+ )
4057
+ end
4058
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4059
+
4060
+ HALF_UP =
4061
+ T.let(
4062
+ :HALF_UP,
4063
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4064
+ )
4065
+ FLOOR =
4066
+ T.let(
4067
+ :FLOOR,
4068
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4069
+ )
4070
+ CEILING =
4071
+ T.let(
4072
+ :CEILING,
4073
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4074
+ )
4075
+
4076
+ sig do
4077
+ override.returns(
4078
+ T::Array[
4079
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4080
+ ]
4081
+ )
4082
+ end
4083
+ def self.values
4084
+ end
4085
+ end
4086
+ end
4087
+ end
4088
+
4089
+ # The frequency at which the recurring commits will be created. If not provided: -
4090
+ # The commits will be created on the usage invoice frequency. If provided: - The
4091
+ # period defined in the duration will correspond to this frequency. - Commits will
4092
+ # be created aligned with the recurring commit's starting_at rather than the usage
4093
+ # invoice dates.
4094
+ module RecurrenceFrequency
4095
+ extend MetronomeSDK::Internal::Type::Enum
4096
+
4097
+ TaggedSymbol =
4098
+ T.type_alias do
4099
+ T.all(
4100
+ Symbol,
4101
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency
4102
+ )
4103
+ end
4104
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4105
+
4106
+ MONTHLY =
4107
+ T.let(
4108
+ :MONTHLY,
4109
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
4110
+ )
4111
+ QUARTERLY =
4112
+ T.let(
4113
+ :QUARTERLY,
4114
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
4115
+ )
4116
+ ANNUAL =
4117
+ T.let(
4118
+ :ANNUAL,
4119
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
4120
+ )
4121
+ WEEKLY =
4122
+ T.let(
4123
+ :WEEKLY,
4124
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
4125
+ )
4126
+ DAILY =
4127
+ T.let(
4128
+ :DAILY,
4129
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
4130
+ )
4131
+
4132
+ sig do
4133
+ override.returns(
4134
+ T::Array[
4135
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RecurrenceFrequency::TaggedSymbol
4136
+ ]
4137
+ )
4138
+ end
4139
+ def self.values
4140
+ end
4141
+ end
4142
+ end
4143
+
4144
+ class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
3679
4145
  OrHash =
3680
4146
  T.type_alias do
3681
4147
  T.any(
@@ -4071,6 +4537,23 @@ module MetronomeSDK
4071
4537
  sig { params(id: String).void }
4072
4538
  attr_writer :id
4073
4539
 
4540
+ sig do
4541
+ returns(
4542
+ T.nilable(
4543
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig
4544
+ )
4545
+ )
4546
+ end
4547
+ attr_reader :billing_cycle_config
4548
+
4549
+ sig do
4550
+ params(
4551
+ billing_cycle_config:
4552
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig::OrHash
4553
+ ).void
4554
+ end
4555
+ attr_writer :billing_cycle_config
4556
+
4074
4557
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4075
4558
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
4076
4559
  attr_reader :custom_fields
@@ -4137,6 +4620,8 @@ module MetronomeSDK
4137
4620
  subscription_rate:
4138
4621
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::OrHash,
4139
4622
  id: String,
4623
+ billing_cycle_config:
4624
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig::OrHash,
4140
4625
  custom_fields: T::Hash[Symbol, String],
4141
4626
  description: String,
4142
4627
  ending_before: Time,
@@ -4167,6 +4652,7 @@ module MetronomeSDK
4167
4652
  starting_at:,
4168
4653
  subscription_rate:,
4169
4654
  id: nil,
4655
+ billing_cycle_config: nil,
4170
4656
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4171
4657
  custom_fields: nil,
4172
4658
  description: nil,
@@ -4196,6 +4682,8 @@ module MetronomeSDK
4196
4682
  subscription_rate:
4197
4683
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate,
4198
4684
  id: String,
4685
+ billing_cycle_config:
4686
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig,
4199
4687
  custom_fields: T::Hash[Symbol, String],
4200
4688
  description: String,
4201
4689
  ending_before: Time,
@@ -4442,14 +4930,33 @@ module MetronomeSDK
4442
4930
  sig { returns(T::Boolean) }
4443
4931
  attr_accessor :is_prorated
4444
4932
 
4933
+ sig do
4934
+ returns(
4935
+ T.nilable(
4936
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding
4937
+ )
4938
+ )
4939
+ end
4940
+ attr_reader :rounding
4941
+
4942
+ sig do
4943
+ params(
4944
+ rounding:
4945
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::OrHash
4946
+ ).void
4947
+ end
4948
+ attr_writer :rounding
4949
+
4445
4950
  sig do
4446
4951
  params(
4447
4952
  invoice_behavior:
4448
4953
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::InvoiceBehavior::OrSymbol,
4449
- is_prorated: T::Boolean
4954
+ is_prorated: T::Boolean,
4955
+ rounding:
4956
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::OrHash
4450
4957
  ).returns(T.attached_class)
4451
4958
  end
4452
- def self.new(invoice_behavior:, is_prorated:)
4959
+ def self.new(invoice_behavior:, is_prorated:, rounding: nil)
4453
4960
  end
4454
4961
 
4455
4962
  sig do
@@ -4457,7 +4964,9 @@ module MetronomeSDK
4457
4964
  {
4458
4965
  invoice_behavior:
4459
4966
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::InvoiceBehavior::TaggedSymbol,
4460
- is_prorated: T::Boolean
4967
+ is_prorated: T::Boolean,
4968
+ rounding:
4969
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding
4461
4970
  }
4462
4971
  )
4463
4972
  end
@@ -4497,6 +5006,96 @@ module MetronomeSDK
4497
5006
  def self.values
4498
5007
  end
4499
5008
  end
5009
+
5010
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
5011
+ OrHash =
5012
+ T.type_alias do
5013
+ T.any(
5014
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding,
5015
+ MetronomeSDK::Internal::AnyHash
5016
+ )
5017
+ end
5018
+
5019
+ # Number of decimal places to round to. Applied directly to the stored monetary
5020
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5021
+ # nearest 100 in the stored unit).
5022
+ sig { returns(Float) }
5023
+ attr_accessor :decimal_places
5024
+
5025
+ sig do
5026
+ returns(
5027
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::RoundingMethod::TaggedSymbol
5028
+ )
5029
+ end
5030
+ attr_accessor :rounding_method
5031
+
5032
+ sig do
5033
+ params(
5034
+ decimal_places: Float,
5035
+ rounding_method:
5036
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::RoundingMethod::OrSymbol
5037
+ ).returns(T.attached_class)
5038
+ end
5039
+ def self.new(
5040
+ # Number of decimal places to round to. Applied directly to the stored monetary
5041
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5042
+ # nearest 100 in the stored unit).
5043
+ decimal_places:,
5044
+ rounding_method:
5045
+ )
5046
+ end
5047
+
5048
+ sig do
5049
+ override.returns(
5050
+ {
5051
+ decimal_places: Float,
5052
+ rounding_method:
5053
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::RoundingMethod::TaggedSymbol
5054
+ }
5055
+ )
5056
+ end
5057
+ def to_hash
5058
+ end
5059
+
5060
+ module RoundingMethod
5061
+ extend MetronomeSDK::Internal::Type::Enum
5062
+
5063
+ TaggedSymbol =
5064
+ T.type_alias do
5065
+ T.all(
5066
+ Symbol,
5067
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::RoundingMethod
5068
+ )
5069
+ end
5070
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5071
+
5072
+ HALF_UP =
5073
+ T.let(
5074
+ :HALF_UP,
5075
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::RoundingMethod::TaggedSymbol
5076
+ )
5077
+ FLOOR =
5078
+ T.let(
5079
+ :FLOOR,
5080
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::RoundingMethod::TaggedSymbol
5081
+ )
5082
+ CEILING =
5083
+ T.let(
5084
+ :CEILING,
5085
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::RoundingMethod::TaggedSymbol
5086
+ )
5087
+
5088
+ sig do
5089
+ override.returns(
5090
+ T::Array[
5091
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::Rounding::RoundingMethod::TaggedSymbol
5092
+ ]
5093
+ )
5094
+ end
5095
+ def self.values
5096
+ end
5097
+ end
5098
+ end
4500
5099
  end
4501
5100
 
4502
5101
  # Determines how the subscription's quantity is controlled. Defaults to
@@ -4708,41 +5307,128 @@ module MetronomeSDK
4708
5307
  end
4709
5308
  end
4710
5309
 
4711
- class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
5310
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
4712
5311
  OrHash =
4713
5312
  T.type_alias do
4714
5313
  T.any(
4715
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SeatConfig,
5314
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig,
4716
5315
  MetronomeSDK::Internal::AnyHash
4717
5316
  )
4718
5317
  end
4719
5318
 
4720
- # The property name, sent on usage events, that identifies the seat ID associated
4721
- # with the usage event. For example, the property name might be seat_id or
4722
- # user_id. The property must be set as a group key on billable metrics and a
4723
- # presentation/pricing group key on contract products. This allows linked
4724
- # recurring credits with an allocation per seat to be consumed by only one seat's
4725
- # usage.
4726
- sig { returns(String) }
4727
- attr_accessor :seat_group_key
5319
+ # The date this subscription's billing cycle is anchored to.
5320
+ sig { returns(Time) }
5321
+ attr_accessor :anchor_date
4728
5322
 
4729
- sig { params(seat_group_key: String).returns(T.attached_class) }
5323
+ # Controls whether this subscription consolidates onto usage invoices or gets its
5324
+ # own scheduled invoice.
5325
+ sig do
5326
+ returns(
5327
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
5328
+ )
5329
+ end
5330
+ attr_accessor :invoice_placement
5331
+
5332
+ sig do
5333
+ params(
5334
+ anchor_date: Time,
5335
+ invoice_placement:
5336
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig::InvoicePlacement::OrSymbol
5337
+ ).returns(T.attached_class)
5338
+ end
4730
5339
  def self.new(
4731
- # The property name, sent on usage events, that identifies the seat ID associated
4732
- # with the usage event. For example, the property name might be seat_id or
4733
- # user_id. The property must be set as a group key on billable metrics and a
4734
- # presentation/pricing group key on contract products. This allows linked
4735
- # recurring credits with an allocation per seat to be consumed by only one seat's
4736
- # usage.
4737
- seat_group_key:
5340
+ # The date this subscription's billing cycle is anchored to.
5341
+ anchor_date:,
5342
+ # Controls whether this subscription consolidates onto usage invoices or gets its
5343
+ # own scheduled invoice.
5344
+ invoice_placement:
4738
5345
  )
4739
5346
  end
4740
5347
 
4741
- sig { override.returns({ seat_group_key: String }) }
5348
+ sig do
5349
+ override.returns(
5350
+ {
5351
+ anchor_date: Time,
5352
+ invoice_placement:
5353
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
5354
+ }
5355
+ )
5356
+ end
4742
5357
  def to_hash
4743
5358
  end
4744
- end
4745
- end
5359
+
5360
+ # Controls whether this subscription consolidates onto usage invoices or gets its
5361
+ # own scheduled invoice.
5362
+ module InvoicePlacement
5363
+ extend MetronomeSDK::Internal::Type::Enum
5364
+
5365
+ TaggedSymbol =
5366
+ T.type_alias do
5367
+ T.all(
5368
+ Symbol,
5369
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig::InvoicePlacement
5370
+ )
5371
+ end
5372
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5373
+
5374
+ ON_SCHEDULED_INVOICE =
5375
+ T.let(
5376
+ :ON_SCHEDULED_INVOICE,
5377
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
5378
+ )
5379
+ ON_USAGE_INVOICE =
5380
+ T.let(
5381
+ :ON_USAGE_INVOICE,
5382
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
5383
+ )
5384
+
5385
+ sig do
5386
+ override.returns(
5387
+ T::Array[
5388
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
5389
+ ]
5390
+ )
5391
+ end
5392
+ def self.values
5393
+ end
5394
+ end
5395
+ end
5396
+
5397
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
5398
+ OrHash =
5399
+ T.type_alias do
5400
+ T.any(
5401
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SeatConfig,
5402
+ MetronomeSDK::Internal::AnyHash
5403
+ )
5404
+ end
5405
+
5406
+ # The property name, sent on usage events, that identifies the seat ID associated
5407
+ # with the usage event. For example, the property name might be seat_id or
5408
+ # user_id. The property must be set as a group key on billable metrics and a
5409
+ # presentation/pricing group key on contract products. This allows linked
5410
+ # recurring credits with an allocation per seat to be consumed by only one seat's
5411
+ # usage.
5412
+ sig { returns(String) }
5413
+ attr_accessor :seat_group_key
5414
+
5415
+ sig { params(seat_group_key: String).returns(T.attached_class) }
5416
+ def self.new(
5417
+ # The property name, sent on usage events, that identifies the seat ID associated
5418
+ # with the usage event. For example, the property name might be seat_id or
5419
+ # user_id. The property must be set as a group key on billable metrics and a
5420
+ # presentation/pricing group key on contract products. This allows linked
5421
+ # recurring credits with an allocation per seat to be consumed by only one seat's
5422
+ # usage.
5423
+ seat_group_key:
5424
+ )
5425
+ end
5426
+
5427
+ sig { override.returns({ seat_group_key: String }) }
5428
+ def to_hash
5429
+ end
5430
+ end
5431
+ end
4746
5432
 
4747
5433
  class AddUsageFilter < MetronomeSDK::Internal::Type::BaseModel
4748
5434
  OrHash =
@@ -6700,6 +7386,8 @@ module MetronomeSDK
6700
7386
  sig { params(threshold_amount: Float).void }
6701
7387
  attr_writer :threshold_amount
6702
7388
 
7389
+ # Determines which balances are excluded from remaining balance calculation for
7390
+ # threshold billing.
6703
7391
  sig do
6704
7392
  returns(
6705
7393
  T.nilable(
@@ -6748,6 +7436,8 @@ module MetronomeSDK
6748
7436
  # Specify the threshold amount for the contract. Each time the contract's balance
6749
7437
  # lowers to this amount, a threshold charge will be initiated.
6750
7438
  threshold_amount: nil,
7439
+ # Determines which balances are excluded from remaining balance calculation for
7440
+ # threshold billing.
6751
7441
  threshold_balance_specifiers: nil
6752
7442
  )
6753
7443
  end
@@ -7185,6 +7875,26 @@ module MetronomeSDK
7185
7875
  end
7186
7876
  attr_writer :invoice_amount
7187
7877
 
7878
+ # Rounding configuration for prorated recurring commit amounts.
7879
+ sig do
7880
+ returns(
7881
+ T.nilable(
7882
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding
7883
+ )
7884
+ )
7885
+ end
7886
+ attr_reader :proration_rounding
7887
+
7888
+ sig do
7889
+ params(
7890
+ proration_rounding:
7891
+ T.nilable(
7892
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::OrHash
7893
+ )
7894
+ ).void
7895
+ end
7896
+ attr_writer :proration_rounding
7897
+
7188
7898
  sig do
7189
7899
  returns(
7190
7900
  T.nilable(
@@ -7210,6 +7920,10 @@ module MetronomeSDK
7210
7920
  ending_before: Time,
7211
7921
  invoice_amount:
7212
7922
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::InvoiceAmount::OrHash,
7923
+ proration_rounding:
7924
+ T.nilable(
7925
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::OrHash
7926
+ ),
7213
7927
  rate_type:
7214
7928
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType::OrSymbol
7215
7929
  ).returns(T.attached_class)
@@ -7219,6 +7933,8 @@ module MetronomeSDK
7219
7933
  access_amount: nil,
7220
7934
  ending_before: nil,
7221
7935
  invoice_amount: nil,
7936
+ # Rounding configuration for prorated recurring commit amounts.
7937
+ proration_rounding: nil,
7222
7938
  rate_type: nil
7223
7939
  )
7224
7940
  end
@@ -7232,6 +7948,10 @@ module MetronomeSDK
7232
7948
  ending_before: Time,
7233
7949
  invoice_amount:
7234
7950
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::InvoiceAmount,
7951
+ proration_rounding:
7952
+ T.nilable(
7953
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding
7954
+ ),
7235
7955
  rate_type:
7236
7956
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType::TaggedSymbol
7237
7957
  }
@@ -7308,6 +8028,255 @@ module MetronomeSDK
7308
8028
  end
7309
8029
  end
7310
8030
 
8031
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
8032
+ OrHash =
8033
+ T.type_alias do
8034
+ T.any(
8035
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding,
8036
+ MetronomeSDK::Internal::AnyHash
8037
+ )
8038
+ end
8039
+
8040
+ sig do
8041
+ returns(
8042
+ T.nilable(
8043
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access
8044
+ )
8045
+ )
8046
+ end
8047
+ attr_reader :access
8048
+
8049
+ sig do
8050
+ params(
8051
+ access:
8052
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::OrHash
8053
+ ).void
8054
+ end
8055
+ attr_writer :access
8056
+
8057
+ sig do
8058
+ returns(
8059
+ T.nilable(
8060
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice
8061
+ )
8062
+ )
8063
+ end
8064
+ attr_reader :invoice
8065
+
8066
+ sig do
8067
+ params(
8068
+ invoice:
8069
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::OrHash
8070
+ ).void
8071
+ end
8072
+ attr_writer :invoice
8073
+
8074
+ # Rounding configuration for prorated recurring commit amounts.
8075
+ sig do
8076
+ params(
8077
+ access:
8078
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::OrHash,
8079
+ invoice:
8080
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::OrHash
8081
+ ).returns(T.attached_class)
8082
+ end
8083
+ def self.new(access: nil, invoice: nil)
8084
+ end
8085
+
8086
+ sig do
8087
+ override.returns(
8088
+ {
8089
+ access:
8090
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access,
8091
+ invoice:
8092
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice
8093
+ }
8094
+ )
8095
+ end
8096
+ def to_hash
8097
+ end
8098
+
8099
+ class Access < MetronomeSDK::Internal::Type::BaseModel
8100
+ OrHash =
8101
+ T.type_alias do
8102
+ T.any(
8103
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access,
8104
+ MetronomeSDK::Internal::AnyHash
8105
+ )
8106
+ end
8107
+
8108
+ # Number of decimal places to round to. Applied directly to the stored monetary
8109
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
8110
+ # nearest 100 in the stored unit).
8111
+ sig { returns(Float) }
8112
+ attr_accessor :decimal_places
8113
+
8114
+ sig do
8115
+ returns(
8116
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8117
+ )
8118
+ end
8119
+ attr_accessor :rounding_method
8120
+
8121
+ sig do
8122
+ params(
8123
+ decimal_places: Float,
8124
+ rounding_method:
8125
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
8126
+ ).returns(T.attached_class)
8127
+ end
8128
+ def self.new(
8129
+ # Number of decimal places to round to. Applied directly to the stored monetary
8130
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
8131
+ # nearest 100 in the stored unit).
8132
+ decimal_places:,
8133
+ rounding_method:
8134
+ )
8135
+ end
8136
+
8137
+ sig do
8138
+ override.returns(
8139
+ {
8140
+ decimal_places: Float,
8141
+ rounding_method:
8142
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8143
+ }
8144
+ )
8145
+ end
8146
+ def to_hash
8147
+ end
8148
+
8149
+ module RoundingMethod
8150
+ extend MetronomeSDK::Internal::Type::Enum
8151
+
8152
+ TaggedSymbol =
8153
+ T.type_alias do
8154
+ T.all(
8155
+ Symbol,
8156
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod
8157
+ )
8158
+ end
8159
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8160
+
8161
+ HALF_UP =
8162
+ T.let(
8163
+ :HALF_UP,
8164
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8165
+ )
8166
+ FLOOR =
8167
+ T.let(
8168
+ :FLOOR,
8169
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8170
+ )
8171
+ CEILING =
8172
+ T.let(
8173
+ :CEILING,
8174
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8175
+ )
8176
+
8177
+ sig do
8178
+ override.returns(
8179
+ T::Array[
8180
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8181
+ ]
8182
+ )
8183
+ end
8184
+ def self.values
8185
+ end
8186
+ end
8187
+ end
8188
+
8189
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
8190
+ OrHash =
8191
+ T.type_alias do
8192
+ T.any(
8193
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice,
8194
+ MetronomeSDK::Internal::AnyHash
8195
+ )
8196
+ end
8197
+
8198
+ # Number of decimal places to round to. Applied directly to the stored monetary
8199
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
8200
+ # nearest 100 in the stored unit).
8201
+ sig { returns(Float) }
8202
+ attr_accessor :decimal_places
8203
+
8204
+ sig do
8205
+ returns(
8206
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
8207
+ )
8208
+ end
8209
+ attr_accessor :rounding_method
8210
+
8211
+ sig do
8212
+ params(
8213
+ decimal_places: Float,
8214
+ rounding_method:
8215
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
8216
+ ).returns(T.attached_class)
8217
+ end
8218
+ def self.new(
8219
+ # Number of decimal places to round to. Applied directly to the stored monetary
8220
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
8221
+ # nearest 100 in the stored unit).
8222
+ decimal_places:,
8223
+ rounding_method:
8224
+ )
8225
+ end
8226
+
8227
+ sig do
8228
+ override.returns(
8229
+ {
8230
+ decimal_places: Float,
8231
+ rounding_method:
8232
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
8233
+ }
8234
+ )
8235
+ end
8236
+ def to_hash
8237
+ end
8238
+
8239
+ module RoundingMethod
8240
+ extend MetronomeSDK::Internal::Type::Enum
8241
+
8242
+ TaggedSymbol =
8243
+ T.type_alias do
8244
+ T.all(
8245
+ Symbol,
8246
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod
8247
+ )
8248
+ end
8249
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8250
+
8251
+ HALF_UP =
8252
+ T.let(
8253
+ :HALF_UP,
8254
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
8255
+ )
8256
+ FLOOR =
8257
+ T.let(
8258
+ :FLOOR,
8259
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
8260
+ )
8261
+ CEILING =
8262
+ T.let(
8263
+ :CEILING,
8264
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
8265
+ )
8266
+
8267
+ sig do
8268
+ override.returns(
8269
+ T::Array[
8270
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
8271
+ ]
8272
+ )
8273
+ end
8274
+ def self.values
8275
+ end
8276
+ end
8277
+ end
8278
+ end
8279
+
7311
8280
  module RateType
7312
8281
  extend MetronomeSDK::Internal::Type::Enum
7313
8282
 
@@ -7378,6 +8347,26 @@ module MetronomeSDK
7378
8347
  sig { params(ending_before: Time).void }
7379
8348
  attr_writer :ending_before
7380
8349
 
8350
+ # Rounding configuration for prorated recurring credit amounts.
8351
+ sig do
8352
+ returns(
8353
+ T.nilable(
8354
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding
8355
+ )
8356
+ )
8357
+ end
8358
+ attr_reader :proration_rounding
8359
+
8360
+ sig do
8361
+ params(
8362
+ proration_rounding:
8363
+ T.nilable(
8364
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::OrHash
8365
+ )
8366
+ ).void
8367
+ end
8368
+ attr_writer :proration_rounding
8369
+
7381
8370
  sig do
7382
8371
  returns(
7383
8372
  T.nilable(
@@ -7401,6 +8390,10 @@ module MetronomeSDK
7401
8390
  access_amount:
7402
8391
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::AccessAmount::OrHash,
7403
8392
  ending_before: Time,
8393
+ proration_rounding:
8394
+ T.nilable(
8395
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::OrHash
8396
+ ),
7404
8397
  rate_type:
7405
8398
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType::OrSymbol
7406
8399
  ).returns(T.attached_class)
@@ -7409,6 +8402,8 @@ module MetronomeSDK
7409
8402
  id:,
7410
8403
  access_amount: nil,
7411
8404
  ending_before: nil,
8405
+ # Rounding configuration for prorated recurring credit amounts.
8406
+ proration_rounding: nil,
7412
8407
  rate_type: nil
7413
8408
  )
7414
8409
  end
@@ -7420,6 +8415,10 @@ module MetronomeSDK
7420
8415
  access_amount:
7421
8416
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::AccessAmount,
7422
8417
  ending_before: Time,
8418
+ proration_rounding:
8419
+ T.nilable(
8420
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding
8421
+ ),
7423
8422
  rate_type:
7424
8423
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType::TaggedSymbol
7425
8424
  }
@@ -7462,6 +8461,144 @@ module MetronomeSDK
7462
8461
  end
7463
8462
  end
7464
8463
 
8464
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
8465
+ OrHash =
8466
+ T.type_alias do
8467
+ T.any(
8468
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding,
8469
+ MetronomeSDK::Internal::AnyHash
8470
+ )
8471
+ end
8472
+
8473
+ sig do
8474
+ returns(
8475
+ T.nilable(
8476
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access
8477
+ )
8478
+ )
8479
+ end
8480
+ attr_reader :access
8481
+
8482
+ sig do
8483
+ params(
8484
+ access:
8485
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::OrHash
8486
+ ).void
8487
+ end
8488
+ attr_writer :access
8489
+
8490
+ # Rounding configuration for prorated recurring credit amounts.
8491
+ sig do
8492
+ params(
8493
+ access:
8494
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::OrHash
8495
+ ).returns(T.attached_class)
8496
+ end
8497
+ def self.new(access: nil)
8498
+ end
8499
+
8500
+ sig do
8501
+ override.returns(
8502
+ {
8503
+ access:
8504
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access
8505
+ }
8506
+ )
8507
+ end
8508
+ def to_hash
8509
+ end
8510
+
8511
+ class Access < MetronomeSDK::Internal::Type::BaseModel
8512
+ OrHash =
8513
+ T.type_alias do
8514
+ T.any(
8515
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access,
8516
+ MetronomeSDK::Internal::AnyHash
8517
+ )
8518
+ end
8519
+
8520
+ # Number of decimal places to round to. Applied directly to the stored monetary
8521
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
8522
+ # nearest 100 in the stored unit).
8523
+ sig { returns(Float) }
8524
+ attr_accessor :decimal_places
8525
+
8526
+ sig do
8527
+ returns(
8528
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8529
+ )
8530
+ end
8531
+ attr_accessor :rounding_method
8532
+
8533
+ sig do
8534
+ params(
8535
+ decimal_places: Float,
8536
+ rounding_method:
8537
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
8538
+ ).returns(T.attached_class)
8539
+ end
8540
+ def self.new(
8541
+ # Number of decimal places to round to. Applied directly to the stored monetary
8542
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
8543
+ # nearest 100 in the stored unit).
8544
+ decimal_places:,
8545
+ rounding_method:
8546
+ )
8547
+ end
8548
+
8549
+ sig do
8550
+ override.returns(
8551
+ {
8552
+ decimal_places: Float,
8553
+ rounding_method:
8554
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8555
+ }
8556
+ )
8557
+ end
8558
+ def to_hash
8559
+ end
8560
+
8561
+ module RoundingMethod
8562
+ extend MetronomeSDK::Internal::Type::Enum
8563
+
8564
+ TaggedSymbol =
8565
+ T.type_alias do
8566
+ T.all(
8567
+ Symbol,
8568
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod
8569
+ )
8570
+ end
8571
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8572
+
8573
+ HALF_UP =
8574
+ T.let(
8575
+ :HALF_UP,
8576
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8577
+ )
8578
+ FLOOR =
8579
+ T.let(
8580
+ :FLOOR,
8581
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8582
+ )
8583
+ CEILING =
8584
+ T.let(
8585
+ :CEILING,
8586
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8587
+ )
8588
+
8589
+ sig do
8590
+ override.returns(
8591
+ T::Array[
8592
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
8593
+ ]
8594
+ )
8595
+ end
8596
+ def self.values
8597
+ end
8598
+ end
8599
+ end
8600
+ end
8601
+
7465
8602
  module RateType
7466
8603
  extend MetronomeSDK::Internal::Type::Enum
7467
8604