metronome-sdk 3.7.0 → 3.9.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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -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.rb +46 -16
  7. data/lib/metronome_sdk/models/contract_v2.rb +645 -16
  8. data/lib/metronome_sdk/models/contract_without_amendments.rb +178 -4
  9. data/lib/metronome_sdk/models/credit.rb +10 -1
  10. data/lib/metronome_sdk/models/override.rb +7 -1
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +10 -2
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +3 -1
  13. data/lib/metronome_sdk/models/subscription.rb +90 -2
  14. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  15. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +17 -4
  16. data/lib/metronome_sdk/models/v1/contract_create_params.rb +290 -10
  17. data/lib/metronome_sdk/models/v1/contract_create_response.rb +243 -17
  18. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  19. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  20. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  21. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  22. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  23. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  25. data/lib/metronome_sdk/models/v1/package_create_params.rb +279 -10
  26. data/lib/metronome_sdk/models/v1/package_list_response.rb +264 -7
  27. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +264 -7
  28. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +517 -9
  29. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +456 -8
  30. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +456 -8
  31. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  32. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  33. data/lib/metronome_sdk/resources/v1/contracts.rb +68 -1
  34. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  35. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  36. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  37. data/lib/metronome_sdk/version.rb +1 -1
  38. data/lib/metronome_sdk.rb +2 -0
  39. data/rbi/metronome_sdk/models/commit.rbi +13 -0
  40. data/rbi/metronome_sdk/models/contract.rbi +47 -22
  41. data/rbi/metronome_sdk/models/contract_v2.rbi +1472 -96
  42. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +463 -0
  43. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  44. data/rbi/metronome_sdk/models/override.rbi +9 -0
  45. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +11 -1
  46. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +4 -0
  47. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  48. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  49. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +27 -6
  50. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +719 -9
  51. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +523 -32
  52. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  53. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  54. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  55. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  56. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  57. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  58. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  59. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +706 -9
  60. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +693 -3
  61. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +693 -3
  62. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1372 -69
  63. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +1204 -67
  64. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1204 -67
  65. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  66. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  67. data/rbi/metronome_sdk/resources/v1/contracts.rbi +70 -0
  68. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  69. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  70. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  71. data/sig/metronome_sdk/models/commit.rbs +7 -0
  72. data/sig/metronome_sdk/models/contract.rbs +22 -11
  73. data/sig/metronome_sdk/models/contract_v2.rbs +559 -8
  74. data/sig/metronome_sdk/models/contract_without_amendments.rbs +169 -2
  75. data/sig/metronome_sdk/models/credit.rbs +7 -0
  76. data/sig/metronome_sdk/models/override.rbs +7 -0
  77. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  78. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  79. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +7 -0
  80. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +278 -5
  81. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +197 -17
  82. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  83. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  84. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  85. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  86. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  87. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  88. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  89. data/sig/metronome_sdk/models/v1/package_create_params.rbs +271 -5
  90. data/sig/metronome_sdk/models/v1/package_list_response.rbs +265 -5
  91. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +263 -5
  92. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +472 -7
  93. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +428 -5
  94. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +427 -5
  95. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  96. data/sig/metronome_sdk/resources/v1/contracts.rbs +13 -0
  97. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  98. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  99. metadata +8 -2
@@ -173,7 +173,6 @@ module MetronomeSDK
173
173
  sig { params(custom_fields: T::Hash[Symbol, String]).void }
174
174
  attr_writer :custom_fields
175
175
 
176
- # The billing provider configuration associated with the contract.
177
176
  sig do
178
177
  returns(
179
178
  T.nilable(
@@ -463,7 +462,6 @@ module MetronomeSDK
463
462
  credits: nil,
464
463
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
465
464
  custom_fields: nil,
466
- # The billing provider configuration associated with the contract.
467
465
  customer_billing_provider_configuration: nil,
468
466
  ending_before: nil,
469
467
  # Indicates whether there are more items than the limit for this endpoint. Use the
@@ -792,73 +790,102 @@ module MetronomeSDK
792
790
  )
793
791
  end
794
792
 
795
- sig { returns(T.nilable(String)) }
796
- attr_reader :id
793
+ # ID of this configuration; can be provided as the
794
+ # billing_provider_configuration_id when creating a contract.
795
+ sig { returns(String) }
796
+ attr_accessor :id
797
797
 
798
- sig { params(id: String).void }
799
- attr_writer :id
798
+ sig { returns(T.nilable(Time)) }
799
+ attr_accessor :archived_at
800
800
 
801
+ # The billing provider set for this configuration.
801
802
  sig do
802
803
  returns(
803
- T.nilable(
804
- MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
805
- )
804
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
806
805
  )
807
806
  end
808
- attr_reader :billing_provider
807
+ attr_accessor :billing_provider
809
808
 
810
- sig do
811
- params(
812
- billing_provider:
813
- MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::BillingProvider::OrSymbol
814
- ).void
815
- end
816
- attr_writer :billing_provider
809
+ # Configuration for the billing provider. The structure of this object is specific
810
+ # to the billing provider.
811
+ sig { returns(T::Hash[Symbol, T.anything]) }
812
+ attr_accessor :configuration
817
813
 
814
+ sig { returns(String) }
815
+ attr_accessor :customer_id
816
+
817
+ # The method to use for delivering invoices to this customer.
818
818
  sig do
819
819
  returns(
820
- T.nilable(
821
- MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
822
- )
820
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
823
821
  )
824
822
  end
825
- attr_reader :delivery_method
823
+ attr_accessor :delivery_method
826
824
 
827
- sig do
828
- params(
829
- delivery_method:
830
- MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol
831
- ).void
832
- end
833
- attr_writer :delivery_method
825
+ # Configuration for the delivery method. The structure of this object is specific
826
+ # to the delivery method.
827
+ sig { returns(T::Hash[Symbol, T.anything]) }
828
+ attr_accessor :delivery_method_configuration
829
+
830
+ # ID of the delivery method to use for this customer.
831
+ sig { returns(String) }
832
+ attr_accessor :delivery_method_id
834
833
 
835
- # The billing provider configuration associated with the contract.
836
834
  sig do
837
835
  params(
838
836
  id: String,
837
+ archived_at: T.nilable(Time),
839
838
  billing_provider:
840
839
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::BillingProvider::OrSymbol,
840
+ configuration: T::Hash[Symbol, T.anything],
841
+ customer_id: String,
841
842
  delivery_method:
842
- MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol
843
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol,
844
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
845
+ delivery_method_id: String
843
846
  ).returns(T.attached_class)
844
847
  end
845
- def self.new(id: nil, billing_provider: nil, delivery_method: nil)
848
+ def self.new(
849
+ # ID of this configuration; can be provided as the
850
+ # billing_provider_configuration_id when creating a contract.
851
+ id:,
852
+ archived_at:,
853
+ # The billing provider set for this configuration.
854
+ billing_provider:,
855
+ # Configuration for the billing provider. The structure of this object is specific
856
+ # to the billing provider.
857
+ configuration:,
858
+ customer_id:,
859
+ # The method to use for delivering invoices to this customer.
860
+ delivery_method:,
861
+ # Configuration for the delivery method. The structure of this object is specific
862
+ # to the delivery method.
863
+ delivery_method_configuration:,
864
+ # ID of the delivery method to use for this customer.
865
+ delivery_method_id:
866
+ )
846
867
  end
847
868
 
848
869
  sig do
849
870
  override.returns(
850
871
  {
851
872
  id: String,
873
+ archived_at: T.nilable(Time),
852
874
  billing_provider:
853
875
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol,
876
+ configuration: T::Hash[Symbol, T.anything],
877
+ customer_id: String,
854
878
  delivery_method:
855
- MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
879
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol,
880
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
881
+ delivery_method_id: String
856
882
  }
857
883
  )
858
884
  end
859
885
  def to_hash
860
886
  end
861
887
 
888
+ # The billing provider set for this configuration.
862
889
  module BillingProvider
863
890
  extend MetronomeSDK::Internal::Type::Enum
864
891
 
@@ -928,6 +955,7 @@ module MetronomeSDK
928
955
  end
929
956
  end
930
957
 
958
+ # The method to use for delivering invoices to this customer.
931
959
  module DeliveryMethod
932
960
  extend MetronomeSDK::Internal::Type::Enum
933
961
 
@@ -1243,6 +1271,26 @@ module MetronomeSDK
1243
1271
  end
1244
1272
  attr_writer :proration
1245
1273
 
1274
+ # Rounding configuration for prorated recurring commit amounts.
1275
+ sig do
1276
+ returns(
1277
+ T.nilable(
1278
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding
1279
+ )
1280
+ )
1281
+ end
1282
+ attr_reader :proration_rounding
1283
+
1284
+ sig do
1285
+ params(
1286
+ proration_rounding:
1287
+ T.nilable(
1288
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::OrHash
1289
+ )
1290
+ ).void
1291
+ end
1292
+ attr_writer :proration_rounding
1293
+
1246
1294
  # The frequency at which the recurring commits will be created. If not provided: -
1247
1295
  # The commits will be created on the usage invoice frequency. If provided: - The
1248
1296
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1332,6 +1380,10 @@ module MetronomeSDK
1332
1380
  netsuite_sales_order_id: String,
1333
1381
  proration:
1334
1382
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Proration::OrSymbol,
1383
+ proration_rounding:
1384
+ T.nilable(
1385
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::OrHash
1386
+ ),
1335
1387
  recurrence_frequency:
1336
1388
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::RecurrenceFrequency::OrSymbol,
1337
1389
  rollover_fraction: Float,
@@ -1373,6 +1425,8 @@ module MetronomeSDK
1373
1425
  # Determines whether the first and last commit will be prorated. If not provided,
1374
1426
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
1375
1427
  proration: nil,
1428
+ # Rounding configuration for prorated recurring commit amounts.
1429
+ proration_rounding: nil,
1376
1430
  # The frequency at which the recurring commits will be created. If not provided: -
1377
1431
  # The commits will be created on the usage invoice frequency. If provided: - The
1378
1432
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1420,6 +1474,10 @@ module MetronomeSDK
1420
1474
  netsuite_sales_order_id: String,
1421
1475
  proration:
1422
1476
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::Proration::TaggedSymbol,
1477
+ proration_rounding:
1478
+ T.nilable(
1479
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding
1480
+ ),
1423
1481
  recurrence_frequency:
1424
1482
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::RecurrenceFrequency::TaggedSymbol,
1425
1483
  rollover_fraction: Float,
@@ -1729,6 +1787,259 @@ module MetronomeSDK
1729
1787
  end
1730
1788
  end
1731
1789
 
1790
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
1791
+ OrHash =
1792
+ T.type_alias do
1793
+ T.any(
1794
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding,
1795
+ MetronomeSDK::Internal::AnyHash
1796
+ )
1797
+ end
1798
+
1799
+ sig do
1800
+ returns(
1801
+ T.nilable(
1802
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access
1803
+ )
1804
+ )
1805
+ end
1806
+ attr_reader :access
1807
+
1808
+ sig do
1809
+ params(
1810
+ access:
1811
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::OrHash
1812
+ ).void
1813
+ end
1814
+ attr_writer :access
1815
+
1816
+ sig do
1817
+ returns(
1818
+ T.nilable(
1819
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice
1820
+ )
1821
+ )
1822
+ end
1823
+ attr_reader :invoice
1824
+
1825
+ sig do
1826
+ params(
1827
+ invoice:
1828
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::OrHash
1829
+ ).void
1830
+ end
1831
+ attr_writer :invoice
1832
+
1833
+ # Rounding configuration for prorated recurring commit amounts.
1834
+ sig do
1835
+ params(
1836
+ access:
1837
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::OrHash,
1838
+ invoice:
1839
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::OrHash
1840
+ ).returns(T.attached_class)
1841
+ end
1842
+ def self.new(access: nil, invoice: nil)
1843
+ end
1844
+
1845
+ sig do
1846
+ override.returns(
1847
+ {
1848
+ access:
1849
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access,
1850
+ invoice:
1851
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice
1852
+ }
1853
+ )
1854
+ end
1855
+ def to_hash
1856
+ end
1857
+
1858
+ class Access < MetronomeSDK::Internal::Type::BaseModel
1859
+ OrHash =
1860
+ T.type_alias do
1861
+ T.any(
1862
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access,
1863
+ MetronomeSDK::Internal::AnyHash
1864
+ )
1865
+ end
1866
+
1867
+ # Number of decimal places to round to. Applied directly to the stored monetary
1868
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1869
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1870
+ # dollar).
1871
+ sig { returns(Float) }
1872
+ attr_accessor :decimal_places
1873
+
1874
+ sig do
1875
+ returns(
1876
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1877
+ )
1878
+ end
1879
+ attr_accessor :rounding_method
1880
+
1881
+ sig do
1882
+ params(
1883
+ decimal_places: Float,
1884
+ rounding_method:
1885
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
1886
+ ).returns(T.attached_class)
1887
+ end
1888
+ def self.new(
1889
+ # Number of decimal places to round to. Applied directly to the stored monetary
1890
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1891
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1892
+ # dollar).
1893
+ decimal_places:,
1894
+ rounding_method:
1895
+ )
1896
+ end
1897
+
1898
+ sig do
1899
+ override.returns(
1900
+ {
1901
+ decimal_places: Float,
1902
+ rounding_method:
1903
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1904
+ }
1905
+ )
1906
+ end
1907
+ def to_hash
1908
+ end
1909
+
1910
+ module RoundingMethod
1911
+ extend MetronomeSDK::Internal::Type::Enum
1912
+
1913
+ TaggedSymbol =
1914
+ T.type_alias do
1915
+ T.all(
1916
+ Symbol,
1917
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod
1918
+ )
1919
+ end
1920
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1921
+
1922
+ HALF_UP =
1923
+ T.let(
1924
+ :HALF_UP,
1925
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1926
+ )
1927
+ FLOOR =
1928
+ T.let(
1929
+ :FLOOR,
1930
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1931
+ )
1932
+ CEILING =
1933
+ T.let(
1934
+ :CEILING,
1935
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1936
+ )
1937
+
1938
+ sig do
1939
+ override.returns(
1940
+ T::Array[
1941
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
1942
+ ]
1943
+ )
1944
+ end
1945
+ def self.values
1946
+ end
1947
+ end
1948
+ end
1949
+
1950
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
1951
+ OrHash =
1952
+ T.type_alias do
1953
+ T.any(
1954
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice,
1955
+ MetronomeSDK::Internal::AnyHash
1956
+ )
1957
+ end
1958
+
1959
+ # Number of decimal places to round to. Applied directly to the stored monetary
1960
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1961
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1962
+ # dollar).
1963
+ sig { returns(Float) }
1964
+ attr_accessor :decimal_places
1965
+
1966
+ sig do
1967
+ returns(
1968
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
1969
+ )
1970
+ end
1971
+ attr_accessor :rounding_method
1972
+
1973
+ sig do
1974
+ params(
1975
+ decimal_places: Float,
1976
+ rounding_method:
1977
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
1978
+ ).returns(T.attached_class)
1979
+ end
1980
+ def self.new(
1981
+ # Number of decimal places to round to. Applied directly to the stored monetary
1982
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1983
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1984
+ # dollar).
1985
+ decimal_places:,
1986
+ rounding_method:
1987
+ )
1988
+ end
1989
+
1990
+ sig do
1991
+ override.returns(
1992
+ {
1993
+ decimal_places: Float,
1994
+ rounding_method:
1995
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
1996
+ }
1997
+ )
1998
+ end
1999
+ def to_hash
2000
+ end
2001
+
2002
+ module RoundingMethod
2003
+ extend MetronomeSDK::Internal::Type::Enum
2004
+
2005
+ TaggedSymbol =
2006
+ T.type_alias do
2007
+ T.all(
2008
+ Symbol,
2009
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod
2010
+ )
2011
+ end
2012
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2013
+
2014
+ HALF_UP =
2015
+ T.let(
2016
+ :HALF_UP,
2017
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
2018
+ )
2019
+ FLOOR =
2020
+ T.let(
2021
+ :FLOOR,
2022
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
2023
+ )
2024
+ CEILING =
2025
+ T.let(
2026
+ :CEILING,
2027
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
2028
+ )
2029
+
2030
+ sig do
2031
+ override.returns(
2032
+ T::Array[
2033
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
2034
+ ]
2035
+ )
2036
+ end
2037
+ def self.values
2038
+ end
2039
+ end
2040
+ end
2041
+ end
2042
+
1732
2043
  # The frequency at which the recurring commits will be created. If not provided: -
1733
2044
  # The commits will be created on the usage invoice frequency. If provided: - The
1734
2045
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1766,6 +2077,11 @@ module MetronomeSDK
1766
2077
  :WEEKLY,
1767
2078
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::RecurrenceFrequency::TaggedSymbol
1768
2079
  )
2080
+ DAILY =
2081
+ T.let(
2082
+ :DAILY,
2083
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCommit::RecurrenceFrequency::TaggedSymbol
2084
+ )
1769
2085
 
1770
2086
  sig do
1771
2087
  override.returns(
@@ -1946,6 +2262,26 @@ module MetronomeSDK
1946
2262
  end
1947
2263
  attr_writer :proration
1948
2264
 
2265
+ # Rounding configuration for prorated recurring credit amounts.
2266
+ sig do
2267
+ returns(
2268
+ T.nilable(
2269
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding
2270
+ )
2271
+ )
2272
+ end
2273
+ attr_reader :proration_rounding
2274
+
2275
+ sig do
2276
+ params(
2277
+ proration_rounding:
2278
+ T.nilable(
2279
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::OrHash
2280
+ )
2281
+ ).void
2282
+ end
2283
+ attr_writer :proration_rounding
2284
+
1949
2285
  # The frequency at which the recurring commits will be created. If not provided: -
1950
2286
  # The commits will be created on the usage invoice frequency. If provided: - The
1951
2287
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2033,6 +2369,10 @@ module MetronomeSDK
2033
2369
  netsuite_sales_order_id: String,
2034
2370
  proration:
2035
2371
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Proration::OrSymbol,
2372
+ proration_rounding:
2373
+ T.nilable(
2374
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::OrHash
2375
+ ),
2036
2376
  recurrence_frequency:
2037
2377
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::RecurrenceFrequency::OrSymbol,
2038
2378
  rollover_fraction: Float,
@@ -2072,6 +2412,8 @@ module MetronomeSDK
2072
2412
  # Determines whether the first and last commit will be prorated. If not provided,
2073
2413
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2074
2414
  proration: nil,
2415
+ # Rounding configuration for prorated recurring credit amounts.
2416
+ proration_rounding: nil,
2075
2417
  # The frequency at which the recurring commits will be created. If not provided: -
2076
2418
  # The commits will be created on the usage invoice frequency. If provided: - The
2077
2419
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2117,6 +2459,10 @@ module MetronomeSDK
2117
2459
  netsuite_sales_order_id: String,
2118
2460
  proration:
2119
2461
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::Proration::TaggedSymbol,
2462
+ proration_rounding:
2463
+ T.nilable(
2464
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding
2465
+ ),
2120
2466
  recurrence_frequency:
2121
2467
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::RecurrenceFrequency::TaggedSymbol,
2122
2468
  rollover_fraction: Float,
@@ -2384,6 +2730,146 @@ module MetronomeSDK
2384
2730
  end
2385
2731
  end
2386
2732
 
2733
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
2734
+ OrHash =
2735
+ T.type_alias do
2736
+ T.any(
2737
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding,
2738
+ MetronomeSDK::Internal::AnyHash
2739
+ )
2740
+ end
2741
+
2742
+ sig do
2743
+ returns(
2744
+ T.nilable(
2745
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access
2746
+ )
2747
+ )
2748
+ end
2749
+ attr_reader :access
2750
+
2751
+ sig do
2752
+ params(
2753
+ access:
2754
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::OrHash
2755
+ ).void
2756
+ end
2757
+ attr_writer :access
2758
+
2759
+ # Rounding configuration for prorated recurring credit amounts.
2760
+ sig do
2761
+ params(
2762
+ access:
2763
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::OrHash
2764
+ ).returns(T.attached_class)
2765
+ end
2766
+ def self.new(access: nil)
2767
+ end
2768
+
2769
+ sig do
2770
+ override.returns(
2771
+ {
2772
+ access:
2773
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access
2774
+ }
2775
+ )
2776
+ end
2777
+ def to_hash
2778
+ end
2779
+
2780
+ class Access < MetronomeSDK::Internal::Type::BaseModel
2781
+ OrHash =
2782
+ T.type_alias do
2783
+ T.any(
2784
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access,
2785
+ MetronomeSDK::Internal::AnyHash
2786
+ )
2787
+ end
2788
+
2789
+ # Number of decimal places to round to. Applied directly to the stored monetary
2790
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2791
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2792
+ # dollar).
2793
+ sig { returns(Float) }
2794
+ attr_accessor :decimal_places
2795
+
2796
+ sig do
2797
+ returns(
2798
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2799
+ )
2800
+ end
2801
+ attr_accessor :rounding_method
2802
+
2803
+ sig do
2804
+ params(
2805
+ decimal_places: Float,
2806
+ rounding_method:
2807
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
2808
+ ).returns(T.attached_class)
2809
+ end
2810
+ def self.new(
2811
+ # Number of decimal places to round to. Applied directly to the stored monetary
2812
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2813
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2814
+ # dollar).
2815
+ decimal_places:,
2816
+ rounding_method:
2817
+ )
2818
+ end
2819
+
2820
+ sig do
2821
+ override.returns(
2822
+ {
2823
+ decimal_places: Float,
2824
+ rounding_method:
2825
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2826
+ }
2827
+ )
2828
+ end
2829
+ def to_hash
2830
+ end
2831
+
2832
+ module RoundingMethod
2833
+ extend MetronomeSDK::Internal::Type::Enum
2834
+
2835
+ TaggedSymbol =
2836
+ T.type_alias do
2837
+ T.all(
2838
+ Symbol,
2839
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod
2840
+ )
2841
+ end
2842
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2843
+
2844
+ HALF_UP =
2845
+ T.let(
2846
+ :HALF_UP,
2847
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2848
+ )
2849
+ FLOOR =
2850
+ T.let(
2851
+ :FLOOR,
2852
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2853
+ )
2854
+ CEILING =
2855
+ T.let(
2856
+ :CEILING,
2857
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2858
+ )
2859
+
2860
+ sig do
2861
+ override.returns(
2862
+ T::Array[
2863
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
2864
+ ]
2865
+ )
2866
+ end
2867
+ def self.values
2868
+ end
2869
+ end
2870
+ end
2871
+ end
2872
+
2387
2873
  # The frequency at which the recurring commits will be created. If not provided: -
2388
2874
  # The commits will be created on the usage invoice frequency. If provided: - The
2389
2875
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2421,6 +2907,11 @@ module MetronomeSDK
2421
2907
  :WEEKLY,
2422
2908
  MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::RecurrenceFrequency::TaggedSymbol
2423
2909
  )
2910
+ DAILY =
2911
+ T.let(
2912
+ :DAILY,
2913
+ MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::RecurringCredit::RecurrenceFrequency::TaggedSymbol
2914
+ )
2424
2915
 
2425
2916
  sig do
2426
2917
  override.returns(