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
@@ -1243,6 +1243,26 @@ module MetronomeSDK
1243
1243
  end
1244
1244
  attr_writer :proration
1245
1245
 
1246
+ # Rounding configuration for prorated recurring commit amounts.
1247
+ sig do
1248
+ returns(
1249
+ T.nilable(
1250
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding
1251
+ )
1252
+ )
1253
+ end
1254
+ attr_reader :proration_rounding
1255
+
1256
+ sig do
1257
+ params(
1258
+ proration_rounding:
1259
+ T.nilable(
1260
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::OrHash
1261
+ )
1262
+ ).void
1263
+ end
1264
+ attr_writer :proration_rounding
1265
+
1246
1266
  # The frequency at which the recurring commits will be created. If not provided: -
1247
1267
  # The commits will be created on the usage invoice frequency. If provided: - The
1248
1268
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1332,6 +1352,10 @@ module MetronomeSDK
1332
1352
  netsuite_sales_order_id: String,
1333
1353
  proration:
1334
1354
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Proration::OrSymbol,
1355
+ proration_rounding:
1356
+ T.nilable(
1357
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::OrHash
1358
+ ),
1335
1359
  recurrence_frequency:
1336
1360
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::RecurrenceFrequency::OrSymbol,
1337
1361
  rollover_fraction: Float,
@@ -1373,6 +1397,8 @@ module MetronomeSDK
1373
1397
  # Determines whether the first and last commit will be prorated. If not provided,
1374
1398
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
1375
1399
  proration: nil,
1400
+ # Rounding configuration for prorated recurring commit amounts.
1401
+ proration_rounding: nil,
1376
1402
  # The frequency at which the recurring commits will be created. If not provided: -
1377
1403
  # The commits will be created on the usage invoice frequency. If provided: - The
1378
1404
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1420,6 +1446,10 @@ module MetronomeSDK
1420
1446
  netsuite_sales_order_id: String,
1421
1447
  proration:
1422
1448
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Proration::TaggedSymbol,
1449
+ proration_rounding:
1450
+ T.nilable(
1451
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding
1452
+ ),
1423
1453
  recurrence_frequency:
1424
1454
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::RecurrenceFrequency::TaggedSymbol,
1425
1455
  rollover_fraction: Float,
@@ -1729,6 +1759,259 @@ module MetronomeSDK
1729
1759
  end
1730
1760
  end
1731
1761
 
1762
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
1763
+ OrHash =
1764
+ T.type_alias do
1765
+ T.any(
1766
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding,
1767
+ MetronomeSDK::Internal::AnyHash
1768
+ )
1769
+ end
1770
+
1771
+ sig do
1772
+ returns(
1773
+ T.nilable(
1774
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access
1775
+ )
1776
+ )
1777
+ end
1778
+ attr_reader :access
1779
+
1780
+ sig do
1781
+ params(
1782
+ access:
1783
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::OrHash
1784
+ ).void
1785
+ end
1786
+ attr_writer :access
1787
+
1788
+ sig do
1789
+ returns(
1790
+ T.nilable(
1791
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice
1792
+ )
1793
+ )
1794
+ end
1795
+ attr_reader :invoice
1796
+
1797
+ sig do
1798
+ params(
1799
+ invoice:
1800
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::OrHash
1801
+ ).void
1802
+ end
1803
+ attr_writer :invoice
1804
+
1805
+ # Rounding configuration for prorated recurring commit amounts.
1806
+ sig do
1807
+ params(
1808
+ access:
1809
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::OrHash,
1810
+ invoice:
1811
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::OrHash
1812
+ ).returns(T.attached_class)
1813
+ end
1814
+ def self.new(access: nil, invoice: nil)
1815
+ end
1816
+
1817
+ sig do
1818
+ override.returns(
1819
+ {
1820
+ access:
1821
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access,
1822
+ invoice:
1823
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice
1824
+ }
1825
+ )
1826
+ end
1827
+ def to_hash
1828
+ end
1829
+
1830
+ class Access < MetronomeSDK::Internal::Type::BaseModel
1831
+ OrHash =
1832
+ T.type_alias do
1833
+ T.any(
1834
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access,
1835
+ MetronomeSDK::Internal::AnyHash
1836
+ )
1837
+ end
1838
+
1839
+ # Number of decimal places to round to. Applied directly to the stored monetary
1840
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1841
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1842
+ # dollar).
1843
+ sig { returns(Float) }
1844
+ attr_accessor :decimal_places
1845
+
1846
+ sig do
1847
+ returns(
1848
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1849
+ )
1850
+ end
1851
+ attr_accessor :rounding_method
1852
+
1853
+ sig do
1854
+ params(
1855
+ decimal_places: Float,
1856
+ rounding_method:
1857
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
1858
+ ).returns(T.attached_class)
1859
+ end
1860
+ def self.new(
1861
+ # Number of decimal places to round to. Applied directly to the stored monetary
1862
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1863
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1864
+ # dollar).
1865
+ decimal_places:,
1866
+ rounding_method:
1867
+ )
1868
+ end
1869
+
1870
+ sig do
1871
+ override.returns(
1872
+ {
1873
+ decimal_places: Float,
1874
+ rounding_method:
1875
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1876
+ }
1877
+ )
1878
+ end
1879
+ def to_hash
1880
+ end
1881
+
1882
+ module RoundingMethod
1883
+ extend MetronomeSDK::Internal::Type::Enum
1884
+
1885
+ TaggedSymbol =
1886
+ T.type_alias do
1887
+ T.all(
1888
+ Symbol,
1889
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod
1890
+ )
1891
+ end
1892
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1893
+
1894
+ HALF_UP =
1895
+ T.let(
1896
+ :HALF_UP,
1897
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1898
+ )
1899
+ FLOOR =
1900
+ T.let(
1901
+ :FLOOR,
1902
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1903
+ )
1904
+ CEILING =
1905
+ T.let(
1906
+ :CEILING,
1907
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1908
+ )
1909
+
1910
+ sig do
1911
+ override.returns(
1912
+ T::Array[
1913
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1914
+ ]
1915
+ )
1916
+ end
1917
+ def self.values
1918
+ end
1919
+ end
1920
+ end
1921
+
1922
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
1923
+ OrHash =
1924
+ T.type_alias do
1925
+ T.any(
1926
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice,
1927
+ MetronomeSDK::Internal::AnyHash
1928
+ )
1929
+ end
1930
+
1931
+ # Number of decimal places to round to. Applied directly to the stored monetary
1932
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1933
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1934
+ # dollar).
1935
+ sig { returns(Float) }
1936
+ attr_accessor :decimal_places
1937
+
1938
+ sig do
1939
+ returns(
1940
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
1941
+ )
1942
+ end
1943
+ attr_accessor :rounding_method
1944
+
1945
+ sig do
1946
+ params(
1947
+ decimal_places: Float,
1948
+ rounding_method:
1949
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
1950
+ ).returns(T.attached_class)
1951
+ end
1952
+ def self.new(
1953
+ # Number of decimal places to round to. Applied directly to the stored monetary
1954
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1955
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1956
+ # dollar).
1957
+ decimal_places:,
1958
+ rounding_method:
1959
+ )
1960
+ end
1961
+
1962
+ sig do
1963
+ override.returns(
1964
+ {
1965
+ decimal_places: Float,
1966
+ rounding_method:
1967
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
1968
+ }
1969
+ )
1970
+ end
1971
+ def to_hash
1972
+ end
1973
+
1974
+ module RoundingMethod
1975
+ extend MetronomeSDK::Internal::Type::Enum
1976
+
1977
+ TaggedSymbol =
1978
+ T.type_alias do
1979
+ T.all(
1980
+ Symbol,
1981
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod
1982
+ )
1983
+ end
1984
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1985
+
1986
+ HALF_UP =
1987
+ T.let(
1988
+ :HALF_UP,
1989
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
1990
+ )
1991
+ FLOOR =
1992
+ T.let(
1993
+ :FLOOR,
1994
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
1995
+ )
1996
+ CEILING =
1997
+ T.let(
1998
+ :CEILING,
1999
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
2000
+ )
2001
+
2002
+ sig do
2003
+ override.returns(
2004
+ T::Array[
2005
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
2006
+ ]
2007
+ )
2008
+ end
2009
+ def self.values
2010
+ end
2011
+ end
2012
+ end
2013
+ end
2014
+
1732
2015
  # The frequency at which the recurring commits will be created. If not provided: -
1733
2016
  # The commits will be created on the usage invoice frequency. If provided: - The
1734
2017
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1766,6 +2049,11 @@ module MetronomeSDK
1766
2049
  :WEEKLY,
1767
2050
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::RecurrenceFrequency::TaggedSymbol
1768
2051
  )
2052
+ DAILY =
2053
+ T.let(
2054
+ :DAILY,
2055
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::RecurrenceFrequency::TaggedSymbol
2056
+ )
1769
2057
 
1770
2058
  sig do
1771
2059
  override.returns(
@@ -1946,6 +2234,26 @@ module MetronomeSDK
1946
2234
  end
1947
2235
  attr_writer :proration
1948
2236
 
2237
+ # Rounding configuration for prorated recurring credit amounts.
2238
+ sig do
2239
+ returns(
2240
+ T.nilable(
2241
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding
2242
+ )
2243
+ )
2244
+ end
2245
+ attr_reader :proration_rounding
2246
+
2247
+ sig do
2248
+ params(
2249
+ proration_rounding:
2250
+ T.nilable(
2251
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::OrHash
2252
+ )
2253
+ ).void
2254
+ end
2255
+ attr_writer :proration_rounding
2256
+
1949
2257
  # The frequency at which the recurring commits will be created. If not provided: -
1950
2258
  # The commits will be created on the usage invoice frequency. If provided: - The
1951
2259
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2033,6 +2341,10 @@ module MetronomeSDK
2033
2341
  netsuite_sales_order_id: String,
2034
2342
  proration:
2035
2343
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Proration::OrSymbol,
2344
+ proration_rounding:
2345
+ T.nilable(
2346
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::OrHash
2347
+ ),
2036
2348
  recurrence_frequency:
2037
2349
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::RecurrenceFrequency::OrSymbol,
2038
2350
  rollover_fraction: Float,
@@ -2072,6 +2384,8 @@ module MetronomeSDK
2072
2384
  # Determines whether the first and last commit will be prorated. If not provided,
2073
2385
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2074
2386
  proration: nil,
2387
+ # Rounding configuration for prorated recurring credit amounts.
2388
+ proration_rounding: nil,
2075
2389
  # The frequency at which the recurring commits will be created. If not provided: -
2076
2390
  # The commits will be created on the usage invoice frequency. If provided: - The
2077
2391
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2117,6 +2431,10 @@ module MetronomeSDK
2117
2431
  netsuite_sales_order_id: String,
2118
2432
  proration:
2119
2433
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Proration::TaggedSymbol,
2434
+ proration_rounding:
2435
+ T.nilable(
2436
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding
2437
+ ),
2120
2438
  recurrence_frequency:
2121
2439
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::RecurrenceFrequency::TaggedSymbol,
2122
2440
  rollover_fraction: Float,
@@ -2384,6 +2702,146 @@ module MetronomeSDK
2384
2702
  end
2385
2703
  end
2386
2704
 
2705
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
2706
+ OrHash =
2707
+ T.type_alias do
2708
+ T.any(
2709
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding,
2710
+ MetronomeSDK::Internal::AnyHash
2711
+ )
2712
+ end
2713
+
2714
+ sig do
2715
+ returns(
2716
+ T.nilable(
2717
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access
2718
+ )
2719
+ )
2720
+ end
2721
+ attr_reader :access
2722
+
2723
+ sig do
2724
+ params(
2725
+ access:
2726
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::OrHash
2727
+ ).void
2728
+ end
2729
+ attr_writer :access
2730
+
2731
+ # Rounding configuration for prorated recurring credit amounts.
2732
+ sig do
2733
+ params(
2734
+ access:
2735
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::OrHash
2736
+ ).returns(T.attached_class)
2737
+ end
2738
+ def self.new(access: nil)
2739
+ end
2740
+
2741
+ sig do
2742
+ override.returns(
2743
+ {
2744
+ access:
2745
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access
2746
+ }
2747
+ )
2748
+ end
2749
+ def to_hash
2750
+ end
2751
+
2752
+ class Access < MetronomeSDK::Internal::Type::BaseModel
2753
+ OrHash =
2754
+ T.type_alias do
2755
+ T.any(
2756
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access,
2757
+ MetronomeSDK::Internal::AnyHash
2758
+ )
2759
+ end
2760
+
2761
+ # Number of decimal places to round to. Applied directly to the stored monetary
2762
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2763
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2764
+ # dollar).
2765
+ sig { returns(Float) }
2766
+ attr_accessor :decimal_places
2767
+
2768
+ sig do
2769
+ returns(
2770
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2771
+ )
2772
+ end
2773
+ attr_accessor :rounding_method
2774
+
2775
+ sig do
2776
+ params(
2777
+ decimal_places: Float,
2778
+ rounding_method:
2779
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
2780
+ ).returns(T.attached_class)
2781
+ end
2782
+ def self.new(
2783
+ # Number of decimal places to round to. Applied directly to the stored monetary
2784
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2785
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2786
+ # dollar).
2787
+ decimal_places:,
2788
+ rounding_method:
2789
+ )
2790
+ end
2791
+
2792
+ sig do
2793
+ override.returns(
2794
+ {
2795
+ decimal_places: Float,
2796
+ rounding_method:
2797
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2798
+ }
2799
+ )
2800
+ end
2801
+ def to_hash
2802
+ end
2803
+
2804
+ module RoundingMethod
2805
+ extend MetronomeSDK::Internal::Type::Enum
2806
+
2807
+ TaggedSymbol =
2808
+ T.type_alias do
2809
+ T.all(
2810
+ Symbol,
2811
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod
2812
+ )
2813
+ end
2814
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2815
+
2816
+ HALF_UP =
2817
+ T.let(
2818
+ :HALF_UP,
2819
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2820
+ )
2821
+ FLOOR =
2822
+ T.let(
2823
+ :FLOOR,
2824
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2825
+ )
2826
+ CEILING =
2827
+ T.let(
2828
+ :CEILING,
2829
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2830
+ )
2831
+
2832
+ sig do
2833
+ override.returns(
2834
+ T::Array[
2835
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2836
+ ]
2837
+ )
2838
+ end
2839
+ def self.values
2840
+ end
2841
+ end
2842
+ end
2843
+ end
2844
+
2387
2845
  # The frequency at which the recurring commits will be created. If not provided: -
2388
2846
  # The commits will be created on the usage invoice frequency. If provided: - The
2389
2847
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2421,6 +2879,11 @@ module MetronomeSDK
2421
2879
  :WEEKLY,
2422
2880
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::RecurrenceFrequency::TaggedSymbol
2423
2881
  )
2882
+ DAILY =
2883
+ T.let(
2884
+ :DAILY,
2885
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::RecurrenceFrequency::TaggedSymbol
2886
+ )
2424
2887
 
2425
2888
  sig do
2426
2889
  override.returns(
@@ -0,0 +1,112 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class ContractGetSubscriptionSeatsHistoryParams < MetronomeSDK::Internal::Type::BaseModel
7
+ extend MetronomeSDK::Internal::Type::RequestParameters::Converter
8
+ include MetronomeSDK::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ MetronomeSDK::V1::ContractGetSubscriptionSeatsHistoryParams,
14
+ MetronomeSDK::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :contract_id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :customer_id
23
+
24
+ sig { returns(String) }
25
+ attr_accessor :subscription_id
26
+
27
+ # Get the seats history segment for the covering date. Cannot be used with
28
+ # `starting_at` or `ending_before`.
29
+ sig { returns(T.nilable(Time)) }
30
+ attr_accessor :covering_date
31
+
32
+ # Cursor for pagination. Use the value from the `next_page` field of the previous
33
+ # response to retrieve the next page of results.
34
+ sig { returns(T.nilable(String)) }
35
+ attr_accessor :cursor
36
+
37
+ # Include seats history segments that are active at or before this timestamp. Use
38
+ # with `starting_at` to get a specific time range. If not set, there's no upper
39
+ # bound.
40
+ sig { returns(T.nilable(Time)) }
41
+ attr_accessor :ending_before
42
+
43
+ # Maximum number of seat schedule entries to return. Defaults to 10. Required
44
+ # range: 1 <= x <= 10.
45
+ sig { returns(T.nilable(Integer)) }
46
+ attr_accessor :limit
47
+
48
+ # Include seats history segments that are active at or after this timestamp. Use
49
+ # with `ending_before` to get a specific time range. If not set, there's no lower
50
+ # bound.
51
+ sig { returns(T.nilable(Time)) }
52
+ attr_accessor :starting_at
53
+
54
+ sig do
55
+ params(
56
+ contract_id: String,
57
+ customer_id: String,
58
+ subscription_id: String,
59
+ covering_date: T.nilable(Time),
60
+ cursor: T.nilable(String),
61
+ ending_before: T.nilable(Time),
62
+ limit: T.nilable(Integer),
63
+ starting_at: T.nilable(Time),
64
+ request_options: MetronomeSDK::RequestOptions::OrHash
65
+ ).returns(T.attached_class)
66
+ end
67
+ def self.new(
68
+ contract_id:,
69
+ customer_id:,
70
+ subscription_id:,
71
+ # Get the seats history segment for the covering date. Cannot be used with
72
+ # `starting_at` or `ending_before`.
73
+ covering_date: nil,
74
+ # Cursor for pagination. Use the value from the `next_page` field of the previous
75
+ # response to retrieve the next page of results.
76
+ cursor: nil,
77
+ # Include seats history segments that are active at or before this timestamp. Use
78
+ # with `starting_at` to get a specific time range. If not set, there's no upper
79
+ # bound.
80
+ ending_before: nil,
81
+ # Maximum number of seat schedule entries to return. Defaults to 10. Required
82
+ # range: 1 <= x <= 10.
83
+ limit: nil,
84
+ # Include seats history segments that are active at or after this timestamp. Use
85
+ # with `ending_before` to get a specific time range. If not set, there's no lower
86
+ # bound.
87
+ starting_at: nil,
88
+ request_options: {}
89
+ )
90
+ end
91
+
92
+ sig do
93
+ override.returns(
94
+ {
95
+ contract_id: String,
96
+ customer_id: String,
97
+ subscription_id: String,
98
+ covering_date: T.nilable(Time),
99
+ cursor: T.nilable(String),
100
+ ending_before: T.nilable(Time),
101
+ limit: T.nilable(Integer),
102
+ starting_at: T.nilable(Time),
103
+ request_options: MetronomeSDK::RequestOptions
104
+ }
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end