metronome-sdk 3.7.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/models/commit.rb +10 -1
  6. data/lib/metronome_sdk/models/contract_v2.rb +290 -7
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +178 -4
  8. data/lib/metronome_sdk/models/credit.rb +10 -1
  9. data/lib/metronome_sdk/models/override.rb +7 -1
  10. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +10 -2
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +3 -1
  12. data/lib/metronome_sdk/models/subscription.rb +90 -2
  13. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  14. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +17 -4
  15. data/lib/metronome_sdk/models/v1/contract_create_params.rb +290 -10
  16. data/lib/metronome_sdk/models/v1/contract_create_response.rb +178 -4
  17. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  18. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  21. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  22. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  23. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  24. data/lib/metronome_sdk/models/v1/package_create_params.rb +279 -10
  25. data/lib/metronome_sdk/models/v1/package_list_response.rb +264 -7
  26. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +264 -7
  27. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +515 -9
  28. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +456 -8
  29. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +456 -8
  30. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  31. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  32. data/lib/metronome_sdk/resources/v1/contracts.rb +68 -1
  33. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  34. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  36. data/lib/metronome_sdk/version.rb +1 -1
  37. data/lib/metronome_sdk.rb +2 -0
  38. data/rbi/metronome_sdk/models/commit.rbi +13 -0
  39. data/rbi/metronome_sdk/models/contract_v2.rbi +715 -3
  40. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +463 -0
  41. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  42. data/rbi/metronome_sdk/models/override.rbi +9 -0
  43. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +11 -1
  44. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +4 -0
  45. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  46. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  47. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +27 -6
  48. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +719 -9
  49. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +463 -0
  50. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  51. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  52. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  53. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  54. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  55. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  56. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  57. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +706 -9
  58. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +693 -3
  59. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +693 -3
  60. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1333 -40
  61. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +1204 -67
  62. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1204 -67
  63. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  64. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  65. data/rbi/metronome_sdk/resources/v1/contracts.rbi +70 -0
  66. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  67. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  68. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  69. data/sig/metronome_sdk/models/commit.rbs +7 -0
  70. data/sig/metronome_sdk/models/contract_v2.rbs +278 -5
  71. data/sig/metronome_sdk/models/contract_without_amendments.rbs +169 -2
  72. data/sig/metronome_sdk/models/credit.rbs +7 -0
  73. data/sig/metronome_sdk/models/override.rbs +7 -0
  74. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  75. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  76. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +7 -0
  77. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +278 -5
  78. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +167 -2
  79. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  80. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  81. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  82. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  83. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  84. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  85. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  86. data/sig/metronome_sdk/models/v1/package_create_params.rbs +271 -5
  87. data/sig/metronome_sdk/models/v1/package_list_response.rbs +265 -5
  88. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +263 -5
  89. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +468 -5
  90. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +428 -5
  91. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +427 -5
  92. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  93. data/sig/metronome_sdk/resources/v1/contracts.rbs +13 -0
  94. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  95. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  96. metadata +8 -2
@@ -60,6 +60,10 @@ module MetronomeSDK
60
60
  MetronomeSDK::V1::AlertCreateParams::AlertType::OrSymbol,
61
61
  name: String,
62
62
  threshold: Float,
63
+ alert_specifiers:
64
+ T::Array[
65
+ MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::OrHash
66
+ ],
63
67
  billable_metric_id: String,
64
68
  credit_grant_type_filters: T::Array[String],
65
69
  credit_type_id: String,
@@ -88,6 +92,10 @@ module MetronomeSDK
88
92
  # type, this number may represent a financial amount, the days remaining, or a
89
93
  # percentage reached.
90
94
  threshold:,
95
+ # Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
96
+ # notifications. Defines the balances that are considered when evaluating the
97
+ # alert.
98
+ alert_specifiers: nil,
91
99
  # For threshold notifications of type `usage_threshold_reached`, specifies which
92
100
  # billable metric to track the usage for.
93
101
  billable_metric_id: nil,
@@ -51,6 +51,10 @@ module MetronomeSDK
51
51
  end
52
52
 
53
53
  # Add a new rate
54
+ #
55
+ # This endpoint is heavily rate limited. For adding multiple rates, using the
56
+ # [addRates](https://docs.metronome.com/api-reference/rate-cards/add-rates)
57
+ # endpoint is strongly encouraged.
54
58
  sig do
55
59
  params(
56
60
  entitled: T::Boolean,
@@ -616,6 +616,72 @@ module MetronomeSDK
616
616
  )
617
617
  end
618
618
 
619
+ # Get the history of subscription seats schedule over time for a given
620
+ # `subscription_id`. This endpoint provides information about seat assignments and
621
+ # total quantities for different time periods, allowing you to track how seat
622
+ # assignments have changed over time.
623
+ #
624
+ # ### Use this endpoint to:
625
+ #
626
+ # - Track changes to seat assignments over time
627
+ # - Get seat schedule for a specific date using the `covering_date` parameter
628
+ # - Get seat schedule history with optional date range filtering using
629
+ # `starting_at` and `ending_before`
630
+ #
631
+ # ### Key response fields:
632
+ #
633
+ # - data: array of seat schedule entries with time periods, quantity, and
634
+ # assignments
635
+ # - next_page: cursor for pagination to retrieve additional results
636
+ #
637
+ # ### Usage guidelines:
638
+ #
639
+ # - Use `covering_date` to get the active seats for a specific point in time.
640
+ # `covering_date` cannot be used with `starting_at` or `ending_before`.
641
+ # - Use `starting_at` and `ending_before` to filter results by time range.
642
+ # `starting_at` and `ending_before` cannot be used with `covering_date`.
643
+ # - Maximum limit is 10 seat schedule entries per request
644
+ # - Results are ordered by `starting_at` timestamp
645
+ sig do
646
+ params(
647
+ contract_id: String,
648
+ customer_id: String,
649
+ subscription_id: String,
650
+ covering_date: T.nilable(Time),
651
+ cursor: T.nilable(String),
652
+ ending_before: T.nilable(Time),
653
+ limit: T.nilable(Integer),
654
+ starting_at: T.nilable(Time),
655
+ request_options: MetronomeSDK::RequestOptions::OrHash
656
+ ).returns(
657
+ MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryResponse
658
+ )
659
+ end
660
+ def get_subscription_seats_history(
661
+ contract_id:,
662
+ customer_id:,
663
+ subscription_id:,
664
+ # Get the seats history segment for the covering date. Cannot be used with
665
+ # `starting_at` or `ending_before`.
666
+ covering_date: nil,
667
+ # Cursor for pagination. Use the value from the `next_page` field of the previous
668
+ # response to retrieve the next page of results.
669
+ cursor: nil,
670
+ # Include seats history segments that are active at or before this timestamp. Use
671
+ # with `starting_at` to get a specific time range. If not set, there's no upper
672
+ # bound.
673
+ ending_before: nil,
674
+ # Maximum number of seat schedule entries to return. Defaults to 10. Required
675
+ # range: 1 <= x <= 10.
676
+ limit: nil,
677
+ # Include seats history segments that are active at or after this timestamp. Use
678
+ # with `ending_before` to get a specific time range. If not set, there's no lower
679
+ # bound.
680
+ starting_at: nil,
681
+ request_options: {}
682
+ )
683
+ end
684
+
619
685
  # Retrieve a comprehensive view of all available balances (commits and credits)
620
686
  # for a customer. This endpoint provides real-time visibility into prepaid funds,
621
687
  # postpaid commitments, promotional credits, and other balance types that can
@@ -737,6 +803,7 @@ module MetronomeSDK
737
803
  include_ledgers: T::Boolean,
738
804
  limit: Integer,
739
805
  seat_ids: T::Array[String],
806
+ skip_missing_seat_ids: T::Boolean,
740
807
  starting_at: Time,
741
808
  subscription_ids: T::Array[String],
742
809
  request_options: MetronomeSDK::RequestOptions::OrHash
@@ -770,6 +837,9 @@ module MetronomeSDK
770
837
  limit: nil,
771
838
  # Optional filter to only include specific seats.
772
839
  seat_ids: nil,
840
+ # When true, any seat_ids not found in contract subscriptions will be silently
841
+ # omitted from the response instead of returning a 400 error.
842
+ skip_missing_seat_ids: nil,
773
843
  # Include only commits or credits with access effective on or after this date
774
844
  # (cannot be used with covering_date).
775
845
  starting_at: nil,
@@ -44,11 +44,11 @@ module MetronomeSDK
44
44
  # - `null` - Notification has been archived
45
45
  # - `triggered_by`: Additional context about what caused the notification to
46
46
  # trigger (when applicable)
47
+ # - `updated_at`: Timestamp of when the `customer_status` was last updated
47
48
  # - alert: Complete threshold notification configuration including:
48
49
  # - Notification ID, name, and type
49
50
  # - Current threshold values and credit type information
50
51
  # - Notification status (enabled, disabled, or archived)
51
- # - Last update timestamp
52
52
  # - Any applied filters (credit grant types, custom fields, group values)
53
53
  #
54
54
  # ### Usage guidelines:
@@ -69,6 +69,10 @@ module MetronomeSDK
69
69
  params(
70
70
  alert_id: String,
71
71
  customer_id: String,
72
+ alert_specifiers:
73
+ T::Array[
74
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::OrHash
75
+ ],
72
76
  group_values:
73
77
  T::Array[
74
78
  MetronomeSDK::V1::Customers::AlertRetrieveParams::GroupValue::OrHash
@@ -87,6 +91,9 @@ module MetronomeSDK
87
91
  alert_id:,
88
92
  # The Metronome ID of the customer
89
93
  customer_id:,
94
+ # Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
95
+ # notifications. Used to filter the alert by the custom field key-value pair.
96
+ alert_specifiers: nil,
90
97
  # Only present for `spend_threshold_reached` notifications. Retrieve the
91
98
  # notification for a specific group key-value pair.
92
99
  group_values: nil,
@@ -132,6 +132,7 @@ module MetronomeSDK
132
132
  status: String,
133
133
  type:
134
134
  MetronomeSDK::V1::Customers::InvoiceListParams::Type::OrSymbol,
135
+ webhook_notification_id: String,
135
136
  request_options: MetronomeSDK::RequestOptions::OrHash
136
137
  ).returns(
137
138
  MetronomeSDK::Internal::CursorPage[
@@ -166,6 +167,9 @@ module MetronomeSDK
166
167
  status: nil,
167
168
  # Query param: Filter invoices by type. Defaults to returning all invoice types.
168
169
  type: nil,
170
+ # Query param: Indicates that this API request was triggered by a webhook
171
+ # notification with the provided ID.
172
+ webhook_notification_id: nil,
169
173
  request_options: {}
170
174
  )
171
175
  end
@@ -30,8 +30,13 @@ module MetronomeSDK
30
30
  #
31
31
  # - Dashboard types: Choose from `invoices`, `usage`, or `commits_and_credits`
32
32
  # - Customization options:
33
- # - `dashboard_options`: Configure whether you want invoices to show zero usage
34
- # line items
33
+ # - `dashboard_options`: Configure dashboard behavior. For the invoices
34
+ # dashboard, supported keys include: `show_zero_usage_line_items`
35
+ # ("true"/"false"), `hide_voided_invoices` ("true"/"false"), `contract_id`
36
+ # (UUID, filters invoices by contract), `invoice_type` ("USAGE" or
37
+ # "SCHEDULED", filters by invoice type), `invoice_status_filter` ("VOID",
38
+ # "FINALIZED", "DRAFT", "FINALIZED_AND_DRAFT", or "ALL"), and
39
+ # `billable_status_filter` ("BILLABLE", "UNBILLABLE", or "ALL")
35
40
  # - `color_overrides`: Match your brand's color palette
36
41
  # - `bm_group_key_overrides`: Customize how dimensions are displayed (for the
37
42
  # usage embeddable dashboard)
@@ -14,6 +14,7 @@ module MetronomeSDK
14
14
  archived_at: Time,
15
15
  balance: Float,
16
16
  contract: MetronomeSDK::Commit::Contract,
17
+ created_by: String,
17
18
  custom_fields: ::Hash[Symbol, String],
18
19
  description: String,
19
20
  hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -79,6 +80,10 @@ module MetronomeSDK
79
80
  MetronomeSDK::Commit::Contract
80
81
  ) -> MetronomeSDK::Commit::Contract
81
82
 
83
+ attr_reader created_by: String?
84
+
85
+ def created_by=: (String) -> String
86
+
82
87
  attr_reader custom_fields: ::Hash[Symbol, String]?
83
88
 
84
89
  def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
@@ -182,6 +187,7 @@ module MetronomeSDK
182
187
  ?archived_at: Time,
183
188
  ?balance: Float,
184
189
  ?contract: MetronomeSDK::Commit::Contract,
190
+ ?created_by: String,
185
191
  ?custom_fields: ::Hash[Symbol, String],
186
192
  ?description: String,
187
193
  ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -215,6 +221,7 @@ module MetronomeSDK
215
221
  archived_at: Time,
216
222
  balance: Float,
217
223
  contract: MetronomeSDK::Commit::Contract,
224
+ created_by: String,
218
225
  custom_fields: ::Hash[Symbol, String],
219
226
  description: String,
220
227
  hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,