metronome-sdk 3.6.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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  6. data/lib/metronome_sdk/models/commit.rb +36 -1
  7. data/lib/metronome_sdk/models/contract.rb +140 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +457 -8
  9. data/lib/metronome_sdk/models/contract_without_amendments.rb +320 -5
  10. data/lib/metronome_sdk/models/credit.rb +10 -1
  11. data/lib/metronome_sdk/models/override.rb +7 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +113 -2
  13. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +105 -2
  14. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  15. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  16. data/lib/metronome_sdk/models/subscription.rb +90 -2
  17. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  18. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +46 -5
  19. data/lib/metronome_sdk/models/v1/contract_create_params.rb +436 -12
  20. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1308 -3
  21. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  22. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  23. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  25. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  26. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  27. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  28. data/lib/metronome_sdk/models/v1/package_create_params.rb +394 -11
  29. data/lib/metronome_sdk/models/v1/package_list_response.rb +374 -8
  30. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +378 -8
  31. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +817 -13
  32. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +4310 -3
  33. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +600 -10
  34. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  36. data/lib/metronome_sdk/resources/v1/contracts.rb +71 -2
  37. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  38. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  39. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  40. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  41. data/lib/metronome_sdk/resources/v1.rb +0 -4
  42. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  43. data/lib/metronome_sdk/version.rb +1 -1
  44. data/lib/metronome_sdk.rb +2 -8
  45. data/rbi/metronome_sdk/models/commit.rbi +61 -0
  46. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  47. data/rbi/metronome_sdk/models/contract_v2.rbi +1132 -11
  48. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +831 -0
  49. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  50. data/rbi/metronome_sdk/models/override.rbi +9 -0
  51. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +299 -6
  52. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +287 -6
  53. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  54. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  55. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  56. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  57. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +81 -6
  58. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1095 -17
  59. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2911 -4
  60. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  61. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  62. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  63. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  64. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  65. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  67. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +1049 -42
  68. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +1051 -54
  69. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +1051 -54
  70. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2130 -114
  71. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +9749 -4
  72. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1567 -82
  73. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  74. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  75. data/rbi/metronome_sdk/resources/v1/contracts.rbi +77 -0
  76. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  77. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  78. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  79. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  80. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  81. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  82. data/sig/metronome_sdk/models/commit.rbs +26 -0
  83. data/sig/metronome_sdk/models/contract.rbs +151 -0
  84. data/sig/metronome_sdk/models/contract_v2.rbs +448 -5
  85. data/sig/metronome_sdk/models/contract_without_amendments.rbs +320 -2
  86. data/sig/metronome_sdk/models/credit.rbs +7 -0
  87. data/sig/metronome_sdk/models/override.rbs +7 -0
  88. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  89. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  90. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  91. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  92. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  93. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  94. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -0
  95. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +412 -5
  96. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1210 -4
  97. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  98. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  99. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  100. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  101. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  102. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  103. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  104. data/sig/metronome_sdk/models/v1/package_create_params.rbs +386 -5
  105. data/sig/metronome_sdk/models/v1/package_list_response.rbs +380 -5
  106. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +378 -5
  107. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +751 -14
  108. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4215 -4
  109. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +569 -14
  110. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  111. data/sig/metronome_sdk/resources/v1/contracts.rbs +14 -0
  112. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  113. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  114. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  115. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  116. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  117. metadata +8 -26
  118. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  119. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  120. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  121. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  122. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  123. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  124. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  125. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  126. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  127. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  128. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  129. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  130. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  131. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  132. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  133. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  134. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  135. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  136. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  137. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  138. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  139. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  140. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  141. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ # @see MetronomeSDK::Resources::V1::Contracts#get_subscription_seats_history
7
+ class ContractGetSubscriptionSeatsHistoryParams < MetronomeSDK::Internal::Type::BaseModel
8
+ extend MetronomeSDK::Internal::Type::RequestParameters::Converter
9
+ include MetronomeSDK::Internal::Type::RequestParameters
10
+
11
+ # @!attribute contract_id
12
+ #
13
+ # @return [String]
14
+ required :contract_id, String
15
+
16
+ # @!attribute customer_id
17
+ #
18
+ # @return [String]
19
+ required :customer_id, String
20
+
21
+ # @!attribute subscription_id
22
+ #
23
+ # @return [String]
24
+ required :subscription_id, String
25
+
26
+ # @!attribute covering_date
27
+ # Get the seats history segment for the covering date. Cannot be used with
28
+ # `starting_at` or `ending_before`.
29
+ #
30
+ # @return [Time, nil]
31
+ optional :covering_date, Time, nil?: true
32
+
33
+ # @!attribute cursor
34
+ # Cursor for pagination. Use the value from the `next_page` field of the previous
35
+ # response to retrieve the next page of results.
36
+ #
37
+ # @return [String, nil]
38
+ optional :cursor, String, nil?: true
39
+
40
+ # @!attribute ending_before
41
+ # Include seats history segments that are active at or before this timestamp. Use
42
+ # with `starting_at` to get a specific time range. If not set, there's no upper
43
+ # bound.
44
+ #
45
+ # @return [Time, nil]
46
+ optional :ending_before, Time, nil?: true
47
+
48
+ # @!attribute limit
49
+ # Maximum number of seat schedule entries to return. Defaults to 10. Required
50
+ # range: 1 <= x <= 10.
51
+ #
52
+ # @return [Integer, nil]
53
+ optional :limit, Integer, nil?: true
54
+
55
+ # @!attribute starting_at
56
+ # Include seats history segments that are active at or after this timestamp. Use
57
+ # with `ending_before` to get a specific time range. If not set, there's no lower
58
+ # bound.
59
+ #
60
+ # @return [Time, nil]
61
+ optional :starting_at, Time, nil?: true
62
+
63
+ # @!method initialize(contract_id:, customer_id:, subscription_id:, covering_date: nil, cursor: nil, ending_before: nil, limit: nil, starting_at: nil, request_options: {})
64
+ # Some parameter documentations has been truncated, see
65
+ # {MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryParams} for more
66
+ # details.
67
+ #
68
+ # @param contract_id [String]
69
+ #
70
+ # @param customer_id [String]
71
+ #
72
+ # @param subscription_id [String]
73
+ #
74
+ # @param covering_date [Time, nil] Get the seats history segment for the covering date. Cannot be used with `starti
75
+ #
76
+ # @param cursor [String, nil] Cursor for pagination. Use the value from the `next_page` field of the previous
77
+ #
78
+ # @param ending_before [Time, nil] Include seats history segments that are active at or before this timestamp. Use
79
+ #
80
+ # @param limit [Integer, nil] Maximum number of seat schedule entries to return. Defaults to 10. Required rang
81
+ #
82
+ # @param starting_at [Time, nil] Include seats history segments that are active at or after this timestamp. Use w
83
+ #
84
+ # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ # @see MetronomeSDK::Resources::V1::Contracts#get_subscription_seats_history
7
+ class ContractGetSubscriptionSeatsHistoryResponse < MetronomeSDK::Internal::Type::BaseModel
8
+ # @!attribute data
9
+ #
10
+ # @return [Array<MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryResponse::Data>]
11
+ required :data,
12
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryResponse::Data] }
13
+
14
+ # @!attribute next_page
15
+ # Cursor for the next page of results
16
+ #
17
+ # @return [String, nil]
18
+ required :next_page, String, nil?: true
19
+
20
+ # @!method initialize(data:, next_page:)
21
+ # @param data [Array<MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryResponse::Data>]
22
+ #
23
+ # @param next_page [String, nil] Cursor for the next page of results
24
+
25
+ class Data < MetronomeSDK::Internal::Type::BaseModel
26
+ # @!attribute assigned_seat_ids
27
+ # Array of seat IDs that are assigned in this period
28
+ #
29
+ # @return [Array<String>]
30
+ required :assigned_seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
31
+
32
+ # @!attribute ending_before
33
+ # The end time of this seat schedule period (null if ongoing)
34
+ #
35
+ # @return [Time, nil]
36
+ required :ending_before, Time, nil?: true
37
+
38
+ # @!attribute starting_at
39
+ # The start time of this seat schedule period
40
+ #
41
+ # @return [Time]
42
+ required :starting_at, Time
43
+
44
+ # @!attribute total_quantity
45
+ # Total number of assigned and unassigned seats in this period
46
+ #
47
+ # @return [Integer]
48
+ required :total_quantity, Integer
49
+
50
+ # @!method initialize(assigned_seat_ids:, ending_before:, starting_at:, total_quantity:)
51
+ # @param assigned_seat_ids [Array<String>] Array of seat IDs that are assigned in this period
52
+ #
53
+ # @param ending_before [Time, nil] The end time of this seat schedule period (null if ongoing)
54
+ #
55
+ # @param starting_at [Time] The start time of this seat schedule period
56
+ #
57
+ # @param total_quantity [Integer] Total number of assigned and unassigned seats in this period
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -71,6 +71,13 @@ module MetronomeSDK
71
71
  # @return [Array<String>, nil]
72
72
  optional :seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
73
73
 
74
+ # @!attribute skip_missing_seat_ids
75
+ # When true, any seat_ids not found in contract subscriptions will be silently
76
+ # omitted from the response instead of returning a 400 error.
77
+ #
78
+ # @return [Boolean, nil]
79
+ optional :skip_missing_seat_ids, MetronomeSDK::Internal::Type::Boolean
80
+
74
81
  # @!attribute starting_at
75
82
  # Include only commits or credits with access effective on or after this date
76
83
  # (cannot be used with covering_date).
@@ -86,7 +93,7 @@ module MetronomeSDK
86
93
  # @return [Array<String>, nil]
87
94
  optional :subscription_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
88
95
 
89
- # @!method initialize(contract_id:, customer_id:, covering_date: nil, cursor: nil, effective_before: nil, include_credits_and_commits: nil, include_ledgers: nil, limit: nil, seat_ids: nil, starting_at: nil, subscription_ids: nil, request_options: {})
96
+ # @!method initialize(contract_id:, customer_id:, covering_date: nil, cursor: nil, effective_before: nil, include_credits_and_commits: nil, include_ledgers: nil, limit: nil, seat_ids: nil, skip_missing_seat_ids: nil, starting_at: nil, subscription_ids: nil, request_options: {})
90
97
  # Some parameter documentations has been truncated, see
91
98
  # {MetronomeSDK::Models::V1::ContractListSeatBalancesParams} for more details.
92
99
  #
@@ -108,6 +115,8 @@ module MetronomeSDK
108
115
  #
109
116
  # @param seat_ids [Array<String>] Optional filter to only include specific seats.
110
117
  #
118
+ # @param skip_missing_seat_ids [Boolean] When true, any seat_ids not found in contract subscriptions will be silently omi
119
+ #
111
120
  # @param starting_at [Time] Include only commits or credits with access effective on or after this date (can
112
121
  #
113
122
  # @param subscription_ids [Array<String>] Optional filter to only include seats from specific subscriptions. If subscripti
@@ -21,6 +21,14 @@ module MetronomeSDK
21
21
  # @return [String]
22
22
  required :customer_id, String
23
23
 
24
+ # @!attribute alert_specifiers
25
+ # Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
26
+ # notifications. Used to filter the alert by the custom field key-value pair.
27
+ #
28
+ # @return [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier>, nil]
29
+ optional :alert_specifiers,
30
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier] }
31
+
24
32
  # @!attribute group_values
25
33
  # Only present for `spend_threshold_reached` notifications. Retrieve the
26
34
  # notification for a specific group key-value pair.
@@ -44,7 +52,7 @@ module MetronomeSDK
44
52
  # @return [MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::SeatFilter, nil]
45
53
  optional :seat_filter, -> { MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter }
46
54
 
47
- # @!method initialize(alert_id:, customer_id:, group_values: nil, plans_or_contracts: nil, seat_filter: nil, request_options: {})
55
+ # @!method initialize(alert_id:, customer_id:, alert_specifiers: nil, group_values: nil, plans_or_contracts: nil, seat_filter: nil, request_options: {})
48
56
  # Some parameter documentations has been truncated, see
49
57
  # {MetronomeSDK::Models::V1::Customers::AlertRetrieveParams} for more details.
50
58
  #
@@ -52,6 +60,8 @@ module MetronomeSDK
52
60
  #
53
61
  # @param customer_id [String] The Metronome ID of the customer
54
62
  #
63
+ # @param alert_specifiers [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier>] Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
64
+ #
55
65
  # @param group_values [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::GroupValue>] Only present for `spend_threshold_reached` notifications. Retrieve the notificat
56
66
  #
57
67
  # @param plans_or_contracts [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::PlansOrContracts] When parallel threshold notifications are enabled during migration, this flag de
@@ -60,6 +70,122 @@ module MetronomeSDK
60
70
  #
61
71
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
62
72
 
73
+ class AlertSpecifier < MetronomeSDK::Internal::Type::BaseModel
74
+ # @!attribute custom_field_filters
75
+ # A list of custom field filters for notification types that support advanced
76
+ # filtering
77
+ #
78
+ # @return [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter>]
79
+ required :custom_field_filters,
80
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter] }
81
+
82
+ # @!attribute exclude
83
+ # If provided, the specifier will not apply to balances that matches the inclusion
84
+ # criteria and any of the excluding values.
85
+ #
86
+ # @return [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude>, nil]
87
+ optional :exclude,
88
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude] }
89
+
90
+ # @!method initialize(custom_field_filters:, exclude: nil)
91
+ # Some parameter documentations has been truncated, see
92
+ # {MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier} for
93
+ # more details.
94
+ #
95
+ # @param custom_field_filters [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter>] A list of custom field filters for notification types that support advanced filt
96
+ #
97
+ # @param exclude [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude>] If provided, the specifier will not apply to balances that matches the inclusion
98
+
99
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
100
+ # @!attribute entity
101
+ #
102
+ # @return [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity]
103
+ required :entity,
104
+ enum: -> { MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity }
105
+
106
+ # @!attribute key
107
+ #
108
+ # @return [String]
109
+ required :key, String
110
+
111
+ # @!attribute value
112
+ #
113
+ # @return [String]
114
+ required :value, String
115
+
116
+ # @!method initialize(entity:, key:, value:)
117
+ # @param entity [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity]
118
+ # @param key [String]
119
+ # @param value [String]
120
+
121
+ # @see MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter#entity
122
+ module Entity
123
+ extend MetronomeSDK::Internal::Type::Enum
124
+
125
+ CONTRACT = :Contract
126
+ COMMIT = :Commit
127
+ CONTRACT_CREDIT = :ContractCredit
128
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
129
+
130
+ # @!method self.values
131
+ # @return [Array<Symbol>]
132
+ end
133
+ end
134
+
135
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
136
+ # @!attribute custom_field_filters
137
+ # A list of custom field filters for notification types that support advanced
138
+ # filtering
139
+ #
140
+ # @return [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter>, nil]
141
+ optional :custom_field_filters,
142
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter] }
143
+
144
+ # @!method initialize(custom_field_filters: nil)
145
+ # Some parameter documentations has been truncated, see
146
+ # {MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude}
147
+ # for more details.
148
+ #
149
+ # @param custom_field_filters [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter>] A list of custom field filters for notification types that support advanced filt
150
+
151
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
152
+ # @!attribute entity
153
+ #
154
+ # @return [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity]
155
+ required :entity,
156
+ enum: -> { MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity }
157
+
158
+ # @!attribute key
159
+ #
160
+ # @return [String]
161
+ required :key, String
162
+
163
+ # @!attribute value
164
+ #
165
+ # @return [String]
166
+ required :value, String
167
+
168
+ # @!method initialize(entity:, key:, value:)
169
+ # @param entity [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity]
170
+ # @param key [String]
171
+ # @param value [String]
172
+
173
+ # @see MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter#entity
174
+ module Entity
175
+ extend MetronomeSDK::Internal::Type::Enum
176
+
177
+ CONTRACT = :Contract
178
+ COMMIT = :Commit
179
+ CONTRACT_CREDIT = :ContractCredit
180
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
181
+
182
+ # @!method self.values
183
+ # @return [Array<Symbol>]
184
+ end
185
+ end
186
+ end
187
+ end
188
+
63
189
  class GroupValue < MetronomeSDK::Internal::Type::BaseModel
64
190
  # @!attribute key
65
191
  #
@@ -69,11 +69,20 @@ module MetronomeSDK
69
69
  required :type, enum: -> { MetronomeSDK::V1::Customers::CustomerAlert::Alert::Type }
70
70
 
71
71
  # @!attribute updated_at
72
- # Timestamp for when the threshold notification was last updated
72
+ # Timestamp for when the threshold notification's customer status was last updated
73
73
  #
74
74
  # @return [Time]
75
75
  required :updated_at, Time
76
76
 
77
+ # @!attribute alert_specifiers
78
+ # Present for `low_remaining_contract_credit_and_commit_balance_reached`
79
+ # notifications. The filters that define the balances that are considered when
80
+ # evaluating the alert.
81
+ #
82
+ # @return [Array<MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier>, nil]
83
+ optional :alert_specifiers,
84
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::CustomerAlert::Alert::AlertSpecifier] }
85
+
77
86
  # @!attribute credit_grant_type_filters
78
87
  # An array of strings, representing a way to filter the credit grant this
79
88
  # threshold notification applies to, by looking at the credit_grant_type field on
@@ -133,7 +142,7 @@ module MetronomeSDK
133
142
  # @return [String, nil]
134
143
  optional :uniqueness_key, String
135
144
 
136
- # @!method initialize(id:, name:, status:, threshold:, type:, updated_at:, credit_grant_type_filters: nil, credit_type: nil, custom_field_filters: nil, group_key_filter: nil, group_values: nil, invoice_types_filter: nil, seat_filter: nil, uniqueness_key: nil)
145
+ # @!method initialize(id:, name:, status:, threshold:, type:, updated_at:, alert_specifiers: nil, credit_grant_type_filters: nil, credit_type: nil, custom_field_filters: nil, group_key_filter: nil, group_values: nil, invoice_types_filter: nil, seat_filter: nil, uniqueness_key: nil)
137
146
  # Some parameter documentations has been truncated, see
138
147
  # {MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert} for more details.
139
148
  #
@@ -147,7 +156,9 @@ module MetronomeSDK
147
156
  #
148
157
  # @param type [Symbol, MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::Type] Type of the threshold notification
149
158
  #
150
- # @param updated_at [Time] Timestamp for when the threshold notification was last updated
159
+ # @param updated_at [Time] Timestamp for when the threshold notification's customer status was last updated
160
+ #
161
+ # @param alert_specifiers [Array<MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier>] Present for `low_remaining_contract_credit_and_commit_balance_reached` notificat
151
162
  #
152
163
  # @param credit_grant_type_filters [Array<String>] An array of strings, representing a way to filter the credit grant this threshol
153
164
  #
@@ -207,6 +218,122 @@ module MetronomeSDK
207
218
  # @return [Array<Symbol>]
208
219
  end
209
220
 
221
+ class AlertSpecifier < MetronomeSDK::Internal::Type::BaseModel
222
+ # @!attribute custom_field_filters
223
+ # A list of custom field filters for notification types that support advanced
224
+ # filtering
225
+ #
226
+ # @return [Array<MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::CustomFieldFilter>, nil]
227
+ optional :custom_field_filters,
228
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::CustomerAlert::Alert::AlertSpecifier::CustomFieldFilter] }
229
+
230
+ # @!attribute exclude
231
+ # If provided, the specifier will not apply to balances that matches the inclusion
232
+ # criteria and any of the excluding values.
233
+ #
234
+ # @return [Array<MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude>, nil]
235
+ optional :exclude,
236
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude] }
237
+
238
+ # @!method initialize(custom_field_filters: nil, exclude: nil)
239
+ # Some parameter documentations has been truncated, see
240
+ # {MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier} for
241
+ # more details.
242
+ #
243
+ # @param custom_field_filters [Array<MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::CustomFieldFilter>] A list of custom field filters for notification types that support advanced filt
244
+ #
245
+ # @param exclude [Array<MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude>] If provided, the specifier will not apply to balances that matches the inclusion
246
+
247
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
248
+ # @!attribute entity
249
+ #
250
+ # @return [Symbol, MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::CustomFieldFilter::Entity]
251
+ required :entity,
252
+ enum: -> { MetronomeSDK::V1::Customers::CustomerAlert::Alert::AlertSpecifier::CustomFieldFilter::Entity }
253
+
254
+ # @!attribute key
255
+ #
256
+ # @return [String]
257
+ required :key, String
258
+
259
+ # @!attribute value
260
+ #
261
+ # @return [String, nil]
262
+ optional :value, String
263
+
264
+ # @!method initialize(entity:, key:, value: nil)
265
+ # @param entity [Symbol, MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::CustomFieldFilter::Entity]
266
+ # @param key [String]
267
+ # @param value [String]
268
+
269
+ # @see MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::CustomFieldFilter#entity
270
+ module Entity
271
+ extend MetronomeSDK::Internal::Type::Enum
272
+
273
+ CONTRACT = :Contract
274
+ COMMIT = :Commit
275
+ CONTRACT_CREDIT = :ContractCredit
276
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
277
+
278
+ # @!method self.values
279
+ # @return [Array<Symbol>]
280
+ end
281
+ end
282
+
283
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
284
+ # @!attribute custom_field_filters
285
+ # A list of custom field filters for notification types that support advanced
286
+ # filtering
287
+ #
288
+ # @return [Array<MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude::CustomFieldFilter>, nil]
289
+ optional :custom_field_filters,
290
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude::CustomFieldFilter] }
291
+
292
+ # @!method initialize(custom_field_filters: nil)
293
+ # Some parameter documentations has been truncated, see
294
+ # {MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude}
295
+ # for more details.
296
+ #
297
+ # @param custom_field_filters [Array<MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude::CustomFieldFilter>] A list of custom field filters for notification types that support advanced filt
298
+
299
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
300
+ # @!attribute entity
301
+ #
302
+ # @return [Symbol, MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude::CustomFieldFilter::Entity]
303
+ required :entity,
304
+ enum: -> { MetronomeSDK::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude::CustomFieldFilter::Entity }
305
+
306
+ # @!attribute key
307
+ #
308
+ # @return [String]
309
+ required :key, String
310
+
311
+ # @!attribute value
312
+ #
313
+ # @return [String]
314
+ required :value, String
315
+
316
+ # @!method initialize(entity:, key:, value:)
317
+ # @param entity [Symbol, MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude::CustomFieldFilter::Entity]
318
+ # @param key [String]
319
+ # @param value [String]
320
+
321
+ # @see MetronomeSDK::Models::V1::Customers::CustomerAlert::Alert::AlertSpecifier::Exclude::CustomFieldFilter#entity
322
+ module Entity
323
+ extend MetronomeSDK::Internal::Type::Enum
324
+
325
+ CONTRACT = :Contract
326
+ COMMIT = :Commit
327
+ CONTRACT_CREDIT = :ContractCredit
328
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
329
+
330
+ # @!method self.values
331
+ # @return [Array<Symbol>]
332
+ end
333
+ end
334
+ end
335
+ end
336
+
210
337
  class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
211
338
  # @!attribute entity
212
339
  #
@@ -77,7 +77,14 @@ module MetronomeSDK
77
77
  # @return [Symbol, MetronomeSDK::Models::V1::Customers::InvoiceListParams::Type, nil]
78
78
  optional :type, enum: -> { MetronomeSDK::V1::Customers::InvoiceListParams::Type }
79
79
 
80
- # @!method initialize(customer_id:, contract_id: nil, credit_type_id: nil, ending_before: nil, limit: nil, next_page: nil, skip_zero_qty_line_items: nil, sort: nil, starting_on: nil, status: nil, type: nil, request_options: {})
80
+ # @!attribute webhook_notification_id
81
+ # Indicates that this API request was triggered by a webhook notification with the
82
+ # provided ID.
83
+ #
84
+ # @return [String, nil]
85
+ optional :webhook_notification_id, String
86
+
87
+ # @!method initialize(customer_id:, contract_id: nil, credit_type_id: nil, ending_before: nil, limit: nil, next_page: nil, skip_zero_qty_line_items: nil, sort: nil, starting_on: nil, status: nil, type: nil, webhook_notification_id: nil, request_options: {})
81
88
  # Some parameter documentations has been truncated, see
82
89
  # {MetronomeSDK::Models::V1::Customers::InvoiceListParams} for more details.
83
90
  #
@@ -103,6 +110,8 @@ module MetronomeSDK
103
110
  #
104
111
  # @param type [Symbol, MetronomeSDK::Models::V1::Customers::InvoiceListParams::Type] Filter invoices by type. Defaults to returning all invoice types.
105
112
  #
113
+ # @param webhook_notification_id [String] Indicates that this API request was triggered by a webhook notification with the
114
+ #
106
115
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
107
116
 
108
117
  # Invoice sort order by issued_at, e.g. date_asc or date_desc. Defaults to
@@ -143,6 +143,8 @@ module MetronomeSDK
143
143
  PRIMARY_RED = :Primary_red
144
144
  PROGRESS_BAR = :Progress_bar
145
145
  PROGRESS_BAR_BACKGROUND = :Progress_bar_background
146
+ ACTION = :Action
147
+ ACTION_HOVER = :Action_hover
146
148
 
147
149
  # @!method self.values
148
150
  # @return [Array<Symbol>]