metronome-sdk 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +55 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +25 -11
  5. data/lib/metronome_sdk/file_part.rb +10 -7
  6. data/lib/metronome_sdk/internal/body_cursor_page.rb +1 -1
  7. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  8. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +1 -1
  9. data/lib/metronome_sdk/internal/transport/base_client.rb +11 -7
  10. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +7 -10
  11. data/lib/metronome_sdk/internal/type/base_page.rb +1 -1
  12. data/lib/metronome_sdk/internal/type/enum.rb +25 -0
  13. data/lib/metronome_sdk/internal/type/file_input.rb +7 -4
  14. data/lib/metronome_sdk/internal/util.rb +8 -7
  15. data/lib/metronome_sdk/models/contract_v2.rb +256 -6
  16. data/lib/metronome_sdk/models/contract_without_amendments.rb +2 -2
  17. data/lib/metronome_sdk/models/hierarchy_configuration.rb +99 -2
  18. data/lib/metronome_sdk/models/payment_gate_config.rb +1 -0
  19. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +1 -0
  20. data/lib/metronome_sdk/models/subscription.rb +85 -1
  21. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  22. data/lib/metronome_sdk/models/v1/alert_create_params.rb +38 -36
  23. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/contract_create_params.rb +101 -3
  25. data/lib/metronome_sdk/models/v1/customer_detail.rb +9 -1
  26. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +5 -15
  27. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  28. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +3 -3
  29. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  30. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +12 -12
  31. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +40 -38
  32. data/lib/metronome_sdk/models/v1/customers/invoice.rb +136 -18
  33. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  34. data/lib/metronome_sdk/models/v1/payment.rb +151 -0
  35. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  36. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  37. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  38. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  39. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  40. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  41. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +9 -1
  42. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +9 -1
  43. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +186 -3
  44. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +195 -8
  45. data/lib/metronome_sdk/resources/v1/alerts.rb +57 -53
  46. data/lib/metronome_sdk/resources/v1/contracts.rb +4 -3
  47. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +70 -51
  48. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +55 -0
  49. data/lib/metronome_sdk/resources/v1/customers.rb +7 -4
  50. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  51. data/lib/metronome_sdk/resources/v1/usage.rb +4 -2
  52. data/lib/metronome_sdk/resources/v1.rb +4 -0
  53. data/lib/metronome_sdk/resources/v2/contracts.rb +9 -3
  54. data/lib/metronome_sdk/version.rb +1 -1
  55. data/lib/metronome_sdk.rb +9 -0
  56. data/rbi/metronome_sdk/errors.rbi +29 -2
  57. data/rbi/metronome_sdk/file_part.rbi +1 -1
  58. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  59. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  60. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  61. data/rbi/metronome_sdk/models/contract_v2.rbi +603 -10
  62. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +2 -2
  63. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +250 -6
  64. data/rbi/metronome_sdk/models/payment_gate_config.rbi +5 -0
  65. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +5 -0
  66. data/rbi/metronome_sdk/models/subscription.rbi +175 -0
  67. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  68. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +51 -47
  69. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +5 -0
  70. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +257 -4
  71. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +8 -0
  72. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +6 -21
  73. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  74. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  75. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  76. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +14 -14
  77. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +48 -44
  78. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +246 -58
  79. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  80. data/rbi/metronome_sdk/models/v1/payment.rbi +316 -0
  81. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  82. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  83. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  84. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  85. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  86. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  87. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +18 -0
  88. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +18 -0
  89. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +498 -6
  90. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +462 -14
  91. data/rbi/metronome_sdk/resources/v1/alerts.rbi +68 -64
  92. data/rbi/metronome_sdk/resources/v1/contracts.rbi +4 -3
  93. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +73 -54
  94. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +36 -0
  95. data/rbi/metronome_sdk/resources/v1/customers.rbi +7 -4
  96. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  97. data/rbi/metronome_sdk/resources/v1/usage.rbi +4 -2
  98. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  99. data/rbi/metronome_sdk/resources/v2/contracts.rbi +14 -0
  100. data/sig/metronome_sdk/errors.rbs +7 -0
  101. data/sig/metronome_sdk/file_part.rbs +1 -1
  102. data/sig/metronome_sdk/models/contract_v2.rbs +239 -12
  103. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +87 -6
  104. data/sig/metronome_sdk/models/payment_gate_config.rbs +2 -1
  105. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +2 -1
  106. data/sig/metronome_sdk/models/subscription.rbs +80 -0
  107. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +2 -1
  108. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +91 -5
  109. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  110. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  111. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  112. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +137 -24
  113. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  114. data/sig/metronome_sdk/models/v1/payment.rbs +191 -0
  115. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  116. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  117. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  118. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  119. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  120. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  121. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +9 -0
  122. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +9 -0
  123. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +182 -7
  124. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +221 -18
  125. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  126. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  127. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  128. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -0
  129. metadata +29 -2
@@ -111,15 +111,19 @@ module MetronomeSDK
111
111
 
112
112
  # Either a **parent** configuration with a list of children or a **child**
113
113
  # configuration with a single parent.
114
- sig { returns(T.nilable(MetronomeSDK::HierarchyConfiguration::Variants)) }
114
+ sig do
115
+ returns(
116
+ T.nilable(MetronomeSDK::ContractV2::HierarchyConfiguration::Variants)
117
+ )
118
+ end
115
119
  attr_reader :hierarchy_configuration
116
120
 
117
121
  sig do
118
122
  params(
119
123
  hierarchy_configuration:
120
124
  T.any(
121
- MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
122
- MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::OrHash
125
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
126
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::OrHash
123
127
  )
124
128
  ).void
125
129
  end
@@ -328,8 +332,8 @@ module MetronomeSDK
328
332
  has_more: MetronomeSDK::ContractV2::HasMore::OrHash,
329
333
  hierarchy_configuration:
330
334
  T.any(
331
- MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
332
- MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::OrHash
335
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
336
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::OrHash
333
337
  ),
334
338
  multiplier_override_prioritization:
335
339
  MetronomeSDK::ContractV2::MultiplierOverridePrioritization::OrSymbol,
@@ -444,7 +448,7 @@ module MetronomeSDK
444
448
  ending_before: Time,
445
449
  has_more: MetronomeSDK::ContractV2::HasMore,
446
450
  hierarchy_configuration:
447
- MetronomeSDK::HierarchyConfiguration::Variants,
451
+ MetronomeSDK::ContractV2::HierarchyConfiguration::Variants,
448
452
  multiplier_override_prioritization:
449
453
  MetronomeSDK::ContractV2::MultiplierOverridePrioritization::TaggedSymbol,
450
454
  name: String,
@@ -2372,10 +2376,17 @@ module MetronomeSDK
2372
2376
  end
2373
2377
  attr_writer :override_tiers
2374
2378
 
2375
- sig { returns(T.nilable(MetronomeSDK::OverwriteRate)) }
2379
+ sig do
2380
+ returns(T.nilable(MetronomeSDK::ContractV2::Override::OverwriteRate))
2381
+ end
2376
2382
  attr_reader :overwrite_rate
2377
2383
 
2378
- sig { params(overwrite_rate: MetronomeSDK::OverwriteRate::OrHash).void }
2384
+ sig do
2385
+ params(
2386
+ overwrite_rate:
2387
+ MetronomeSDK::ContractV2::Override::OverwriteRate::OrHash
2388
+ ).void
2389
+ end
2379
2390
  attr_writer :overwrite_rate
2380
2391
 
2381
2392
  sig { returns(T.nilable(Float)) }
@@ -2434,7 +2445,8 @@ module MetronomeSDK
2434
2445
  MetronomeSDK::ContractV2::Override::OverrideSpecifier::OrHash
2435
2446
  ],
2436
2447
  override_tiers: T::Array[MetronomeSDK::OverrideTier::OrHash],
2437
- overwrite_rate: MetronomeSDK::OverwriteRate::OrHash,
2448
+ overwrite_rate:
2449
+ MetronomeSDK::ContractV2::Override::OverwriteRate::OrHash,
2438
2450
  priority: Float,
2439
2451
  product: MetronomeSDK::ContractV2::Override::Product::OrHash,
2440
2452
  target: MetronomeSDK::ContractV2::Override::Target::OrSymbol,
@@ -2472,7 +2484,7 @@ module MetronomeSDK
2472
2484
  override_specifiers:
2473
2485
  T::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier],
2474
2486
  override_tiers: T::Array[MetronomeSDK::OverrideTier],
2475
- overwrite_rate: MetronomeSDK::OverwriteRate,
2487
+ overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate,
2476
2488
  priority: Float,
2477
2489
  product: MetronomeSDK::ContractV2::Override::Product,
2478
2490
  target: MetronomeSDK::ContractV2::Override::Target::TaggedSymbol,
@@ -2643,6 +2655,164 @@ module MetronomeSDK
2643
2655
  end
2644
2656
  end
2645
2657
 
2658
+ class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
2659
+ OrHash =
2660
+ T.type_alias do
2661
+ T.any(
2662
+ MetronomeSDK::ContractV2::Override::OverwriteRate,
2663
+ MetronomeSDK::Internal::AnyHash
2664
+ )
2665
+ end
2666
+
2667
+ sig do
2668
+ returns(
2669
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2670
+ )
2671
+ end
2672
+ attr_accessor :rate_type
2673
+
2674
+ sig { returns(T.nilable(MetronomeSDK::CreditTypeData)) }
2675
+ attr_reader :credit_type
2676
+
2677
+ sig { params(credit_type: MetronomeSDK::CreditTypeData::OrHash).void }
2678
+ attr_writer :credit_type
2679
+
2680
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
2681
+ # processors.
2682
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
2683
+ attr_reader :custom_rate
2684
+
2685
+ sig { params(custom_rate: T::Hash[Symbol, T.anything]).void }
2686
+ attr_writer :custom_rate
2687
+
2688
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2689
+ # set to true.
2690
+ sig { returns(T.nilable(T::Boolean)) }
2691
+ attr_reader :is_prorated
2692
+
2693
+ sig { params(is_prorated: T::Boolean).void }
2694
+ attr_writer :is_prorated
2695
+
2696
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2697
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2698
+ sig { returns(T.nilable(Float)) }
2699
+ attr_reader :price
2700
+
2701
+ sig { params(price: Float).void }
2702
+ attr_writer :price
2703
+
2704
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
2705
+ sig { returns(T.nilable(Float)) }
2706
+ attr_reader :quantity
2707
+
2708
+ sig { params(quantity: Float).void }
2709
+ attr_writer :quantity
2710
+
2711
+ # Only set for TIERED rate_type.
2712
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Tier])) }
2713
+ attr_reader :tiers
2714
+
2715
+ sig { params(tiers: T::Array[MetronomeSDK::Tier::OrHash]).void }
2716
+ attr_writer :tiers
2717
+
2718
+ sig do
2719
+ params(
2720
+ rate_type:
2721
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::OrSymbol,
2722
+ credit_type: MetronomeSDK::CreditTypeData::OrHash,
2723
+ custom_rate: T::Hash[Symbol, T.anything],
2724
+ is_prorated: T::Boolean,
2725
+ price: Float,
2726
+ quantity: Float,
2727
+ tiers: T::Array[MetronomeSDK::Tier::OrHash]
2728
+ ).returns(T.attached_class)
2729
+ end
2730
+ def self.new(
2731
+ rate_type:,
2732
+ credit_type: nil,
2733
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
2734
+ # processors.
2735
+ custom_rate: nil,
2736
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2737
+ # set to true.
2738
+ is_prorated: nil,
2739
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2740
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2741
+ price: nil,
2742
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
2743
+ quantity: nil,
2744
+ # Only set for TIERED rate_type.
2745
+ tiers: nil
2746
+ )
2747
+ end
2748
+
2749
+ sig do
2750
+ override.returns(
2751
+ {
2752
+ rate_type:
2753
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol,
2754
+ credit_type: MetronomeSDK::CreditTypeData,
2755
+ custom_rate: T::Hash[Symbol, T.anything],
2756
+ is_prorated: T::Boolean,
2757
+ price: Float,
2758
+ quantity: Float,
2759
+ tiers: T::Array[MetronomeSDK::Tier]
2760
+ }
2761
+ )
2762
+ end
2763
+ def to_hash
2764
+ end
2765
+
2766
+ module RateType
2767
+ extend MetronomeSDK::Internal::Type::Enum
2768
+
2769
+ TaggedSymbol =
2770
+ T.type_alias do
2771
+ T.all(
2772
+ Symbol,
2773
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType
2774
+ )
2775
+ end
2776
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2777
+
2778
+ FLAT =
2779
+ T.let(
2780
+ :FLAT,
2781
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2782
+ )
2783
+ PERCENTAGE =
2784
+ T.let(
2785
+ :PERCENTAGE,
2786
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2787
+ )
2788
+ SUBSCRIPTION =
2789
+ T.let(
2790
+ :SUBSCRIPTION,
2791
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2792
+ )
2793
+ TIERED =
2794
+ T.let(
2795
+ :TIERED,
2796
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2797
+ )
2798
+ CUSTOM =
2799
+ T.let(
2800
+ :CUSTOM,
2801
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2802
+ )
2803
+
2804
+ sig do
2805
+ override.returns(
2806
+ T::Array[
2807
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2808
+ ]
2809
+ )
2810
+ end
2811
+ def self.values
2812
+ end
2813
+ end
2814
+ end
2815
+
2646
2816
  class Product < MetronomeSDK::Internal::Type::BaseModel
2647
2817
  OrHash =
2648
2818
  T.type_alias do
@@ -4164,6 +4334,429 @@ module MetronomeSDK
4164
4334
  end
4165
4335
  end
4166
4336
 
4337
+ # Either a **parent** configuration with a list of children or a **child**
4338
+ # configuration with a single parent.
4339
+ module HierarchyConfiguration
4340
+ extend MetronomeSDK::Internal::Type::Union
4341
+
4342
+ Variants =
4343
+ T.type_alias do
4344
+ T.any(
4345
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration,
4346
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2
4347
+ )
4348
+ end
4349
+
4350
+ class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4351
+ OrHash =
4352
+ T.type_alias do
4353
+ T.any(
4354
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration,
4355
+ MetronomeSDK::Internal::AnyHash
4356
+ )
4357
+ end
4358
+
4359
+ # List of contracts that belong to this parent.
4360
+ sig do
4361
+ returns(
4362
+ T::Array[
4363
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child
4364
+ ]
4365
+ )
4366
+ end
4367
+ attr_accessor :children
4368
+
4369
+ sig do
4370
+ returns(
4371
+ T.nilable(
4372
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
4373
+ )
4374
+ )
4375
+ end
4376
+ attr_reader :parent_behavior
4377
+
4378
+ sig do
4379
+ params(
4380
+ parent_behavior:
4381
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::OrHash
4382
+ ).void
4383
+ end
4384
+ attr_writer :parent_behavior
4385
+
4386
+ sig do
4387
+ params(
4388
+ children:
4389
+ T::Array[
4390
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child::OrHash
4391
+ ],
4392
+ parent_behavior:
4393
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::OrHash
4394
+ ).returns(T.attached_class)
4395
+ end
4396
+ def self.new(
4397
+ # List of contracts that belong to this parent.
4398
+ children:,
4399
+ parent_behavior: nil
4400
+ )
4401
+ end
4402
+
4403
+ sig do
4404
+ override.returns(
4405
+ {
4406
+ children:
4407
+ T::Array[
4408
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child
4409
+ ],
4410
+ parent_behavior:
4411
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
4412
+ }
4413
+ )
4414
+ end
4415
+ def to_hash
4416
+ end
4417
+
4418
+ class Child < MetronomeSDK::Internal::Type::BaseModel
4419
+ OrHash =
4420
+ T.type_alias do
4421
+ T.any(
4422
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child,
4423
+ MetronomeSDK::Internal::AnyHash
4424
+ )
4425
+ end
4426
+
4427
+ sig { returns(String) }
4428
+ attr_accessor :contract_id
4429
+
4430
+ sig { returns(String) }
4431
+ attr_accessor :customer_id
4432
+
4433
+ sig do
4434
+ params(contract_id: String, customer_id: String).returns(
4435
+ T.attached_class
4436
+ )
4437
+ end
4438
+ def self.new(contract_id:, customer_id:)
4439
+ end
4440
+
4441
+ sig do
4442
+ override.returns({ contract_id: String, customer_id: String })
4443
+ end
4444
+ def to_hash
4445
+ end
4446
+ end
4447
+
4448
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
4449
+ OrHash =
4450
+ T.type_alias do
4451
+ T.any(
4452
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior,
4453
+ MetronomeSDK::Internal::AnyHash
4454
+ )
4455
+ end
4456
+
4457
+ # Indicates the desired behavior of consolidated invoices generated by the parent
4458
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
4459
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
4460
+ # consolidated invoices
4461
+ sig do
4462
+ returns(
4463
+ T.nilable(
4464
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4465
+ )
4466
+ )
4467
+ end
4468
+ attr_reader :invoice_consolidation_type
4469
+
4470
+ sig do
4471
+ params(
4472
+ invoice_consolidation_type:
4473
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
4474
+ ).void
4475
+ end
4476
+ attr_writer :invoice_consolidation_type
4477
+
4478
+ sig do
4479
+ params(
4480
+ invoice_consolidation_type:
4481
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
4482
+ ).returns(T.attached_class)
4483
+ end
4484
+ def self.new(
4485
+ # Indicates the desired behavior of consolidated invoices generated by the parent
4486
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
4487
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
4488
+ # consolidated invoices
4489
+ invoice_consolidation_type: nil
4490
+ )
4491
+ end
4492
+
4493
+ sig do
4494
+ override.returns(
4495
+ {
4496
+ invoice_consolidation_type:
4497
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4498
+ }
4499
+ )
4500
+ end
4501
+ def to_hash
4502
+ end
4503
+
4504
+ # Indicates the desired behavior of consolidated invoices generated by the parent
4505
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
4506
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
4507
+ # consolidated invoices
4508
+ module InvoiceConsolidationType
4509
+ extend MetronomeSDK::Internal::Type::Enum
4510
+
4511
+ TaggedSymbol =
4512
+ T.type_alias do
4513
+ T.all(
4514
+ Symbol,
4515
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType
4516
+ )
4517
+ end
4518
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4519
+
4520
+ CONCATENATE =
4521
+ T.let(
4522
+ :CONCATENATE,
4523
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4524
+ )
4525
+ NONE =
4526
+ T.let(
4527
+ :NONE,
4528
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4529
+ )
4530
+
4531
+ sig do
4532
+ override.returns(
4533
+ T::Array[
4534
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4535
+ ]
4536
+ )
4537
+ end
4538
+ def self.values
4539
+ end
4540
+ end
4541
+ end
4542
+ end
4543
+
4544
+ class ChildHierarchyConfigurationV2 < MetronomeSDK::Internal::Type::BaseModel
4545
+ OrHash =
4546
+ T.type_alias do
4547
+ T.any(
4548
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2,
4549
+ MetronomeSDK::Internal::AnyHash
4550
+ )
4551
+ end
4552
+
4553
+ # The single parent contract/customer for this child.
4554
+ sig do
4555
+ returns(
4556
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent
4557
+ )
4558
+ end
4559
+ attr_reader :parent
4560
+
4561
+ sig do
4562
+ params(
4563
+ parent:
4564
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent::OrHash
4565
+ ).void
4566
+ end
4567
+ attr_writer :parent
4568
+
4569
+ # Indicates whether the child or parent should pay for the child's invoice charges
4570
+ sig do
4571
+ returns(
4572
+ T.nilable(
4573
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol
4574
+ )
4575
+ )
4576
+ end
4577
+ attr_reader :payer
4578
+
4579
+ sig do
4580
+ params(
4581
+ payer:
4582
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::OrSymbol
4583
+ ).void
4584
+ end
4585
+ attr_writer :payer
4586
+
4587
+ # Indicates the behavior of the child's invoice statements on the parent's
4588
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
4589
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
4590
+ # appear on parent's consolidated invoices
4591
+ sig do
4592
+ returns(
4593
+ T.nilable(
4594
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4595
+ )
4596
+ )
4597
+ end
4598
+ attr_reader :usage_statement_behavior
4599
+
4600
+ sig do
4601
+ params(
4602
+ usage_statement_behavior:
4603
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::OrSymbol
4604
+ ).void
4605
+ end
4606
+ attr_writer :usage_statement_behavior
4607
+
4608
+ sig do
4609
+ params(
4610
+ parent:
4611
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent::OrHash,
4612
+ payer:
4613
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::OrSymbol,
4614
+ usage_statement_behavior:
4615
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::OrSymbol
4616
+ ).returns(T.attached_class)
4617
+ end
4618
+ def self.new(
4619
+ # The single parent contract/customer for this child.
4620
+ parent:,
4621
+ # Indicates whether the child or parent should pay for the child's invoice charges
4622
+ payer: nil,
4623
+ # Indicates the behavior of the child's invoice statements on the parent's
4624
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
4625
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
4626
+ # appear on parent's consolidated invoices
4627
+ usage_statement_behavior: nil
4628
+ )
4629
+ end
4630
+
4631
+ sig do
4632
+ override.returns(
4633
+ {
4634
+ parent:
4635
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
4636
+ payer:
4637
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol,
4638
+ usage_statement_behavior:
4639
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4640
+ }
4641
+ )
4642
+ end
4643
+ def to_hash
4644
+ end
4645
+
4646
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
4647
+ OrHash =
4648
+ T.type_alias do
4649
+ T.any(
4650
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
4651
+ MetronomeSDK::Internal::AnyHash
4652
+ )
4653
+ end
4654
+
4655
+ sig { returns(String) }
4656
+ attr_accessor :contract_id
4657
+
4658
+ sig { returns(String) }
4659
+ attr_accessor :customer_id
4660
+
4661
+ # The single parent contract/customer for this child.
4662
+ sig do
4663
+ params(contract_id: String, customer_id: String).returns(
4664
+ T.attached_class
4665
+ )
4666
+ end
4667
+ def self.new(contract_id:, customer_id:)
4668
+ end
4669
+
4670
+ sig do
4671
+ override.returns({ contract_id: String, customer_id: String })
4672
+ end
4673
+ def to_hash
4674
+ end
4675
+ end
4676
+
4677
+ # Indicates whether the child or parent should pay for the child's invoice charges
4678
+ module Payer
4679
+ extend MetronomeSDK::Internal::Type::Enum
4680
+
4681
+ TaggedSymbol =
4682
+ T.type_alias do
4683
+ T.all(
4684
+ Symbol,
4685
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer
4686
+ )
4687
+ end
4688
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4689
+
4690
+ SELF =
4691
+ T.let(
4692
+ :SELF,
4693
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol
4694
+ )
4695
+ PARENT =
4696
+ T.let(
4697
+ :PARENT,
4698
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol
4699
+ )
4700
+
4701
+ sig do
4702
+ override.returns(
4703
+ T::Array[
4704
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol
4705
+ ]
4706
+ )
4707
+ end
4708
+ def self.values
4709
+ end
4710
+ end
4711
+
4712
+ # Indicates the behavior of the child's invoice statements on the parent's
4713
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
4714
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
4715
+ # appear on parent's consolidated invoices
4716
+ module UsageStatementBehavior
4717
+ extend MetronomeSDK::Internal::Type::Enum
4718
+
4719
+ TaggedSymbol =
4720
+ T.type_alias do
4721
+ T.all(
4722
+ Symbol,
4723
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior
4724
+ )
4725
+ end
4726
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4727
+
4728
+ CONSOLIDATE =
4729
+ T.let(
4730
+ :CONSOLIDATE,
4731
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4732
+ )
4733
+ SEPARATE =
4734
+ T.let(
4735
+ :SEPARATE,
4736
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4737
+ )
4738
+
4739
+ sig do
4740
+ override.returns(
4741
+ T::Array[
4742
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4743
+ ]
4744
+ )
4745
+ end
4746
+ def self.values
4747
+ end
4748
+ end
4749
+ end
4750
+
4751
+ sig do
4752
+ override.returns(
4753
+ T::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::Variants]
4754
+ )
4755
+ end
4756
+ def self.variants
4757
+ end
4758
+ end
4759
+
4167
4760
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
4168
4761
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
4169
4762
  # each multiplier; the one with the lowest priority value will be prioritized
@@ -53,7 +53,7 @@ module MetronomeSDK
53
53
  sig { params(credits: T::Array[MetronomeSDK::Credit::OrHash]).void }
54
54
  attr_writer :credits
55
55
 
56
- # This field's availability is dependent on your client's configuration.
56
+ # This field's availability is dependent on your client's
57
57
  sig { returns(T.nilable(T::Array[MetronomeSDK::Discount])) }
58
58
  attr_reader :discounts
59
59
 
@@ -310,7 +310,7 @@ module MetronomeSDK
310
310
  transitions:,
311
311
  usage_statement_schedule:,
312
312
  credits: nil,
313
- # This field's availability is dependent on your client's configuration.
313
+ # This field's availability is dependent on your client's
314
314
  discounts: nil,
315
315
  ending_before: nil,
316
316
  # Either a **parent** configuration with a list of children or a **child**