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
@@ -413,6 +413,8 @@ module MetronomeSDK
413
413
  # or credit. A customer's usage needs to meet the condition of at least one of the
414
414
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
415
415
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
416
+ # Instead, to target usage by product or product tag, pass those values in the
417
+ # body of `specifiers`.
416
418
  #
417
419
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier>, nil]
418
420
  optional :specifiers,
@@ -642,7 +644,7 @@ module MetronomeSDK
642
644
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#invoice_schedule
643
645
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
644
646
  # @!attribute credit_type_id
645
- # Defaults to USD if not passed. Only USD is supported at this time.
647
+ # Defaults to USD (cents) if not passed.
646
648
  #
647
649
  # @return [String, nil]
648
650
  optional :credit_type_id, String
@@ -677,7 +679,7 @@ module MetronomeSDK
677
679
  # amount. Optional for "PREPAID" commits: if not provided, this will be a
678
680
  # "complimentary" commit with no invoice.
679
681
  #
680
- # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
682
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
681
683
  #
682
684
  # @param recurring_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
683
685
  #
@@ -1116,6 +1118,8 @@ module MetronomeSDK
1116
1118
  # or credit. A customer's usage needs to meet the condition of at least one of the
1117
1119
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1118
1120
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
1121
+ # Instead, to target usage by product or product tag, pass those values in the
1122
+ # body of `specifiers`.
1119
1123
  #
1120
1124
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>, nil]
1121
1125
  optional :specifiers,
@@ -1403,7 +1407,7 @@ module MetronomeSDK
1403
1407
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddDiscount#schedule
1404
1408
  class Schedule < MetronomeSDK::Internal::Type::BaseModel
1405
1409
  # @!attribute credit_type_id
1406
- # Defaults to USD if not passed. Only USD is supported at this time.
1410
+ # Defaults to USD (cents) if not passed.
1407
1411
  #
1408
1412
  # @return [String, nil]
1409
1413
  optional :credit_type_id, String
@@ -1433,7 +1437,7 @@ module MetronomeSDK
1433
1437
  #
1434
1438
  # Must provide either schedule_items or recurring_schedule.
1435
1439
  #
1436
- # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
1440
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
1437
1441
  #
1438
1442
  # @param recurring_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
1439
1443
  #
@@ -2042,6 +2046,8 @@ module MetronomeSDK
2042
2046
  # or credit. A customer's usage needs to meet the condition of at least one of the
2043
2047
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2044
2048
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
2049
+ # Instead, to target usage by product or product tag, pass those values in the
2050
+ # body of `specifiers`.
2045
2051
  #
2046
2052
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
2047
2053
  optional :specifiers,
@@ -2392,6 +2398,13 @@ module MetronomeSDK
2392
2398
  # @return [Time, nil]
2393
2399
  optional :ending_before, Time
2394
2400
 
2401
+ # @!attribute hierarchy_configuration
2402
+ # Optional configuration for recurring credit hierarchy access control
2403
+ #
2404
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration, nil]
2405
+ optional :hierarchy_configuration,
2406
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration }
2407
+
2395
2408
  # @!attribute invoice_amount
2396
2409
  # The amount the customer should be billed for the commit. Not required.
2397
2410
  #
@@ -2453,6 +2466,8 @@ module MetronomeSDK
2453
2466
  # or credit. A customer's usage needs to meet the condition of at least one of the
2454
2467
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2455
2468
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
2469
+ # Instead, to target usage by product or product tag, pass those values in the
2470
+ # body of `specifiers`.
2456
2471
  #
2457
2472
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>, nil]
2458
2473
  optional :specifiers,
@@ -2460,6 +2475,13 @@ module MetronomeSDK
2460
2475
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier]
2461
2476
  }
2462
2477
 
2478
+ # @!attribute subscription_config
2479
+ # Attach a subscription to the recurring commit/credit.
2480
+ #
2481
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig, nil]
2482
+ optional :subscription_config,
2483
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig }
2484
+
2463
2485
  # @!attribute temporary_id
2464
2486
  # A temporary ID that can be used to reference the recurring commit for commit
2465
2487
  # specific overrides.
@@ -2467,7 +2489,7 @@ module MetronomeSDK
2467
2489
  # @return [String, nil]
2468
2490
  optional :temporary_id, String
2469
2491
 
2470
- # @!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)
2492
+ # @!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)
2471
2493
  # Some parameter documentations has been truncated, see
2472
2494
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit} for more
2473
2495
  # details.
@@ -2490,6 +2512,8 @@ module MetronomeSDK
2490
2512
  #
2491
2513
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2492
2514
  #
2515
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
2516
+ #
2493
2517
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
2494
2518
  #
2495
2519
  # @param name [String] displayed on invoices. will be passed through to the individual commits
@@ -2506,6 +2530,8 @@ module MetronomeSDK
2506
2530
  #
2507
2531
  # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2508
2532
  #
2533
+ # @param subscription_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
2534
+ #
2509
2535
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
2510
2536
 
2511
2537
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#access_amount
@@ -2575,6 +2601,117 @@ module MetronomeSDK
2575
2601
  end
2576
2602
  end
2577
2603
 
2604
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#hierarchy_configuration
2605
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2606
+ # @!attribute child_access
2607
+ #
2608
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2609
+ required :child_access,
2610
+ union: -> {
2611
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess
2612
+ }
2613
+
2614
+ # @!method initialize(child_access:)
2615
+ # Optional configuration for recurring credit hierarchy access control
2616
+ #
2617
+ # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2618
+
2619
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration#child_access
2620
+ module ChildAccess
2621
+ extend MetronomeSDK::Internal::Type::Union
2622
+
2623
+ variant -> {
2624
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
2625
+ }
2626
+
2627
+ variant -> {
2628
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
2629
+ }
2630
+
2631
+ variant -> {
2632
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2633
+ }
2634
+
2635
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2636
+ # @!attribute type
2637
+ #
2638
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2639
+ required :type,
2640
+ enum: -> {
2641
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
2642
+ }
2643
+
2644
+ # @!method initialize(type:)
2645
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2646
+
2647
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
2648
+ module Type
2649
+ extend MetronomeSDK::Internal::Type::Enum
2650
+
2651
+ ALL = :ALL
2652
+
2653
+ # @!method self.values
2654
+ # @return [Array<Symbol>]
2655
+ end
2656
+ end
2657
+
2658
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2659
+ # @!attribute type
2660
+ #
2661
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2662
+ required :type,
2663
+ enum: -> {
2664
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
2665
+ }
2666
+
2667
+ # @!method initialize(type:)
2668
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2669
+
2670
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
2671
+ module Type
2672
+ extend MetronomeSDK::Internal::Type::Enum
2673
+
2674
+ NONE = :NONE
2675
+
2676
+ # @!method self.values
2677
+ # @return [Array<Symbol>]
2678
+ end
2679
+ end
2680
+
2681
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2682
+ # @!attribute contract_ids
2683
+ #
2684
+ # @return [Array<String>]
2685
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2686
+
2687
+ # @!attribute type
2688
+ #
2689
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2690
+ required :type,
2691
+ enum: -> {
2692
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2693
+ }
2694
+
2695
+ # @!method initialize(contract_ids:, type:)
2696
+ # @param contract_ids [Array<String>]
2697
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2698
+
2699
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
2700
+ module Type
2701
+ extend MetronomeSDK::Internal::Type::Enum
2702
+
2703
+ CONTRACT_IDS = :CONTRACT_IDS
2704
+
2705
+ # @!method self.values
2706
+ # @return [Array<Symbol>]
2707
+ end
2708
+ end
2709
+
2710
+ # @!method self.variants
2711
+ # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
2712
+ end
2713
+ end
2714
+
2578
2715
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#invoice_amount
2579
2716
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
2580
2717
  # @!attribute credit_type_id
@@ -2685,6 +2822,65 @@ module MetronomeSDK
2685
2822
  #
2686
2823
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2687
2824
  end
2825
+
2826
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#subscription_config
2827
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
2828
+ # @!attribute apply_seat_increase_config
2829
+ #
2830
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2831
+ required :apply_seat_increase_config,
2832
+ -> {
2833
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
2834
+ }
2835
+
2836
+ # @!attribute subscription_id
2837
+ # ID of the subscription to configure on the recurring commit/credit.
2838
+ #
2839
+ # @return [String]
2840
+ required :subscription_id, String
2841
+
2842
+ # @!attribute allocation
2843
+ # If set to POOLED, allocation added per seat is pooled across the account.
2844
+ #
2845
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation, nil]
2846
+ optional :allocation,
2847
+ enum: -> {
2848
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation
2849
+ }
2850
+
2851
+ # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2852
+ # Attach a subscription to the recurring commit/credit.
2853
+ #
2854
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2855
+ #
2856
+ # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2857
+ #
2858
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
2859
+
2860
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#apply_seat_increase_config
2861
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
2862
+ # @!attribute is_prorated
2863
+ # Indicates whether a mid-period seat increase should be prorated.
2864
+ #
2865
+ # @return [Boolean]
2866
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
2867
+
2868
+ # @!method initialize(is_prorated:)
2869
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2870
+ end
2871
+
2872
+ # If set to POOLED, allocation added per seat is pooled across the account.
2873
+ #
2874
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#allocation
2875
+ module Allocation
2876
+ extend MetronomeSDK::Internal::Type::Enum
2877
+
2878
+ POOLED = :POOLED
2879
+
2880
+ # @!method self.values
2881
+ # @return [Array<Symbol>]
2882
+ end
2883
+ end
2688
2884
  end
2689
2885
 
2690
2886
  class AddRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -2749,6 +2945,13 @@ module MetronomeSDK
2749
2945
  # @return [Time, nil]
2750
2946
  optional :ending_before, Time
2751
2947
 
2948
+ # @!attribute hierarchy_configuration
2949
+ # Optional configuration for recurring credit hierarchy access control
2950
+ #
2951
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration, nil]
2952
+ optional :hierarchy_configuration,
2953
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration }
2954
+
2752
2955
  # @!attribute name
2753
2956
  # displayed on invoices. will be passed through to the individual commits
2754
2957
  #
@@ -2801,6 +3004,8 @@ module MetronomeSDK
2801
3004
  # or credit. A customer's usage needs to meet the condition of at least one of the
2802
3005
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2803
3006
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
3007
+ # Instead, to target usage by product or product tag, pass those values in the
3008
+ # body of `specifiers`.
2804
3009
  #
2805
3010
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>, nil]
2806
3011
  optional :specifiers,
@@ -2808,6 +3013,13 @@ module MetronomeSDK
2808
3013
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Specifier]
2809
3014
  }
2810
3015
 
3016
+ # @!attribute subscription_config
3017
+ # Attach a subscription to the recurring commit/credit.
3018
+ #
3019
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig, nil]
3020
+ optional :subscription_config,
3021
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig }
3022
+
2811
3023
  # @!attribute temporary_id
2812
3024
  # A temporary ID that can be used to reference the recurring commit for commit
2813
3025
  # specific overrides.
@@ -2815,7 +3027,7 @@ module MetronomeSDK
2815
3027
  # @return [String, nil]
2816
3028
  optional :temporary_id, String
2817
3029
 
2818
- # @!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)
3030
+ # @!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)
2819
3031
  # Some parameter documentations has been truncated, see
2820
3032
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit} for more
2821
3033
  # details.
@@ -2838,6 +3050,8 @@ module MetronomeSDK
2838
3050
  #
2839
3051
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2840
3052
  #
3053
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
3054
+ #
2841
3055
  # @param name [String] displayed on invoices. will be passed through to the individual commits
2842
3056
  #
2843
3057
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
@@ -2852,6 +3066,8 @@ module MetronomeSDK
2852
3066
  #
2853
3067
  # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2854
3068
  #
3069
+ # @param subscription_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
3070
+ #
2855
3071
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
2856
3072
 
2857
3073
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#access_amount
@@ -2921,6 +3137,117 @@ module MetronomeSDK
2921
3137
  end
2922
3138
  end
2923
3139
 
3140
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#hierarchy_configuration
3141
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3142
+ # @!attribute child_access
3143
+ #
3144
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3145
+ required :child_access,
3146
+ union: -> {
3147
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess
3148
+ }
3149
+
3150
+ # @!method initialize(child_access:)
3151
+ # Optional configuration for recurring credit hierarchy access control
3152
+ #
3153
+ # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3154
+
3155
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration#child_access
3156
+ module ChildAccess
3157
+ extend MetronomeSDK::Internal::Type::Union
3158
+
3159
+ variant -> {
3160
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
3161
+ }
3162
+
3163
+ variant -> {
3164
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
3165
+ }
3166
+
3167
+ variant -> {
3168
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
3169
+ }
3170
+
3171
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3172
+ # @!attribute type
3173
+ #
3174
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3175
+ required :type,
3176
+ enum: -> {
3177
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
3178
+ }
3179
+
3180
+ # @!method initialize(type:)
3181
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3182
+
3183
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
3184
+ module Type
3185
+ extend MetronomeSDK::Internal::Type::Enum
3186
+
3187
+ ALL = :ALL
3188
+
3189
+ # @!method self.values
3190
+ # @return [Array<Symbol>]
3191
+ end
3192
+ end
3193
+
3194
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3195
+ # @!attribute type
3196
+ #
3197
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3198
+ required :type,
3199
+ enum: -> {
3200
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
3201
+ }
3202
+
3203
+ # @!method initialize(type:)
3204
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3205
+
3206
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
3207
+ module Type
3208
+ extend MetronomeSDK::Internal::Type::Enum
3209
+
3210
+ NONE = :NONE
3211
+
3212
+ # @!method self.values
3213
+ # @return [Array<Symbol>]
3214
+ end
3215
+ end
3216
+
3217
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3218
+ # @!attribute contract_ids
3219
+ #
3220
+ # @return [Array<String>]
3221
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3222
+
3223
+ # @!attribute type
3224
+ #
3225
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3226
+ required :type,
3227
+ enum: -> {
3228
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
3229
+ }
3230
+
3231
+ # @!method initialize(contract_ids:, type:)
3232
+ # @param contract_ids [Array<String>]
3233
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3234
+
3235
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
3236
+ module Type
3237
+ extend MetronomeSDK::Internal::Type::Enum
3238
+
3239
+ CONTRACT_IDS = :CONTRACT_IDS
3240
+
3241
+ # @!method self.values
3242
+ # @return [Array<Symbol>]
3243
+ end
3244
+ end
3245
+
3246
+ # @!method self.variants
3247
+ # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
3248
+ end
3249
+ end
3250
+
2924
3251
  # Determines whether the first and last commit will be prorated. If not provided,
2925
3252
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2926
3253
  #
@@ -3006,6 +3333,65 @@ module MetronomeSDK
3006
3333
  #
3007
3334
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3008
3335
  end
3336
+
3337
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#subscription_config
3338
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
3339
+ # @!attribute apply_seat_increase_config
3340
+ #
3341
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3342
+ required :apply_seat_increase_config,
3343
+ -> {
3344
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
3345
+ }
3346
+
3347
+ # @!attribute subscription_id
3348
+ # ID of the subscription to configure on the recurring commit/credit.
3349
+ #
3350
+ # @return [String]
3351
+ required :subscription_id, String
3352
+
3353
+ # @!attribute allocation
3354
+ # If set to POOLED, allocation added per seat is pooled across the account.
3355
+ #
3356
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation, nil]
3357
+ optional :allocation,
3358
+ enum: -> {
3359
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation
3360
+ }
3361
+
3362
+ # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
3363
+ # Attach a subscription to the recurring commit/credit.
3364
+ #
3365
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3366
+ #
3367
+ # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
3368
+ #
3369
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
3370
+
3371
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#apply_seat_increase_config
3372
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
3373
+ # @!attribute is_prorated
3374
+ # Indicates whether a mid-period seat increase should be prorated.
3375
+ #
3376
+ # @return [Boolean]
3377
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
3378
+
3379
+ # @!method initialize(is_prorated:)
3380
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
3381
+ end
3382
+
3383
+ # If set to POOLED, allocation added per seat is pooled across the account.
3384
+ #
3385
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#allocation
3386
+ module Allocation
3387
+ extend MetronomeSDK::Internal::Type::Enum
3388
+
3389
+ POOLED = :POOLED
3390
+
3391
+ # @!method self.values
3392
+ # @return [Array<Symbol>]
3393
+ end
3394
+ end
3009
3395
  end
3010
3396
 
3011
3397
  class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -3174,7 +3560,7 @@ module MetronomeSDK
3174
3560
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge#schedule
3175
3561
  class Schedule < MetronomeSDK::Internal::Type::BaseModel
3176
3562
  # @!attribute credit_type_id
3177
- # Defaults to USD if not passed. Only USD is supported at this time.
3563
+ # Defaults to USD (cents) if not passed.
3178
3564
  #
3179
3565
  # @return [String, nil]
3180
3566
  optional :credit_type_id, String
@@ -3206,7 +3592,7 @@ module MetronomeSDK
3206
3592
  #
3207
3593
  # Must provide either schedule_items or recurring_schedule.
3208
3594
  #
3209
- # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
3595
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
3210
3596
  #
3211
3597
  # @param recurring_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
3212
3598
  #
@@ -3656,7 +4042,14 @@ module MetronomeSDK
3656
4042
  # @return [Time, nil]
3657
4043
  optional :starting_at, Time
3658
4044
 
3659
- # @!method initialize(collection_schedule:, initial_quantity:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, name: nil, starting_at: nil)
4045
+ # @!attribute temporary_id
4046
+ # A temporary ID used to reference the subscription in recurring commit/credit
4047
+ # subscription configs created within the same payload.
4048
+ #
4049
+ # @return [String, nil]
4050
+ optional :temporary_id, String
4051
+
4052
+ # @!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)
3660
4053
  # Some parameter documentations has been truncated, see
3661
4054
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
3662
4055
  # details.
@@ -3678,6 +4071,8 @@ module MetronomeSDK
3678
4071
  # @param name [String]
3679
4072
  #
3680
4073
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
4074
+ #
4075
+ # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
3681
4076
 
3682
4077
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#collection_schedule
3683
4078
  module CollectionSchedule
@@ -3693,10 +4088,11 @@ module MetronomeSDK
3693
4088
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#proration
3694
4089
  class Proration < MetronomeSDK::Internal::Type::BaseModel
3695
4090
  # @!attribute invoice_behavior
3696
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3697
- # is selected, the quantity increase will be billed on the scheduled date. If
3698
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3699
- # for in-arrears at the end of the period.
4091
+ # Indicates how mid-period quantity adjustments are invoiced.
4092
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
4093
+ # quantity increase will be billed immediately on the scheduled date.
4094
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
4095
+ # in-arrears at the end of the period.
3700
4096
  #
3701
4097
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior, nil]
3702
4098
  optional :invoice_behavior,
@@ -3715,14 +4111,15 @@ module MetronomeSDK
3715
4111
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration} for
3716
4112
  # more details.
3717
4113
  #
3718
- # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
4114
+ # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced.
3719
4115
  #
3720
4116
  # @param is_prorated [Boolean] Indicates if the partial period will be prorated or charged a full amount.
3721
4117
 
3722
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3723
- # is selected, the quantity increase will be billed on the scheduled date. If
3724
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3725
- # for in-arrears at the end of the period.
4118
+ # Indicates how mid-period quantity adjustments are invoiced.
4119
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
4120
+ # quantity increase will be billed immediately on the scheduled date.
4121
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
4122
+ # in-arrears at the end of the period.
3726
4123
  #
3727
4124
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration#invoice_behavior
3728
4125
  module InvoiceBehavior
@@ -4577,6 +4974,8 @@ module MetronomeSDK
4577
4974
  # or credit. A customer's usage needs to meet the condition of at least one of the
4578
4975
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
4579
4976
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
4977
+ # Instead, to target usage by product or product tag, pass those values in the
4978
+ # body of `specifiers`.
4580
4979
  #
4581
4980
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
4582
4981
  optional :specifiers,