metronome-sdk 3.6.0 → 3.7.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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  5. data/lib/metronome_sdk/models/commit.rb +27 -1
  6. data/lib/metronome_sdk/models/contract.rb +140 -1
  7. data/lib/metronome_sdk/models/contract_v2.rb +168 -2
  8. data/lib/metronome_sdk/models/contract_without_amendments.rb +142 -1
  9. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +105 -2
  10. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +103 -2
  11. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  12. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  13. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +29 -1
  14. data/lib/metronome_sdk/models/v1/contract_create_params.rb +146 -2
  15. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1134 -3
  16. data/lib/metronome_sdk/models/v1/package_create_params.rb +115 -1
  17. data/lib/metronome_sdk/models/v1/package_list_response.rb +110 -1
  18. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +114 -1
  19. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +303 -5
  20. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3862 -3
  21. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +145 -3
  22. data/lib/metronome_sdk/resources/v1/contracts.rb +3 -1
  23. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  24. data/lib/metronome_sdk/resources/v1.rb +0 -4
  25. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  26. data/lib/metronome_sdk/version.rb +1 -1
  27. data/lib/metronome_sdk.rb +0 -8
  28. data/rbi/metronome_sdk/models/commit.rbi +48 -0
  29. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  30. data/rbi/metronome_sdk/models/contract_v2.rbi +409 -0
  31. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +368 -0
  32. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +289 -6
  33. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +283 -6
  34. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  35. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  36. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +54 -0
  37. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +368 -0
  38. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2448 -4
  39. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +310 -0
  40. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +307 -0
  41. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +307 -0
  42. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +734 -11
  43. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +8612 -4
  44. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +359 -11
  45. data/rbi/metronome_sdk/resources/v1/contracts.rbi +7 -0
  46. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  47. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  48. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  49. data/sig/metronome_sdk/models/commit.rbs +19 -0
  50. data/sig/metronome_sdk/models/contract.rbs +151 -0
  51. data/sig/metronome_sdk/models/contract_v2.rbs +170 -0
  52. data/sig/metronome_sdk/models/contract_without_amendments.rbs +151 -0
  53. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  54. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  55. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  56. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  57. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +19 -0
  58. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +134 -0
  59. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1045 -4
  60. data/sig/metronome_sdk/models/v1/package_create_params.rbs +115 -0
  61. data/sig/metronome_sdk/models/v1/package_list_response.rbs +115 -0
  62. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +115 -0
  63. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +283 -9
  64. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +3792 -4
  65. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +142 -9
  66. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  67. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  68. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  69. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  70. metadata +2 -26
  71. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  72. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  73. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  74. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  75. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  76. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  77. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  78. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  79. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  80. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  81. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  82. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  83. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  84. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  85. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  86. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  87. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  88. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  89. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  90. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  91. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  92. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  93. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  94. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -6700,6 +6700,17 @@ module MetronomeSDK
6700
6700
  sig { params(threshold_amount: Float).void }
6701
6701
  attr_writer :threshold_amount
6702
6702
 
6703
+ sig do
6704
+ returns(
6705
+ T.nilable(
6706
+ T::Array[
6707
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier
6708
+ ]
6709
+ )
6710
+ )
6711
+ end
6712
+ attr_accessor :threshold_balance_specifiers
6713
+
6703
6714
  sig do
6704
6715
  params(
6705
6716
  commit:
@@ -6712,7 +6723,13 @@ module MetronomeSDK
6712
6723
  is_enabled: T::Boolean,
6713
6724
  payment_gate_config: MetronomeSDK::PaymentGateConfigV2::OrHash,
6714
6725
  recharge_to_amount: Float,
6715
- threshold_amount: Float
6726
+ threshold_amount: Float,
6727
+ threshold_balance_specifiers:
6728
+ T.nilable(
6729
+ T::Array[
6730
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::OrHash
6731
+ ]
6732
+ )
6716
6733
  ).returns(T.attached_class)
6717
6734
  end
6718
6735
  def self.new(
@@ -6730,7 +6747,8 @@ module MetronomeSDK
6730
6747
  recharge_to_amount: nil,
6731
6748
  # Specify the threshold amount for the contract. Each time the contract's balance
6732
6749
  # lowers to this amount, a threshold charge will be initiated.
6733
- threshold_amount: nil
6750
+ threshold_amount: nil,
6751
+ threshold_balance_specifiers: nil
6734
6752
  )
6735
6753
  end
6736
6754
 
@@ -6747,7 +6765,13 @@ module MetronomeSDK
6747
6765
  is_enabled: T::Boolean,
6748
6766
  payment_gate_config: MetronomeSDK::PaymentGateConfigV2,
6749
6767
  recharge_to_amount: Float,
6750
- threshold_amount: Float
6768
+ threshold_amount: Float,
6769
+ threshold_balance_specifiers:
6770
+ T.nilable(
6771
+ T::Array[
6772
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier
6773
+ ]
6774
+ )
6751
6775
  }
6752
6776
  )
6753
6777
  end
@@ -6836,6 +6860,26 @@ module MetronomeSDK
6836
6860
  )
6837
6861
  end
6838
6862
 
6863
+ # Update the discount cap. Set to null to remove an existing cap.
6864
+ sig do
6865
+ returns(
6866
+ T.nilable(
6867
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap
6868
+ )
6869
+ )
6870
+ end
6871
+ attr_reader :cap
6872
+
6873
+ sig do
6874
+ params(
6875
+ cap:
6876
+ T.nilable(
6877
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap::OrHash
6878
+ )
6879
+ ).void
6880
+ end
6881
+ attr_writer :cap
6882
+
6839
6883
  # The fraction of the original amount that the customer pays after applying the
6840
6884
  # discount. Set to null to remove the discount fraction. For example, 0.85 means
6841
6885
  # the customer pays 85% of the original amount (a 15% discount).
@@ -6843,11 +6887,17 @@ module MetronomeSDK
6843
6887
  attr_accessor :payment_fraction
6844
6888
 
6845
6889
  sig do
6846
- params(payment_fraction: T.nilable(Float)).returns(
6847
- T.attached_class
6848
- )
6890
+ params(
6891
+ cap:
6892
+ T.nilable(
6893
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap::OrHash
6894
+ ),
6895
+ payment_fraction: T.nilable(Float)
6896
+ ).returns(T.attached_class)
6849
6897
  end
6850
6898
  def self.new(
6899
+ # Update the discount cap. Set to null to remove an existing cap.
6900
+ cap: nil,
6851
6901
  # The fraction of the original amount that the customer pays after applying the
6852
6902
  # discount. Set to null to remove the discount fraction. For example, 0.85 means
6853
6903
  # the customer pays 85% of the original amount (a 15% discount).
@@ -6855,9 +6905,231 @@ module MetronomeSDK
6855
6905
  )
6856
6906
  end
6857
6907
 
6858
- sig { override.returns({ payment_fraction: T.nilable(Float) }) }
6908
+ sig do
6909
+ override.returns(
6910
+ {
6911
+ cap:
6912
+ T.nilable(
6913
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap
6914
+ ),
6915
+ payment_fraction: T.nilable(Float)
6916
+ }
6917
+ )
6918
+ end
6859
6919
  def to_hash
6860
6920
  end
6921
+
6922
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
6923
+ OrHash =
6924
+ T.type_alias do
6925
+ T.any(
6926
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap,
6927
+ MetronomeSDK::Internal::AnyHash
6928
+ )
6929
+ end
6930
+
6931
+ # Accumulated spend ceiling above which the discount stops applying.
6932
+ sig { returns(Float) }
6933
+ attr_accessor :amount
6934
+
6935
+ # Alias of the spend tracker this cap is measured against.
6936
+ sig { returns(String) }
6937
+ attr_accessor :spend_tracker_alias
6938
+
6939
+ # Update the discount cap. Set to null to remove an existing cap.
6940
+ sig do
6941
+ params(amount: Float, spend_tracker_alias: String).returns(
6942
+ T.attached_class
6943
+ )
6944
+ end
6945
+ def self.new(
6946
+ # Accumulated spend ceiling above which the discount stops applying.
6947
+ amount:,
6948
+ # Alias of the spend tracker this cap is measured against.
6949
+ spend_tracker_alias:
6950
+ )
6951
+ end
6952
+
6953
+ sig do
6954
+ override.returns(
6955
+ { amount: Float, spend_tracker_alias: String }
6956
+ )
6957
+ end
6958
+ def to_hash
6959
+ end
6960
+ end
6961
+ end
6962
+
6963
+ class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
6964
+ OrHash =
6965
+ T.type_alias do
6966
+ T.any(
6967
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier,
6968
+ MetronomeSDK::Internal::AnyHash
6969
+ )
6970
+ end
6971
+
6972
+ sig do
6973
+ returns(
6974
+ T::Array[
6975
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude
6976
+ ]
6977
+ )
6978
+ end
6979
+ attr_accessor :exclude
6980
+
6981
+ sig do
6982
+ params(
6983
+ exclude:
6984
+ T::Array[
6985
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::OrHash
6986
+ ]
6987
+ ).returns(T.attached_class)
6988
+ end
6989
+ def self.new(exclude:)
6990
+ end
6991
+
6992
+ sig do
6993
+ override.returns(
6994
+ {
6995
+ exclude:
6996
+ T::Array[
6997
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude
6998
+ ]
6999
+ }
7000
+ )
7001
+ end
7002
+ def to_hash
7003
+ end
7004
+
7005
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
7006
+ OrHash =
7007
+ T.type_alias do
7008
+ T.any(
7009
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude,
7010
+ MetronomeSDK::Internal::AnyHash
7011
+ )
7012
+ end
7013
+
7014
+ sig do
7015
+ returns(
7016
+ T::Array[
7017
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
7018
+ ]
7019
+ )
7020
+ end
7021
+ attr_accessor :custom_field_filters
7022
+
7023
+ sig do
7024
+ params(
7025
+ custom_field_filters:
7026
+ T::Array[
7027
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::OrHash
7028
+ ]
7029
+ ).returns(T.attached_class)
7030
+ end
7031
+ def self.new(custom_field_filters:)
7032
+ end
7033
+
7034
+ sig do
7035
+ override.returns(
7036
+ {
7037
+ custom_field_filters:
7038
+ T::Array[
7039
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
7040
+ ]
7041
+ }
7042
+ )
7043
+ end
7044
+ def to_hash
7045
+ end
7046
+
7047
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
7048
+ OrHash =
7049
+ T.type_alias do
7050
+ T.any(
7051
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter,
7052
+ MetronomeSDK::Internal::AnyHash
7053
+ )
7054
+ end
7055
+
7056
+ sig do
7057
+ returns(
7058
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
7059
+ )
7060
+ end
7061
+ attr_accessor :entity
7062
+
7063
+ sig { returns(String) }
7064
+ attr_accessor :key
7065
+
7066
+ sig { returns(String) }
7067
+ attr_accessor :value
7068
+
7069
+ sig do
7070
+ params(
7071
+ entity:
7072
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
7073
+ key: String,
7074
+ value: String
7075
+ ).returns(T.attached_class)
7076
+ end
7077
+ def self.new(entity:, key:, value:)
7078
+ end
7079
+
7080
+ sig do
7081
+ override.returns(
7082
+ {
7083
+ entity:
7084
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol,
7085
+ key: String,
7086
+ value: String
7087
+ }
7088
+ )
7089
+ end
7090
+ def to_hash
7091
+ end
7092
+
7093
+ module Entity
7094
+ extend MetronomeSDK::Internal::Type::Enum
7095
+
7096
+ TaggedSymbol =
7097
+ T.type_alias do
7098
+ T.all(
7099
+ Symbol,
7100
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity
7101
+ )
7102
+ end
7103
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7104
+
7105
+ COMMIT =
7106
+ T.let(
7107
+ :Commit,
7108
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
7109
+ )
7110
+ CONTRACT_CREDIT =
7111
+ T.let(
7112
+ :ContractCredit,
7113
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
7114
+ )
7115
+ CONTRACT_CREDIT_OR_COMMIT =
7116
+ T.let(
7117
+ :ContractCreditOrCommit,
7118
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
7119
+ )
7120
+
7121
+ sig do
7122
+ override.returns(
7123
+ T::Array[
7124
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
7125
+ ]
7126
+ )
7127
+ end
7128
+ def self.values
7129
+ end
7130
+ end
7131
+ end
7132
+ end
6861
7133
  end
6862
7134
  end
6863
7135
 
@@ -7705,6 +7977,26 @@ module MetronomeSDK
7705
7977
  )
7706
7978
  end
7707
7979
 
7980
+ # Update the discount cap. Set to null to remove an existing cap.
7981
+ sig do
7982
+ returns(
7983
+ T.nilable(
7984
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::DiscountConfiguration::Cap
7985
+ )
7986
+ )
7987
+ end
7988
+ attr_reader :cap
7989
+
7990
+ sig do
7991
+ params(
7992
+ cap:
7993
+ T.nilable(
7994
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::DiscountConfiguration::Cap::OrHash
7995
+ )
7996
+ ).void
7997
+ end
7998
+ attr_writer :cap
7999
+
7708
8000
  # The fraction of the original amount that the customer pays after applying the
7709
8001
  # discount. Set to null to remove the discount fraction. For example, 0.85 means
7710
8002
  # the customer pays 85% of the original amount (a 15% discount).
@@ -7712,11 +8004,17 @@ module MetronomeSDK
7712
8004
  attr_accessor :payment_fraction
7713
8005
 
7714
8006
  sig do
7715
- params(payment_fraction: T.nilable(Float)).returns(
7716
- T.attached_class
7717
- )
8007
+ params(
8008
+ cap:
8009
+ T.nilable(
8010
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::DiscountConfiguration::Cap::OrHash
8011
+ ),
8012
+ payment_fraction: T.nilable(Float)
8013
+ ).returns(T.attached_class)
7718
8014
  end
7719
8015
  def self.new(
8016
+ # Update the discount cap. Set to null to remove an existing cap.
8017
+ cap: nil,
7720
8018
  # The fraction of the original amount that the customer pays after applying the
7721
8019
  # discount. Set to null to remove the discount fraction. For example, 0.85 means
7722
8020
  # the customer pays 85% of the original amount (a 15% discount).
@@ -7724,9 +8022,59 @@ module MetronomeSDK
7724
8022
  )
7725
8023
  end
7726
8024
 
7727
- sig { override.returns({ payment_fraction: T.nilable(Float) }) }
8025
+ sig do
8026
+ override.returns(
8027
+ {
8028
+ cap:
8029
+ T.nilable(
8030
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::DiscountConfiguration::Cap
8031
+ ),
8032
+ payment_fraction: T.nilable(Float)
8033
+ }
8034
+ )
8035
+ end
7728
8036
  def to_hash
7729
8037
  end
8038
+
8039
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
8040
+ OrHash =
8041
+ T.type_alias do
8042
+ T.any(
8043
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::DiscountConfiguration::Cap,
8044
+ MetronomeSDK::Internal::AnyHash
8045
+ )
8046
+ end
8047
+
8048
+ # Accumulated spend ceiling above which the discount stops applying.
8049
+ sig { returns(Float) }
8050
+ attr_accessor :amount
8051
+
8052
+ # Alias of the spend tracker this cap is measured against.
8053
+ sig { returns(String) }
8054
+ attr_accessor :spend_tracker_alias
8055
+
8056
+ # Update the discount cap. Set to null to remove an existing cap.
8057
+ sig do
8058
+ params(amount: Float, spend_tracker_alias: String).returns(
8059
+ T.attached_class
8060
+ )
8061
+ end
8062
+ def self.new(
8063
+ # Accumulated spend ceiling above which the discount stops applying.
8064
+ amount:,
8065
+ # Alias of the spend tracker this cap is measured against.
8066
+ spend_tracker_alias:
8067
+ )
8068
+ end
8069
+
8070
+ sig do
8071
+ override.returns(
8072
+ { amount: Float, spend_tracker_alias: String }
8073
+ )
8074
+ end
8075
+ def to_hash
8076
+ end
8077
+ end
7730
8078
  end
7731
8079
  end
7732
8080
 
@@ -200,6 +200,10 @@ module MetronomeSDK
200
200
  MetronomeSDK::V1::ContractCreateParams::ScheduledChargesOnUsageInvoices::OrSymbol,
201
201
  spend_threshold_configuration:
202
202
  MetronomeSDK::SpendThresholdConfiguration::OrHash,
203
+ spend_trackers:
204
+ T::Array[
205
+ MetronomeSDK::V1::ContractCreateParams::SpendTracker::OrHash
206
+ ],
203
207
  subscriptions:
204
208
  T::Array[
205
209
  MetronomeSDK::V1::ContractCreateParams::Subscription::OrHash
@@ -271,6 +275,9 @@ module MetronomeSDK
271
275
  # on a separate invoice from usage charges.
272
276
  scheduled_charges_on_usage_invoices: nil,
273
277
  spend_threshold_configuration: nil,
278
+ # Spend trackers to attach to this contract. Aliases must be unique within a
279
+ # contract.
280
+ spend_trackers: nil,
274
281
  # Optional list of
275
282
  # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
276
283
  # to add to the contract.
@@ -94,6 +94,10 @@ module MetronomeSDK
94
94
  MetronomeSDK::V1::PackageCreateParams::ScheduledChargesOnUsageInvoices::OrSymbol,
95
95
  spend_threshold_configuration:
96
96
  MetronomeSDK::SpendThresholdConfiguration::OrHash,
97
+ spend_trackers:
98
+ T::Array[
99
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::OrHash
100
+ ],
97
101
  subscriptions:
98
102
  T::Array[
99
103
  MetronomeSDK::V1::PackageCreateParams::Subscription::OrHash
@@ -138,6 +142,7 @@ module MetronomeSDK
138
142
  # on a separate invoice from usage charges.
139
143
  scheduled_charges_on_usage_invoices: nil,
140
144
  spend_threshold_configuration: nil,
145
+ spend_trackers: nil,
141
146
  subscriptions: nil,
142
147
  # Prevents the creation of duplicates. If a request to create a record is made
143
148
  # with a previously used uniqueness key, a new record will not be created and the
@@ -216,10 +221,9 @@ module MetronomeSDK
216
221
  #
217
222
  # ### **Usage guidelines:**
218
223
  #
219
- # Use the **`starting_at`**, **`covering_date`**,
220
- # and **`include_archived`** parameters to filter the list of returned contracts.
221
- # For example, to list only currently active contracts,
222
- # pass **`covering_date`** equal to the current time.
224
+ # Use the **`starting_at`**, **`covering_date`**, and **`include_archived`**
225
+ # parameters to filter the list of returned contracts. For example, to list only
226
+ # currently active contracts, pass **`covering_date`** equal to the current time.
223
227
  sig do
224
228
  params(
225
229
  package_id: String,
@@ -80,9 +80,6 @@ module MetronomeSDK
80
80
  sig { returns(MetronomeSDK::Resources::V1::Packages) }
81
81
  attr_reader :packages
82
82
 
83
- sig { returns(MetronomeSDK::Resources::V1::Payments) }
84
- attr_reader :payments
85
-
86
83
  # Use these endpoints to configure a billing API key, a webhook secret, or invoice
87
84
  # finalization behavior.
88
85
  sig { returns(MetronomeSDK::Resources::V1::Settings) }
@@ -159,6 +159,10 @@ module MetronomeSDK
159
159
  ],
160
160
  add_spend_threshold_configuration:
161
161
  MetronomeSDK::SpendThresholdConfigurationV2::OrHash,
162
+ add_spend_trackers:
163
+ T::Array[
164
+ MetronomeSDK::V2::ContractEditParams::AddSpendTracker::OrHash
165
+ ],
162
166
  add_subscriptions:
163
167
  T::Array[
164
168
  MetronomeSDK::V2::ContractEditParams::AddSubscription::OrHash
@@ -176,6 +180,7 @@ module MetronomeSDK
176
180
  T::Array[
177
181
  MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge::OrHash
178
182
  ],
183
+ archive_spend_trackers: T::Array[String],
179
184
  remove_overrides:
180
185
  T::Array[
181
186
  MetronomeSDK::V2::ContractEditParams::RemoveOverride::OrHash
@@ -240,6 +245,9 @@ module MetronomeSDK
240
245
  add_revenue_system_configuration_update: nil,
241
246
  add_scheduled_charges: nil,
242
247
  add_spend_threshold_configuration: nil,
248
+ # Spend trackers to add to this contract. Aliases must be unique within a
249
+ # contract.
250
+ add_spend_trackers: nil,
243
251
  # Optional list of
244
252
  # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
245
253
  # to add to the contract.
@@ -255,6 +263,8 @@ module MetronomeSDK
255
263
  archive_credits: nil,
256
264
  # IDs of scheduled charges to archive
257
265
  archive_scheduled_charges: nil,
266
+ # Aliases of spend trackers to archive.
267
+ archive_spend_trackers: nil,
258
268
  # IDs of overrides to remove
259
269
  remove_overrides: nil,
260
270
  # Optional uniqueness key to prevent duplicate contract edits.
@@ -29,6 +29,7 @@ module MetronomeSDK
29
29
  rollover_fraction: Float,
30
30
  salesforce_opportunity_id: String,
31
31
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
32
+ spend_tracker_attributes: MetronomeSDK::Commit::SpendTrackerAttributes,
32
33
  subscription_config: MetronomeSDK::Commit::SubscriptionConfig,
33
34
  uniqueness_key: String
34
35
  }
@@ -152,6 +153,12 @@ module MetronomeSDK
152
153
  ::Array[MetronomeSDK::CommitSpecifier]
153
154
  ) -> ::Array[MetronomeSDK::CommitSpecifier]
154
155
 
156
+ attr_reader spend_tracker_attributes: MetronomeSDK::Commit::SpendTrackerAttributes?
157
+
158
+ def spend_tracker_attributes=: (
159
+ MetronomeSDK::Commit::SpendTrackerAttributes
160
+ ) -> MetronomeSDK::Commit::SpendTrackerAttributes
161
+
155
162
  attr_reader subscription_config: MetronomeSDK::Commit::SubscriptionConfig?
156
163
 
157
164
  def subscription_config=: (
@@ -190,6 +197,7 @@ module MetronomeSDK
190
197
  ?rollover_fraction: Float,
191
198
  ?salesforce_opportunity_id: String,
192
199
  ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
200
+ ?spend_tracker_attributes: MetronomeSDK::Commit::SpendTrackerAttributes,
193
201
  ?subscription_config: MetronomeSDK::Commit::SubscriptionConfig,
194
202
  ?uniqueness_key: String
195
203
  ) -> void
@@ -222,6 +230,7 @@ module MetronomeSDK
222
230
  rollover_fraction: Float,
223
231
  salesforce_opportunity_id: String,
224
232
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
233
+ spend_tracker_attributes: MetronomeSDK::Commit::SpendTrackerAttributes,
225
234
  subscription_config: MetronomeSDK::Commit::SubscriptionConfig,
226
235
  uniqueness_key: String
227
236
  }
@@ -957,6 +966,16 @@ module MetronomeSDK
957
966
  def to_hash: -> { commit_id: String, contract_id: String }
958
967
  end
959
968
 
969
+ type spend_tracker_attributes = { counts_as_discounted: bool }
970
+
971
+ class SpendTrackerAttributes < MetronomeSDK::Internal::Type::BaseModel
972
+ attr_accessor counts_as_discounted: bool
973
+
974
+ def initialize: (counts_as_discounted: bool) -> void
975
+
976
+ def to_hash: -> { counts_as_discounted: bool }
977
+ end
978
+
960
979
  type subscription_config =
961
980
  {
962
981
  allocation: MetronomeSDK::Models::Commit::SubscriptionConfig::allocation,