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
@@ -1006,9 +1006,10 @@ module MetronomeSDK
1006
1006
 
1007
1007
  # @!attribute is_commit_specific
1008
1008
  # Indicates whether the override should only apply to commits. Defaults to
1009
- # `false`. If `true`, you can specify relevant commits in `override_specifiers` by
1010
- # passing `commit_ids`. if you do not specify `commit_ids`, then the override will
1011
- # apply when consuming any prepaid or postpaid commit.
1009
+ # `false`. If `true` you can specify relevant commits in `override_specifiers` by
1010
+ # passing `commit_ids`, `recurring_commit_ids`, or `any_commit_or_credit_ids`. If
1011
+ # you do not specify any of these fields, the override will apply when consuming
1012
+ # any prepaid commit, postpaid commit, or credit
1012
1013
  #
1013
1014
  # @return [Boolean, nil]
1014
1015
  optional :is_commit_specific, MetronomeSDK::Internal::Type::Boolean
@@ -1101,6 +1102,16 @@ module MetronomeSDK
1101
1102
  # @param type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::Type] Overwrites are prioritized over multipliers and tiered overrides.
1102
1103
 
1103
1104
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1105
+ # @!attribute any_commit_or_credit_ids
1106
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1107
+ # one of `product_id`, `product_tags`, `pricing_group_values`, or
1108
+ # `presentation_group_values`. Must be used instead of both `commit_ids` and
1109
+ # `recurring_commit_ids` If provided, the override will apply to any specified
1110
+ # commit, credit, recurring commit or recurring credit IDs.
1111
+ #
1112
+ # @return [Array<String>, nil]
1113
+ optional :any_commit_or_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1114
+
1104
1115
  # @!attribute billing_frequency
1105
1116
  #
1106
1117
  # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier::BillingFrequency, nil]
@@ -1152,11 +1163,13 @@ module MetronomeSDK
1152
1163
  # @return [Array<String>, nil]
1153
1164
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1154
1165
 
1155
- # @!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)
1166
+ # @!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)
1156
1167
  # Some parameter documentations has been truncated, see
1157
1168
  # {MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier} for
1158
1169
  # more details.
1159
1170
  #
1171
+ # @param any_commit_or_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1172
+ #
1160
1173
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier::BillingFrequency]
1161
1174
  #
1162
1175
  # @param commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
@@ -1421,9 +1421,10 @@ module MetronomeSDK
1421
1421
 
1422
1422
  # @!attribute is_commit_specific
1423
1423
  # Indicates whether the override should only apply to commits. Defaults to
1424
- # `false`. If `true`, you can specify relevant commits in `override_specifiers` by
1425
- # passing `commit_ids`. if you do not specify `commit_ids`, then the override will
1426
- # apply when consuming any prepaid or postpaid commit.
1424
+ # `false`. If `true` you can specify relevant commits in `override_specifiers` by
1425
+ # passing `commit_ids`, `recurring_commit_ids`, or `any_commit_or_credit_ids`. If
1426
+ # you do not specify any of these fields, the override will apply when consuming
1427
+ # any prepaid commit, postpaid commit, or credit
1427
1428
  #
1428
1429
  # @return [Boolean, nil]
1429
1430
  optional :is_commit_specific, MetronomeSDK::Internal::Type::Boolean
@@ -1516,6 +1517,16 @@ module MetronomeSDK
1516
1517
  # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::Type] Overwrites are prioritized over multipliers and tiered overrides.
1517
1518
 
1518
1519
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1520
+ # @!attribute any_commit_or_credit_ids
1521
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1522
+ # one of `product_id`, `product_tags`, `pricing_group_values`, or
1523
+ # `presentation_group_values`. Must be used instead of both `commit_ids` and
1524
+ # `recurring_commit_ids` If provided, the override will apply to any specified
1525
+ # commit, credit, recurring commit or recurring credit IDs.
1526
+ #
1527
+ # @return [Array<String>, nil]
1528
+ optional :any_commit_or_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1529
+
1519
1530
  # @!attribute billing_frequency
1520
1531
  #
1521
1532
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier::BillingFrequency, nil]
@@ -1567,11 +1578,13 @@ module MetronomeSDK
1567
1578
  # @return [Array<String>, nil]
1568
1579
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1569
1580
 
1570
- # @!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)
1581
+ # @!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)
1571
1582
  # Some parameter documentations has been truncated, see
1572
1583
  # {MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier}
1573
1584
  # for more details.
1574
1585
  #
1586
+ # @param any_commit_or_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1587
+ #
1575
1588
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier::BillingFrequency]
1576
1589
  #
1577
1590
  # @param commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
@@ -1879,6 +1892,13 @@ module MetronomeSDK
1879
1892
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Proration, nil]
1880
1893
  optional :proration, enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration }
1881
1894
 
1895
+ # @!attribute proration_rounding
1896
+ # Optional rounding configuration for prorated recurring commit amounts.
1897
+ #
1898
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding, nil]
1899
+ optional :proration_rounding,
1900
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::ProrationRounding }
1901
+
1882
1902
  # @!attribute rate_type
1883
1903
  # Whether the created commits will use the commit rate or list rate
1884
1904
  #
@@ -1927,7 +1947,7 @@ module MetronomeSDK
1927
1947
  # @return [String, nil]
1928
1948
  optional :temporary_id, String
1929
1949
 
1930
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
1950
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, proration_rounding: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
1931
1951
  # Some parameter documentations has been truncated, see
1932
1952
  # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit} for more
1933
1953
  # details.
@@ -1960,9 +1980,11 @@ module MetronomeSDK
1960
1980
  #
1961
1981
  # @param proration [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1962
1982
  #
1983
+ # @param proration_rounding [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding] Optional rounding configuration for prorated recurring commit amounts.
1984
+ #
1963
1985
  # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::RateType] Whether the created commits will use the commit rate or list rate
1964
1986
  #
1965
- # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
1987
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1966
1988
  #
1967
1989
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1968
1990
  #
@@ -2077,6 +2099,105 @@ module MetronomeSDK
2077
2099
  # @return [Array<Symbol>]
2078
2100
  end
2079
2101
 
2102
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#proration_rounding
2103
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
2104
+ # @!attribute access
2105
+ #
2106
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Access, nil]
2107
+ optional :access,
2108
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Access }
2109
+
2110
+ # @!attribute invoice
2111
+ #
2112
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Invoice, nil]
2113
+ optional :invoice,
2114
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Invoice }
2115
+
2116
+ # @!method initialize(access: nil, invoice: nil)
2117
+ # Optional rounding configuration for prorated recurring commit amounts.
2118
+ #
2119
+ # @param access [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Access]
2120
+ # @param invoice [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Invoice]
2121
+
2122
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding#access
2123
+ class Access < MetronomeSDK::Internal::Type::BaseModel
2124
+ # @!attribute decimal_places
2125
+ # Number of decimal places to round to. Applied directly to the stored monetary
2126
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2127
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2128
+ # dollar).
2129
+ #
2130
+ # @return [Float]
2131
+ required :decimal_places, Float
2132
+
2133
+ # @!attribute rounding_method
2134
+ #
2135
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod]
2136
+ required :rounding_method,
2137
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod }
2138
+
2139
+ # @!method initialize(decimal_places:, rounding_method:)
2140
+ # Some parameter documentations has been truncated, see
2141
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Access}
2142
+ # for more details.
2143
+ #
2144
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2145
+ #
2146
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod]
2147
+
2148
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Access#rounding_method
2149
+ module RoundingMethod
2150
+ extend MetronomeSDK::Internal::Type::Enum
2151
+
2152
+ HALF_UP = :HALF_UP
2153
+ FLOOR = :FLOOR
2154
+ CEILING = :CEILING
2155
+
2156
+ # @!method self.values
2157
+ # @return [Array<Symbol>]
2158
+ end
2159
+ end
2160
+
2161
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding#invoice
2162
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
2163
+ # @!attribute decimal_places
2164
+ # Number of decimal places to round to. Applied directly to the stored monetary
2165
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2166
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2167
+ # dollar).
2168
+ #
2169
+ # @return [Float]
2170
+ required :decimal_places, Float
2171
+
2172
+ # @!attribute rounding_method
2173
+ #
2174
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
2175
+ required :rounding_method,
2176
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod }
2177
+
2178
+ # @!method initialize(decimal_places:, rounding_method:)
2179
+ # Some parameter documentations has been truncated, see
2180
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Invoice}
2181
+ # for more details.
2182
+ #
2183
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2184
+ #
2185
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
2186
+
2187
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::ProrationRounding::Invoice#rounding_method
2188
+ module RoundingMethod
2189
+ extend MetronomeSDK::Internal::Type::Enum
2190
+
2191
+ HALF_UP = :HALF_UP
2192
+ FLOOR = :FLOOR
2193
+ CEILING = :CEILING
2194
+
2195
+ # @!method self.values
2196
+ # @return [Array<Symbol>]
2197
+ end
2198
+ end
2199
+ end
2200
+
2080
2201
  # Whether the created commits will use the commit rate or list rate
2081
2202
  #
2082
2203
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#rate_type
@@ -2104,6 +2225,7 @@ module MetronomeSDK
2104
2225
  QUARTERLY = :QUARTERLY
2105
2226
  ANNUAL = :ANNUAL
2106
2227
  WEEKLY = :WEEKLY
2228
+ DAILY = :DAILY
2107
2229
 
2108
2230
  # @!method self.values
2109
2231
  # @return [Array<Symbol>]
@@ -2253,6 +2375,13 @@ module MetronomeSDK
2253
2375
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Proration, nil]
2254
2376
  optional :proration, enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::Proration }
2255
2377
 
2378
+ # @!attribute proration_rounding
2379
+ # Optional rounding configuration for prorated recurring credit amounts.
2380
+ #
2381
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::ProrationRounding, nil]
2382
+ optional :proration_rounding,
2383
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::ProrationRounding }
2384
+
2256
2385
  # @!attribute rate_type
2257
2386
  # Whether the created commits will use the commit rate or list rate
2258
2387
  #
@@ -2301,7 +2430,7 @@ module MetronomeSDK
2301
2430
  # @return [String, nil]
2302
2431
  optional :temporary_id, String
2303
2432
 
2304
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
2433
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, proration_rounding: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
2305
2434
  # Some parameter documentations has been truncated, see
2306
2435
  # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit} for more
2307
2436
  # details.
@@ -2332,9 +2461,11 @@ module MetronomeSDK
2332
2461
  #
2333
2462
  # @param proration [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2334
2463
  #
2464
+ # @param proration_rounding [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::ProrationRounding] Optional rounding configuration for prorated recurring credit amounts.
2465
+ #
2335
2466
  # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::RateType] Whether the created commits will use the commit rate or list rate
2336
2467
  #
2337
- # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
2468
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
2338
2469
  #
2339
2470
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
2340
2471
  #
@@ -2424,6 +2555,59 @@ module MetronomeSDK
2424
2555
  # @return [Array<Symbol>]
2425
2556
  end
2426
2557
 
2558
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#proration_rounding
2559
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
2560
+ # @!attribute access
2561
+ #
2562
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::ProrationRounding::Access, nil]
2563
+ optional :access,
2564
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::ProrationRounding::Access }
2565
+
2566
+ # @!method initialize(access: nil)
2567
+ # Optional rounding configuration for prorated recurring credit amounts.
2568
+ #
2569
+ # @param access [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::ProrationRounding::Access]
2570
+
2571
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::ProrationRounding#access
2572
+ class Access < MetronomeSDK::Internal::Type::BaseModel
2573
+ # @!attribute decimal_places
2574
+ # Number of decimal places to round to. Applied directly to the stored monetary
2575
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2576
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2577
+ # dollar).
2578
+ #
2579
+ # @return [Float]
2580
+ required :decimal_places, Float
2581
+
2582
+ # @!attribute rounding_method
2583
+ #
2584
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod]
2585
+ required :rounding_method,
2586
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod }
2587
+
2588
+ # @!method initialize(decimal_places:, rounding_method:)
2589
+ # Some parameter documentations has been truncated, see
2590
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::ProrationRounding::Access}
2591
+ # for more details.
2592
+ #
2593
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2594
+ #
2595
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod]
2596
+
2597
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::ProrationRounding::Access#rounding_method
2598
+ module RoundingMethod
2599
+ extend MetronomeSDK::Internal::Type::Enum
2600
+
2601
+ HALF_UP = :HALF_UP
2602
+ FLOOR = :FLOOR
2603
+ CEILING = :CEILING
2604
+
2605
+ # @!method self.values
2606
+ # @return [Array<Symbol>]
2607
+ end
2608
+ end
2609
+ end
2610
+
2427
2611
  # Whether the created commits will use the commit rate or list rate
2428
2612
  #
2429
2613
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#rate_type
@@ -2451,6 +2635,7 @@ module MetronomeSDK
2451
2635
  QUARTERLY = :QUARTERLY
2452
2636
  ANNUAL = :ANNUAL
2453
2637
  WEEKLY = :WEEKLY
2638
+ DAILY = :DAILY
2454
2639
 
2455
2640
  # @!method self.values
2456
2641
  # @return [Array<Symbol>]
@@ -3084,6 +3269,12 @@ module MetronomeSDK
3084
3269
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate]
3085
3270
  required :subscription_rate, -> { MetronomeSDK::V1::ContractCreateParams::Subscription::SubscriptionRate }
3086
3271
 
3272
+ # @!attribute billing_cycle_config
3273
+ #
3274
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::BillingCycleConfig, nil]
3275
+ optional :billing_cycle_config,
3276
+ -> { MetronomeSDK::V1::ContractCreateParams::Subscription::BillingCycleConfig }
3277
+
3087
3278
  # @!attribute custom_fields
3088
3279
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3089
3280
  #
@@ -3148,7 +3339,7 @@ module MetronomeSDK
3148
3339
  # @return [String, nil]
3149
3340
  optional :temporary_id, String
3150
3341
 
3151
- # @!method initialize(collection_schedule:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, seat_config: nil, starting_at: nil, temporary_id: nil)
3342
+ # @!method initialize(collection_schedule:, proration:, subscription_rate:, billing_cycle_config: nil, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, seat_config: nil, starting_at: nil, temporary_id: nil)
3152
3343
  # Some parameter documentations has been truncated, see
3153
3344
  # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription} for more details.
3154
3345
  #
@@ -3158,6 +3349,8 @@ module MetronomeSDK
3158
3349
  #
3159
3350
  # @param subscription_rate [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate]
3160
3351
  #
3352
+ # @param billing_cycle_config [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::BillingCycleConfig]
3353
+ #
3161
3354
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3162
3355
  #
3163
3356
  # @param description [String]
@@ -3206,7 +3399,12 @@ module MetronomeSDK
3206
3399
  # @return [Boolean, nil]
3207
3400
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
3208
3401
 
3209
- # @!method initialize(invoice_behavior: nil, is_prorated: nil)
3402
+ # @!attribute rounding
3403
+ #
3404
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::Rounding, nil]
3405
+ optional :rounding, -> { MetronomeSDK::V1::ContractCreateParams::Subscription::Proration::Rounding }
3406
+
3407
+ # @!method initialize(invoice_behavior: nil, is_prorated: nil, rounding: nil)
3210
3408
  # Some parameter documentations has been truncated, see
3211
3409
  # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration} for
3212
3410
  # more details.
@@ -3214,6 +3412,8 @@ module MetronomeSDK
3214
3412
  # @param invoice_behavior [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced.
3215
3413
  #
3216
3414
  # @param is_prorated [Boolean] Indicates if the partial period will be prorated or charged a full amount.
3415
+ #
3416
+ # @param rounding [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::Rounding]
3217
3417
 
3218
3418
  # Indicates how mid-period quantity adjustments are invoiced.
3219
3419
  # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
@@ -3231,6 +3431,45 @@ module MetronomeSDK
3231
3431
  # @!method self.values
3232
3432
  # @return [Array<Symbol>]
3233
3433
  end
3434
+
3435
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration#rounding
3436
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
3437
+ # @!attribute decimal_places
3438
+ # Number of decimal places to round to. Applied directly to the stored monetary
3439
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3440
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
3441
+ # dollar).
3442
+ #
3443
+ # @return [Float]
3444
+ required :decimal_places, Float
3445
+
3446
+ # @!attribute rounding_method
3447
+ #
3448
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::Rounding::RoundingMethod]
3449
+ required :rounding_method,
3450
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::Proration::Rounding::RoundingMethod }
3451
+
3452
+ # @!method initialize(decimal_places:, rounding_method:)
3453
+ # Some parameter documentations has been truncated, see
3454
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::Rounding}
3455
+ # for more details.
3456
+ #
3457
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
3458
+ #
3459
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::Rounding::RoundingMethod]
3460
+
3461
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::Rounding#rounding_method
3462
+ module RoundingMethod
3463
+ extend MetronomeSDK::Internal::Type::Enum
3464
+
3465
+ HALF_UP = :HALF_UP
3466
+ FLOOR = :FLOOR
3467
+ CEILING = :CEILING
3468
+
3469
+ # @!method self.values
3470
+ # @return [Array<Symbol>]
3471
+ end
3472
+ end
3234
3473
  end
3235
3474
 
3236
3475
  # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#subscription_rate
@@ -3275,6 +3514,47 @@ module MetronomeSDK
3275
3514
  end
3276
3515
  end
3277
3516
 
3517
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#billing_cycle_config
3518
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
3519
+ # @!attribute anchor_date
3520
+ # The date to anchor the billing cycle to. If omitted, defaults to the contract's
3521
+ # usage invoice billing cycle anchor date.
3522
+ #
3523
+ # @return [Time, nil]
3524
+ optional :anchor_date, Time
3525
+
3526
+ # @!attribute invoice_placement
3527
+ # Controls whether this subscription consolidates onto usage invoices or gets its
3528
+ # own scheduled invoice. Defaults to ON_USAGE_INVOICE if omitted.
3529
+ #
3530
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::BillingCycleConfig::InvoicePlacement, nil]
3531
+ optional :invoice_placement,
3532
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::BillingCycleConfig::InvoicePlacement }
3533
+
3534
+ # @!method initialize(anchor_date: nil, invoice_placement: nil)
3535
+ # Some parameter documentations has been truncated, see
3536
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription::BillingCycleConfig}
3537
+ # for more details.
3538
+ #
3539
+ # @param anchor_date [Time] The date to anchor the billing cycle to. If omitted, defaults to the contract's
3540
+ #
3541
+ # @param invoice_placement [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::BillingCycleConfig::InvoicePlacement] Controls whether this subscription consolidates onto usage invoices or gets its
3542
+
3543
+ # Controls whether this subscription consolidates onto usage invoices or gets its
3544
+ # own scheduled invoice. Defaults to ON_USAGE_INVOICE if omitted.
3545
+ #
3546
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription::BillingCycleConfig#invoice_placement
3547
+ module InvoicePlacement
3548
+ extend MetronomeSDK::Internal::Type::Enum
3549
+
3550
+ ON_SCHEDULED_INVOICE = :ON_SCHEDULED_INVOICE
3551
+ ON_USAGE_INVOICE = :ON_USAGE_INVOICE
3552
+
3553
+ # @!method self.values
3554
+ # @return [Array<Symbol>]
3555
+ end
3556
+ end
3557
+
3278
3558
  # Determines how the subscription's quantity is controlled. Defaults to
3279
3559
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3280
3560
  # directly on the subscription. `initial_quantity` must be provided with this