metronome-sdk 0.1.0.pre.alpha.4 → 0.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -1
  6. data/lib/metronome_sdk/models/commit.rb +81 -8
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +368 -2
  8. data/lib/metronome_sdk/models/credit.rb +67 -6
  9. data/lib/metronome_sdk/models/v1/alert_create_params.rb +9 -11
  10. data/lib/metronome_sdk/models/v1/contract_create_params.rb +399 -12
  11. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  12. data/lib/metronome_sdk/models/v1/customers/commit_list_params.rb +9 -1
  13. data/lib/metronome_sdk/models/v1/customers/credit_list_params.rb +9 -1
  14. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +29 -1
  15. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  16. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +2 -0
  17. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +2 -0
  18. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +417 -18
  19. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +776 -12
  20. data/lib/metronome_sdk/models/v2/contract_list_response.rb +529 -22
  21. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +529 -22
  22. data/lib/metronome_sdk/resources/v1/alerts.rb +2 -2
  23. data/lib/metronome_sdk/resources/v1/contracts.rb +3 -1
  24. data/lib/metronome_sdk/resources/v1/customers/commits.rb +3 -1
  25. data/lib/metronome_sdk/resources/v1/customers/credits.rb +3 -1
  26. data/lib/metronome_sdk/version.rb +1 -1
  27. data/rbi/metronome_sdk/internal/transport/base_client.rbi +1 -1
  28. data/rbi/metronome_sdk/models/commit.rbi +173 -15
  29. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +888 -6
  30. data/rbi/metronome_sdk/models/credit.rbi +141 -12
  31. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +16 -18
  32. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1160 -226
  33. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  34. data/rbi/metronome_sdk/models/v1/customers/commit_list_params.rbi +11 -0
  35. data/rbi/metronome_sdk/models/v1/customers/credit_list_params.rbi +11 -0
  36. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +60 -0
  37. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  38. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +4 -0
  39. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +4 -0
  40. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1192 -234
  41. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +2155 -87
  42. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +1260 -47
  43. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +1260 -47
  44. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -5
  45. data/rbi/metronome_sdk/resources/v1/contracts.rbi +3 -0
  46. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -0
  47. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +3 -0
  48. data/rbi/metronome_sdk/resources/v2/contracts.rbi +4 -0
  49. data/sig/metronome_sdk/internal/transport/base_client.rbs +1 -1
  50. data/sig/metronome_sdk/models/commit.rbs +93 -15
  51. data/sig/metronome_sdk/models/contract_without_amendments.rbs +366 -6
  52. data/sig/metronome_sdk/models/credit.rbs +73 -9
  53. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +9 -9
  54. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +376 -3
  55. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  56. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +7 -0
  57. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +7 -0
  58. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +21 -0
  59. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  60. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +376 -3
  61. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +858 -6
  62. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +558 -30
  63. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +558 -30
  64. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -1
  65. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  66. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  67. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  68. metadata +4 -4
@@ -2509,6 +2509,13 @@ module MetronomeSDK
2509
2509
  # @return [Time, nil]
2510
2510
  optional :ending_before, Time
2511
2511
 
2512
+ # @!attribute hierarchy_configuration
2513
+ # Optional configuration for recurring commit/credit hierarchy access control
2514
+ #
2515
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration, nil]
2516
+ optional :hierarchy_configuration,
2517
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration }
2518
+
2512
2519
  # @!attribute invoice_amount
2513
2520
  # The amount the customer should be billed for the commit. Not required.
2514
2521
  #
@@ -2574,6 +2581,13 @@ module MetronomeSDK
2574
2581
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Specifier]
2575
2582
  }
2576
2583
 
2584
+ # @!attribute subscription_config
2585
+ # Attach a subscription to the recurring commit/credit.
2586
+ #
2587
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig, nil]
2588
+ optional :subscription_config,
2589
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig }
2590
+
2577
2591
  # @!attribute temporary_id
2578
2592
  # A temporary ID that can be used to reference the recurring commit for commit
2579
2593
  # specific overrides.
@@ -2581,7 +2595,7 @@ module MetronomeSDK
2581
2595
  # @return [String, nil]
2582
2596
  optional :temporary_id, String
2583
2597
 
2584
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
2598
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
2585
2599
  # Some parameter documentations has been truncated, see
2586
2600
  # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit} for more
2587
2601
  # details.
@@ -2604,6 +2618,8 @@ module MetronomeSDK
2604
2618
  #
2605
2619
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2606
2620
  #
2621
+ # @param hierarchy_configuration [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
2622
+ #
2607
2623
  # @param invoice_amount [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
2608
2624
  #
2609
2625
  # @param name [String] displayed on invoices. will be passed through to the individual commits
@@ -2620,6 +2636,8 @@ module MetronomeSDK
2620
2636
  #
2621
2637
  # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2622
2638
  #
2639
+ # @param subscription_config [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
2640
+ #
2623
2641
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
2624
2642
 
2625
2643
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#access_amount
@@ -2689,6 +2707,117 @@ module MetronomeSDK
2689
2707
  end
2690
2708
  end
2691
2709
 
2710
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#hierarchy_configuration
2711
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2712
+ # @!attribute child_access
2713
+ #
2714
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2715
+ required :child_access,
2716
+ union: -> {
2717
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess
2718
+ }
2719
+
2720
+ # @!method initialize(child_access:)
2721
+ # Optional configuration for recurring commit/credit hierarchy access control
2722
+ #
2723
+ # @param child_access [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2724
+
2725
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration#child_access
2726
+ module ChildAccess
2727
+ extend MetronomeSDK::Internal::Type::Union
2728
+
2729
+ variant -> {
2730
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
2731
+ }
2732
+
2733
+ variant -> {
2734
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
2735
+ }
2736
+
2737
+ variant -> {
2738
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2739
+ }
2740
+
2741
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2742
+ # @!attribute type
2743
+ #
2744
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2745
+ required :type,
2746
+ enum: -> {
2747
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
2748
+ }
2749
+
2750
+ # @!method initialize(type:)
2751
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2752
+
2753
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
2754
+ module Type
2755
+ extend MetronomeSDK::Internal::Type::Enum
2756
+
2757
+ ALL = :ALL
2758
+
2759
+ # @!method self.values
2760
+ # @return [Array<Symbol>]
2761
+ end
2762
+ end
2763
+
2764
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2765
+ # @!attribute type
2766
+ #
2767
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2768
+ required :type,
2769
+ enum: -> {
2770
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
2771
+ }
2772
+
2773
+ # @!method initialize(type:)
2774
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2775
+
2776
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
2777
+ module Type
2778
+ extend MetronomeSDK::Internal::Type::Enum
2779
+
2780
+ NONE = :NONE
2781
+
2782
+ # @!method self.values
2783
+ # @return [Array<Symbol>]
2784
+ end
2785
+ end
2786
+
2787
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2788
+ # @!attribute contract_ids
2789
+ #
2790
+ # @return [Array<String>]
2791
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2792
+
2793
+ # @!attribute type
2794
+ #
2795
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2796
+ required :type,
2797
+ enum: -> {
2798
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2799
+ }
2800
+
2801
+ # @!method initialize(contract_ids:, type:)
2802
+ # @param contract_ids [Array<String>]
2803
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2804
+
2805
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
2806
+ module Type
2807
+ extend MetronomeSDK::Internal::Type::Enum
2808
+
2809
+ CONTRACT_IDS = :CONTRACT_IDS
2810
+
2811
+ # @!method self.values
2812
+ # @return [Array<Symbol>]
2813
+ end
2814
+ end
2815
+
2816
+ # @!method self.variants
2817
+ # @return [Array(MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
2818
+ end
2819
+ end
2820
+
2692
2821
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#invoice_amount
2693
2822
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
2694
2823
  # @!attribute credit_type_id
@@ -2799,6 +2928,65 @@ module MetronomeSDK
2799
2928
  #
2800
2929
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2801
2930
  end
2931
+
2932
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#subscription_config
2933
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
2934
+ # @!attribute apply_seat_increase_config
2935
+ #
2936
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2937
+ required :apply_seat_increase_config,
2938
+ -> {
2939
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
2940
+ }
2941
+
2942
+ # @!attribute subscription_id
2943
+ # ID of the subscription to configure on the recurring commit/credit.
2944
+ #
2945
+ # @return [String]
2946
+ required :subscription_id, String
2947
+
2948
+ # @!attribute allocation
2949
+ # If set to POOLED, allocation added per seat is pooled across the account.
2950
+ #
2951
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation, nil]
2952
+ optional :allocation,
2953
+ enum: -> {
2954
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation
2955
+ }
2956
+
2957
+ # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2958
+ # Attach a subscription to the recurring commit/credit.
2959
+ #
2960
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2961
+ #
2962
+ # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2963
+ #
2964
+ # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
2965
+
2966
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig#apply_seat_increase_config
2967
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
2968
+ # @!attribute is_prorated
2969
+ # Indicates whether a mid-period seat increase should be prorated.
2970
+ #
2971
+ # @return [Boolean]
2972
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
2973
+
2974
+ # @!method initialize(is_prorated:)
2975
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2976
+ end
2977
+
2978
+ # If set to POOLED, allocation added per seat is pooled across the account.
2979
+ #
2980
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig#allocation
2981
+ module Allocation
2982
+ extend MetronomeSDK::Internal::Type::Enum
2983
+
2984
+ POOLED = :POOLED
2985
+
2986
+ # @!method self.values
2987
+ # @return [Array<Symbol>]
2988
+ end
2989
+ end
2802
2990
  end
2803
2991
 
2804
2992
  class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -2863,6 +3051,13 @@ module MetronomeSDK
2863
3051
  # @return [Time, nil]
2864
3052
  optional :ending_before, Time
2865
3053
 
3054
+ # @!attribute hierarchy_configuration
3055
+ # Optional configuration for recurring commit/credit hierarchy access control
3056
+ #
3057
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration, nil]
3058
+ optional :hierarchy_configuration,
3059
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration }
3060
+
2866
3061
  # @!attribute name
2867
3062
  # displayed on invoices. will be passed through to the individual commits
2868
3063
  #
@@ -2919,6 +3114,13 @@ module MetronomeSDK
2919
3114
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCredit::Specifier]
2920
3115
  }
2921
3116
 
3117
+ # @!attribute subscription_config
3118
+ # Attach a subscription to the recurring commit/credit.
3119
+ #
3120
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig, nil]
3121
+ optional :subscription_config,
3122
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig }
3123
+
2922
3124
  # @!attribute temporary_id
2923
3125
  # A temporary ID that can be used to reference the recurring commit for commit
2924
3126
  # specific overrides.
@@ -2926,7 +3128,7 @@ module MetronomeSDK
2926
3128
  # @return [String, nil]
2927
3129
  optional :temporary_id, String
2928
3130
 
2929
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
3131
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
2930
3132
  # Some parameter documentations has been truncated, see
2931
3133
  # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit} for more
2932
3134
  # details.
@@ -2949,6 +3151,8 @@ module MetronomeSDK
2949
3151
  #
2950
3152
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2951
3153
  #
3154
+ # @param hierarchy_configuration [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
3155
+ #
2952
3156
  # @param name [String] displayed on invoices. will be passed through to the individual commits
2953
3157
  #
2954
3158
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
@@ -2963,6 +3167,8 @@ module MetronomeSDK
2963
3167
  #
2964
3168
  # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2965
3169
  #
3170
+ # @param subscription_config [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
3171
+ #
2966
3172
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
2967
3173
 
2968
3174
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#access_amount
@@ -3032,6 +3238,117 @@ module MetronomeSDK
3032
3238
  end
3033
3239
  end
3034
3240
 
3241
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#hierarchy_configuration
3242
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3243
+ # @!attribute child_access
3244
+ #
3245
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3246
+ required :child_access,
3247
+ union: -> {
3248
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess
3249
+ }
3250
+
3251
+ # @!method initialize(child_access:)
3252
+ # Optional configuration for recurring commit/credit hierarchy access control
3253
+ #
3254
+ # @param child_access [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3255
+
3256
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration#child_access
3257
+ module ChildAccess
3258
+ extend MetronomeSDK::Internal::Type::Union
3259
+
3260
+ variant -> {
3261
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
3262
+ }
3263
+
3264
+ variant -> {
3265
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
3266
+ }
3267
+
3268
+ variant -> {
3269
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
3270
+ }
3271
+
3272
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3273
+ # @!attribute type
3274
+ #
3275
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3276
+ required :type,
3277
+ enum: -> {
3278
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
3279
+ }
3280
+
3281
+ # @!method initialize(type:)
3282
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3283
+
3284
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
3285
+ module Type
3286
+ extend MetronomeSDK::Internal::Type::Enum
3287
+
3288
+ ALL = :ALL
3289
+
3290
+ # @!method self.values
3291
+ # @return [Array<Symbol>]
3292
+ end
3293
+ end
3294
+
3295
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3296
+ # @!attribute type
3297
+ #
3298
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3299
+ required :type,
3300
+ enum: -> {
3301
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
3302
+ }
3303
+
3304
+ # @!method initialize(type:)
3305
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3306
+
3307
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
3308
+ module Type
3309
+ extend MetronomeSDK::Internal::Type::Enum
3310
+
3311
+ NONE = :NONE
3312
+
3313
+ # @!method self.values
3314
+ # @return [Array<Symbol>]
3315
+ end
3316
+ end
3317
+
3318
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3319
+ # @!attribute contract_ids
3320
+ #
3321
+ # @return [Array<String>]
3322
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3323
+
3324
+ # @!attribute type
3325
+ #
3326
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3327
+ required :type,
3328
+ enum: -> {
3329
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
3330
+ }
3331
+
3332
+ # @!method initialize(contract_ids:, type:)
3333
+ # @param contract_ids [Array<String>]
3334
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3335
+
3336
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
3337
+ module Type
3338
+ extend MetronomeSDK::Internal::Type::Enum
3339
+
3340
+ CONTRACT_IDS = :CONTRACT_IDS
3341
+
3342
+ # @!method self.values
3343
+ # @return [Array<Symbol>]
3344
+ end
3345
+ end
3346
+
3347
+ # @!method self.variants
3348
+ # @return [Array(MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
3349
+ end
3350
+ end
3351
+
3035
3352
  # Determines whether the first and last commit will be prorated. If not provided,
3036
3353
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3037
3354
  #
@@ -3117,6 +3434,65 @@ module MetronomeSDK
3117
3434
  #
3118
3435
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3119
3436
  end
3437
+
3438
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#subscription_config
3439
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
3440
+ # @!attribute apply_seat_increase_config
3441
+ #
3442
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3443
+ required :apply_seat_increase_config,
3444
+ -> {
3445
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
3446
+ }
3447
+
3448
+ # @!attribute subscription_id
3449
+ # ID of the subscription to configure on the recurring commit/credit.
3450
+ #
3451
+ # @return [String]
3452
+ required :subscription_id, String
3453
+
3454
+ # @!attribute allocation
3455
+ # If set to POOLED, allocation added per seat is pooled across the account.
3456
+ #
3457
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation, nil]
3458
+ optional :allocation,
3459
+ enum: -> {
3460
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation
3461
+ }
3462
+
3463
+ # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
3464
+ # Attach a subscription to the recurring commit/credit.
3465
+ #
3466
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3467
+ #
3468
+ # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
3469
+ #
3470
+ # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
3471
+
3472
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig#apply_seat_increase_config
3473
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
3474
+ # @!attribute is_prorated
3475
+ # Indicates whether a mid-period seat increase should be prorated.
3476
+ #
3477
+ # @return [Boolean]
3478
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
3479
+
3480
+ # @!method initialize(is_prorated:)
3481
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
3482
+ end
3483
+
3484
+ # If set to POOLED, allocation added per seat is pooled across the account.
3485
+ #
3486
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig#allocation
3487
+ module Allocation
3488
+ extend MetronomeSDK::Internal::Type::Enum
3489
+
3490
+ POOLED = :POOLED
3491
+
3492
+ # @!method self.values
3493
+ # @return [Array<Symbol>]
3494
+ end
3495
+ end
3120
3496
  end
3121
3497
 
3122
3498
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -3779,7 +4155,14 @@ module MetronomeSDK
3779
4155
  # @return [Time, nil]
3780
4156
  optional :starting_at, Time
3781
4157
 
3782
- # @!method initialize(collection_schedule:, initial_quantity:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, name: nil, starting_at: nil)
4158
+ # @!attribute temporary_id
4159
+ # A temporary ID used to reference the subscription in recurring commit/credit
4160
+ # subscription configs created within the same payload.
4161
+ #
4162
+ # @return [String, nil]
4163
+ optional :temporary_id, String
4164
+
4165
+ # @!method initialize(collection_schedule:, initial_quantity:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, name: nil, starting_at: nil, temporary_id: nil)
3783
4166
  # Some parameter documentations has been truncated, see
3784
4167
  # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription} for more details.
3785
4168
  #
@@ -3800,6 +4183,8 @@ module MetronomeSDK
3800
4183
  # @param name [String]
3801
4184
  #
3802
4185
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
4186
+ #
4187
+ # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
3803
4188
 
3804
4189
  # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#collection_schedule
3805
4190
  module CollectionSchedule
@@ -3815,10 +4200,11 @@ module MetronomeSDK
3815
4200
  # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#proration
3816
4201
  class Proration < MetronomeSDK::Internal::Type::BaseModel
3817
4202
  # @!attribute invoice_behavior
3818
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3819
- # is selected, the quantity increase will be billed on the scheduled date. If
3820
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3821
- # for in-arrears at the end of the period.
4203
+ # Indicates how mid-period quantity adjustments are invoiced.
4204
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
4205
+ # quantity increase will be billed immediately on the scheduled date.
4206
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
4207
+ # in-arrears at the end of the period.
3822
4208
  #
3823
4209
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior, nil]
3824
4210
  optional :invoice_behavior,
@@ -3837,14 +4223,15 @@ module MetronomeSDK
3837
4223
  # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration} for
3838
4224
  # more details.
3839
4225
  #
3840
- # @param invoice_behavior [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
4226
+ # @param invoice_behavior [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced.
3841
4227
  #
3842
4228
  # @param is_prorated [Boolean] Indicates if the partial period will be prorated or charged a full amount.
3843
4229
 
3844
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3845
- # is selected, the quantity increase will be billed on the scheduled date. If
3846
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3847
- # for in-arrears at the end of the period.
4230
+ # Indicates how mid-period quantity adjustments are invoiced.
4231
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
4232
+ # quantity increase will be billed immediately on the scheduled date.
4233
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
4234
+ # in-arrears at the end of the period.
3848
4235
  #
3849
4236
  # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration#invoice_behavior
3850
4237
  module InvoiceBehavior
@@ -56,6 +56,12 @@ module MetronomeSDK
56
56
  # @return [Boolean, nil]
57
57
  optional :include_ledgers, MetronomeSDK::Internal::Type::Boolean
58
58
 
59
+ # @!attribute limit
60
+ # The maximum number of commits to return. Defaults to 25.
61
+ #
62
+ # @return [Integer, nil]
63
+ optional :limit, Integer
64
+
59
65
  # @!attribute next_page
60
66
  # The next page token from a previous response.
61
67
  #
@@ -68,7 +74,7 @@ module MetronomeSDK
68
74
  # @return [Time, nil]
69
75
  optional :starting_at, Time
70
76
 
71
- # @!method initialize(customer_id:, id: nil, covering_date: nil, effective_before: nil, include_archived: nil, include_balance: nil, include_contract_balances: nil, include_ledgers: nil, next_page: nil, starting_at: nil, request_options: {})
77
+ # @!method initialize(customer_id:, id: nil, covering_date: nil, effective_before: nil, include_archived: nil, include_balance: nil, include_contract_balances: nil, include_ledgers: nil, limit: nil, next_page: nil, starting_at: nil, request_options: {})
72
78
  # Some parameter documentations has been truncated, see
73
79
  # {MetronomeSDK::Models::V1::ContractListBalancesParams} for more details.
74
80
  #
@@ -88,6 +94,8 @@ module MetronomeSDK
88
94
  #
89
95
  # @param include_ledgers [Boolean] Include ledgers in the response. Setting this flag may cause the query to be slo
90
96
  #
97
+ # @param limit [Integer] The maximum number of commits to return. Defaults to 25.
98
+ #
91
99
  # @param next_page [String] The next page token from a previous response.
92
100
  #
93
101
  # @param starting_at [Time] Include only balances that have any access on or after the provided date
@@ -57,6 +57,12 @@ module MetronomeSDK
57
57
  # @return [Boolean, nil]
58
58
  optional :include_ledgers, MetronomeSDK::Internal::Type::Boolean
59
59
 
60
+ # @!attribute limit
61
+ # The maximum number of commits to return. Defaults to 25.
62
+ #
63
+ # @return [Integer, nil]
64
+ optional :limit, Integer
65
+
60
66
  # @!attribute next_page
61
67
  # The next page token from a previous response.
62
68
  #
@@ -69,7 +75,7 @@ module MetronomeSDK
69
75
  # @return [Time, nil]
70
76
  optional :starting_at, Time
71
77
 
72
- # @!method initialize(customer_id:, commit_id: nil, covering_date: nil, effective_before: nil, include_archived: nil, include_balance: nil, include_contract_commits: nil, include_ledgers: nil, next_page: nil, starting_at: nil, request_options: {})
78
+ # @!method initialize(customer_id:, commit_id: nil, covering_date: nil, effective_before: nil, include_archived: nil, include_balance: nil, include_contract_commits: nil, include_ledgers: nil, limit: nil, next_page: nil, starting_at: nil, request_options: {})
73
79
  # Some parameter documentations has been truncated, see
74
80
  # {MetronomeSDK::Models::V1::Customers::CommitListParams} for more details.
75
81
  #
@@ -89,6 +95,8 @@ module MetronomeSDK
89
95
  #
90
96
  # @param include_ledgers [Boolean] Include commit ledgers in the response. Setting this flag may cause the query to
91
97
  #
98
+ # @param limit [Integer] The maximum number of commits to return. Defaults to 25.
99
+ #
92
100
  # @param next_page [String] The next page token from a previous response.
93
101
  #
94
102
  # @param starting_at [Time] Include only commits that have any access on or after the provided date
@@ -57,6 +57,12 @@ module MetronomeSDK
57
57
  # @return [Boolean, nil]
58
58
  optional :include_ledgers, MetronomeSDK::Internal::Type::Boolean
59
59
 
60
+ # @!attribute limit
61
+ # The maximum number of commits to return. Defaults to 25.
62
+ #
63
+ # @return [Integer, nil]
64
+ optional :limit, Integer
65
+
60
66
  # @!attribute next_page
61
67
  # The next page token from a previous response.
62
68
  #
@@ -69,7 +75,7 @@ module MetronomeSDK
69
75
  # @return [Time, nil]
70
76
  optional :starting_at, Time
71
77
 
72
- # @!method initialize(customer_id:, covering_date: nil, credit_id: nil, effective_before: nil, include_archived: nil, include_balance: nil, include_contract_credits: nil, include_ledgers: nil, next_page: nil, starting_at: nil, request_options: {})
78
+ # @!method initialize(customer_id:, covering_date: nil, credit_id: nil, effective_before: nil, include_archived: nil, include_balance: nil, include_contract_credits: nil, include_ledgers: nil, limit: nil, next_page: nil, starting_at: nil, request_options: {})
73
79
  # Some parameter documentations has been truncated, see
74
80
  # {MetronomeSDK::Models::V1::Customers::CreditListParams} for more details.
75
81
  #
@@ -89,6 +95,8 @@ module MetronomeSDK
89
95
  #
90
96
  # @param include_ledgers [Boolean] Include credit ledgers in the response. Setting this flag may cause the query to
91
97
  #
98
+ # @param limit [Integer] The maximum number of commits to return. Defaults to 25.
99
+ #
92
100
  # @param next_page [String] The next page token from a previous response.
93
101
  #
94
102
  # @param starting_at [Time] Include only credits that have any access on or after the provided date