metronome-sdk 2.0.0 → 2.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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +75 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +7 -1
  5. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +38 -26
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/contract.rb +1 -0
  8. data/lib/metronome_sdk/models/contract_v2.rb +69 -23
  9. data/lib/metronome_sdk/models/hierarchy_configuration.rb +45 -21
  10. data/lib/metronome_sdk/models/subscription.rb +38 -1
  11. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  12. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  13. data/lib/metronome_sdk/models/v1/contract_create_params.rb +195 -29
  14. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  15. data/lib/metronome_sdk/models/v1/customer_create_params.rb +105 -3
  16. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +14 -10
  17. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +1 -0
  18. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +1 -0
  19. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  21. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +21 -2
  22. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +1 -0
  23. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +21 -2
  25. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +1 -1
  26. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +34 -1
  27. data/lib/metronome_sdk/models/v1/customers/invoice.rb +144 -4
  28. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  29. data/lib/metronome_sdk/models/v1/payment.rb +7 -1
  30. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +74 -0
  31. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rb +12 -0
  32. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +74 -0
  33. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_response.rb +31 -0
  34. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_params.rb +26 -0
  35. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_response.rb +105 -0
  36. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  37. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  38. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  39. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +300 -10
  40. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  41. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  42. data/lib/metronome_sdk/resources/v1/contracts.rb +10 -4
  43. data/lib/metronome_sdk/resources/v1/credit_grants.rb +10 -5
  44. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  45. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +12 -5
  46. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -1
  47. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -1
  48. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -4
  49. data/lib/metronome_sdk/resources/v1/customers.rb +12 -8
  50. data/lib/metronome_sdk/resources/v1/plans.rb +8 -4
  51. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +75 -0
  52. data/lib/metronome_sdk/resources/v1/settings.rb +57 -0
  53. data/lib/metronome_sdk/resources/v1.rb +4 -0
  54. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  55. data/lib/metronome_sdk/version.rb +1 -1
  56. data/lib/metronome_sdk.rb +11 -0
  57. data/manifest.yaml +2 -0
  58. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  59. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  60. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  61. data/rbi/metronome_sdk/models/contract.rbi +5 -0
  62. data/rbi/metronome_sdk/models/contract_v2.rbi +122 -33
  63. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +63 -27
  64. data/rbi/metronome_sdk/models/subscription.rbi +64 -3
  65. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  66. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  67. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +360 -33
  68. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  69. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +215 -0
  70. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +18 -11
  71. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +5 -0
  72. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +5 -0
  73. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  74. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  75. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +29 -0
  76. data/rbi/metronome_sdk/models/v1/customers/billing_config_delete_params.rbi +5 -0
  77. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbi +5 -0
  78. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +24 -0
  79. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +2 -2
  80. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +76 -0
  81. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +268 -0
  82. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  83. data/rbi/metronome_sdk/models/v1/payment.rbi +11 -3
  84. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +128 -0
  85. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbi +25 -0
  86. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +162 -0
  87. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_response.rbi +75 -0
  88. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_params.rbi +50 -0
  89. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_response.rbi +245 -0
  90. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  91. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  92. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  93. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +630 -9
  94. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  95. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  96. data/rbi/metronome_sdk/resources/v1/contracts.rbi +13 -1
  97. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +10 -5
  98. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  99. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +14 -4
  100. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -2
  101. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +2 -1
  102. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +8 -4
  103. data/rbi/metronome_sdk/resources/v1/customers.rbi +19 -9
  104. data/rbi/metronome_sdk/resources/v1/plans.rbi +8 -4
  105. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +63 -0
  106. data/rbi/metronome_sdk/resources/v1/settings.rbi +51 -0
  107. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  108. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  109. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  110. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  111. data/sig/metronome_sdk/models/contract.rbs +2 -0
  112. data/sig/metronome_sdk/models/contract_v2.rbs +33 -6
  113. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  114. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  115. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  116. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  117. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  118. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +85 -0
  119. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +2 -0
  120. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +2 -0
  121. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  122. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  123. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +16 -0
  124. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +2 -0
  125. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +2 -0
  126. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  127. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +32 -0
  128. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +130 -0
  129. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  130. data/sig/metronome_sdk/models/v1/payment.rbs +10 -3
  131. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +61 -0
  132. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbs +13 -0
  133. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +66 -0
  134. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_response.rbs +34 -0
  135. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_params.rbs +28 -0
  136. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_response.rbs +102 -0
  137. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  138. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  139. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  140. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +234 -3
  141. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  142. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  143. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -0
  144. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  145. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  146. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  147. data/sig/metronome_sdk/resources/v1/settings/billing_providers.rbs +23 -0
  148. data/sig/metronome_sdk/resources/v1/settings.rbs +20 -0
  149. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  150. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  151. metadata +29 -2
@@ -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
@@ -177,6 +219,8 @@ module MetronomeSDK
177
219
  end
178
220
  attr_writer :aws_region
179
221
 
222
+ # The collection method for the customer's invoices. NOTE:
223
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
180
224
  sig do
181
225
  returns(
182
226
  T.nilable(
@@ -199,6 +243,8 @@ module MetronomeSDK
199
243
  billing_provider_customer_id: String,
200
244
  billing_provider_type:
201
245
  MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::OrSymbol,
246
+ aws_customer_account_id: String,
247
+ aws_customer_id: String,
202
248
  aws_is_subscription_product: T::Boolean,
203
249
  aws_product_code: String,
204
250
  aws_region:
@@ -210,10 +256,14 @@ module MetronomeSDK
210
256
  def self.new(
211
257
  billing_provider_customer_id:,
212
258
  billing_provider_type:,
259
+ aws_customer_account_id: nil,
260
+ aws_customer_id: nil,
213
261
  # True if the aws_product_code is a SAAS subscription product, false otherwise.
214
262
  aws_is_subscription_product: nil,
215
263
  aws_product_code: nil,
216
264
  aws_region: nil,
265
+ # The collection method for the customer's invoices. NOTE:
266
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
217
267
  stripe_collection_method: nil
218
268
  )
219
269
  end
@@ -224,6 +274,8 @@ module MetronomeSDK
224
274
  billing_provider_customer_id: String,
225
275
  billing_provider_type:
226
276
  MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::OrSymbol,
277
+ aws_customer_account_id: String,
278
+ aws_customer_id: String,
227
279
  aws_is_subscription_product: T::Boolean,
228
280
  aws_product_code: String,
229
281
  aws_region:
@@ -288,6 +340,11 @@ module MetronomeSDK
288
340
  :gcp_marketplace,
289
341
  MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::TaggedSymbol
290
342
  )
343
+ METRONOME =
344
+ T.let(
345
+ :metronome,
346
+ MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::TaggedSymbol
347
+ )
291
348
 
292
349
  sig do
293
350
  override.returns(
@@ -449,6 +506,8 @@ module MetronomeSDK
449
506
  end
450
507
  end
451
508
 
509
+ # The collection method for the customer's invoices. NOTE:
510
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
452
511
  module StripeCollectionMethod
453
512
  extend MetronomeSDK::Internal::Type::Enum
454
513
 
@@ -759,6 +818,162 @@ module MetronomeSDK
759
818
  end
760
819
  end
761
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
762
977
  end
763
978
  end
764
979
  end
@@ -18,6 +18,8 @@ module MetronomeSDK
18
18
  sig { returns(String) }
19
19
  attr_accessor :customer_id
20
20
 
21
+ # Array of usage events to include in the preview calculation. Must contain at
22
+ # least one event in `merge` mode.
21
23
  sig do
22
24
  returns(
23
25
  T::Array[MetronomeSDK::V1::CustomerPreviewEventsParams::Event]
@@ -25,9 +27,10 @@ module MetronomeSDK
25
27
  end
26
28
  attr_accessor :events
27
29
 
28
- # If set to "replace", the preview will be generated as if those were the only
29
- # events for the specified customer. If set to "merge", the events will be merged
30
- # with any existing events for the specified customer. Defaults to "replace".
30
+ # Controls how the provided events are combined with existing usage data. Use
31
+ # `replace` to calculate the preview as if these are the only events for the
32
+ # customer, ignoring all historical usage. Use `merge` to combine these events
33
+ # with the customer's existing usage. Defaults to `replace`.
31
34
  sig do
32
35
  returns(
33
36
  T.nilable(
@@ -44,7 +47,7 @@ module MetronomeSDK
44
47
  end
45
48
  attr_writer :mode
46
49
 
47
- # If set, all zero quantity line items will be filtered out of the response.
50
+ # When `true`, line items with zero quantity are excluded from the response.
48
51
  sig { returns(T.nilable(T::Boolean)) }
49
52
  attr_reader :skip_zero_qty_line_items
50
53
 
@@ -65,12 +68,15 @@ module MetronomeSDK
65
68
  end
66
69
  def self.new(
67
70
  customer_id:,
71
+ # Array of usage events to include in the preview calculation. Must contain at
72
+ # least one event in `merge` mode.
68
73
  events:,
69
- # If set to "replace", the preview will be generated as if those were the only
70
- # events for the specified customer. If set to "merge", the events will be merged
71
- # with any existing events for the specified customer. Defaults to "replace".
74
+ # Controls how the provided events are combined with existing usage data. Use
75
+ # `replace` to calculate the preview as if these are the only events for the
76
+ # customer, ignoring all historical usage. Use `merge` to combine these events
77
+ # with the customer's existing usage. Defaults to `replace`.
72
78
  mode: nil,
73
- # If set, all zero quantity line items will be filtered out of the response.
79
+ # When `true`, line items with zero quantity are excluded from the response.
74
80
  skip_zero_qty_line_items: nil,
75
81
  request_options: {}
76
82
  )
@@ -160,9 +166,10 @@ module MetronomeSDK
160
166
  end
161
167
  end
162
168
 
163
- # If set to "replace", the preview will be generated as if those were the only
164
- # events for the specified customer. If set to "merge", the events will be merged
165
- # with any existing events for the specified customer. Defaults to "replace".
169
+ # Controls how the provided events are combined with existing usage data. Use
170
+ # `replace` to calculate the preview as if these are the only events for the
171
+ # customer, ignoring all historical usage. Use `merge` to combine these events
172
+ # with the customer's existing usage. Defaults to `replace`.
166
173
  module Mode
167
174
  extend MetronomeSDK::Internal::Type::Enum
168
175
 
@@ -202,6 +202,11 @@ module MetronomeSDK
202
202
  :gcp_marketplace,
203
203
  MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
204
204
  )
205
+ METRONOME =
206
+ T.let(
207
+ :metronome,
208
+ MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
209
+ )
205
210
 
206
211
  sig do
207
212
  override.returns(
@@ -241,6 +241,11 @@ module MetronomeSDK
241
241
  :gcp_marketplace,
242
242
  MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider::TaggedSymbol
243
243
  )
244
+ METRONOME =
245
+ T.let(
246
+ :metronome,
247
+ MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider::TaggedSymbol
248
+ )
244
249
 
245
250
  sig do
246
251
  override.returns(
@@ -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