metronome-sdk 2.1.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -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 +18 -12
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/contract_v2.rb +29 -2
  8. data/lib/metronome_sdk/models/subscription.rb +32 -5
  9. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  10. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  11. data/lib/metronome_sdk/models/v1/contract_create_params.rb +136 -20
  12. data/lib/metronome_sdk/models/v1/customer_create_params.rb +94 -2
  13. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  14. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  15. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +15 -1
  16. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +15 -1
  17. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +33 -1
  18. data/lib/metronome_sdk/models/v1/customers/invoice.rb +20 -2
  19. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  20. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +10 -1
  21. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +1 -0
  22. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  23. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  24. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  25. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +285 -22
  26. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  27. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  28. data/lib/metronome_sdk/resources/v1/contracts.rb +6 -2
  29. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  30. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +5 -1
  31. data/lib/metronome_sdk/resources/v1/customers.rb +5 -3
  32. data/lib/metronome_sdk/resources/v1/settings.rb +3 -1
  33. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  34. data/lib/metronome_sdk/version.rb +1 -1
  35. data/lib/metronome_sdk.rb +3 -0
  36. data/manifest.yaml +2 -0
  37. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  38. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  39. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  40. data/rbi/metronome_sdk/models/contract_v2.rbi +63 -6
  41. data/rbi/metronome_sdk/models/subscription.rbi +55 -9
  42. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  43. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  44. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +288 -24
  45. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +204 -0
  46. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  47. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  48. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +18 -0
  49. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +18 -0
  50. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +71 -0
  51. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +32 -0
  52. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  53. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +13 -0
  54. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +5 -0
  55. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  56. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  57. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  58. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +616 -27
  59. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  60. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  61. data/rbi/metronome_sdk/resources/v1/contracts.rbi +9 -0
  62. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  63. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +6 -0
  64. data/rbi/metronome_sdk/resources/v1/customers.rbi +8 -1
  65. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  66. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  67. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  68. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  69. data/sig/metronome_sdk/models/contract_v2.rbs +31 -6
  70. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  71. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  72. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  73. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  74. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +83 -0
  75. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  76. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  77. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +14 -0
  78. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  79. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +30 -0
  80. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +18 -0
  81. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  82. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +8 -1
  83. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +3 -1
  84. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  85. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  86. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  87. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +232 -3
  88. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  89. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  90. data/sig/metronome_sdk/resources/v1/contracts.rbs +2 -0
  91. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  92. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  93. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  94. data/sig/metronome_sdk/resources/v1/settings.rbs +1 -0
  95. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  96. metadata +5 -2
@@ -145,6 +145,14 @@ module MetronomeSDK
145
145
  optional :reseller_royalties,
146
146
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty] }
147
147
 
148
+ # @!attribute revenue_system_configuration
149
+ # The revenue system configuration associated with a contract. Provide either an
150
+ # ID or the provider and delivery method.
151
+ #
152
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration, nil]
153
+ optional :revenue_system_configuration,
154
+ -> { MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration }
155
+
148
156
  # @!attribute salesforce_opportunity_id
149
157
  # This field's availability is dependent on your client's configuration.
150
158
  #
@@ -211,7 +219,7 @@ module MetronomeSDK
211
219
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule, nil]
212
220
  optional :usage_statement_schedule, -> { MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule }
213
221
 
214
- # @!method initialize(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
222
+ # @!method initialize(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, revenue_system_configuration: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
215
223
  # Some parameter documentations has been truncated, see
216
224
  # {MetronomeSDK::Models::V1::ContractCreateParams} for more details.
217
225
  #
@@ -259,6 +267,8 @@ module MetronomeSDK
259
267
  #
260
268
  # @param reseller_royalties [Array<MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty>] This field's availability is dependent on your client's configuration.
261
269
  #
270
+ # @param revenue_system_configuration [MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration] The revenue system configuration associated with a contract. Provide either an I
271
+ #
262
272
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
263
273
  #
264
274
  # @param scheduled_charges [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge>]
@@ -2247,9 +2257,8 @@ module MetronomeSDK
2247
2257
  required :subscription_id, String
2248
2258
 
2249
2259
  # @!attribute allocation
2250
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2251
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2252
- # allocation.
2260
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2261
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2253
2262
  #
2254
2263
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation, nil]
2255
2264
  optional :allocation,
@@ -2266,7 +2275,7 @@ module MetronomeSDK
2266
2275
  #
2267
2276
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2268
2277
  #
2269
- # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2278
+ # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. If set
2270
2279
 
2271
2280
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig#apply_seat_increase_config
2272
2281
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2280,9 +2289,8 @@ module MetronomeSDK
2280
2289
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2281
2290
  end
2282
2291
 
2283
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2284
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2285
- # allocation.
2292
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2293
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2286
2294
  #
2287
2295
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig#allocation
2288
2296
  module Allocation
@@ -2596,9 +2604,8 @@ module MetronomeSDK
2596
2604
  required :subscription_id, String
2597
2605
 
2598
2606
  # @!attribute allocation
2599
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2600
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2601
- # allocation.
2607
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2608
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2602
2609
  #
2603
2610
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation, nil]
2604
2611
  optional :allocation,
@@ -2615,7 +2622,7 @@ module MetronomeSDK
2615
2622
  #
2616
2623
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2617
2624
  #
2618
- # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2625
+ # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. If set
2619
2626
 
2620
2627
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig#apply_seat_increase_config
2621
2628
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2629,9 +2636,8 @@ module MetronomeSDK
2629
2636
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2630
2637
  end
2631
2638
 
2632
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2633
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2634
- # allocation.
2639
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2640
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2635
2641
  #
2636
2642
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig#allocation
2637
2643
  module Allocation
@@ -2775,6 +2781,72 @@ module MetronomeSDK
2775
2781
  end
2776
2782
  end
2777
2783
 
2784
+ class RevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
2785
+ # @!attribute delivery_method
2786
+ # How revenue recognition records should be delivered to the revenue system. Do
2787
+ # not specify if using revenue_system_configuration_id.
2788
+ #
2789
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod, nil]
2790
+ optional :delivery_method,
2791
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod }
2792
+
2793
+ # @!attribute provider
2794
+ # The system that is providing services for revenue recognition. Do not specify if
2795
+ # using revenue_system_configuration_id.
2796
+ #
2797
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration::Provider, nil]
2798
+ optional :provider,
2799
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::Provider }
2800
+
2801
+ # @!attribute revenue_system_configuration_id
2802
+ # The Metronome ID of the revenue system configuration. Use when a customer has
2803
+ # multiple configurations with the same provider and delivery method. Otherwise,
2804
+ # specify the provider and delivery_method.
2805
+ #
2806
+ # @return [String, nil]
2807
+ optional :revenue_system_configuration_id, String
2808
+
2809
+ # @!method initialize(delivery_method: nil, provider: nil, revenue_system_configuration_id: nil)
2810
+ # Some parameter documentations has been truncated, see
2811
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration} for
2812
+ # more details.
2813
+ #
2814
+ # The revenue system configuration associated with a contract. Provide either an
2815
+ # ID or the provider and delivery method.
2816
+ #
2817
+ # @param delivery_method [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod] How revenue recognition records should be delivered to the revenue system. Do no
2818
+ #
2819
+ # @param provider [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration::Provider] The system that is providing services for revenue recognition. Do not specify if
2820
+ #
2821
+ # @param revenue_system_configuration_id [String] The Metronome ID of the revenue system configuration. Use when a customer has mu
2822
+
2823
+ # How revenue recognition records should be delivered to the revenue system. Do
2824
+ # not specify if using revenue_system_configuration_id.
2825
+ #
2826
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration#delivery_method
2827
+ module DeliveryMethod
2828
+ extend MetronomeSDK::Internal::Type::Enum
2829
+
2830
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
2831
+
2832
+ # @!method self.values
2833
+ # @return [Array<Symbol>]
2834
+ end
2835
+
2836
+ # The system that is providing services for revenue recognition. Do not specify if
2837
+ # using revenue_system_configuration_id.
2838
+ #
2839
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration#provider
2840
+ module Provider
2841
+ extend MetronomeSDK::Internal::Type::Enum
2842
+
2843
+ NETSUITE = :netsuite
2844
+
2845
+ # @!method self.values
2846
+ # @return [Array<Symbol>]
2847
+ end
2848
+ end
2849
+
2778
2850
  class ScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
2779
2851
  # @!attribute product_id
2780
2852
  #
@@ -3074,8 +3146,8 @@ module MetronomeSDK
3074
3146
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3075
3147
  # directly on the subscription. `initial_quantity` must be provided with this
3076
3148
  # option. Compatible with recurring commits/credits that use POOLED allocation.
3077
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
3078
- # add user_123) to increment and decrement a subscription quantity, rather than
3149
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
3150
+ # user_123) to increment and decrement a subscription quantity, rather than
3079
3151
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
3080
3152
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
3081
3153
  # provided with this option.
@@ -3084,6 +3156,11 @@ module MetronomeSDK
3084
3156
  optional :quantity_management_mode,
3085
3157
  enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::QuantityManagementMode }
3086
3158
 
3159
+ # @!attribute seat_config
3160
+ #
3161
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SeatConfig, nil]
3162
+ optional :seat_config, -> { MetronomeSDK::V1::ContractCreateParams::Subscription::SeatConfig }
3163
+
3087
3164
  # @!attribute starting_at
3088
3165
  # Inclusive start time for the subscription. If not provided, defaults to contract
3089
3166
  # start date
@@ -3098,7 +3175,7 @@ module MetronomeSDK
3098
3175
  # @return [String, nil]
3099
3176
  optional :temporary_id, String
3100
3177
 
3101
- # @!method initialize(collection_schedule:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, starting_at: nil, temporary_id: nil)
3178
+ # @!method initialize(collection_schedule:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, seat_config: nil, starting_at: nil, temporary_id: nil)
3102
3179
  # Some parameter documentations has been truncated, see
3103
3180
  # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription} for more details.
3104
3181
  #
@@ -3120,6 +3197,8 @@ module MetronomeSDK
3120
3197
  #
3121
3198
  # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::QuantityManagementMode] Determines how the subscription's quantity is controlled. Defaults to QUANTITY_O
3122
3199
  #
3200
+ # @param seat_config [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SeatConfig]
3201
+ #
3123
3202
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
3124
3203
  #
3125
3204
  # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
@@ -3227,8 +3306,8 @@ module MetronomeSDK
3227
3306
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3228
3307
  # directly on the subscription. `initial_quantity` must be provided with this
3229
3308
  # option. Compatible with recurring commits/credits that use POOLED allocation.
3230
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
3231
- # add user_123) to increment and decrement a subscription quantity, rather than
3309
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
3310
+ # user_123) to increment and decrement a subscription quantity, rather than
3232
3311
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
3233
3312
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
3234
3313
  # provided with this option.
@@ -3243,6 +3322,43 @@ module MetronomeSDK
3243
3322
  # @!method self.values
3244
3323
  # @return [Array<Symbol>]
3245
3324
  end
3325
+
3326
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#seat_config
3327
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
3328
+ # @!attribute initial_seat_ids
3329
+ # The initial assigned seats on this subscription.
3330
+ #
3331
+ # @return [Array<String>]
3332
+ required :initial_seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3333
+
3334
+ # @!attribute seat_group_key
3335
+ # The property name, sent on usage events, that identifies the seat ID associated
3336
+ # with the usage event. For example, the property name might be seat_id or
3337
+ # user_id. The property must be set as a group key on billable metrics and a
3338
+ # presentation/pricing group key on contract products. This allows linked
3339
+ # recurring credits with an allocation per seat to be consumed by only one seat's
3340
+ # usage.
3341
+ #
3342
+ # @return [String]
3343
+ required :seat_group_key, String
3344
+
3345
+ # @!attribute initial_unassigned_seats
3346
+ # The initial amount of unassigned seats on this subscription.
3347
+ #
3348
+ # @return [Float, nil]
3349
+ optional :initial_unassigned_seats, Float
3350
+
3351
+ # @!method initialize(initial_seat_ids:, seat_group_key:, initial_unassigned_seats: nil)
3352
+ # Some parameter documentations has been truncated, see
3353
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SeatConfig} for
3354
+ # more details.
3355
+ #
3356
+ # @param initial_seat_ids [Array<String>] The initial assigned seats on this subscription.
3357
+ #
3358
+ # @param seat_group_key [String] The property name, sent on usage events, that identifies the seat ID associated
3359
+ #
3360
+ # @param initial_unassigned_seats [Float] The initial amount of unassigned seats on this subscription.
3361
+ end
3246
3362
  end
3247
3363
 
3248
3364
  class Transition < MetronomeSDK::Internal::Type::BaseModel
@@ -31,6 +31,12 @@ module MetronomeSDK
31
31
  optional :customer_billing_provider_configurations,
32
32
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::CustomerCreateParams::CustomerBillingProviderConfiguration] }
33
33
 
34
+ # @!attribute customer_revenue_system_configurations
35
+ #
36
+ # @return [Array<MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration>, nil]
37
+ optional :customer_revenue_system_configurations,
38
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration] }
39
+
34
40
  # @!attribute external_id
35
41
  # (deprecated, use ingest_aliases instead) an alias that can be used to refer to
36
42
  # this customer in usage events
@@ -44,7 +50,7 @@ module MetronomeSDK
44
50
  # @return [Array<String>, nil]
45
51
  optional :ingest_aliases, MetronomeSDK::Internal::Type::ArrayOf[String]
46
52
 
47
- # @!method initialize(name:, billing_config: nil, custom_fields: nil, customer_billing_provider_configurations: nil, external_id: nil, ingest_aliases: nil, request_options: {})
53
+ # @!method initialize(name:, billing_config: nil, custom_fields: nil, customer_billing_provider_configurations: nil, customer_revenue_system_configurations: nil, external_id: nil, ingest_aliases: nil, request_options: {})
48
54
  # Some parameter documentations has been truncated, see
49
55
  # {MetronomeSDK::Models::V1::CustomerCreateParams} for more details.
50
56
  #
@@ -56,6 +62,8 @@ module MetronomeSDK
56
62
  #
57
63
  # @param customer_billing_provider_configurations [Array<MetronomeSDK::Models::V1::CustomerCreateParams::CustomerBillingProviderConfiguration>]
58
64
  #
65
+ # @param customer_revenue_system_configurations [Array<MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration>]
66
+ #
59
67
  # @param external_id [String] (deprecated, use ingest_aliases instead) an alias that can be used to refer to t
60
68
  #
61
69
  # @param ingest_aliases [Array<String>] Aliases that can be used to refer to this customer in usage events
@@ -74,6 +82,16 @@ module MetronomeSDK
74
82
  required :billing_provider_type,
75
83
  enum: -> { MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType }
76
84
 
85
+ # @!attribute aws_customer_account_id
86
+ #
87
+ # @return [String, nil]
88
+ optional :aws_customer_account_id, String
89
+
90
+ # @!attribute aws_customer_id
91
+ #
92
+ # @return [String, nil]
93
+ optional :aws_customer_id, String
94
+
77
95
  # @!attribute aws_is_subscription_product
78
96
  # True if the aws_product_code is a SAAS subscription product, false otherwise.
79
97
  #
@@ -98,7 +116,7 @@ module MetronomeSDK
98
116
  optional :stripe_collection_method,
99
117
  enum: -> { MetronomeSDK::V1::CustomerCreateParams::BillingConfig::StripeCollectionMethod }
100
118
 
101
- # @!method initialize(billing_provider_customer_id:, billing_provider_type:, aws_is_subscription_product: nil, aws_product_code: nil, aws_region: nil, stripe_collection_method: nil)
119
+ # @!method initialize(billing_provider_customer_id:, billing_provider_type:, aws_customer_account_id: nil, aws_customer_id: nil, aws_is_subscription_product: nil, aws_product_code: nil, aws_region: nil, stripe_collection_method: nil)
102
120
  # Some parameter documentations has been truncated, see
103
121
  # {MetronomeSDK::Models::V1::CustomerCreateParams::BillingConfig} for more
104
122
  # details.
@@ -107,6 +125,10 @@ module MetronomeSDK
107
125
  #
108
126
  # @param billing_provider_type [Symbol, MetronomeSDK::Models::V1::CustomerCreateParams::BillingConfig::BillingProviderType]
109
127
  #
128
+ # @param aws_customer_account_id [String]
129
+ #
130
+ # @param aws_customer_id [String]
131
+ #
110
132
  # @param aws_is_subscription_product [Boolean] True if the aws_product_code is a SAAS subscription product, false otherwise.
111
133
  #
112
134
  # @param aws_product_code [String]
@@ -290,6 +312,76 @@ module MetronomeSDK
290
312
  # @return [Array<Symbol>]
291
313
  end
292
314
  end
315
+
316
+ class CustomerRevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
317
+ # @!attribute provider
318
+ # The revenue system provider set for this configuration.
319
+ #
320
+ # @return [Symbol, MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider]
321
+ required :provider,
322
+ enum: -> { MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider }
323
+
324
+ # @!attribute configuration
325
+ # Configuration for the revenue system provider. The structure of this object is
326
+ # specific to the revenue system provider. For NetSuite, this should contain
327
+ # `netsuite_customer_id`.
328
+ #
329
+ # @return [Hash{Symbol=>Object}, nil]
330
+ optional :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
331
+
332
+ # @!attribute delivery_method
333
+ # The method to use for delivering invoices to this customer. If not provided, the
334
+ # `delivery_method_id` must be provided.
335
+ #
336
+ # @return [Symbol, MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod, nil]
337
+ optional :delivery_method,
338
+ enum: -> { MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod }
339
+
340
+ # @!attribute delivery_method_id
341
+ # ID of the delivery method to use for this customer. If not provided, the
342
+ # `delivery_method` must be provided.
343
+ #
344
+ # @return [String, nil]
345
+ optional :delivery_method_id, String
346
+
347
+ # @!method initialize(provider:, configuration: nil, delivery_method: nil, delivery_method_id: nil)
348
+ # Some parameter documentations has been truncated, see
349
+ # {MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration}
350
+ # for more details.
351
+ #
352
+ # @param provider [Symbol, MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider] The revenue system provider set for this configuration.
353
+ #
354
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the revenue system provider. The structure of this object is s
355
+ #
356
+ # @param delivery_method [Symbol, MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod] The method to use for delivering invoices to this customer. If not provided, the
357
+ #
358
+ # @param delivery_method_id [String] ID of the delivery method to use for this customer. If not provided, the `delive
359
+
360
+ # The revenue system provider set for this configuration.
361
+ #
362
+ # @see MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration#provider
363
+ module Provider
364
+ extend MetronomeSDK::Internal::Type::Enum
365
+
366
+ NETSUITE = :netsuite
367
+
368
+ # @!method self.values
369
+ # @return [Array<Symbol>]
370
+ end
371
+
372
+ # The method to use for delivering invoices to this customer. If not provided, the
373
+ # `delivery_method_id` must be provided.
374
+ #
375
+ # @see MetronomeSDK::Models::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration#delivery_method
376
+ module DeliveryMethod
377
+ extend MetronomeSDK::Internal::Type::Enum
378
+
379
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
380
+
381
+ # @!method self.values
382
+ # @return [Array<Symbol>]
383
+ end
384
+ end
293
385
  end
294
386
  end
295
387
  end
@@ -0,0 +1,111 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ # @see MetronomeSDK::Resources::V1::Customers#set_billing_configurations
7
+ class CustomerSetBillingConfigurationsResponse < MetronomeSDK::Internal::Type::BaseModel
8
+ # @!attribute data
9
+ #
10
+ # @return [Array<MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data>]
11
+ required :data,
12
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data] }
13
+
14
+ # @!method initialize(data:)
15
+ # @param data [Array<MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data>]
16
+
17
+ class Data < MetronomeSDK::Internal::Type::BaseModel
18
+ # @!attribute id
19
+ # ID of the created configuration
20
+ #
21
+ # @return [String, nil]
22
+ optional :id, String
23
+
24
+ # @!attribute billing_provider
25
+ # The billing provider set for this configuration.
26
+ #
27
+ # @return [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider, nil]
28
+ optional :billing_provider,
29
+ enum: -> { MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider }
30
+
31
+ # @!attribute configuration
32
+ # Configuration for the billing provider. The structure of this object is specific
33
+ # to the billing provider and delivery method combination.
34
+ #
35
+ # @return [Hash{Symbol=>Object}, nil]
36
+ optional :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
37
+
38
+ # @!attribute customer_id
39
+ # ID of the customer this configuration is associated with.
40
+ #
41
+ # @return [String, nil]
42
+ optional :customer_id, String
43
+
44
+ # @!attribute delivery_method_id
45
+ # ID of the delivery method used for this customer configuration.
46
+ #
47
+ # @return [String, nil]
48
+ optional :delivery_method_id, String
49
+
50
+ # @!attribute tax_provider
51
+ # The tax provider set for this configuration.
52
+ #
53
+ # @return [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider, nil]
54
+ optional :tax_provider,
55
+ enum: -> { MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider }
56
+
57
+ # @!method initialize(id: nil, billing_provider: nil, configuration: nil, customer_id: nil, delivery_method_id: nil, tax_provider: nil)
58
+ # Some parameter documentations has been truncated, see
59
+ # {MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data} for
60
+ # more details.
61
+ #
62
+ # @param id [String] ID of the created configuration
63
+ #
64
+ # @param billing_provider [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider] The billing provider set for this configuration.
65
+ #
66
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
67
+ #
68
+ # @param customer_id [String] ID of the customer this configuration is associated with.
69
+ #
70
+ # @param delivery_method_id [String] ID of the delivery method used for this customer configuration.
71
+ #
72
+ # @param tax_provider [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider] The tax provider set for this configuration.
73
+
74
+ # The billing provider set for this configuration.
75
+ #
76
+ # @see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data#billing_provider
77
+ module BillingProvider
78
+ extend MetronomeSDK::Internal::Type::Enum
79
+
80
+ AWS_MARKETPLACE = :aws_marketplace
81
+ STRIPE = :stripe
82
+ NETSUITE = :netsuite
83
+ CUSTOM = :custom
84
+ AZURE_MARKETPLACE = :azure_marketplace
85
+ QUICKBOOKS_ONLINE = :quickbooks_online
86
+ WORKDAY = :workday
87
+ GCP_MARKETPLACE = :gcp_marketplace
88
+ METRONOME = :metronome
89
+
90
+ # @!method self.values
91
+ # @return [Array<Symbol>]
92
+ end
93
+
94
+ # The tax provider set for this configuration.
95
+ #
96
+ # @see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data#tax_provider
97
+ module TaxProvider
98
+ extend MetronomeSDK::Internal::Type::Enum
99
+
100
+ ANROK = :anrok
101
+ AVALARA = :avalara
102
+ STRIPE = :stripe
103
+
104
+ # @!method self.values
105
+ # @return [Array<Symbol>]
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -37,7 +37,14 @@ module MetronomeSDK
37
37
  optional :plans_or_contracts,
38
38
  enum: -> { MetronomeSDK::V1::Customers::AlertRetrieveParams::PlansOrContracts }
39
39
 
40
- # @!method initialize(alert_id:, customer_id:, group_values: nil, plans_or_contracts: nil, request_options: {})
40
+ # @!attribute seat_filter
41
+ # Only allowed for `low_remaining_seat_balance_reached` notifications. This
42
+ # filters alerts by the seat group key-value pair.
43
+ #
44
+ # @return [MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::SeatFilter, nil]
45
+ optional :seat_filter, -> { MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter }
46
+
47
+ # @!method initialize(alert_id:, customer_id:, group_values: nil, plans_or_contracts: nil, seat_filter: nil, request_options: {})
41
48
  # Some parameter documentations has been truncated, see
42
49
  # {MetronomeSDK::Models::V1::Customers::AlertRetrieveParams} for more details.
43
50
  #
@@ -49,6 +56,8 @@ module MetronomeSDK
49
56
  #
50
57
  # @param plans_or_contracts [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::PlansOrContracts] When parallel threshold notifications are enabled during migration, this flag de
51
58
  #
59
+ # @param seat_filter [MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::SeatFilter] Only allowed for `low_remaining_seat_balance_reached` notifications. This filter
60
+ #
52
61
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
53
62
 
54
63
  class GroupValue < MetronomeSDK::Internal::Type::BaseModel
@@ -81,6 +90,28 @@ module MetronomeSDK
81
90
  # @!method self.values
82
91
  # @return [Array<Symbol>]
83
92
  end
93
+
94
+ class SeatFilter < MetronomeSDK::Internal::Type::BaseModel
95
+ # @!attribute seat_group_key
96
+ # The seat group key (e.g., "seat_id", "user_id")
97
+ #
98
+ # @return [String]
99
+ required :seat_group_key, String
100
+
101
+ # @!attribute seat_group_value
102
+ # The specific seat identifier to filter by
103
+ #
104
+ # @return [String]
105
+ required :seat_group_value, String
106
+
107
+ # @!method initialize(seat_group_key:, seat_group_value:)
108
+ # Only allowed for `low_remaining_seat_balance_reached` notifications. This
109
+ # filters alerts by the seat group key-value pair.
110
+ #
111
+ # @param seat_group_key [String] The seat group key (e.g., "seat_id", "user_id")
112
+ #
113
+ # @param seat_group_value [String] The specific seat identifier to filter by
114
+ end
84
115
  end
85
116
  end
86
117
  end
@@ -27,6 +27,16 @@ module MetronomeSDK
27
27
  # @return [String]
28
28
  required :billing_provider_customer_id, String
29
29
 
30
+ # @!attribute aws_customer_account_id
31
+ #
32
+ # @return [String, nil]
33
+ optional :aws_customer_account_id, String
34
+
35
+ # @!attribute aws_customer_id
36
+ #
37
+ # @return [String, nil]
38
+ optional :aws_customer_id, String
39
+
30
40
  # @!attribute aws_product_code
31
41
  #
32
42
  # @return [String, nil]
@@ -45,7 +55,7 @@ module MetronomeSDK
45
55
  optional :stripe_collection_method,
46
56
  enum: -> { MetronomeSDK::V1::Customers::BillingConfigCreateParams::StripeCollectionMethod }
47
57
 
48
- # @!method initialize(customer_id:, billing_provider_type:, billing_provider_customer_id:, aws_product_code: nil, aws_region: nil, stripe_collection_method: nil, request_options: {})
58
+ # @!method initialize(customer_id:, billing_provider_type:, billing_provider_customer_id:, aws_customer_account_id: nil, aws_customer_id: nil, aws_product_code: nil, aws_region: nil, stripe_collection_method: nil, request_options: {})
49
59
  # Some parameter documentations has been truncated, see
50
60
  # {MetronomeSDK::Models::V1::Customers::BillingConfigCreateParams} for more
51
61
  # details.
@@ -56,6 +66,10 @@ module MetronomeSDK
56
66
  #
57
67
  # @param billing_provider_customer_id [String] The customer ID in the billing provider's system. For Azure, this is the subscri
58
68
  #
69
+ # @param aws_customer_account_id [String]
70
+ #
71
+ # @param aws_customer_id [String]
72
+ #
59
73
  # @param aws_product_code [String]
60
74
  #
61
75
  # @param aws_region [Symbol, MetronomeSDK::Models::V1::Customers::BillingConfigCreateParams::AwsRegion]
@@ -16,6 +16,16 @@ module MetronomeSDK
16
16
 
17
17
  # @see MetronomeSDK::Models::V1::Customers::BillingConfigRetrieveResponse#data
18
18
  class Data < MetronomeSDK::Internal::Type::BaseModel
19
+ # @!attribute aws_customer_account_id
20
+ #
21
+ # @return [String, nil]
22
+ optional :aws_customer_account_id, String
23
+
24
+ # @!attribute aws_customer_id
25
+ #
26
+ # @return [String, nil]
27
+ optional :aws_customer_id, String
28
+
19
29
  # @!attribute aws_expiration_date
20
30
  # Contract expiration date for the customer. The expected format is RFC 3339 and
21
31
  # can be retrieved from
@@ -81,11 +91,15 @@ module MetronomeSDK
81
91
  optional :stripe_collection_method,
82
92
  enum: -> { MetronomeSDK::Models::V1::Customers::BillingConfigRetrieveResponse::Data::StripeCollectionMethod }
83
93
 
84
- # @!method initialize(aws_expiration_date: nil, aws_is_subscription_product: nil, aws_product_code: nil, aws_region: nil, azure_expiration_date: nil, azure_plan_id: nil, azure_start_date: nil, azure_subscription_status: nil, billing_provider_customer_id: nil, stripe_collection_method: nil)
94
+ # @!method initialize(aws_customer_account_id: nil, aws_customer_id: nil, aws_expiration_date: nil, aws_is_subscription_product: nil, aws_product_code: nil, aws_region: nil, azure_expiration_date: nil, azure_plan_id: nil, azure_start_date: nil, azure_subscription_status: nil, billing_provider_customer_id: nil, stripe_collection_method: nil)
85
95
  # Some parameter documentations has been truncated, see
86
96
  # {MetronomeSDK::Models::V1::Customers::BillingConfigRetrieveResponse::Data} for
87
97
  # more details.
88
98
  #
99
+ # @param aws_customer_account_id [String]
100
+ #
101
+ # @param aws_customer_id [String]
102
+ #
89
103
  # @param aws_expiration_date [Time] Contract expiration date for the customer. The expected format is RFC 3339 and c
90
104
  #
91
105
  # @param aws_is_subscription_product [Boolean] True if the aws_product_code is a SAAS subscription product, false otherwise.