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
@@ -291,6 +291,25 @@ module MetronomeSDK
291
291
  end
292
292
  attr_writer :reseller_royalties
293
293
 
294
+ # The revenue system configuration associated with a contract. Provide either an
295
+ # ID or the provider and delivery method.
296
+ sig do
297
+ returns(
298
+ T.nilable(
299
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration
300
+ )
301
+ )
302
+ end
303
+ attr_reader :revenue_system_configuration
304
+
305
+ sig do
306
+ params(
307
+ revenue_system_configuration:
308
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::OrHash
309
+ ).void
310
+ end
311
+ attr_writer :revenue_system_configuration
312
+
294
313
  # This field's availability is dependent on your client's configuration.
295
314
  sig { returns(T.nilable(String)) }
296
315
  attr_reader :salesforce_opportunity_id
@@ -472,6 +491,8 @@ module MetronomeSDK
472
491
  T::Array[
473
492
  MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::OrHash
474
493
  ],
494
+ revenue_system_configuration:
495
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::OrHash,
475
496
  salesforce_opportunity_id: String,
476
497
  scheduled_charges:
477
498
  T::Array[
@@ -534,6 +555,9 @@ module MetronomeSDK
534
555
  recurring_credits: nil,
535
556
  # This field's availability is dependent on your client's configuration.
536
557
  reseller_royalties: nil,
558
+ # The revenue system configuration associated with a contract. Provide either an
559
+ # ID or the provider and delivery method.
560
+ revenue_system_configuration: nil,
537
561
  # This field's availability is dependent on your client's configuration.
538
562
  salesforce_opportunity_id: nil,
539
563
  scheduled_charges: nil,
@@ -604,6 +628,8 @@ module MetronomeSDK
604
628
  T::Array[
605
629
  MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty
606
630
  ],
631
+ revenue_system_configuration:
632
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration,
607
633
  salesforce_opportunity_id: String,
608
634
  scheduled_charges:
609
635
  T::Array[
@@ -2925,7 +2951,12 @@ module MetronomeSDK
2925
2951
  end
2926
2952
  attr_writer :parent_behavior
2927
2953
 
2928
- # Indicates whether the parent should pay for the child's invoice charges
2954
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
2955
+ # invoice charges
2956
+ #
2957
+ # **SELF**: The child pays for its own invoice charges
2958
+ #
2959
+ # **PARENT**: The parent pays for the child's invoice charges
2929
2960
  sig do
2930
2961
  returns(
2931
2962
  T.nilable(
@@ -2943,10 +2974,14 @@ module MetronomeSDK
2943
2974
  end
2944
2975
  attr_writer :payer
2945
2976
 
2946
- # Indicates the behavior of the child's invoice statements on the parent's
2947
- # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
2948
- # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
2949
- # appear on parent's consolidated invoices
2977
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
2978
+ # on the parent's invoices.
2979
+ #
2980
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
2981
+ # consolidated invoices
2982
+ #
2983
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
2984
+ # consolidated invoices
2950
2985
  sig do
2951
2986
  returns(
2952
2987
  T.nilable(
@@ -2979,12 +3014,21 @@ module MetronomeSDK
2979
3014
  def self.new(
2980
3015
  parent: nil,
2981
3016
  parent_behavior: nil,
2982
- # Indicates whether the parent should pay for the child's invoice charges
3017
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
3018
+ # invoice charges
3019
+ #
3020
+ # **SELF**: The child pays for its own invoice charges
3021
+ #
3022
+ # **PARENT**: The parent pays for the child's invoice charges
2983
3023
  payer: nil,
2984
- # Indicates the behavior of the child's invoice statements on the parent's
2985
- # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
2986
- # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
2987
- # appear on parent's consolidated invoices
3024
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
3025
+ # on the parent's invoices.
3026
+ #
3027
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
3028
+ # consolidated invoices
3029
+ #
3030
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
3031
+ # consolidated invoices
2988
3032
  usage_statement_behavior: nil
2989
3033
  )
2990
3034
  end
@@ -3045,10 +3089,13 @@ module MetronomeSDK
3045
3089
  )
3046
3090
  end
3047
3091
 
3048
- # Indicates the desired behavior of consolidated invoices generated by the parent
3049
- # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
3050
- # customers will be appended to the consolidated invoice **NONE**: Do not generate
3051
- # consolidated invoices
3092
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
3093
+ # generated by the parent in a customer hierarchy
3094
+ #
3095
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
3096
+ # to the consolidated invoice
3097
+ #
3098
+ # **NONE**: Do not generate consolidated invoices
3052
3099
  sig do
3053
3100
  returns(
3054
3101
  T.nilable(
@@ -3073,10 +3120,13 @@ module MetronomeSDK
3073
3120
  ).returns(T.attached_class)
3074
3121
  end
3075
3122
  def self.new(
3076
- # Indicates the desired behavior of consolidated invoices generated by the parent
3077
- # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
3078
- # customers will be appended to the consolidated invoice **NONE**: Do not generate
3079
- # consolidated invoices
3123
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
3124
+ # generated by the parent in a customer hierarchy
3125
+ #
3126
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
3127
+ # to the consolidated invoice
3128
+ #
3129
+ # **NONE**: Do not generate consolidated invoices
3080
3130
  invoice_consolidation_type: nil
3081
3131
  )
3082
3132
  end
@@ -3092,10 +3142,13 @@ module MetronomeSDK
3092
3142
  def to_hash
3093
3143
  end
3094
3144
 
3095
- # Indicates the desired behavior of consolidated invoices generated by the parent
3096
- # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
3097
- # customers will be appended to the consolidated invoice **NONE**: Do not generate
3098
- # consolidated invoices
3145
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
3146
+ # generated by the parent in a customer hierarchy
3147
+ #
3148
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
3149
+ # to the consolidated invoice
3150
+ #
3151
+ # **NONE**: Do not generate consolidated invoices
3099
3152
  module InvoiceConsolidationType
3100
3153
  extend MetronomeSDK::Internal::Type::Enum
3101
3154
 
@@ -3131,7 +3184,12 @@ module MetronomeSDK
3131
3184
  end
3132
3185
  end
3133
3186
 
3134
- # Indicates whether the parent should pay for the child's invoice charges
3187
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
3188
+ # invoice charges
3189
+ #
3190
+ # **SELF**: The child pays for its own invoice charges
3191
+ #
3192
+ # **PARENT**: The parent pays for the child's invoice charges
3135
3193
  module Payer
3136
3194
  extend MetronomeSDK::Internal::Type::Enum
3137
3195
 
@@ -3166,10 +3224,14 @@ module MetronomeSDK
3166
3224
  end
3167
3225
  end
3168
3226
 
3169
- # Indicates the behavior of the child's invoice statements on the parent's
3170
- # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
3171
- # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
3172
- # appear on parent's consolidated invoices
3227
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
3228
+ # on the parent's invoices.
3229
+ #
3230
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
3231
+ # consolidated invoices
3232
+ #
3233
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
3234
+ # consolidated invoices
3173
3235
  module UsageStatementBehavior
3174
3236
  extend MetronomeSDK::Internal::Type::Enum
3175
3237
 
@@ -4752,7 +4814,8 @@ module MetronomeSDK
4752
4814
  sig { returns(String) }
4753
4815
  attr_accessor :subscription_id
4754
4816
 
4755
- # If set to POOLED, allocation added per seat is pooled across the account.
4817
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
4818
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
4756
4819
  sig do
4757
4820
  returns(
4758
4821
  T.nilable(
@@ -4784,7 +4847,8 @@ module MetronomeSDK
4784
4847
  apply_seat_increase_config:,
4785
4848
  # ID of the subscription to configure on the recurring commit/credit.
4786
4849
  subscription_id:,
4787
- # If set to POOLED, allocation added per seat is pooled across the account.
4850
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
4851
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
4788
4852
  allocation: nil
4789
4853
  )
4790
4854
  end
@@ -4828,7 +4892,8 @@ module MetronomeSDK
4828
4892
  end
4829
4893
  end
4830
4894
 
4831
- # If set to POOLED, allocation added per seat is pooled across the account.
4895
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
4896
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
4832
4897
  module Allocation
4833
4898
  extend MetronomeSDK::Internal::Type::Enum
4834
4899
 
@@ -5493,7 +5558,8 @@ module MetronomeSDK
5493
5558
  sig { returns(String) }
5494
5559
  attr_accessor :subscription_id
5495
5560
 
5496
- # If set to POOLED, allocation added per seat is pooled across the account.
5561
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
5562
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
5497
5563
  sig do
5498
5564
  returns(
5499
5565
  T.nilable(
@@ -5525,7 +5591,8 @@ module MetronomeSDK
5525
5591
  apply_seat_increase_config:,
5526
5592
  # ID of the subscription to configure on the recurring commit/credit.
5527
5593
  subscription_id:,
5528
- # If set to POOLED, allocation added per seat is pooled across the account.
5594
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
5595
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
5529
5596
  allocation: nil
5530
5597
  )
5531
5598
  end
@@ -5569,7 +5636,8 @@ module MetronomeSDK
5569
5636
  end
5570
5637
  end
5571
5638
 
5572
- # If set to POOLED, allocation added per seat is pooled across the account.
5639
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
5640
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
5573
5641
  module Allocation
5574
5642
  extend MetronomeSDK::Internal::Type::Enum
5575
5643
 
@@ -5881,6 +5949,164 @@ module MetronomeSDK
5881
5949
  end
5882
5950
  end
5883
5951
 
5952
+ class RevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
5953
+ OrHash =
5954
+ T.type_alias do
5955
+ T.any(
5956
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration,
5957
+ MetronomeSDK::Internal::AnyHash
5958
+ )
5959
+ end
5960
+
5961
+ # How revenue recognition records should be delivered to the revenue system. Do
5962
+ # not specify if using revenue_system_configuration_id.
5963
+ sig do
5964
+ returns(
5965
+ T.nilable(
5966
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod::OrSymbol
5967
+ )
5968
+ )
5969
+ end
5970
+ attr_reader :delivery_method
5971
+
5972
+ sig do
5973
+ params(
5974
+ delivery_method:
5975
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod::OrSymbol
5976
+ ).void
5977
+ end
5978
+ attr_writer :delivery_method
5979
+
5980
+ # The system that is providing services for revenue recognition. Do not specify if
5981
+ # using revenue_system_configuration_id.
5982
+ sig do
5983
+ returns(
5984
+ T.nilable(
5985
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::Provider::OrSymbol
5986
+ )
5987
+ )
5988
+ end
5989
+ attr_reader :provider
5990
+
5991
+ sig do
5992
+ params(
5993
+ provider:
5994
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::Provider::OrSymbol
5995
+ ).void
5996
+ end
5997
+ attr_writer :provider
5998
+
5999
+ # The Metronome ID of the revenue system configuration. Use when a customer has
6000
+ # multiple configurations with the same provider and delivery method. Otherwise,
6001
+ # specify the provider and delivery_method.
6002
+ sig { returns(T.nilable(String)) }
6003
+ attr_reader :revenue_system_configuration_id
6004
+
6005
+ sig { params(revenue_system_configuration_id: String).void }
6006
+ attr_writer :revenue_system_configuration_id
6007
+
6008
+ # The revenue system configuration associated with a contract. Provide either an
6009
+ # ID or the provider and delivery method.
6010
+ sig do
6011
+ params(
6012
+ delivery_method:
6013
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod::OrSymbol,
6014
+ provider:
6015
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::Provider::OrSymbol,
6016
+ revenue_system_configuration_id: String
6017
+ ).returns(T.attached_class)
6018
+ end
6019
+ def self.new(
6020
+ # How revenue recognition records should be delivered to the revenue system. Do
6021
+ # not specify if using revenue_system_configuration_id.
6022
+ delivery_method: nil,
6023
+ # The system that is providing services for revenue recognition. Do not specify if
6024
+ # using revenue_system_configuration_id.
6025
+ provider: nil,
6026
+ # The Metronome ID of the revenue system configuration. Use when a customer has
6027
+ # multiple configurations with the same provider and delivery method. Otherwise,
6028
+ # specify the provider and delivery_method.
6029
+ revenue_system_configuration_id: nil
6030
+ )
6031
+ end
6032
+
6033
+ sig do
6034
+ override.returns(
6035
+ {
6036
+ delivery_method:
6037
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod::OrSymbol,
6038
+ provider:
6039
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::Provider::OrSymbol,
6040
+ revenue_system_configuration_id: String
6041
+ }
6042
+ )
6043
+ end
6044
+ def to_hash
6045
+ end
6046
+
6047
+ # How revenue recognition records should be delivered to the revenue system. Do
6048
+ # not specify if using revenue_system_configuration_id.
6049
+ module DeliveryMethod
6050
+ extend MetronomeSDK::Internal::Type::Enum
6051
+
6052
+ TaggedSymbol =
6053
+ T.type_alias do
6054
+ T.all(
6055
+ Symbol,
6056
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod
6057
+ )
6058
+ end
6059
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6060
+
6061
+ DIRECT_TO_BILLING_PROVIDER =
6062
+ T.let(
6063
+ :direct_to_billing_provider,
6064
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
6065
+ )
6066
+
6067
+ sig do
6068
+ override.returns(
6069
+ T::Array[
6070
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
6071
+ ]
6072
+ )
6073
+ end
6074
+ def self.values
6075
+ end
6076
+ end
6077
+
6078
+ # The system that is providing services for revenue recognition. Do not specify if
6079
+ # using revenue_system_configuration_id.
6080
+ module Provider
6081
+ extend MetronomeSDK::Internal::Type::Enum
6082
+
6083
+ TaggedSymbol =
6084
+ T.type_alias do
6085
+ T.all(
6086
+ Symbol,
6087
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::Provider
6088
+ )
6089
+ end
6090
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6091
+
6092
+ NETSUITE =
6093
+ T.let(
6094
+ :netsuite,
6095
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::Provider::TaggedSymbol
6096
+ )
6097
+
6098
+ sig do
6099
+ override.returns(
6100
+ T::Array[
6101
+ MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::Provider::TaggedSymbol
6102
+ ]
6103
+ )
6104
+ end
6105
+ def self.values
6106
+ end
6107
+ end
6108
+ end
6109
+
5884
6110
  class ScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
5885
6111
  OrHash =
5886
6112
  T.type_alias do
@@ -6478,6 +6704,11 @@ module MetronomeSDK
6478
6704
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6479
6705
  # directly on the subscription. `initial_quantity` must be provided with this
6480
6706
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6707
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
6708
+ # user_123) to increment and decrement a subscription quantity, rather than
6709
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6710
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6711
+ # provided with this option.
6481
6712
  sig do
6482
6713
  returns(
6483
6714
  T.nilable(
@@ -6495,6 +6726,23 @@ module MetronomeSDK
6495
6726
  end
6496
6727
  attr_writer :quantity_management_mode
6497
6728
 
6729
+ sig do
6730
+ returns(
6731
+ T.nilable(
6732
+ MetronomeSDK::V1::ContractCreateParams::Subscription::SeatConfig
6733
+ )
6734
+ )
6735
+ end
6736
+ attr_reader :seat_config
6737
+
6738
+ sig do
6739
+ params(
6740
+ seat_config:
6741
+ MetronomeSDK::V1::ContractCreateParams::Subscription::SeatConfig::OrHash
6742
+ ).void
6743
+ end
6744
+ attr_writer :seat_config
6745
+
6498
6746
  # Inclusive start time for the subscription. If not provided, defaults to contract
6499
6747
  # start date
6500
6748
  sig { returns(T.nilable(Time)) }
@@ -6526,6 +6774,8 @@ module MetronomeSDK
6526
6774
  name: String,
6527
6775
  quantity_management_mode:
6528
6776
  MetronomeSDK::V1::ContractCreateParams::Subscription::QuantityManagementMode::OrSymbol,
6777
+ seat_config:
6778
+ MetronomeSDK::V1::ContractCreateParams::Subscription::SeatConfig::OrHash,
6529
6779
  starting_at: Time,
6530
6780
  temporary_id: String
6531
6781
  ).returns(T.attached_class)
@@ -6548,7 +6798,13 @@ module MetronomeSDK
6548
6798
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6549
6799
  # directly on the subscription. `initial_quantity` must be provided with this
6550
6800
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6801
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
6802
+ # user_123) to increment and decrement a subscription quantity, rather than
6803
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6804
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6805
+ # provided with this option.
6551
6806
  quantity_management_mode: nil,
6807
+ seat_config: nil,
6552
6808
  # Inclusive start time for the subscription. If not provided, defaults to contract
6553
6809
  # start date
6554
6810
  starting_at: nil,
@@ -6574,6 +6830,8 @@ module MetronomeSDK
6574
6830
  name: String,
6575
6831
  quantity_management_mode:
6576
6832
  MetronomeSDK::V1::ContractCreateParams::Subscription::QuantityManagementMode::OrSymbol,
6833
+ seat_config:
6834
+ MetronomeSDK::V1::ContractCreateParams::Subscription::SeatConfig,
6577
6835
  starting_at: Time,
6578
6836
  temporary_id: String
6579
6837
  }
@@ -6826,6 +7084,11 @@ module MetronomeSDK
6826
7084
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6827
7085
  # directly on the subscription. `initial_quantity` must be provided with this
6828
7086
  # option. Compatible with recurring commits/credits that use POOLED allocation.
7087
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
7088
+ # user_123) to increment and decrement a subscription quantity, rather than
7089
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
7090
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
7091
+ # provided with this option.
6829
7092
  module QuantityManagementMode
6830
7093
  extend MetronomeSDK::Internal::Type::Enum
6831
7094
 
@@ -6859,6 +7122,70 @@ module MetronomeSDK
6859
7122
  def self.values
6860
7123
  end
6861
7124
  end
7125
+
7126
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
7127
+ OrHash =
7128
+ T.type_alias do
7129
+ T.any(
7130
+ MetronomeSDK::V1::ContractCreateParams::Subscription::SeatConfig,
7131
+ MetronomeSDK::Internal::AnyHash
7132
+ )
7133
+ end
7134
+
7135
+ # The initial assigned seats on this subscription.
7136
+ sig { returns(T::Array[String]) }
7137
+ attr_accessor :initial_seat_ids
7138
+
7139
+ # The property name, sent on usage events, that identifies the seat ID associated
7140
+ # with the usage event. For example, the property name might be seat_id or
7141
+ # user_id. The property must be set as a group key on billable metrics and a
7142
+ # presentation/pricing group key on contract products. This allows linked
7143
+ # recurring credits with an allocation per seat to be consumed by only one seat's
7144
+ # usage.
7145
+ sig { returns(String) }
7146
+ attr_accessor :seat_group_key
7147
+
7148
+ # The initial amount of unassigned seats on this subscription.
7149
+ sig { returns(T.nilable(Float)) }
7150
+ attr_reader :initial_unassigned_seats
7151
+
7152
+ sig { params(initial_unassigned_seats: Float).void }
7153
+ attr_writer :initial_unassigned_seats
7154
+
7155
+ sig do
7156
+ params(
7157
+ initial_seat_ids: T::Array[String],
7158
+ seat_group_key: String,
7159
+ initial_unassigned_seats: Float
7160
+ ).returns(T.attached_class)
7161
+ end
7162
+ def self.new(
7163
+ # The initial assigned seats on this subscription.
7164
+ initial_seat_ids:,
7165
+ # The property name, sent on usage events, that identifies the seat ID associated
7166
+ # with the usage event. For example, the property name might be seat_id or
7167
+ # user_id. The property must be set as a group key on billable metrics and a
7168
+ # presentation/pricing group key on contract products. This allows linked
7169
+ # recurring credits with an allocation per seat to be consumed by only one seat's
7170
+ # usage.
7171
+ seat_group_key:,
7172
+ # The initial amount of unassigned seats on this subscription.
7173
+ initial_unassigned_seats: nil
7174
+ )
7175
+ end
7176
+
7177
+ sig do
7178
+ override.returns(
7179
+ {
7180
+ initial_seat_ids: T::Array[String],
7181
+ seat_group_key: String,
7182
+ initial_unassigned_seats: Float
7183
+ }
7184
+ )
7185
+ end
7186
+ def to_hash
7187
+ end
7188
+ end
6862
7189
  end
6863
7190
 
6864
7191
  class Transition < MetronomeSDK::Internal::Type::BaseModel
@@ -38,6 +38,13 @@ module MetronomeSDK
38
38
  sig { params(effective_before: Time).void }
39
39
  attr_writer :effective_before
40
40
 
41
+ # Exclude balances with zero amounts from the response.
42
+ sig { returns(T.nilable(T::Boolean)) }
43
+ attr_reader :exclude_zero_balances
44
+
45
+ sig { params(exclude_zero_balances: T::Boolean).void }
46
+ attr_writer :exclude_zero_balances
47
+
41
48
  # Include archived credits and credits from archived contracts.
42
49
  sig { returns(T.nilable(T::Boolean)) }
43
50
  attr_reader :include_archived
@@ -95,6 +102,7 @@ module MetronomeSDK
95
102
  id: String,
96
103
  covering_date: Time,
97
104
  effective_before: Time,
105
+ exclude_zero_balances: T::Boolean,
98
106
  include_archived: T::Boolean,
99
107
  include_balance: T::Boolean,
100
108
  include_contract_balances: T::Boolean,
@@ -112,6 +120,8 @@ module MetronomeSDK
112
120
  covering_date: nil,
113
121
  # Include only balances that have any access before the provided date (exclusive)
114
122
  effective_before: nil,
123
+ # Exclude balances with zero amounts from the response.
124
+ exclude_zero_balances: nil,
115
125
  # Include archived credits and credits from archived contracts.
116
126
  include_archived: nil,
117
127
  # Include the balance of credits and commits in the response. Setting this flag
@@ -139,6 +149,7 @@ module MetronomeSDK
139
149
  id: String,
140
150
  covering_date: Time,
141
151
  effective_before: Time,
152
+ exclude_zero_balances: T::Boolean,
142
153
  include_archived: T::Boolean,
143
154
  include_balance: T::Boolean,
144
155
  include_contract_balances: T::Boolean,