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
@@ -286,6 +286,20 @@ module MetronomeSDK
286
286
  end
287
287
  attr_writer :spend_threshold_configuration
288
288
 
289
+ # Spend trackers attached to this contract.
290
+ sig do
291
+ returns(T.nilable(T::Array[MetronomeSDK::ContractV2::SpendTracker]))
292
+ end
293
+ attr_reader :spend_trackers
294
+
295
+ sig do
296
+ params(
297
+ spend_trackers:
298
+ T::Array[MetronomeSDK::ContractV2::SpendTracker::OrHash]
299
+ ).void
300
+ end
301
+ attr_writer :spend_trackers
302
+
289
303
  # List of subscriptions on the contract.
290
304
  sig do
291
305
  returns(T.nilable(T::Array[MetronomeSDK::ContractV2::Subscription]))
@@ -361,6 +375,8 @@ module MetronomeSDK
361
375
  MetronomeSDK::ContractV2::ScheduledChargesOnUsageInvoices::OrSymbol,
362
376
  spend_threshold_configuration:
363
377
  MetronomeSDK::SpendThresholdConfigurationV2::OrHash,
378
+ spend_trackers:
379
+ T::Array[MetronomeSDK::ContractV2::SpendTracker::OrHash],
364
380
  subscriptions:
365
381
  T::Array[MetronomeSDK::ContractV2::Subscription::OrHash],
366
382
  total_contract_value: Float,
@@ -422,6 +438,8 @@ module MetronomeSDK
422
438
  # on a separate invoice from usage charges.
423
439
  scheduled_charges_on_usage_invoices: nil,
424
440
  spend_threshold_configuration: nil,
441
+ # Spend trackers attached to this contract.
442
+ spend_trackers: nil,
425
443
  # List of subscriptions on the contract.
426
444
  subscriptions: nil,
427
445
  total_contract_value: nil,
@@ -476,6 +494,7 @@ module MetronomeSDK
476
494
  MetronomeSDK::ContractV2::ScheduledChargesOnUsageInvoices::TaggedSymbol,
477
495
  spend_threshold_configuration:
478
496
  MetronomeSDK::SpendThresholdConfigurationV2,
497
+ spend_trackers: T::Array[MetronomeSDK::ContractV2::SpendTracker],
479
498
  subscriptions: T::Array[MetronomeSDK::ContractV2::Subscription],
480
499
  total_contract_value: Float,
481
500
  uniqueness_key: String
@@ -743,6 +762,22 @@ module MetronomeSDK
743
762
  end
744
763
  attr_writer :specifiers
745
764
 
765
+ # Optional attributes controlling how this commit interacts with spend trackers.
766
+ sig do
767
+ returns(
768
+ T.nilable(MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes)
769
+ )
770
+ end
771
+ attr_reader :spend_tracker_attributes
772
+
773
+ sig do
774
+ params(
775
+ spend_tracker_attributes:
776
+ MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes::OrHash
777
+ ).void
778
+ end
779
+ attr_writer :spend_tracker_attributes
780
+
746
781
  # Attach a subscription to the recurring commit/credit.
747
782
  sig do
748
783
  returns(T.nilable(MetronomeSDK::RecurringCommitSubscriptionConfig))
@@ -806,6 +841,8 @@ module MetronomeSDK
806
841
  rollover_fraction: Float,
807
842
  salesforce_opportunity_id: String,
808
843
  specifiers: T::Array[MetronomeSDK::CommitSpecifier::OrHash],
844
+ spend_tracker_attributes:
845
+ MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes::OrHash,
809
846
  subscription_config:
810
847
  MetronomeSDK::RecurringCommitSubscriptionConfig::OrHash
811
848
  ).returns(T.attached_class)
@@ -866,6 +903,8 @@ module MetronomeSDK
866
903
  # or credit. A customer's usage needs to meet the condition of at least one of the
867
904
  # specifiers to contribute to a commit's or credit's drawdown.
868
905
  specifiers: nil,
906
+ # Optional attributes controlling how this commit interacts with spend trackers.
907
+ spend_tracker_attributes: nil,
869
908
  # Attach a subscription to the recurring commit/credit.
870
909
  subscription_config: nil
871
910
  )
@@ -905,6 +944,8 @@ module MetronomeSDK
905
944
  rollover_fraction: Float,
906
945
  salesforce_opportunity_id: String,
907
946
  specifiers: T::Array[MetronomeSDK::CommitSpecifier],
947
+ spend_tracker_attributes:
948
+ MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes,
908
949
  subscription_config:
909
950
  MetronomeSDK::RecurringCommitSubscriptionConfig
910
951
  }
@@ -2337,6 +2378,36 @@ module MetronomeSDK
2337
2378
  def to_hash
2338
2379
  end
2339
2380
  end
2381
+
2382
+ class SpendTrackerAttributes < MetronomeSDK::Internal::Type::BaseModel
2383
+ OrHash =
2384
+ T.type_alias do
2385
+ T.any(
2386
+ MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes,
2387
+ MetronomeSDK::Internal::AnyHash
2388
+ )
2389
+ end
2390
+
2391
+ # If true, this commit is included in spend trackers with discounted set to
2392
+ # DISCOUNTED_ONLY
2393
+ sig { returns(T::Boolean) }
2394
+ attr_accessor :counts_as_discounted
2395
+
2396
+ # Optional attributes controlling how this commit interacts with spend trackers.
2397
+ sig do
2398
+ params(counts_as_discounted: T::Boolean).returns(T.attached_class)
2399
+ end
2400
+ def self.new(
2401
+ # If true, this commit is included in spend trackers with discounted set to
2402
+ # DISCOUNTED_ONLY
2403
+ counts_as_discounted:
2404
+ )
2405
+ end
2406
+
2407
+ sig { override.returns({ counts_as_discounted: T::Boolean }) }
2408
+ def to_hash
2409
+ end
2410
+ end
2340
2411
  end
2341
2412
 
2342
2413
  class Override < MetronomeSDK::Internal::Type::BaseModel
@@ -6680,6 +6751,344 @@ module MetronomeSDK
6680
6751
  end
6681
6752
  end
6682
6753
 
6754
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
6755
+ OrHash =
6756
+ T.type_alias do
6757
+ T.any(
6758
+ MetronomeSDK::ContractV2::SpendTracker,
6759
+ MetronomeSDK::Internal::AnyHash
6760
+ )
6761
+ end
6762
+
6763
+ # Human-readable identifier, unique per contract.
6764
+ sig { returns(String) }
6765
+ attr_accessor :alias_
6766
+
6767
+ sig do
6768
+ returns(
6769
+ T::Array[
6770
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier
6771
+ ]
6772
+ )
6773
+ end
6774
+ attr_accessor :applicable_spend_specifiers
6775
+
6776
+ sig { returns(String) }
6777
+ attr_accessor :credit_type_id
6778
+
6779
+ sig do
6780
+ returns(
6781
+ MetronomeSDK::ContractV2::SpendTracker::ResetFrequency::TaggedSymbol
6782
+ )
6783
+ end
6784
+ attr_accessor :reset_frequency
6785
+
6786
+ sig do
6787
+ returns(
6788
+ T.nilable(MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend)
6789
+ )
6790
+ end
6791
+ attr_reader :accumulated_spend
6792
+
6793
+ sig do
6794
+ params(
6795
+ accumulated_spend:
6796
+ MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend::OrHash
6797
+ ).void
6798
+ end
6799
+ attr_writer :accumulated_spend
6800
+
6801
+ sig do
6802
+ params(
6803
+ alias_: String,
6804
+ applicable_spend_specifiers:
6805
+ T::Array[
6806
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::OrHash
6807
+ ],
6808
+ credit_type_id: String,
6809
+ reset_frequency:
6810
+ MetronomeSDK::ContractV2::SpendTracker::ResetFrequency::OrSymbol,
6811
+ accumulated_spend:
6812
+ MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend::OrHash
6813
+ ).returns(T.attached_class)
6814
+ end
6815
+ def self.new(
6816
+ # Human-readable identifier, unique per contract.
6817
+ alias_:,
6818
+ applicable_spend_specifiers:,
6819
+ credit_type_id:,
6820
+ reset_frequency:,
6821
+ accumulated_spend: nil
6822
+ )
6823
+ end
6824
+
6825
+ sig do
6826
+ override.returns(
6827
+ {
6828
+ alias_: String,
6829
+ applicable_spend_specifiers:
6830
+ T::Array[
6831
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier
6832
+ ],
6833
+ credit_type_id: String,
6834
+ reset_frequency:
6835
+ MetronomeSDK::ContractV2::SpendTracker::ResetFrequency::TaggedSymbol,
6836
+ accumulated_spend:
6837
+ MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
6838
+ }
6839
+ )
6840
+ end
6841
+ def to_hash
6842
+ end
6843
+
6844
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
6845
+ OrHash =
6846
+ T.type_alias do
6847
+ T.any(
6848
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier,
6849
+ MetronomeSDK::Internal::AnyHash
6850
+ )
6851
+ end
6852
+
6853
+ sig do
6854
+ returns(
6855
+ T::Array[
6856
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
6857
+ ]
6858
+ )
6859
+ end
6860
+ attr_accessor :sources
6861
+
6862
+ sig do
6863
+ returns(
6864
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
6865
+ )
6866
+ end
6867
+ attr_accessor :spend_type
6868
+
6869
+ sig do
6870
+ returns(
6871
+ T.nilable(
6872
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
6873
+ )
6874
+ )
6875
+ end
6876
+ attr_reader :discounted
6877
+
6878
+ sig do
6879
+ params(
6880
+ discounted:
6881
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
6882
+ ).void
6883
+ end
6884
+ attr_writer :discounted
6885
+
6886
+ sig do
6887
+ params(
6888
+ sources:
6889
+ T::Array[
6890
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
6891
+ ],
6892
+ spend_type:
6893
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol,
6894
+ discounted:
6895
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
6896
+ ).returns(T.attached_class)
6897
+ end
6898
+ def self.new(sources:, spend_type:, discounted: nil)
6899
+ end
6900
+
6901
+ sig do
6902
+ override.returns(
6903
+ {
6904
+ sources:
6905
+ T::Array[
6906
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
6907
+ ],
6908
+ spend_type:
6909
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol,
6910
+ discounted:
6911
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
6912
+ }
6913
+ )
6914
+ end
6915
+ def to_hash
6916
+ end
6917
+
6918
+ module Source
6919
+ extend MetronomeSDK::Internal::Type::Enum
6920
+
6921
+ TaggedSymbol =
6922
+ T.type_alias do
6923
+ T.all(
6924
+ Symbol,
6925
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Source
6926
+ )
6927
+ end
6928
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6929
+
6930
+ THRESHOLD_RECHARGE =
6931
+ T.let(
6932
+ :THRESHOLD_RECHARGE,
6933
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
6934
+ )
6935
+ MANUAL =
6936
+ T.let(
6937
+ :MANUAL,
6938
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
6939
+ )
6940
+
6941
+ sig do
6942
+ override.returns(
6943
+ T::Array[
6944
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
6945
+ ]
6946
+ )
6947
+ end
6948
+ def self.values
6949
+ end
6950
+ end
6951
+
6952
+ module SpendType
6953
+ extend MetronomeSDK::Internal::Type::Enum
6954
+
6955
+ TaggedSymbol =
6956
+ T.type_alias do
6957
+ T.all(
6958
+ Symbol,
6959
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::SpendType
6960
+ )
6961
+ end
6962
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6963
+
6964
+ COMMIT_PURCHASE =
6965
+ T.let(
6966
+ :COMMIT_PURCHASE,
6967
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
6968
+ )
6969
+
6970
+ sig do
6971
+ override.returns(
6972
+ T::Array[
6973
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
6974
+ ]
6975
+ )
6976
+ end
6977
+ def self.values
6978
+ end
6979
+ end
6980
+
6981
+ module Discounted
6982
+ extend MetronomeSDK::Internal::Type::Enum
6983
+
6984
+ TaggedSymbol =
6985
+ T.type_alias do
6986
+ T.all(
6987
+ Symbol,
6988
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Discounted
6989
+ )
6990
+ end
6991
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6992
+
6993
+ ANY =
6994
+ T.let(
6995
+ :ANY,
6996
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
6997
+ )
6998
+ DISCOUNTED_ONLY =
6999
+ T.let(
7000
+ :DISCOUNTED_ONLY,
7001
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
7002
+ )
7003
+ UNDISCOUNTED_ONLY =
7004
+ T.let(
7005
+ :UNDISCOUNTED_ONLY,
7006
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
7007
+ )
7008
+
7009
+ sig do
7010
+ override.returns(
7011
+ T::Array[
7012
+ MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
7013
+ ]
7014
+ )
7015
+ end
7016
+ def self.values
7017
+ end
7018
+ end
7019
+ end
7020
+
7021
+ module ResetFrequency
7022
+ extend MetronomeSDK::Internal::Type::Enum
7023
+
7024
+ TaggedSymbol =
7025
+ T.type_alias do
7026
+ T.all(
7027
+ Symbol,
7028
+ MetronomeSDK::ContractV2::SpendTracker::ResetFrequency
7029
+ )
7030
+ end
7031
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7032
+
7033
+ BILLING_PERIOD =
7034
+ T.let(
7035
+ :BILLING_PERIOD,
7036
+ MetronomeSDK::ContractV2::SpendTracker::ResetFrequency::TaggedSymbol
7037
+ )
7038
+
7039
+ sig do
7040
+ override.returns(
7041
+ T::Array[
7042
+ MetronomeSDK::ContractV2::SpendTracker::ResetFrequency::TaggedSymbol
7043
+ ]
7044
+ )
7045
+ end
7046
+ def self.values
7047
+ end
7048
+ end
7049
+
7050
+ class AccumulatedSpend < MetronomeSDK::Internal::Type::BaseModel
7051
+ OrHash =
7052
+ T.type_alias do
7053
+ T.any(
7054
+ MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend,
7055
+ MetronomeSDK::Internal::AnyHash
7056
+ )
7057
+ end
7058
+
7059
+ sig { returns(Float) }
7060
+ attr_accessor :amount
7061
+
7062
+ sig { returns(Time) }
7063
+ attr_accessor :period_ending_before
7064
+
7065
+ sig { returns(Time) }
7066
+ attr_accessor :period_starting_at
7067
+
7068
+ sig do
7069
+ params(
7070
+ amount: Float,
7071
+ period_ending_before: Time,
7072
+ period_starting_at: Time
7073
+ ).returns(T.attached_class)
7074
+ end
7075
+ def self.new(amount:, period_ending_before:, period_starting_at:)
7076
+ end
7077
+
7078
+ sig do
7079
+ override.returns(
7080
+ {
7081
+ amount: Float,
7082
+ period_ending_before: Time,
7083
+ period_starting_at: Time
7084
+ }
7085
+ )
7086
+ end
7087
+ def to_hash
7088
+ end
7089
+ end
7090
+ end
7091
+
6683
7092
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
6684
7093
  OrHash =
6685
7094
  T.type_alias do