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
@@ -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[
@@ -4788,9 +4814,8 @@ module MetronomeSDK
4788
4814
  sig { returns(String) }
4789
4815
  attr_accessor :subscription_id
4790
4816
 
4791
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
4792
- # If set to INDIVIDUAL, each seat in the subscription will have its own
4793
- # allocation.
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.
4794
4819
  sig do
4795
4820
  returns(
4796
4821
  T.nilable(
@@ -4822,9 +4847,8 @@ module MetronomeSDK
4822
4847
  apply_seat_increase_config:,
4823
4848
  # ID of the subscription to configure on the recurring commit/credit.
4824
4849
  subscription_id:,
4825
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
4826
- # If set to INDIVIDUAL, each seat in the subscription will have its own
4827
- # allocation.
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.
4828
4852
  allocation: nil
4829
4853
  )
4830
4854
  end
@@ -4868,9 +4892,8 @@ module MetronomeSDK
4868
4892
  end
4869
4893
  end
4870
4894
 
4871
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
4872
- # If set to INDIVIDUAL, each seat in the subscription will have its own
4873
- # allocation.
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.
4874
4897
  module Allocation
4875
4898
  extend MetronomeSDK::Internal::Type::Enum
4876
4899
 
@@ -5535,9 +5558,8 @@ module MetronomeSDK
5535
5558
  sig { returns(String) }
5536
5559
  attr_accessor :subscription_id
5537
5560
 
5538
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
5539
- # If set to INDIVIDUAL, each seat in the subscription will have its own
5540
- # allocation.
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.
5541
5563
  sig do
5542
5564
  returns(
5543
5565
  T.nilable(
@@ -5569,9 +5591,8 @@ module MetronomeSDK
5569
5591
  apply_seat_increase_config:,
5570
5592
  # ID of the subscription to configure on the recurring commit/credit.
5571
5593
  subscription_id:,
5572
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
5573
- # If set to INDIVIDUAL, each seat in the subscription will have its own
5574
- # allocation.
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.
5575
5596
  allocation: nil
5576
5597
  )
5577
5598
  end
@@ -5615,9 +5636,8 @@ module MetronomeSDK
5615
5636
  end
5616
5637
  end
5617
5638
 
5618
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
5619
- # If set to INDIVIDUAL, each seat in the subscription will have its own
5620
- # allocation.
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.
5621
5641
  module Allocation
5622
5642
  extend MetronomeSDK::Internal::Type::Enum
5623
5643
 
@@ -5929,6 +5949,164 @@ module MetronomeSDK
5929
5949
  end
5930
5950
  end
5931
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
+
5932
6110
  class ScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
5933
6111
  OrHash =
5934
6112
  T.type_alias do
@@ -6526,8 +6704,8 @@ module MetronomeSDK
6526
6704
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6527
6705
  # directly on the subscription. `initial_quantity` must be provided with this
6528
6706
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6529
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
6530
- # add user_123) to increment and decrement a subscription quantity, rather than
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
6531
6709
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6532
6710
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
6533
6711
  # provided with this option.
@@ -6548,6 +6726,23 @@ module MetronomeSDK
6548
6726
  end
6549
6727
  attr_writer :quantity_management_mode
6550
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
+
6551
6746
  # Inclusive start time for the subscription. If not provided, defaults to contract
6552
6747
  # start date
6553
6748
  sig { returns(T.nilable(Time)) }
@@ -6579,6 +6774,8 @@ module MetronomeSDK
6579
6774
  name: String,
6580
6775
  quantity_management_mode:
6581
6776
  MetronomeSDK::V1::ContractCreateParams::Subscription::QuantityManagementMode::OrSymbol,
6777
+ seat_config:
6778
+ MetronomeSDK::V1::ContractCreateParams::Subscription::SeatConfig::OrHash,
6582
6779
  starting_at: Time,
6583
6780
  temporary_id: String
6584
6781
  ).returns(T.attached_class)
@@ -6601,12 +6798,13 @@ module MetronomeSDK
6601
6798
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6602
6799
  # directly on the subscription. `initial_quantity` must be provided with this
6603
6800
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6604
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
6605
- # add user_123) to increment and decrement a subscription quantity, rather than
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
6606
6803
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6607
6804
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
6608
6805
  # provided with this option.
6609
6806
  quantity_management_mode: nil,
6807
+ seat_config: nil,
6610
6808
  # Inclusive start time for the subscription. If not provided, defaults to contract
6611
6809
  # start date
6612
6810
  starting_at: nil,
@@ -6632,6 +6830,8 @@ module MetronomeSDK
6632
6830
  name: String,
6633
6831
  quantity_management_mode:
6634
6832
  MetronomeSDK::V1::ContractCreateParams::Subscription::QuantityManagementMode::OrSymbol,
6833
+ seat_config:
6834
+ MetronomeSDK::V1::ContractCreateParams::Subscription::SeatConfig,
6635
6835
  starting_at: Time,
6636
6836
  temporary_id: String
6637
6837
  }
@@ -6884,8 +7084,8 @@ module MetronomeSDK
6884
7084
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6885
7085
  # directly on the subscription. `initial_quantity` must be provided with this
6886
7086
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6887
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
6888
- # add user_123) to increment and decrement a subscription quantity, rather than
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
6889
7089
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6890
7090
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
6891
7091
  # provided with this option.
@@ -6922,6 +7122,70 @@ module MetronomeSDK
6922
7122
  def self.values
6923
7123
  end
6924
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
6925
7189
  end
6926
7190
 
6927
7191
  class Transition < MetronomeSDK::Internal::Type::BaseModel
@@ -62,6 +62,27 @@ module MetronomeSDK
62
62
  end
63
63
  attr_writer :customer_billing_provider_configurations
64
64
 
65
+ sig do
66
+ returns(
67
+ T.nilable(
68
+ T::Array[
69
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration
70
+ ]
71
+ )
72
+ )
73
+ end
74
+ attr_reader :customer_revenue_system_configurations
75
+
76
+ sig do
77
+ params(
78
+ customer_revenue_system_configurations:
79
+ T::Array[
80
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::OrHash
81
+ ]
82
+ ).void
83
+ end
84
+ attr_writer :customer_revenue_system_configurations
85
+
65
86
  # (deprecated, use ingest_aliases instead) an alias that can be used to refer to
66
87
  # this customer in usage events
67
88
  sig { returns(T.nilable(String)) }
@@ -87,6 +108,10 @@ module MetronomeSDK
87
108
  T::Array[
88
109
  MetronomeSDK::V1::CustomerCreateParams::CustomerBillingProviderConfiguration::OrHash
89
110
  ],
111
+ customer_revenue_system_configurations:
112
+ T::Array[
113
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::OrHash
114
+ ],
90
115
  external_id: String,
91
116
  ingest_aliases: T::Array[String],
92
117
  request_options: MetronomeSDK::RequestOptions::OrHash
@@ -99,6 +124,7 @@ module MetronomeSDK
99
124
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
100
125
  custom_fields: nil,
101
126
  customer_billing_provider_configurations: nil,
127
+ customer_revenue_system_configurations: nil,
102
128
  # (deprecated, use ingest_aliases instead) an alias that can be used to refer to
103
129
  # this customer in usage events
104
130
  external_id: nil,
@@ -119,6 +145,10 @@ module MetronomeSDK
119
145
  T::Array[
120
146
  MetronomeSDK::V1::CustomerCreateParams::CustomerBillingProviderConfiguration
121
147
  ],
148
+ customer_revenue_system_configurations:
149
+ T::Array[
150
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration
151
+ ],
122
152
  external_id: String,
123
153
  ingest_aliases: T::Array[String],
124
154
  request_options: MetronomeSDK::RequestOptions
@@ -147,6 +177,18 @@ module MetronomeSDK
147
177
  end
148
178
  attr_accessor :billing_provider_type
149
179
 
180
+ sig { returns(T.nilable(String)) }
181
+ attr_reader :aws_customer_account_id
182
+
183
+ sig { params(aws_customer_account_id: String).void }
184
+ attr_writer :aws_customer_account_id
185
+
186
+ sig { returns(T.nilable(String)) }
187
+ attr_reader :aws_customer_id
188
+
189
+ sig { params(aws_customer_id: String).void }
190
+ attr_writer :aws_customer_id
191
+
150
192
  # True if the aws_product_code is a SAAS subscription product, false otherwise.
151
193
  sig { returns(T.nilable(T::Boolean)) }
152
194
  attr_reader :aws_is_subscription_product
@@ -201,6 +243,8 @@ module MetronomeSDK
201
243
  billing_provider_customer_id: String,
202
244
  billing_provider_type:
203
245
  MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::OrSymbol,
246
+ aws_customer_account_id: String,
247
+ aws_customer_id: String,
204
248
  aws_is_subscription_product: T::Boolean,
205
249
  aws_product_code: String,
206
250
  aws_region:
@@ -212,6 +256,8 @@ module MetronomeSDK
212
256
  def self.new(
213
257
  billing_provider_customer_id:,
214
258
  billing_provider_type:,
259
+ aws_customer_account_id: nil,
260
+ aws_customer_id: nil,
215
261
  # True if the aws_product_code is a SAAS subscription product, false otherwise.
216
262
  aws_is_subscription_product: nil,
217
263
  aws_product_code: nil,
@@ -228,6 +274,8 @@ module MetronomeSDK
228
274
  billing_provider_customer_id: String,
229
275
  billing_provider_type:
230
276
  MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::OrSymbol,
277
+ aws_customer_account_id: String,
278
+ aws_customer_id: String,
231
279
  aws_is_subscription_product: T::Boolean,
232
280
  aws_product_code: String,
233
281
  aws_region:
@@ -770,6 +818,162 @@ module MetronomeSDK
770
818
  end
771
819
  end
772
820
  end
821
+
822
+ class CustomerRevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
823
+ OrHash =
824
+ T.type_alias do
825
+ T.any(
826
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration,
827
+ MetronomeSDK::Internal::AnyHash
828
+ )
829
+ end
830
+
831
+ # The revenue system provider set for this configuration.
832
+ sig do
833
+ returns(
834
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::OrSymbol
835
+ )
836
+ end
837
+ attr_accessor :provider
838
+
839
+ # Configuration for the revenue system provider. The structure of this object is
840
+ # specific to the revenue system provider. For NetSuite, this should contain
841
+ # `netsuite_customer_id`.
842
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
843
+ attr_reader :configuration
844
+
845
+ sig { params(configuration: T::Hash[Symbol, T.anything]).void }
846
+ attr_writer :configuration
847
+
848
+ # The method to use for delivering invoices to this customer. If not provided, the
849
+ # `delivery_method_id` must be provided.
850
+ sig do
851
+ returns(
852
+ T.nilable(
853
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::OrSymbol
854
+ )
855
+ )
856
+ end
857
+ attr_reader :delivery_method
858
+
859
+ sig do
860
+ params(
861
+ delivery_method:
862
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::OrSymbol
863
+ ).void
864
+ end
865
+ attr_writer :delivery_method
866
+
867
+ # ID of the delivery method to use for this customer. If not provided, the
868
+ # `delivery_method` must be provided.
869
+ sig { returns(T.nilable(String)) }
870
+ attr_reader :delivery_method_id
871
+
872
+ sig { params(delivery_method_id: String).void }
873
+ attr_writer :delivery_method_id
874
+
875
+ sig do
876
+ params(
877
+ provider:
878
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::OrSymbol,
879
+ configuration: T::Hash[Symbol, T.anything],
880
+ delivery_method:
881
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::OrSymbol,
882
+ delivery_method_id: String
883
+ ).returns(T.attached_class)
884
+ end
885
+ def self.new(
886
+ # The revenue system provider set for this configuration.
887
+ provider:,
888
+ # Configuration for the revenue system provider. The structure of this object is
889
+ # specific to the revenue system provider. For NetSuite, this should contain
890
+ # `netsuite_customer_id`.
891
+ configuration: nil,
892
+ # The method to use for delivering invoices to this customer. If not provided, the
893
+ # `delivery_method_id` must be provided.
894
+ delivery_method: nil,
895
+ # ID of the delivery method to use for this customer. If not provided, the
896
+ # `delivery_method` must be provided.
897
+ delivery_method_id: nil
898
+ )
899
+ end
900
+
901
+ sig do
902
+ override.returns(
903
+ {
904
+ provider:
905
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::OrSymbol,
906
+ configuration: T::Hash[Symbol, T.anything],
907
+ delivery_method:
908
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::OrSymbol,
909
+ delivery_method_id: String
910
+ }
911
+ )
912
+ end
913
+ def to_hash
914
+ end
915
+
916
+ # The revenue system provider set for this configuration.
917
+ module Provider
918
+ extend MetronomeSDK::Internal::Type::Enum
919
+
920
+ TaggedSymbol =
921
+ T.type_alias do
922
+ T.all(
923
+ Symbol,
924
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider
925
+ )
926
+ end
927
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
928
+
929
+ NETSUITE =
930
+ T.let(
931
+ :netsuite,
932
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::TaggedSymbol
933
+ )
934
+
935
+ sig do
936
+ override.returns(
937
+ T::Array[
938
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::Provider::TaggedSymbol
939
+ ]
940
+ )
941
+ end
942
+ def self.values
943
+ end
944
+ end
945
+
946
+ # The method to use for delivering invoices to this customer. If not provided, the
947
+ # `delivery_method_id` must be provided.
948
+ module DeliveryMethod
949
+ extend MetronomeSDK::Internal::Type::Enum
950
+
951
+ TaggedSymbol =
952
+ T.type_alias do
953
+ T.all(
954
+ Symbol,
955
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod
956
+ )
957
+ end
958
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
959
+
960
+ DIRECT_TO_BILLING_PROVIDER =
961
+ T.let(
962
+ :direct_to_billing_provider,
963
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
964
+ )
965
+
966
+ sig do
967
+ override.returns(
968
+ T::Array[
969
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
970
+ ]
971
+ )
972
+ end
973
+ def self.values
974
+ end
975
+ end
976
+ end
773
977
  end
774
978
  end
775
979
  end