metronome-sdk 2.1.0 → 3.0.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 (148) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +65 -0
  3. data/README.md +10 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +7 -1
  5. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +18 -12
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/commit.rb +69 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +45 -2
  9. data/lib/metronome_sdk/models/credit.rb +69 -1
  10. data/lib/metronome_sdk/models/rate.rb +1 -11
  11. data/lib/metronome_sdk/models/subscription.rb +32 -5
  12. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  13. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  14. data/lib/metronome_sdk/models/v1/contract_create_params.rb +136 -20
  15. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +1 -11
  16. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +1 -11
  17. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +1 -11
  18. data/lib/metronome_sdk/models/v1/custom_field_add_key_params.rb +4 -0
  19. data/lib/metronome_sdk/models/v1/custom_field_delete_values_params.rb +4 -0
  20. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +4 -0
  21. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +4 -0
  22. data/lib/metronome_sdk/models/v1/custom_field_remove_key_params.rb +4 -0
  23. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +4 -0
  24. data/lib/metronome_sdk/models/v1/customer_create_params.rb +94 -2
  25. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  26. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  27. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +15 -1
  28. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +15 -1
  29. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +33 -1
  30. data/lib/metronome_sdk/models/v1/customers/invoice.rb +71 -3
  31. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  32. data/lib/metronome_sdk/models/v1/payment.rb +40 -1
  33. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +10 -1
  34. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +1 -0
  35. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  36. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  37. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  38. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +285 -22
  39. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  40. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  41. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -3
  42. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +1 -1
  43. data/lib/metronome_sdk/resources/v1/contracts.rb +6 -2
  44. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  45. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +8 -4
  46. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +7 -7
  47. data/lib/metronome_sdk/resources/v1/customers/plans.rb +5 -5
  48. data/lib/metronome_sdk/resources/v1/customers.rb +12 -10
  49. data/lib/metronome_sdk/resources/v1/plans.rb +2 -2
  50. data/lib/metronome_sdk/resources/v1/settings.rb +3 -1
  51. data/lib/metronome_sdk/resources/v1/usage.rb +7 -7
  52. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  53. data/lib/metronome_sdk/version.rb +1 -1
  54. data/lib/metronome_sdk.rb +3 -0
  55. data/manifest.yaml +2 -0
  56. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  57. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  58. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  59. data/rbi/metronome_sdk/models/commit.rbi +171 -0
  60. data/rbi/metronome_sdk/models/contract_v2.rbi +85 -6
  61. data/rbi/metronome_sdk/models/credit.rbi +171 -0
  62. data/rbi/metronome_sdk/models/rate.rbi +3 -18
  63. data/rbi/metronome_sdk/models/subscription.rbi +55 -9
  64. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  65. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +288 -24
  67. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +3 -18
  68. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +0 -15
  69. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +3 -18
  70. data/rbi/metronome_sdk/models/v1/custom_field_add_key_params.rbi +20 -0
  71. data/rbi/metronome_sdk/models/v1/custom_field_delete_values_params.rbi +20 -0
  72. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_params.rbi +20 -0
  73. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +20 -0
  74. data/rbi/metronome_sdk/models/v1/custom_field_remove_key_params.rbi +20 -0
  75. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +20 -0
  76. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +204 -0
  77. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  78. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  79. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +18 -0
  80. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +18 -0
  81. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +71 -0
  82. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +121 -0
  83. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  84. data/rbi/metronome_sdk/models/v1/payment.rbi +79 -0
  85. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +13 -0
  86. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +5 -0
  87. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  88. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  89. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  90. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +616 -27
  91. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  92. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  93. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +0 -5
  94. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +1 -1
  95. data/rbi/metronome_sdk/resources/v1/contracts.rbi +9 -0
  96. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  97. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +9 -3
  98. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -7
  99. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +5 -5
  100. data/rbi/metronome_sdk/resources/v1/customers.rbi +15 -8
  101. data/rbi/metronome_sdk/resources/v1/plans.rbi +2 -2
  102. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  103. data/rbi/metronome_sdk/resources/v1/usage.rbi +7 -7
  104. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  105. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  106. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  107. data/sig/metronome_sdk/models/commit.rbs +74 -0
  108. data/sig/metronome_sdk/models/contract_v2.rbs +45 -6
  109. data/sig/metronome_sdk/models/credit.rbs +74 -0
  110. data/sig/metronome_sdk/models/rate.rbs +3 -10
  111. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  112. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  113. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  114. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  115. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +3 -10
  116. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +1 -8
  117. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +3 -10
  118. data/sig/metronome_sdk/models/v1/custom_field_add_key_params.rbs +8 -0
  119. data/sig/metronome_sdk/models/v1/custom_field_delete_values_params.rbs +8 -0
  120. data/sig/metronome_sdk/models/v1/custom_field_list_keys_params.rbs +8 -0
  121. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +8 -0
  122. data/sig/metronome_sdk/models/v1/custom_field_remove_key_params.rbs +8 -0
  123. data/sig/metronome_sdk/models/v1/custom_field_set_values_params.rbs +8 -0
  124. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +83 -0
  125. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  126. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  127. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +14 -0
  128. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  129. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +30 -0
  130. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +64 -0
  131. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  132. data/sig/metronome_sdk/models/v1/payment.rbs +45 -0
  133. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +8 -1
  134. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +3 -1
  135. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  136. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  137. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  138. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +232 -3
  139. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  140. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  141. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +0 -1
  142. data/sig/metronome_sdk/resources/v1/contracts.rbs +2 -0
  143. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  144. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  145. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  146. data/sig/metronome_sdk/resources/v1/settings.rbs +1 -0
  147. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  148. metadata +19 -2
@@ -151,6 +151,26 @@ module MetronomeSDK
151
151
  :subscription,
152
152
  MetronomeSDK::V1::CustomFieldRemoveKeyParams::Entity::TaggedSymbol
153
153
  )
154
+ PACKAGE_COMMIT =
155
+ T.let(
156
+ :package_commit,
157
+ MetronomeSDK::V1::CustomFieldRemoveKeyParams::Entity::TaggedSymbol
158
+ )
159
+ PACKAGE_CREDIT =
160
+ T.let(
161
+ :package_credit,
162
+ MetronomeSDK::V1::CustomFieldRemoveKeyParams::Entity::TaggedSymbol
163
+ )
164
+ PACKAGE_SUBSCRIPTION =
165
+ T.let(
166
+ :package_subscription,
167
+ MetronomeSDK::V1::CustomFieldRemoveKeyParams::Entity::TaggedSymbol
168
+ )
169
+ PACKAGE_SCHEDULED_CHARGE =
170
+ T.let(
171
+ :package_scheduled_charge,
172
+ MetronomeSDK::V1::CustomFieldRemoveKeyParams::Entity::TaggedSymbol
173
+ )
154
174
 
155
175
  sig do
156
176
  override.returns(
@@ -163,6 +163,26 @@ module MetronomeSDK
163
163
  :subscription,
164
164
  MetronomeSDK::V1::CustomFieldSetValuesParams::Entity::TaggedSymbol
165
165
  )
166
+ PACKAGE_COMMIT =
167
+ T.let(
168
+ :package_commit,
169
+ MetronomeSDK::V1::CustomFieldSetValuesParams::Entity::TaggedSymbol
170
+ )
171
+ PACKAGE_CREDIT =
172
+ T.let(
173
+ :package_credit,
174
+ MetronomeSDK::V1::CustomFieldSetValuesParams::Entity::TaggedSymbol
175
+ )
176
+ PACKAGE_SUBSCRIPTION =
177
+ T.let(
178
+ :package_subscription,
179
+ MetronomeSDK::V1::CustomFieldSetValuesParams::Entity::TaggedSymbol
180
+ )
181
+ PACKAGE_SCHEDULED_CHARGE =
182
+ T.let(
183
+ :package_scheduled_charge,
184
+ MetronomeSDK::V1::CustomFieldSetValuesParams::Entity::TaggedSymbol
185
+ )
166
186
 
167
187
  sig do
168
188
  override.returns(
@@ -62,6 +62,27 @@ module MetronomeSDK
62
62
  end
63
63
  attr_writer :customer_billing_provider_configurations
64
64
 
65
+ sig do
66
+ returns(
67
+ T.nilable(
68
+ T::Array[
69
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration
70
+ ]
71
+ )
72
+ )
73
+ end
74
+ attr_reader :customer_revenue_system_configurations
75
+
76
+ sig do
77
+ params(
78
+ customer_revenue_system_configurations:
79
+ T::Array[
80
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::OrHash
81
+ ]
82
+ ).void
83
+ end
84
+ attr_writer :customer_revenue_system_configurations
85
+
65
86
  # (deprecated, use ingest_aliases instead) an alias that can be used to refer to
66
87
  # this customer in usage events
67
88
  sig { returns(T.nilable(String)) }
@@ -87,6 +108,10 @@ module MetronomeSDK
87
108
  T::Array[
88
109
  MetronomeSDK::V1::CustomerCreateParams::CustomerBillingProviderConfiguration::OrHash
89
110
  ],
111
+ customer_revenue_system_configurations:
112
+ T::Array[
113
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::OrHash
114
+ ],
90
115
  external_id: String,
91
116
  ingest_aliases: T::Array[String],
92
117
  request_options: MetronomeSDK::RequestOptions::OrHash
@@ -99,6 +124,7 @@ module MetronomeSDK
99
124
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
100
125
  custom_fields: nil,
101
126
  customer_billing_provider_configurations: nil,
127
+ customer_revenue_system_configurations: nil,
102
128
  # (deprecated, use ingest_aliases instead) an alias that can be used to refer to
103
129
  # this customer in usage events
104
130
  external_id: nil,
@@ -119,6 +145,10 @@ module MetronomeSDK
119
145
  T::Array[
120
146
  MetronomeSDK::V1::CustomerCreateParams::CustomerBillingProviderConfiguration
121
147
  ],
148
+ customer_revenue_system_configurations:
149
+ T::Array[
150
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration
151
+ ],
122
152
  external_id: String,
123
153
  ingest_aliases: T::Array[String],
124
154
  request_options: MetronomeSDK::RequestOptions
@@ -147,6 +177,18 @@ module MetronomeSDK
147
177
  end
148
178
  attr_accessor :billing_provider_type
149
179
 
180
+ sig { returns(T.nilable(String)) }
181
+ attr_reader :aws_customer_account_id
182
+
183
+ sig { params(aws_customer_account_id: String).void }
184
+ attr_writer :aws_customer_account_id
185
+
186
+ sig { returns(T.nilable(String)) }
187
+ attr_reader :aws_customer_id
188
+
189
+ sig { params(aws_customer_id: String).void }
190
+ attr_writer :aws_customer_id
191
+
150
192
  # True if the aws_product_code is a SAAS subscription product, false otherwise.
151
193
  sig { returns(T.nilable(T::Boolean)) }
152
194
  attr_reader :aws_is_subscription_product
@@ -201,6 +243,8 @@ module MetronomeSDK
201
243
  billing_provider_customer_id: String,
202
244
  billing_provider_type:
203
245
  MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::OrSymbol,
246
+ aws_customer_account_id: String,
247
+ aws_customer_id: String,
204
248
  aws_is_subscription_product: T::Boolean,
205
249
  aws_product_code: String,
206
250
  aws_region:
@@ -212,6 +256,8 @@ module MetronomeSDK
212
256
  def self.new(
213
257
  billing_provider_customer_id:,
214
258
  billing_provider_type:,
259
+ aws_customer_account_id: nil,
260
+ aws_customer_id: nil,
215
261
  # True if the aws_product_code is a SAAS subscription product, false otherwise.
216
262
  aws_is_subscription_product: nil,
217
263
  aws_product_code: nil,
@@ -228,6 +274,8 @@ module MetronomeSDK
228
274
  billing_provider_customer_id: String,
229
275
  billing_provider_type:
230
276
  MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::OrSymbol,
277
+ aws_customer_account_id: String,
278
+ aws_customer_id: String,
231
279
  aws_is_subscription_product: T::Boolean,
232
280
  aws_product_code: String,
233
281
  aws_region:
@@ -770,6 +818,162 @@ module MetronomeSDK
770
818
  end
771
819
  end
772
820
  end
821
+
822
+ class CustomerRevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
823
+ OrHash =
824
+ T.type_alias do
825
+ T.any(
826
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration,
827
+ MetronomeSDK::Internal::AnyHash
828
+ )
829
+ end
830
+
831
+ # The revenue system provider set for this configuration.
832
+ sig do
833
+ returns(
834
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::OrSymbol
835
+ )
836
+ end
837
+ attr_accessor :provider
838
+
839
+ # Configuration for the revenue system provider. The structure of this object is
840
+ # specific to the revenue system provider. For NetSuite, this should contain
841
+ # `netsuite_customer_id`.
842
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
843
+ attr_reader :configuration
844
+
845
+ sig { params(configuration: T::Hash[Symbol, T.anything]).void }
846
+ attr_writer :configuration
847
+
848
+ # The method to use for delivering invoices to this customer. If not provided, the
849
+ # `delivery_method_id` must be provided.
850
+ sig do
851
+ returns(
852
+ T.nilable(
853
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::OrSymbol
854
+ )
855
+ )
856
+ end
857
+ attr_reader :delivery_method
858
+
859
+ sig do
860
+ params(
861
+ delivery_method:
862
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::OrSymbol
863
+ ).void
864
+ end
865
+ attr_writer :delivery_method
866
+
867
+ # ID of the delivery method to use for this customer. If not provided, the
868
+ # `delivery_method` must be provided.
869
+ sig { returns(T.nilable(String)) }
870
+ attr_reader :delivery_method_id
871
+
872
+ sig { params(delivery_method_id: String).void }
873
+ attr_writer :delivery_method_id
874
+
875
+ sig do
876
+ params(
877
+ provider:
878
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::OrSymbol,
879
+ configuration: T::Hash[Symbol, T.anything],
880
+ delivery_method:
881
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::OrSymbol,
882
+ delivery_method_id: String
883
+ ).returns(T.attached_class)
884
+ end
885
+ def self.new(
886
+ # The revenue system provider set for this configuration.
887
+ provider:,
888
+ # Configuration for the revenue system provider. The structure of this object is
889
+ # specific to the revenue system provider. For NetSuite, this should contain
890
+ # `netsuite_customer_id`.
891
+ configuration: nil,
892
+ # The method to use for delivering invoices to this customer. If not provided, the
893
+ # `delivery_method_id` must be provided.
894
+ delivery_method: nil,
895
+ # ID of the delivery method to use for this customer. If not provided, the
896
+ # `delivery_method` must be provided.
897
+ delivery_method_id: nil
898
+ )
899
+ end
900
+
901
+ sig do
902
+ override.returns(
903
+ {
904
+ provider:
905
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::OrSymbol,
906
+ configuration: T::Hash[Symbol, T.anything],
907
+ delivery_method:
908
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::OrSymbol,
909
+ delivery_method_id: String
910
+ }
911
+ )
912
+ end
913
+ def to_hash
914
+ end
915
+
916
+ # The revenue system provider set for this configuration.
917
+ module Provider
918
+ extend MetronomeSDK::Internal::Type::Enum
919
+
920
+ TaggedSymbol =
921
+ T.type_alias do
922
+ T.all(
923
+ Symbol,
924
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider
925
+ )
926
+ end
927
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
928
+
929
+ NETSUITE =
930
+ T.let(
931
+ :netsuite,
932
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::TaggedSymbol
933
+ )
934
+
935
+ sig do
936
+ override.returns(
937
+ T::Array[
938
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::TaggedSymbol
939
+ ]
940
+ )
941
+ end
942
+ def self.values
943
+ end
944
+ end
945
+
946
+ # The method to use for delivering invoices to this customer. If not provided, the
947
+ # `delivery_method_id` must be provided.
948
+ module DeliveryMethod
949
+ extend MetronomeSDK::Internal::Type::Enum
950
+
951
+ TaggedSymbol =
952
+ T.type_alias do
953
+ T.all(
954
+ Symbol,
955
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod
956
+ )
957
+ end
958
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
959
+
960
+ DIRECT_TO_BILLING_PROVIDER =
961
+ T.let(
962
+ :direct_to_billing_provider,
963
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
964
+ )
965
+
966
+ sig do
967
+ override.returns(
968
+ T::Array[
969
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
970
+ ]
971
+ )
972
+ end
973
+ def self.values
974
+ end
975
+ end
976
+ end
773
977
  end
774
978
  end
775
979
  end
@@ -0,0 +1,281 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class CustomerSetBillingConfigurationsResponse < MetronomeSDK::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse,
11
+ MetronomeSDK::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig do
16
+ returns(
17
+ T::Array[
18
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data
19
+ ]
20
+ )
21
+ end
22
+ attr_accessor :data
23
+
24
+ sig do
25
+ params(
26
+ data:
27
+ T::Array[
28
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::OrHash
29
+ ]
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(data:)
33
+ end
34
+
35
+ sig do
36
+ override.returns(
37
+ {
38
+ data:
39
+ T::Array[
40
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data
41
+ ]
42
+ }
43
+ )
44
+ end
45
+ def to_hash
46
+ end
47
+
48
+ class Data < MetronomeSDK::Internal::Type::BaseModel
49
+ OrHash =
50
+ T.type_alias do
51
+ T.any(
52
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data,
53
+ MetronomeSDK::Internal::AnyHash
54
+ )
55
+ end
56
+
57
+ # ID of the created configuration
58
+ sig { returns(T.nilable(String)) }
59
+ attr_reader :id
60
+
61
+ sig { params(id: String).void }
62
+ attr_writer :id
63
+
64
+ # The billing provider set for this configuration.
65
+ sig do
66
+ returns(
67
+ T.nilable(
68
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
69
+ )
70
+ )
71
+ end
72
+ attr_reader :billing_provider
73
+
74
+ sig do
75
+ params(
76
+ billing_provider:
77
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::OrSymbol
78
+ ).void
79
+ end
80
+ attr_writer :billing_provider
81
+
82
+ # Configuration for the billing provider. The structure of this object is specific
83
+ # to the billing provider and delivery method combination.
84
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
85
+ attr_reader :configuration
86
+
87
+ sig { params(configuration: T::Hash[Symbol, T.anything]).void }
88
+ attr_writer :configuration
89
+
90
+ # ID of the customer this configuration is associated with.
91
+ sig { returns(T.nilable(String)) }
92
+ attr_reader :customer_id
93
+
94
+ sig { params(customer_id: String).void }
95
+ attr_writer :customer_id
96
+
97
+ # ID of the delivery method used for this customer configuration.
98
+ sig { returns(T.nilable(String)) }
99
+ attr_reader :delivery_method_id
100
+
101
+ sig { params(delivery_method_id: String).void }
102
+ attr_writer :delivery_method_id
103
+
104
+ # The tax provider set for this configuration.
105
+ sig do
106
+ returns(
107
+ T.nilable(
108
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
109
+ )
110
+ )
111
+ end
112
+ attr_reader :tax_provider
113
+
114
+ sig do
115
+ params(
116
+ tax_provider:
117
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::OrSymbol
118
+ ).void
119
+ end
120
+ attr_writer :tax_provider
121
+
122
+ sig do
123
+ params(
124
+ id: String,
125
+ billing_provider:
126
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::OrSymbol,
127
+ configuration: T::Hash[Symbol, T.anything],
128
+ customer_id: String,
129
+ delivery_method_id: String,
130
+ tax_provider:
131
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::OrSymbol
132
+ ).returns(T.attached_class)
133
+ end
134
+ def self.new(
135
+ # ID of the created configuration
136
+ id: nil,
137
+ # The billing provider set for this configuration.
138
+ billing_provider: nil,
139
+ # Configuration for the billing provider. The structure of this object is specific
140
+ # to the billing provider and delivery method combination.
141
+ configuration: nil,
142
+ # ID of the customer this configuration is associated with.
143
+ customer_id: nil,
144
+ # ID of the delivery method used for this customer configuration.
145
+ delivery_method_id: nil,
146
+ # The tax provider set for this configuration.
147
+ tax_provider: nil
148
+ )
149
+ end
150
+
151
+ sig do
152
+ override.returns(
153
+ {
154
+ id: String,
155
+ billing_provider:
156
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol,
157
+ configuration: T::Hash[Symbol, T.anything],
158
+ customer_id: String,
159
+ delivery_method_id: String,
160
+ tax_provider:
161
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
162
+ }
163
+ )
164
+ end
165
+ def to_hash
166
+ end
167
+
168
+ # The billing provider set for this configuration.
169
+ module BillingProvider
170
+ extend MetronomeSDK::Internal::Type::Enum
171
+
172
+ TaggedSymbol =
173
+ T.type_alias do
174
+ T.all(
175
+ Symbol,
176
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider
177
+ )
178
+ end
179
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
180
+
181
+ AWS_MARKETPLACE =
182
+ T.let(
183
+ :aws_marketplace,
184
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
185
+ )
186
+ STRIPE =
187
+ T.let(
188
+ :stripe,
189
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
190
+ )
191
+ NETSUITE =
192
+ T.let(
193
+ :netsuite,
194
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
195
+ )
196
+ CUSTOM =
197
+ T.let(
198
+ :custom,
199
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
200
+ )
201
+ AZURE_MARKETPLACE =
202
+ T.let(
203
+ :azure_marketplace,
204
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
205
+ )
206
+ QUICKBOOKS_ONLINE =
207
+ T.let(
208
+ :quickbooks_online,
209
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
210
+ )
211
+ WORKDAY =
212
+ T.let(
213
+ :workday,
214
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
215
+ )
216
+ GCP_MARKETPLACE =
217
+ T.let(
218
+ :gcp_marketplace,
219
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
220
+ )
221
+ METRONOME =
222
+ T.let(
223
+ :metronome,
224
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
225
+ )
226
+
227
+ sig do
228
+ override.returns(
229
+ T::Array[
230
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
231
+ ]
232
+ )
233
+ end
234
+ def self.values
235
+ end
236
+ end
237
+
238
+ # The tax provider set for this configuration.
239
+ module TaxProvider
240
+ extend MetronomeSDK::Internal::Type::Enum
241
+
242
+ TaggedSymbol =
243
+ T.type_alias do
244
+ T.all(
245
+ Symbol,
246
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider
247
+ )
248
+ end
249
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
250
+
251
+ ANROK =
252
+ T.let(
253
+ :anrok,
254
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
255
+ )
256
+ AVALARA =
257
+ T.let(
258
+ :avalara,
259
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
260
+ )
261
+ STRIPE =
262
+ T.let(
263
+ :stripe,
264
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
265
+ )
266
+
267
+ sig do
268
+ override.returns(
269
+ T::Array[
270
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
271
+ ]
272
+ )
273
+ end
274
+ def self.values
275
+ end
276
+ end
277
+ end
278
+ end
279
+ end
280
+ end
281
+ end
@@ -66,6 +66,25 @@ module MetronomeSDK
66
66
  end
67
67
  attr_writer :plans_or_contracts
68
68
 
69
+ # Only allowed for `low_remaining_seat_balance_reached` notifications. This
70
+ # filters alerts by the seat group key-value pair.
71
+ sig do
72
+ returns(
73
+ T.nilable(
74
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter
75
+ )
76
+ )
77
+ end
78
+ attr_reader :seat_filter
79
+
80
+ sig do
81
+ params(
82
+ seat_filter:
83
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter::OrHash
84
+ ).void
85
+ end
86
+ attr_writer :seat_filter
87
+
69
88
  sig do
70
89
  params(
71
90
  alert_id: String,
@@ -76,6 +95,8 @@ module MetronomeSDK
76
95
  ],
77
96
  plans_or_contracts:
78
97
  MetronomeSDK::V1::Customers::AlertRetrieveParams::PlansOrContracts::OrSymbol,
98
+ seat_filter:
99
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter::OrHash,
79
100
  request_options: MetronomeSDK::RequestOptions::OrHash
80
101
  ).returns(T.attached_class)
81
102
  end
@@ -90,6 +111,9 @@ module MetronomeSDK
90
111
  # When parallel threshold notifications are enabled during migration, this flag
91
112
  # denotes whether to fetch notifications for plans or contracts.
92
113
  plans_or_contracts: nil,
114
+ # Only allowed for `low_remaining_seat_balance_reached` notifications. This
115
+ # filters alerts by the seat group key-value pair.
116
+ seat_filter: nil,
93
117
  request_options: {}
94
118
  )
95
119
  end
@@ -105,6 +129,8 @@ module MetronomeSDK
105
129
  ],
106
130
  plans_or_contracts:
107
131
  MetronomeSDK::V1::Customers::AlertRetrieveParams::PlansOrContracts::OrSymbol,
132
+ seat_filter:
133
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter,
108
134
  request_options: MetronomeSDK::RequestOptions
109
135
  }
110
136
  )
@@ -173,6 +199,47 @@ module MetronomeSDK
173
199
  def self.values
174
200
  end
175
201
  end
202
+
203
+ class SeatFilter < MetronomeSDK::Internal::Type::BaseModel
204
+ OrHash =
205
+ T.type_alias do
206
+ T.any(
207
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter,
208
+ MetronomeSDK::Internal::AnyHash
209
+ )
210
+ end
211
+
212
+ # The seat group key (e.g., "seat_id", "user_id")
213
+ sig { returns(String) }
214
+ attr_accessor :seat_group_key
215
+
216
+ # The specific seat identifier to filter by
217
+ sig { returns(String) }
218
+ attr_accessor :seat_group_value
219
+
220
+ # Only allowed for `low_remaining_seat_balance_reached` notifications. This
221
+ # filters alerts by the seat group key-value pair.
222
+ sig do
223
+ params(seat_group_key: String, seat_group_value: String).returns(
224
+ T.attached_class
225
+ )
226
+ end
227
+ def self.new(
228
+ # The seat group key (e.g., "seat_id", "user_id")
229
+ seat_group_key:,
230
+ # The specific seat identifier to filter by
231
+ seat_group_value:
232
+ )
233
+ end
234
+
235
+ sig do
236
+ override.returns(
237
+ { seat_group_key: String, seat_group_value: String }
238
+ )
239
+ end
240
+ def to_hash
241
+ end
242
+ end
176
243
  end
177
244
  end
178
245
  end