metronome-sdk 3.1.0 → 3.2.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 (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/util.rb +32 -1
  5. data/lib/metronome_sdk/models/commit_rate.rb +29 -3
  6. data/lib/metronome_sdk/models/contract.rb +1 -9
  7. data/lib/metronome_sdk/models/contract_v2.rb +22 -1
  8. data/lib/metronome_sdk/models/overwrite_rate.rb +22 -1
  9. data/lib/metronome_sdk/models/payment_gate_config.rb +0 -1
  10. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +0 -1
  11. data/lib/metronome_sdk/models/rate.rb +22 -1
  12. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +23 -2
  13. data/lib/metronome_sdk/models/v1/contract_create_params.rb +24 -11
  14. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +23 -1
  15. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +21 -1
  16. data/lib/metronome_sdk/models/v1/customers/invoice.rb +10 -1
  17. data/lib/metronome_sdk/models/v1/package_archive_params.rb +24 -0
  18. data/lib/metronome_sdk/models/v1/package_archive_response.rb +18 -0
  19. data/lib/metronome_sdk/models/v1/package_create_params.rb +2719 -0
  20. data/lib/metronome_sdk/models/v1/package_create_response.rb +18 -0
  21. data/lib/metronome_sdk/models/v1/package_list_contracts_on_package_params.rb +69 -0
  22. data/lib/metronome_sdk/models/v1/package_list_contracts_on_package_response.rb +42 -0
  23. data/lib/metronome_sdk/models/v1/package_list_params.rb +52 -0
  24. data/lib/metronome_sdk/models/v1/package_list_response.rb +2446 -0
  25. data/lib/metronome_sdk/models/v1/package_retrieve_params.rb +22 -0
  26. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +2479 -0
  27. data/lib/metronome_sdk/models/v1/usage_list_with_groups_params.rb +39 -2
  28. data/lib/metronome_sdk/models/v1/usage_list_with_groups_response.rb +27 -3
  29. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +23 -2
  30. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +23 -1
  31. data/lib/metronome_sdk/resources/v1/alerts.rb +5 -0
  32. data/lib/metronome_sdk/resources/v1/audit_logs.rb +4 -1
  33. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +5 -1
  34. data/lib/metronome_sdk/resources/v1/contracts/named_schedules.rb +2 -0
  35. data/lib/metronome_sdk/resources/v1/contracts/products.rb +4 -2
  36. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/named_schedules.rb +2 -0
  37. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +1 -0
  38. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +7 -3
  39. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +10 -3
  40. data/lib/metronome_sdk/resources/v1/contracts.rb +8 -5
  41. data/lib/metronome_sdk/resources/v1/credit_grants.rb +9 -4
  42. data/lib/metronome_sdk/resources/v1/custom_fields.rb +6 -2
  43. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +8 -2
  44. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +4 -0
  45. data/lib/metronome_sdk/resources/v1/customers/commits.rb +1 -0
  46. data/lib/metronome_sdk/resources/v1/customers/credits.rb +1 -0
  47. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +10 -3
  48. data/lib/metronome_sdk/resources/v1/customers/named_schedules.rb +2 -0
  49. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -2
  50. data/lib/metronome_sdk/resources/v1/customers.rb +27 -3
  51. data/lib/metronome_sdk/resources/v1/dashboards.rb +4 -0
  52. data/lib/metronome_sdk/resources/v1/invoices.rb +4 -0
  53. data/lib/metronome_sdk/resources/v1/packages.rb +269 -0
  54. data/lib/metronome_sdk/resources/v1/plans.rb +10 -3
  55. data/lib/metronome_sdk/resources/v1/pricing_units.rb +4 -1
  56. data/lib/metronome_sdk/resources/v1/services.rb +2 -0
  57. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +2 -0
  58. data/lib/metronome_sdk/resources/v1/settings.rb +4 -0
  59. data/lib/metronome_sdk/resources/v1/usage.rb +26 -13
  60. data/lib/metronome_sdk/resources/v1.rb +41 -0
  61. data/lib/metronome_sdk/version.rb +1 -1
  62. data/lib/metronome_sdk.rb +11 -0
  63. data/rbi/metronome_sdk/internal/util.rbi +21 -1
  64. data/rbi/metronome_sdk/models/commit_rate.rbi +43 -2
  65. data/rbi/metronome_sdk/models/contract.rbi +0 -11
  66. data/rbi/metronome_sdk/models/contract_v2.rbi +46 -0
  67. data/rbi/metronome_sdk/models/overwrite_rate.rbi +37 -0
  68. data/rbi/metronome_sdk/models/payment_gate_config.rbi +0 -5
  69. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +0 -5
  70. data/rbi/metronome_sdk/models/rate.rbi +35 -0
  71. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +46 -5
  72. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +46 -16
  73. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +46 -0
  74. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +46 -0
  75. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +13 -0
  76. data/rbi/metronome_sdk/models/v1/package_archive_params.rbi +48 -0
  77. data/rbi/metronome_sdk/models/v1/package_archive_response.rbi +31 -0
  78. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +6362 -0
  79. data/rbi/metronome_sdk/models/v1/package_create_response.rbi +31 -0
  80. data/rbi/metronome_sdk/models/v1/package_list_contracts_on_package_params.rbi +105 -0
  81. data/rbi/metronome_sdk/models/v1/package_list_contracts_on_package_response.rbi +70 -0
  82. data/rbi/metronome_sdk/models/v1/package_list_params.rbi +123 -0
  83. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +5796 -0
  84. data/rbi/metronome_sdk/models/v1/package_retrieve_params.rbi +43 -0
  85. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +5864 -0
  86. data/rbi/metronome_sdk/models/v1/usage_list_with_groups_params.rbi +52 -0
  87. data/rbi/metronome_sdk/models/v1/usage_list_with_groups_response.rbi +24 -3
  88. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +46 -5
  89. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +46 -0
  90. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  91. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +2 -0
  92. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +3 -0
  93. data/rbi/metronome_sdk/resources/v1/contracts/named_schedules.rbi +2 -0
  94. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +1 -0
  95. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/named_schedules.rbi +2 -0
  96. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +1 -0
  97. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +5 -0
  98. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +5 -0
  99. data/rbi/metronome_sdk/resources/v1/contracts.rbi +4 -3
  100. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +3 -0
  101. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +3 -0
  102. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  103. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +4 -0
  104. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +1 -0
  105. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +1 -0
  106. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  107. data/rbi/metronome_sdk/resources/v1/customers/named_schedules.rbi +2 -0
  108. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +4 -0
  109. data/rbi/metronome_sdk/resources/v1/customers.rbi +21 -0
  110. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +4 -0
  111. data/rbi/metronome_sdk/resources/v1/invoices.rbi +4 -0
  112. data/rbi/metronome_sdk/resources/v1/packages.rbi +268 -0
  113. data/rbi/metronome_sdk/resources/v1/plans.rbi +4 -0
  114. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +2 -0
  115. data/rbi/metronome_sdk/resources/v1/services.rbi +2 -0
  116. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +2 -0
  117. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  118. data/rbi/metronome_sdk/resources/v1/usage.rbi +35 -8
  119. data/rbi/metronome_sdk/resources/v1.rbi +40 -0
  120. data/sig/metronome_sdk/internal/util.rbs +10 -0
  121. data/sig/metronome_sdk/models/commit_rate.rbs +19 -0
  122. data/sig/metronome_sdk/models/contract.rbs +0 -7
  123. data/sig/metronome_sdk/models/contract_v2.rbs +19 -0
  124. data/sig/metronome_sdk/models/overwrite_rate.rbs +19 -0
  125. data/sig/metronome_sdk/models/payment_gate_config.rbs +1 -2
  126. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +1 -2
  127. data/sig/metronome_sdk/models/rate.rbs +19 -0
  128. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +20 -2
  129. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +20 -9
  130. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +19 -0
  131. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +19 -0
  132. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  133. data/sig/metronome_sdk/models/v1/package_archive_params.rbs +26 -0
  134. data/sig/metronome_sdk/models/v1/package_archive_response.rbs +15 -0
  135. data/sig/metronome_sdk/models/v1/package_create_params.rbs +2532 -0
  136. data/sig/metronome_sdk/models/v1/package_create_response.rbs +15 -0
  137. data/sig/metronome_sdk/models/v1/package_list_contracts_on_package_params.rbs +63 -0
  138. data/sig/metronome_sdk/models/v1/package_list_contracts_on_package_response.rbs +46 -0
  139. data/sig/metronome_sdk/models/v1/package_list_params.rbs +58 -0
  140. data/sig/metronome_sdk/models/v1/package_list_response.rbs +2441 -0
  141. data/sig/metronome_sdk/models/v1/package_retrieve_params.rbs +26 -0
  142. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +2467 -0
  143. data/sig/metronome_sdk/models/v1/usage_list_with_groups_params.rbs +16 -0
  144. data/sig/metronome_sdk/models/v1/usage_list_with_groups_response.rbs +10 -3
  145. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +20 -2
  146. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +19 -0
  147. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -0
  148. data/sig/metronome_sdk/resources/v1/contracts.rbs +0 -1
  149. data/sig/metronome_sdk/resources/v1/packages.rbs +63 -0
  150. data/sig/metronome_sdk/resources/v1/usage.rbs +2 -0
  151. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  152. metadata +35 -2
@@ -52,16 +52,45 @@ module MetronomeSDK
52
52
  optional :ending_before, Time
53
53
 
54
54
  # @!attribute group_by
55
+ # @deprecated
56
+ #
57
+ # Use group_key and group_filters instead. Use a single group key to group by.
58
+ # Compound group keys are not supported.
55
59
  #
56
60
  # @return [MetronomeSDK::Models::V1::UsageListWithGroupsParams::GroupBy, nil]
57
61
  optional :group_by, -> { MetronomeSDK::V1::UsageListWithGroupsParams::GroupBy }
58
62
 
63
+ # @!attribute group_filters
64
+ # Object mapping group keys to arrays of values to filter on. Only usage matching
65
+ # these filter values will be returned. Keys must be present in group_key. Omit a
66
+ # key or use an empty array to include all values for that dimension.
67
+ #
68
+ # @return [Hash{Symbol=>Array<String>}, nil]
69
+ optional :group_filters,
70
+ MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::ArrayOf[String]]
71
+
72
+ # @!attribute group_key
73
+ # Group key to group usage by. Supports both simple (single key) and compound
74
+ # (multiple keys) group keys.
75
+ #
76
+ # For simple group keys, provide a single key e.g. `["region"]`. For compound
77
+ # group keys, provide multiple keys e.g. `["region", "team"]`.
78
+ #
79
+ # For streaming metrics, the keys must be defined as a simple or compound group
80
+ # key on the billable metric. For compound group keys, all keys must match an
81
+ # exact compound group key definition — partial matches are not allowed.
82
+ #
83
+ # Cannot be used together with `group_by`.
84
+ #
85
+ # @return [Array<String>, nil]
86
+ optional :group_key, MetronomeSDK::Internal::Type::ArrayOf[String]
87
+
59
88
  # @!attribute starting_on
60
89
  #
61
90
  # @return [Time, nil]
62
91
  optional :starting_on, Time
63
92
 
64
- # @!method initialize(billable_metric_id:, customer_id:, window_size:, limit: nil, next_page: nil, current_period: nil, ending_before: nil, group_by: nil, starting_on: nil, request_options: {})
93
+ # @!method initialize(billable_metric_id:, customer_id:, window_size:, limit: nil, next_page: nil, current_period: nil, ending_before: nil, group_by: nil, group_filters: nil, group_key: nil, starting_on: nil, request_options: {})
65
94
  # Some parameter documentations has been truncated, see
66
95
  # {MetronomeSDK::Models::V1::UsageListWithGroupsParams} for more details.
67
96
  #
@@ -79,7 +108,11 @@ module MetronomeSDK
79
108
  #
80
109
  # @param ending_before [Time]
81
110
  #
82
- # @param group_by [MetronomeSDK::Models::V1::UsageListWithGroupsParams::GroupBy]
111
+ # @param group_by [MetronomeSDK::Models::V1::UsageListWithGroupsParams::GroupBy] Use group_key and group_filters instead. Use a single group key to group by. Com
112
+ #
113
+ # @param group_filters [Hash{Symbol=>Array<String>}] Object mapping group keys to arrays of values to filter on. Only usage matching
114
+ #
115
+ # @param group_key [Array<String>] Group key to group usage by. Supports both simple (single key) and compound (mul
83
116
  #
84
117
  # @param starting_on [Time]
85
118
  #
@@ -99,6 +132,7 @@ module MetronomeSDK
99
132
  # @return [Array<Symbol>]
100
133
  end
101
134
 
135
+ # @deprecated
102
136
  class GroupBy < MetronomeSDK::Internal::Type::BaseModel
103
137
  # @!attribute key
104
138
  # The name of the group_by key to use
@@ -117,6 +151,9 @@ module MetronomeSDK
117
151
  # Some parameter documentations has been truncated, see
118
152
  # {MetronomeSDK::Models::V1::UsageListWithGroupsParams::GroupBy} for more details.
119
153
  #
154
+ # Use group_key and group_filters instead. Use a single group key to group by.
155
+ # Compound group keys are not supported.
156
+ #
120
157
  # @param key [String] The name of the group_by key to use
121
158
  #
122
159
  # @param values [Array<String>] Values of the group_by key to return in the query. Omit this if you'd like all v
@@ -11,11 +11,17 @@ module MetronomeSDK
11
11
  required :ending_before, Time
12
12
 
13
13
  # @!attribute group_key
14
+ # @deprecated
15
+ #
16
+ # Use `group` instead. The group key for single-key grouping.
14
17
  #
15
18
  # @return [String, nil]
16
19
  required :group_key, String, nil?: true
17
20
 
18
21
  # @!attribute group_value
22
+ # @deprecated
23
+ #
24
+ # Use `group` instead. The group value for single-key grouping.
19
25
  #
20
26
  # @return [String, nil]
21
27
  required :group_value, String, nil?: true
@@ -30,12 +36,30 @@ module MetronomeSDK
30
36
  # @return [Float, nil]
31
37
  required :value, Float, nil?: true
32
38
 
33
- # @!method initialize(ending_before:, group_key:, group_value:, starting_on:, value:)
39
+ # @!attribute group
40
+ # Map of group key to their value for this usage aggregate. For simple group keys,
41
+ # this should be a single key e.g. `{"region": "US-East"}` For compound group
42
+ # keys, this should contain the values of each group key that forms the compound
43
+ # e.g. `{"region": "US-East", "team": "engineering"}`
44
+ #
45
+ # @return [Hash{Symbol=>String}, nil]
46
+ optional :group, MetronomeSDK::Internal::Type::HashOf[String]
47
+
48
+ # @!method initialize(ending_before:, group_key:, group_value:, starting_on:, value:, group: nil)
49
+ # Some parameter documentations has been truncated, see
50
+ # {MetronomeSDK::Models::V1::UsageListWithGroupsResponse} for more details.
51
+ #
34
52
  # @param ending_before [Time]
35
- # @param group_key [String, nil]
36
- # @param group_value [String, nil]
53
+ #
54
+ # @param group_key [String, nil] Use `group` instead. The group key for single-key grouping.
55
+ #
56
+ # @param group_value [String, nil] Use `group` instead. The group value for single-key grouping.
57
+ #
37
58
  # @param starting_on [Time]
59
+ #
38
60
  # @param value [Float, nil]
61
+ #
62
+ # @param group [Hash{Symbol=>String}] Map of group key to their value for this usage aggregate.
39
63
  end
40
64
  end
41
65
  end
@@ -994,7 +994,6 @@ module MetronomeSDK
994
994
  NONE = :NONE
995
995
  STRIPE = :STRIPE
996
996
  ANROK = :ANROK
997
- AVALARA = :AVALARA
998
997
  PRECALCULATED = :PRECALCULATED
999
998
 
1000
999
  # @!method self.values
@@ -1654,6 +1653,13 @@ module MetronomeSDK
1654
1653
  # @return [Boolean, nil]
1655
1654
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
1656
1655
 
1656
+ # @!attribute minimum_config
1657
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1658
+ #
1659
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig, nil]
1660
+ optional :minimum_config,
1661
+ -> { MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig }
1662
+
1657
1663
  # @!attribute price
1658
1664
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
1659
1665
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
@@ -1673,7 +1679,7 @@ module MetronomeSDK
1673
1679
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
1674
1680
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
1675
1681
 
1676
- # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1682
+ # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, minimum_config: nil, price: nil, quantity: nil, tiers: nil)
1677
1683
  # Some parameter documentations has been truncated, see
1678
1684
  # {MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate} for
1679
1685
  # more details.
@@ -1688,6 +1694,8 @@ module MetronomeSDK
1688
1694
  #
1689
1695
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
1690
1696
  #
1697
+ # @param minimum_config [MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1698
+ #
1691
1699
  # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
1692
1700
  #
1693
1701
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
@@ -1708,6 +1716,19 @@ module MetronomeSDK
1708
1716
  # @!method self.values
1709
1717
  # @return [Array<Symbol>]
1710
1718
  end
1719
+
1720
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate#minimum_config
1721
+ class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
1722
+ # @!attribute minimum
1723
+ #
1724
+ # @return [Float]
1725
+ required :minimum, Float
1726
+
1727
+ # @!method initialize(minimum:)
1728
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1729
+ #
1730
+ # @param minimum [Float]
1731
+ end
1711
1732
  end
1712
1733
 
1713
1734
  # Indicates whether the override applies to commit rates or list rates. Can only
@@ -843,6 +843,13 @@ module MetronomeSDK
843
843
  # @return [Boolean, nil]
844
844
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
845
845
 
846
+ # @!attribute minimum_config
847
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
848
+ #
849
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig, nil]
850
+ optional :minimum_config,
851
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig }
852
+
846
853
  # @!attribute price
847
854
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
848
855
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
@@ -862,7 +869,7 @@ module MetronomeSDK
862
869
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
863
870
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
864
871
 
865
- # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
872
+ # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, minimum_config: nil, price: nil, quantity: nil, tiers: nil)
866
873
  # Some parameter documentations has been truncated, see
867
874
  # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate}
868
875
  # for more details.
@@ -875,6 +882,8 @@ module MetronomeSDK
875
882
  #
876
883
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
877
884
  #
885
+ # @param minimum_config [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
886
+ #
878
887
  # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
879
888
  #
880
889
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
@@ -895,6 +904,19 @@ module MetronomeSDK
895
904
  # @!method self.values
896
905
  # @return [Array<Symbol>]
897
906
  end
907
+
908
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate#minimum_config
909
+ class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
910
+ # @!attribute minimum
911
+ #
912
+ # @return [Float]
913
+ required :minimum, Float
914
+
915
+ # @!method initialize(minimum:)
916
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
917
+ #
918
+ # @param minimum [Float]
919
+ end
898
920
  end
899
921
 
900
922
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride#product
@@ -3,6 +3,11 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Alerts](https://docs.metronome.com/connecting-metronome/alerts/) monitor
7
+ # customer spending, balances, and other billing factors. Use these endpoints to
8
+ # create, retrieve, and archive customer alerts. To view sample alert payloads by
9
+ # alert type, navigate
10
+ # [here.](https://docs.metronome.com/manage-product-access/create-manage-alerts/#webhook-notifications)
6
11
  class Alerts
7
12
  # Some parameter documentations has been truncated, see
8
13
  # {MetronomeSDK::Models::V1::AlertCreateParams} for more details.
@@ -3,6 +3,8 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Security](https://docs.metronome.com/developer-resources/security/) endpoints
7
+ # allow you to retrieve security-related data.
6
8
  class AuditLogs
7
9
  # Some parameter documentations has been truncated, see
8
10
  # {MetronomeSDK::Models::V1::AuditLogListParams} for more details.
@@ -70,10 +72,11 @@ module MetronomeSDK
70
72
  # @see MetronomeSDK::Models::V1::AuditLogListParams
71
73
  def list(params = {})
72
74
  parsed, options = MetronomeSDK::V1::AuditLogListParams.dump_request(params)
75
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed)
73
76
  @client.request(
74
77
  method: :get,
75
78
  path: "v1/auditLogs",
76
- query: parsed,
79
+ query: query,
77
80
  page: MetronomeSDK::Internal::CursorPage,
78
81
  model: MetronomeSDK::Models::V1::AuditLogListResponse,
79
82
  options: options
@@ -3,6 +3,9 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Billable metrics](https://docs.metronome.com/understanding-metronome/how-metronome-works#billable-metrics)
7
+ # in Metronome represent the various consumption components that Metronome meters
8
+ # and aggregates.
6
9
  class BillableMetrics
7
10
  # Some parameter documentations has been truncated, see
8
11
  # {MetronomeSDK::Models::V1::BillableMetricCreateParams} for more details.
@@ -126,10 +129,11 @@ module MetronomeSDK
126
129
  # @see MetronomeSDK::Models::V1::BillableMetricListParams
127
130
  def list(params = {})
128
131
  parsed, options = MetronomeSDK::V1::BillableMetricListParams.dump_request(params)
132
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed)
129
133
  @client.request(
130
134
  method: :get,
131
135
  path: "v1/billable-metrics",
132
- query: parsed,
136
+ query: query,
133
137
  page: MetronomeSDK::Internal::CursorPage,
134
138
  model: MetronomeSDK::Models::V1::BillableMetricListResponse,
135
139
  options: options
@@ -4,6 +4,8 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Contracts
7
+ # Named schedules are used for storing custom data that can change over time.
8
+ # Named schedules are often used in custom pricing logic.
7
9
  class NamedSchedules
8
10
  # Some parameter documentations has been truncated, see
9
11
  # {MetronomeSDK::Models::V1::Contracts::NamedScheduleRetrieveParams} for more
@@ -4,6 +4,7 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Contracts
7
+ # Products are the items that customers purchase.
7
8
  class Products
8
9
  # Some parameter documentations has been truncated, see
9
10
  # {MetronomeSDK::Models::V1::Contracts::ProductCreateParams} for more details.
@@ -167,12 +168,13 @@ module MetronomeSDK
167
168
  #
168
169
  # @see MetronomeSDK::Models::V1::Contracts::ProductListParams
169
170
  def list(params = {})
170
- parsed, options = MetronomeSDK::V1::Contracts::ProductListParams.dump_request(params)
171
171
  query_params = [:limit, :next_page]
172
+ parsed, options = MetronomeSDK::V1::Contracts::ProductListParams.dump_request(params)
173
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed.slice(*query_params))
172
174
  @client.request(
173
175
  method: :post,
174
176
  path: "v1/contract-pricing/products/list",
175
- query: parsed.slice(*query_params),
177
+ query: query,
176
178
  body: parsed.except(*query_params),
177
179
  page: MetronomeSDK::Internal::CursorPage,
178
180
  model: MetronomeSDK::Models::V1::Contracts::ProductListResponse,
@@ -5,6 +5,8 @@ module MetronomeSDK
5
5
  class V1
6
6
  class Contracts
7
7
  class RateCards
8
+ # Named schedules are used for storing custom data that can change over time.
9
+ # Named schedules are often used in custom pricing logic.
8
10
  class NamedSchedules
9
11
  # Some parameter documentations has been truncated, see
10
12
  # {MetronomeSDK::Models::V1::Contracts::RateCards::NamedScheduleRetrieveParams}
@@ -5,6 +5,7 @@ module MetronomeSDK
5
5
  class V1
6
6
  class Contracts
7
7
  class RateCards
8
+ # Rate cards are used to define default pricing for products.
8
9
  class ProductOrders
9
10
  # The ordering of products on a rate card determines the order in which the
10
11
  # products will appear on customers' invoices. Use this endpoint to set the order
@@ -5,6 +5,7 @@ module MetronomeSDK
5
5
  class V1
6
6
  class Contracts
7
7
  class RateCards
8
+ # Rate cards are used to define default pricing for products.
8
9
  class Rates
9
10
  # Some parameter documentations has been truncated, see
10
11
  # {MetronomeSDK::Models::V1::Contracts::RateCards::RateListParams} for more
@@ -38,12 +39,13 @@ module MetronomeSDK
38
39
  #
39
40
  # @see MetronomeSDK::Models::V1::Contracts::RateCards::RateListParams
40
41
  def list(params)
41
- parsed, options = MetronomeSDK::V1::Contracts::RateCards::RateListParams.dump_request(params)
42
42
  query_params = [:limit, :next_page]
43
+ parsed, options = MetronomeSDK::V1::Contracts::RateCards::RateListParams.dump_request(params)
44
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed.slice(*query_params))
43
45
  @client.request(
44
46
  method: :post,
45
47
  path: "v1/contract-pricing/rate-cards/getRates",
46
- query: parsed.slice(*query_params),
48
+ query: query,
47
49
  body: parsed.except(*query_params),
48
50
  page: MetronomeSDK::Internal::CursorPage,
49
51
  model: MetronomeSDK::Models::V1::Contracts::RateCards::RateListResponse,
@@ -57,7 +59,7 @@ module MetronomeSDK
57
59
  #
58
60
  # Add a new rate
59
61
  #
60
- # @overload add(entitled:, product_id:, rate_card_id:, rate_type:, starting_at:, billing_frequency: nil, commit_rate: nil, credit_type_id: nil, custom_rate: nil, ending_before: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil, request_options: {})
62
+ # @overload add(entitled:, product_id:, rate_card_id:, rate_type:, starting_at:, billing_frequency: nil, commit_rate: nil, credit_type_id: nil, custom_rate: nil, ending_before: nil, is_prorated: nil, minimum_config: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil, request_options: {})
61
63
  #
62
64
  # @param entitled [Boolean]
63
65
  #
@@ -81,6 +83,8 @@ module MetronomeSDK
81
83
  #
82
84
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
83
85
  #
86
+ # @param minimum_config [MetronomeSDK::Models::V1::Contracts::RateCards::RateAddParams::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
87
+ #
84
88
  # @param price [Float] Default price. For FLAT and SUBSCRIPTION rate_type, this must be >=0. For PERCEN
85
89
  #
86
90
  # @param pricing_group_values [Hash{Symbol=>String}] Optional. List of pricing group key value pairs which will be used to calculate
@@ -4,13 +4,18 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Contracts
7
+ # Rate cards are used to define default pricing for products.
7
8
  class RateCards
9
+ # Rate cards are used to define default pricing for products.
8
10
  # @return [MetronomeSDK::Resources::V1::Contracts::RateCards::ProductOrders]
9
11
  attr_reader :product_orders
10
12
 
13
+ # Rate cards are used to define default pricing for products.
11
14
  # @return [MetronomeSDK::Resources::V1::Contracts::RateCards::Rates]
12
15
  attr_reader :rates
13
16
 
17
+ # Named schedules are used for storing custom data that can change over time.
18
+ # Named schedules are often used in custom pricing logic.
14
19
  # @return [MetronomeSDK::Resources::V1::Contracts::RateCards::NamedSchedules]
15
20
  attr_reader :named_schedules
16
21
 
@@ -205,10 +210,11 @@ module MetronomeSDK
205
210
  # @see MetronomeSDK::Models::V1::Contracts::RateCardListParams
206
211
  def list(params = {})
207
212
  parsed, options = MetronomeSDK::V1::Contracts::RateCardListParams.dump_request(params)
213
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed.except(:body))
208
214
  @client.request(
209
215
  method: :post,
210
216
  path: "v1/contract-pricing/rate-cards/list",
211
- query: parsed.except(:body),
217
+ query: query,
212
218
  body: parsed[:body],
213
219
  page: MetronomeSDK::Internal::CursorPage,
214
220
  model: MetronomeSDK::Models::V1::Contracts::RateCardListResponse,
@@ -278,12 +284,13 @@ module MetronomeSDK
278
284
  #
279
285
  # @see MetronomeSDK::Models::V1::Contracts::RateCardRetrieveRateScheduleParams
280
286
  def retrieve_rate_schedule(params)
281
- parsed, options = MetronomeSDK::V1::Contracts::RateCardRetrieveRateScheduleParams.dump_request(params)
282
287
  query_params = [:limit, :next_page]
288
+ parsed, options = MetronomeSDK::V1::Contracts::RateCardRetrieveRateScheduleParams.dump_request(params)
289
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed.slice(*query_params))
283
290
  @client.request(
284
291
  method: :post,
285
292
  path: "v1/contract-pricing/rate-cards/getRateSchedule",
286
- query: parsed.slice(*query_params),
293
+ query: query,
287
294
  body: parsed.except(*query_params),
288
295
  model: MetronomeSDK::Models::V1::Contracts::RateCardRetrieveRateScheduleResponse,
289
296
  options: options
@@ -4,12 +4,16 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Contracts
7
+ # Products are the items that customers purchase.
7
8
  # @return [MetronomeSDK::Resources::V1::Contracts::Products]
8
9
  attr_reader :products
9
10
 
11
+ # Rate cards are used to define default pricing for products.
10
12
  # @return [MetronomeSDK::Resources::V1::Contracts::RateCards]
11
13
  attr_reader :rate_cards
12
14
 
15
+ # Named schedules are used for storing custom data that can change over time.
16
+ # Named schedules are often used in custom pricing logic.
13
17
  # @return [MetronomeSDK::Resources::V1::Contracts::NamedSchedules]
14
18
  attr_reader :named_schedules
15
19
 
@@ -140,7 +144,7 @@ module MetronomeSDK
140
144
  # `usage_filters` to route the correct usage to each contract.
141
145
  # [Read more about usage filters](https://docs.metronome.com/manage-product-access/provision-customer/#create-a-usage-filter).
142
146
  #
143
- # @overload create(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, package_alias: nil, package_id: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, revenue_system_configuration: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
147
+ # @overload create(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, package_alias: nil, package_id: nil, prepaid_balance_threshold_configuration: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, revenue_system_configuration: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
144
148
  #
145
149
  # @param customer_id [String]
146
150
  #
@@ -176,8 +180,6 @@ module MetronomeSDK
176
180
  #
177
181
  # @param prepaid_balance_threshold_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration]
178
182
  #
179
- # @param priority [Float] Priority of the contract.
180
- #
181
183
  # @param professional_services [Array<MetronomeSDK::Models::V1::ContractCreateParams::ProfessionalService>] This field's availability is dependent on your client's configuration.
182
184
  #
183
185
  # @param rate_card_alias [String] Selects the rate card linked to the specified alias as of the contract's start d
@@ -672,12 +674,13 @@ module MetronomeSDK
672
674
  #
673
675
  # @see MetronomeSDK::Models::V1::ContractRetrieveRateScheduleParams
674
676
  def retrieve_rate_schedule(params)
675
- parsed, options = MetronomeSDK::V1::ContractRetrieveRateScheduleParams.dump_request(params)
676
677
  query_params = [:limit, :next_page]
678
+ parsed, options = MetronomeSDK::V1::ContractRetrieveRateScheduleParams.dump_request(params)
679
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed.slice(*query_params))
677
680
  @client.request(
678
681
  method: :post,
679
682
  path: "v1/contracts/getContractRateSchedule",
680
- query: parsed.slice(*query_params),
683
+ query: query,
681
684
  body: parsed.except(*query_params),
682
685
  model: MetronomeSDK::Models::V1::ContractRetrieveRateScheduleResponse,
683
686
  options: options
@@ -3,6 +3,9 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Credit grants](https://docs.metronome.com/invoicing/how-billing-works/manage-credits/)
7
+ # adjust a customer balance for prepayments, reimbursements, promotions, and so
8
+ # on. Use these endpoints to create, retrieve, update, and delete credit grants.
6
9
  class CreditGrants
7
10
  # Some parameter documentations has been truncated, see
8
11
  # {MetronomeSDK::Models::V1::CreditGrantCreateParams} for more details.
@@ -84,12 +87,13 @@ module MetronomeSDK
84
87
  #
85
88
  # @see MetronomeSDK::Models::V1::CreditGrantListParams
86
89
  def list(params = {})
87
- parsed, options = MetronomeSDK::V1::CreditGrantListParams.dump_request(params)
88
90
  query_params = [:limit, :next_page]
91
+ parsed, options = MetronomeSDK::V1::CreditGrantListParams.dump_request(params)
92
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed.slice(*query_params))
89
93
  @client.request(
90
94
  method: :post,
91
95
  path: "v1/credits/listGrants",
92
- query: parsed.slice(*query_params),
96
+ query: query,
93
97
  body: parsed.except(*query_params),
94
98
  page: MetronomeSDK::Internal::CursorPage,
95
99
  model: MetronomeSDK::Models::V1::CreditGrantListResponse,
@@ -155,12 +159,13 @@ module MetronomeSDK
155
159
  #
156
160
  # @see MetronomeSDK::Models::V1::CreditGrantListEntriesParams
157
161
  def list_entries(params = {})
158
- parsed, options = MetronomeSDK::V1::CreditGrantListEntriesParams.dump_request(params)
159
162
  query_params = [:next_page, :sort]
163
+ parsed, options = MetronomeSDK::V1::CreditGrantListEntriesParams.dump_request(params)
164
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed.slice(*query_params))
160
165
  @client.request(
161
166
  method: :post,
162
167
  path: "v1/credits/listEntries",
163
- query: parsed.slice(*query_params),
168
+ query: query,
164
169
  body: parsed.except(*query_params),
165
170
  page: MetronomeSDK::Internal::CursorPageWithoutLimit,
166
171
  model: MetronomeSDK::Models::V1::CreditGrantListEntriesResponse,
@@ -3,6 +3,9 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Custom fields](https://docs.metronome.com/integrations/custom-fields/) enable
7
+ # adding additional data to Metronome entities. Use these endpoints to create,
8
+ # retrieve, update, and delete custom fields.
6
9
  class CustomFields
7
10
  # Creates a new custom field key for a given entity (e.g. billable metric,
8
11
  # contract, alert).
@@ -98,12 +101,13 @@ module MetronomeSDK
98
101
  #
99
102
  # @see MetronomeSDK::Models::V1::CustomFieldListKeysParams
100
103
  def list_keys(params = {})
101
- parsed, options = MetronomeSDK::V1::CustomFieldListKeysParams.dump_request(params)
102
104
  query_params = [:next_page]
105
+ parsed, options = MetronomeSDK::V1::CustomFieldListKeysParams.dump_request(params)
106
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed.slice(*query_params))
103
107
  @client.request(
104
108
  method: :post,
105
109
  path: "v1/customFields/listKeys",
106
- query: parsed.slice(*query_params),
110
+ query: query,
107
111
  body: parsed.except(*query_params),
108
112
  page: MetronomeSDK::Internal::CursorPageWithoutLimit,
109
113
  model: MetronomeSDK::Models::V1::CustomFieldListKeysResponse,
@@ -4,6 +4,11 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # [Alerts](https://docs.metronome.com/connecting-metronome/alerts/) monitor
8
+ # customer spending, balances, and other billing factors. Use these endpoints to
9
+ # create, retrieve, and archive customer alerts. To view sample alert payloads by
10
+ # alert type, navigate
11
+ # [here.](https://docs.metronome.com/manage-product-access/create-manage-alerts/#webhook-notifications)
7
12
  class Alerts
8
13
  # Some parameter documentations has been truncated, see
9
14
  # {MetronomeSDK::Models::V1::Customers::AlertRetrieveParams} for more details.
@@ -141,12 +146,13 @@ module MetronomeSDK
141
146
  #
142
147
  # @see MetronomeSDK::Models::V1::Customers::AlertListParams
143
148
  def list(params)
144
- parsed, options = MetronomeSDK::V1::Customers::AlertListParams.dump_request(params)
145
149
  query_params = [:next_page]
150
+ parsed, options = MetronomeSDK::V1::Customers::AlertListParams.dump_request(params)
151
+ query = MetronomeSDK::Internal::Util.encode_query_params(parsed.slice(*query_params))
146
152
  @client.request(
147
153
  method: :post,
148
154
  path: "v1/customer-alerts/list",
149
- query: parsed.slice(*query_params),
155
+ query: query,
150
156
  body: parsed.except(*query_params),
151
157
  page: MetronomeSDK::Internal::CursorPageWithoutLimit,
152
158
  model: MetronomeSDK::V1::Customers::CustomerAlert,
@@ -4,6 +4,10 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # [Customers](https://docs.metronome.com/provisioning/create-customers/) in
8
+ # Metronome represent your users for all billing and reporting. Use these
9
+ # endpoints to create, retrieve, update, and archive customers and their billing
10
+ # configuration.
7
11
  class BillingConfig
8
12
  # Some parameter documentations has been truncated, see
9
13
  # {MetronomeSDK::Models::V1::Customers::BillingConfigCreateParams} for more
@@ -4,6 +4,7 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # Credits and commits are used to manage customer balances.
7
8
  class Commits
8
9
  # Some parameter documentations has been truncated, see
9
10
  # {MetronomeSDK::Models::V1::Customers::CommitCreateParams} for more details.
@@ -4,6 +4,7 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # Credits and commits are used to manage customer balances.
7
8
  class Credits
8
9
  # Some parameter documentations has been truncated, see
9
10
  # {MetronomeSDK::Models::V1::Customers::CreditCreateParams} for more details.