metronome-sdk 0.1.0 → 0.3.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -1
  5. data/lib/metronome_sdk/internal/type/array_of.rb +1 -0
  6. data/lib/metronome_sdk/internal/type/base_model.rb +3 -1
  7. data/lib/metronome_sdk/internal/type/converter.rb +27 -0
  8. data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
  9. data/lib/metronome_sdk/internal/type/union.rb +9 -7
  10. data/lib/metronome_sdk/models/commit.rb +35 -5
  11. data/lib/metronome_sdk/models/contract_without_amendments.rb +128 -2
  12. data/lib/metronome_sdk/models/credit.rb +21 -3
  13. data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
  14. data/lib/metronome_sdk/models/v1/alert_create_params.rb +9 -11
  15. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +54 -5
  16. data/lib/metronome_sdk/models/v1/contract_create_params.rb +219 -23
  17. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +8 -1
  18. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +10 -1
  19. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +29 -1
  20. data/lib/metronome_sdk/models/v1/customers/invoice.rb +13 -1
  21. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  22. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +12 -1
  23. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +12 -1
  24. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +259 -37
  25. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +602 -15
  26. data/lib/metronome_sdk/models/v2/contract_list_response.rb +194 -17
  27. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +194 -17
  28. data/lib/metronome_sdk/resources/v1/alerts.rb +2 -2
  29. data/lib/metronome_sdk/resources/v1/contracts/products.rb +3 -1
  30. data/lib/metronome_sdk/resources/v2/contracts.rb +6 -2
  31. data/lib/metronome_sdk/version.rb +1 -1
  32. data/rbi/metronome_sdk/internal/transport/base_client.rbi +1 -1
  33. data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
  34. data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
  35. data/rbi/metronome_sdk/models/commit.rbi +89 -15
  36. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +304 -6
  37. data/rbi/metronome_sdk/models/credit.rbi +54 -9
  38. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
  39. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +16 -18
  40. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +76 -3
  41. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +433 -26
  42. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +9 -0
  43. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +13 -0
  44. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +60 -0
  45. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +16 -0
  46. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  47. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +14 -0
  48. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +14 -0
  49. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +481 -38
  50. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1565 -42
  51. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +431 -37
  52. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +431 -37
  53. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -5
  54. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +2 -0
  55. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  56. data/sig/metronome_sdk/internal/transport/base_client.rbs +1 -1
  57. data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
  58. data/sig/metronome_sdk/internal/type/union.rbs +2 -2
  59. data/sig/metronome_sdk/models/commit.rbs +50 -15
  60. data/sig/metronome_sdk/models/contract_without_amendments.rbs +120 -6
  61. data/sig/metronome_sdk/models/credit.rbs +30 -9
  62. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
  63. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +9 -9
  64. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +38 -3
  65. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +168 -6
  66. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
  67. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +7 -0
  68. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +21 -0
  69. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
  70. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  71. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +5 -0
  72. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +5 -0
  73. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +178 -6
  74. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +629 -6
  75. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +205 -30
  76. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +205 -30
  77. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -1
  78. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
  79. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  80. metadata +2 -2
@@ -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,11 +644,18 @@ 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
649
651
 
652
+ # @!attribute do_not_invoice
653
+ # This field is only applicable to commit invoice schedules. If true, this
654
+ # schedule will not generate an invoice.
655
+ #
656
+ # @return [Boolean, nil]
657
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
658
+
650
659
  # @!attribute recurring_schedule
651
660
  # Enter the unit price and quantity for the charge or instead only send the
652
661
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -667,7 +676,7 @@ module MetronomeSDK
667
676
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem]
668
677
  }
669
678
 
670
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
679
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
671
680
  # Some parameter documentations has been truncated, see
672
681
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule} for
673
682
  # more details.
@@ -677,7 +686,9 @@ module MetronomeSDK
677
686
  # amount. Optional for "PREPAID" commits: if not provided, this will be a
678
687
  # "complimentary" commit with no invoice.
679
688
  #
680
- # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
689
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
690
+ #
691
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
681
692
  #
682
693
  # @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
694
  #
@@ -950,7 +961,20 @@ module MetronomeSDK
950
961
  # @return [Hash{Symbol=>String}, nil]
951
962
  optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
952
963
 
953
- # @!method initialize(payment_type:, invoice_metadata: nil)
964
+ # @!attribute on_session_payment
965
+ # If true, the payment will be made assuming the customer is present (i.e. on
966
+ # session).
967
+ #
968
+ # If false, the payment will be made assuming the customer is not present (i.e.
969
+ # off session). For cardholders from a country with an e-mandate requirement (e.g.
970
+ # India), the payment may be declined.
971
+ #
972
+ # If left blank, will default to false.
973
+ #
974
+ # @return [Boolean, nil]
975
+ optional :on_session_payment, MetronomeSDK::Internal::Type::Boolean
976
+
977
+ # @!method initialize(payment_type:, invoice_metadata: nil, on_session_payment: nil)
954
978
  # Some parameter documentations has been truncated, see
955
979
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig}
956
980
  # for more details.
@@ -960,6 +984,8 @@ module MetronomeSDK
960
984
  # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
961
985
  #
962
986
  # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
987
+ #
988
+ # @param on_session_payment [Boolean] If true, the payment will be made assuming the customer is present (i.e. on sess
963
989
 
964
990
  # If left blank, will default to INVOICE
965
991
  #
@@ -1116,6 +1142,8 @@ module MetronomeSDK
1116
1142
  # or credit. A customer's usage needs to meet the condition of at least one of the
1117
1143
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1118
1144
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
1145
+ # Instead, to target usage by product or product tag, pass those values in the
1146
+ # body of `specifiers`.
1119
1147
  #
1120
1148
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>, nil]
1121
1149
  optional :specifiers,
@@ -1403,11 +1431,18 @@ module MetronomeSDK
1403
1431
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddDiscount#schedule
1404
1432
  class Schedule < MetronomeSDK::Internal::Type::BaseModel
1405
1433
  # @!attribute credit_type_id
1406
- # Defaults to USD if not passed. Only USD is supported at this time.
1434
+ # Defaults to USD (cents) if not passed.
1407
1435
  #
1408
1436
  # @return [String, nil]
1409
1437
  optional :credit_type_id, String
1410
1438
 
1439
+ # @!attribute do_not_invoice
1440
+ # This field is only applicable to commit invoice schedules. If true, this
1441
+ # schedule will not generate an invoice.
1442
+ #
1443
+ # @return [Boolean, nil]
1444
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
1445
+
1411
1446
  # @!attribute recurring_schedule
1412
1447
  # Enter the unit price and quantity for the charge or instead only send the
1413
1448
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -1426,14 +1461,16 @@ module MetronomeSDK
1426
1461
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem]
1427
1462
  }
1428
1463
 
1429
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
1464
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
1430
1465
  # Some parameter documentations has been truncated, see
1431
1466
  # {MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule} for more
1432
1467
  # details.
1433
1468
  #
1434
1469
  # Must provide either schedule_items or recurring_schedule.
1435
1470
  #
1436
- # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
1471
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
1472
+ #
1473
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
1437
1474
  #
1438
1475
  # @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
1476
  #
@@ -2042,6 +2079,8 @@ module MetronomeSDK
2042
2079
  # or credit. A customer's usage needs to meet the condition of at least one of the
2043
2080
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2044
2081
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
2082
+ # Instead, to target usage by product or product tag, pass those values in the
2083
+ # body of `specifiers`.
2045
2084
  #
2046
2085
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
2047
2086
  optional :specifiers,
@@ -2393,7 +2432,7 @@ module MetronomeSDK
2393
2432
  optional :ending_before, Time
2394
2433
 
2395
2434
  # @!attribute hierarchy_configuration
2396
- # Optional configuration for recurring commit/credit hierarchy access control
2435
+ # Optional configuration for recurring credit hierarchy access control
2397
2436
  #
2398
2437
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration, nil]
2399
2438
  optional :hierarchy_configuration,
@@ -2460,6 +2499,8 @@ module MetronomeSDK
2460
2499
  # or credit. A customer's usage needs to meet the condition of at least one of the
2461
2500
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2462
2501
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
2502
+ # Instead, to target usage by product or product tag, pass those values in the
2503
+ # body of `specifiers`.
2463
2504
  #
2464
2505
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>, nil]
2465
2506
  optional :specifiers,
@@ -2467,6 +2508,13 @@ module MetronomeSDK
2467
2508
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier]
2468
2509
  }
2469
2510
 
2511
+ # @!attribute subscription_config
2512
+ # Attach a subscription to the recurring commit/credit.
2513
+ #
2514
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig, nil]
2515
+ optional :subscription_config,
2516
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig }
2517
+
2470
2518
  # @!attribute temporary_id
2471
2519
  # A temporary ID that can be used to reference the recurring commit for commit
2472
2520
  # specific overrides.
@@ -2474,7 +2522,7 @@ module MetronomeSDK
2474
2522
  # @return [String, nil]
2475
2523
  optional :temporary_id, String
2476
2524
 
2477
- # @!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, temporary_id: nil)
2525
+ # @!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)
2478
2526
  # Some parameter documentations has been truncated, see
2479
2527
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit} for more
2480
2528
  # details.
@@ -2497,7 +2545,7 @@ module MetronomeSDK
2497
2545
  #
2498
2546
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2499
2547
  #
2500
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
2548
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
2501
2549
  #
2502
2550
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
2503
2551
  #
@@ -2515,6 +2563,8 @@ module MetronomeSDK
2515
2563
  #
2516
2564
  # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2517
2565
  #
2566
+ # @param subscription_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
2567
+ #
2518
2568
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
2519
2569
 
2520
2570
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#access_amount
@@ -2530,8 +2580,8 @@ module MetronomeSDK
2530
2580
  required :unit_price, Float
2531
2581
 
2532
2582
  # @!attribute quantity
2533
- # This field is currently required. Upcoming recurring commit/credit configuration
2534
- # options will allow it to be optional.
2583
+ # This field is required unless a subscription is attached via
2584
+ # `subscription_config`.
2535
2585
  #
2536
2586
  # @return [Float, nil]
2537
2587
  optional :quantity, Float
@@ -2547,7 +2597,7 @@ module MetronomeSDK
2547
2597
  #
2548
2598
  # @param unit_price [Float]
2549
2599
  #
2550
- # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2600
+ # @param quantity [Float] This field is required unless a subscription is attached via `subscription_confi
2551
2601
  end
2552
2602
 
2553
2603
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#commit_duration
@@ -2595,7 +2645,7 @@ module MetronomeSDK
2595
2645
  }
2596
2646
 
2597
2647
  # @!method initialize(child_access:)
2598
- # Optional configuration for recurring commit/credit hierarchy access control
2648
+ # Optional configuration for recurring credit hierarchy access control
2599
2649
  #
2600
2650
  # @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]
2601
2651
 
@@ -2805,6 +2855,65 @@ module MetronomeSDK
2805
2855
  #
2806
2856
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2807
2857
  end
2858
+
2859
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#subscription_config
2860
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
2861
+ # @!attribute apply_seat_increase_config
2862
+ #
2863
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2864
+ required :apply_seat_increase_config,
2865
+ -> {
2866
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
2867
+ }
2868
+
2869
+ # @!attribute subscription_id
2870
+ # ID of the subscription to configure on the recurring commit/credit.
2871
+ #
2872
+ # @return [String]
2873
+ required :subscription_id, String
2874
+
2875
+ # @!attribute allocation
2876
+ # If set to POOLED, allocation added per seat is pooled across the account.
2877
+ #
2878
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation, nil]
2879
+ optional :allocation,
2880
+ enum: -> {
2881
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation
2882
+ }
2883
+
2884
+ # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2885
+ # Attach a subscription to the recurring commit/credit.
2886
+ #
2887
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2888
+ #
2889
+ # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2890
+ #
2891
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
2892
+
2893
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#apply_seat_increase_config
2894
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
2895
+ # @!attribute is_prorated
2896
+ # Indicates whether a mid-period seat increase should be prorated.
2897
+ #
2898
+ # @return [Boolean]
2899
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
2900
+
2901
+ # @!method initialize(is_prorated:)
2902
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2903
+ end
2904
+
2905
+ # If set to POOLED, allocation added per seat is pooled across the account.
2906
+ #
2907
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#allocation
2908
+ module Allocation
2909
+ extend MetronomeSDK::Internal::Type::Enum
2910
+
2911
+ POOLED = :POOLED
2912
+
2913
+ # @!method self.values
2914
+ # @return [Array<Symbol>]
2915
+ end
2916
+ end
2808
2917
  end
2809
2918
 
2810
2919
  class AddRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -2870,7 +2979,7 @@ module MetronomeSDK
2870
2979
  optional :ending_before, Time
2871
2980
 
2872
2981
  # @!attribute hierarchy_configuration
2873
- # Optional configuration for recurring commit/credit hierarchy access control
2982
+ # Optional configuration for recurring credit hierarchy access control
2874
2983
  #
2875
2984
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration, nil]
2876
2985
  optional :hierarchy_configuration,
@@ -2928,6 +3037,8 @@ module MetronomeSDK
2928
3037
  # or credit. A customer's usage needs to meet the condition of at least one of the
2929
3038
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2930
3039
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
3040
+ # Instead, to target usage by product or product tag, pass those values in the
3041
+ # body of `specifiers`.
2931
3042
  #
2932
3043
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>, nil]
2933
3044
  optional :specifiers,
@@ -2935,6 +3046,13 @@ module MetronomeSDK
2935
3046
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Specifier]
2936
3047
  }
2937
3048
 
3049
+ # @!attribute subscription_config
3050
+ # Attach a subscription to the recurring commit/credit.
3051
+ #
3052
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig, nil]
3053
+ optional :subscription_config,
3054
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig }
3055
+
2938
3056
  # @!attribute temporary_id
2939
3057
  # A temporary ID that can be used to reference the recurring commit for commit
2940
3058
  # specific overrides.
@@ -2942,7 +3060,7 @@ module MetronomeSDK
2942
3060
  # @return [String, nil]
2943
3061
  optional :temporary_id, String
2944
3062
 
2945
- # @!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, temporary_id: nil)
3063
+ # @!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)
2946
3064
  # Some parameter documentations has been truncated, see
2947
3065
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit} for more
2948
3066
  # details.
@@ -2965,7 +3083,7 @@ module MetronomeSDK
2965
3083
  #
2966
3084
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2967
3085
  #
2968
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
3086
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
2969
3087
  #
2970
3088
  # @param name [String] displayed on invoices. will be passed through to the individual commits
2971
3089
  #
@@ -2981,6 +3099,8 @@ module MetronomeSDK
2981
3099
  #
2982
3100
  # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2983
3101
  #
3102
+ # @param subscription_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
3103
+ #
2984
3104
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
2985
3105
 
2986
3106
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#access_amount
@@ -2996,8 +3116,8 @@ module MetronomeSDK
2996
3116
  required :unit_price, Float
2997
3117
 
2998
3118
  # @!attribute quantity
2999
- # This field is currently required. Upcoming recurring commit/credit configuration
3000
- # options will allow it to be optional.
3119
+ # This field is required unless a subscription is attached via
3120
+ # `subscription_config`.
3001
3121
  #
3002
3122
  # @return [Float, nil]
3003
3123
  optional :quantity, Float
@@ -3013,7 +3133,7 @@ module MetronomeSDK
3013
3133
  #
3014
3134
  # @param unit_price [Float]
3015
3135
  #
3016
- # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
3136
+ # @param quantity [Float] This field is required unless a subscription is attached via `subscription_confi
3017
3137
  end
3018
3138
 
3019
3139
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#commit_duration
@@ -3061,7 +3181,7 @@ module MetronomeSDK
3061
3181
  }
3062
3182
 
3063
3183
  # @!method initialize(child_access:)
3064
- # Optional configuration for recurring commit/credit hierarchy access control
3184
+ # Optional configuration for recurring credit hierarchy access control
3065
3185
  #
3066
3186
  # @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]
3067
3187
 
@@ -3246,6 +3366,65 @@ module MetronomeSDK
3246
3366
  #
3247
3367
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3248
3368
  end
3369
+
3370
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#subscription_config
3371
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
3372
+ # @!attribute apply_seat_increase_config
3373
+ #
3374
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3375
+ required :apply_seat_increase_config,
3376
+ -> {
3377
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
3378
+ }
3379
+
3380
+ # @!attribute subscription_id
3381
+ # ID of the subscription to configure on the recurring commit/credit.
3382
+ #
3383
+ # @return [String]
3384
+ required :subscription_id, String
3385
+
3386
+ # @!attribute allocation
3387
+ # If set to POOLED, allocation added per seat is pooled across the account.
3388
+ #
3389
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation, nil]
3390
+ optional :allocation,
3391
+ enum: -> {
3392
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation
3393
+ }
3394
+
3395
+ # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
3396
+ # Attach a subscription to the recurring commit/credit.
3397
+ #
3398
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3399
+ #
3400
+ # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
3401
+ #
3402
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
3403
+
3404
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#apply_seat_increase_config
3405
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
3406
+ # @!attribute is_prorated
3407
+ # Indicates whether a mid-period seat increase should be prorated.
3408
+ #
3409
+ # @return [Boolean]
3410
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
3411
+
3412
+ # @!method initialize(is_prorated:)
3413
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
3414
+ end
3415
+
3416
+ # If set to POOLED, allocation added per seat is pooled across the account.
3417
+ #
3418
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#allocation
3419
+ module Allocation
3420
+ extend MetronomeSDK::Internal::Type::Enum
3421
+
3422
+ POOLED = :POOLED
3423
+
3424
+ # @!method self.values
3425
+ # @return [Array<Symbol>]
3426
+ end
3427
+ end
3249
3428
  end
3250
3429
 
3251
3430
  class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -3390,6 +3569,11 @@ module MetronomeSDK
3390
3569
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule]
3391
3570
  required :schedule, -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule }
3392
3571
 
3572
+ # @!attribute custom_fields
3573
+ #
3574
+ # @return [Hash{Symbol=>String}, nil]
3575
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
3576
+
3393
3577
  # @!attribute name
3394
3578
  # displayed on invoices
3395
3579
  #
@@ -3402,11 +3586,13 @@ module MetronomeSDK
3402
3586
  # @return [String, nil]
3403
3587
  optional :netsuite_sales_order_id, String
3404
3588
 
3405
- # @!method initialize(product_id:, schedule:, name: nil, netsuite_sales_order_id: nil)
3589
+ # @!method initialize(product_id:, schedule:, custom_fields: nil, name: nil, netsuite_sales_order_id: nil)
3406
3590
  # @param product_id [String]
3407
3591
  #
3408
3592
  # @param schedule [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
3409
3593
  #
3594
+ # @param custom_fields [Hash{Symbol=>String}]
3595
+ #
3410
3596
  # @param name [String] displayed on invoices
3411
3597
  #
3412
3598
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
@@ -3414,11 +3600,18 @@ module MetronomeSDK
3414
3600
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge#schedule
3415
3601
  class Schedule < MetronomeSDK::Internal::Type::BaseModel
3416
3602
  # @!attribute credit_type_id
3417
- # Defaults to USD if not passed. Only USD is supported at this time.
3603
+ # Defaults to USD (cents) if not passed.
3418
3604
  #
3419
3605
  # @return [String, nil]
3420
3606
  optional :credit_type_id, String
3421
3607
 
3608
+ # @!attribute do_not_invoice
3609
+ # This field is only applicable to commit invoice schedules. If true, this
3610
+ # schedule will not generate an invoice.
3611
+ #
3612
+ # @return [Boolean, nil]
3613
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
3614
+
3422
3615
  # @!attribute recurring_schedule
3423
3616
  # Enter the unit price and quantity for the charge or instead only send the
3424
3617
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -3439,14 +3632,16 @@ module MetronomeSDK
3439
3632
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem]
3440
3633
  }
3441
3634
 
3442
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
3635
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
3443
3636
  # Some parameter documentations has been truncated, see
3444
3637
  # {MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule} for
3445
3638
  # more details.
3446
3639
  #
3447
3640
  # Must provide either schedule_items or recurring_schedule.
3448
3641
  #
3449
- # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
3642
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
3643
+ #
3644
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
3450
3645
  #
3451
3646
  # @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
3452
3647
  #
@@ -3896,7 +4091,14 @@ module MetronomeSDK
3896
4091
  # @return [Time, nil]
3897
4092
  optional :starting_at, Time
3898
4093
 
3899
- # @!method initialize(collection_schedule:, initial_quantity:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, name: nil, starting_at: nil)
4094
+ # @!attribute temporary_id
4095
+ # A temporary ID used to reference the subscription in recurring commit/credit
4096
+ # subscription configs created within the same payload.
4097
+ #
4098
+ # @return [String, nil]
4099
+ optional :temporary_id, String
4100
+
4101
+ # @!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)
3900
4102
  # Some parameter documentations has been truncated, see
3901
4103
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
3902
4104
  # details.
@@ -3918,6 +4120,8 @@ module MetronomeSDK
3918
4120
  # @param name [String]
3919
4121
  #
3920
4122
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
4123
+ #
4124
+ # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
3921
4125
 
3922
4126
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#collection_schedule
3923
4127
  module CollectionSchedule
@@ -3933,10 +4137,11 @@ module MetronomeSDK
3933
4137
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#proration
3934
4138
  class Proration < MetronomeSDK::Internal::Type::BaseModel
3935
4139
  # @!attribute invoice_behavior
3936
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3937
- # is selected, the quantity increase will be billed on the scheduled date. If
3938
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3939
- # for in-arrears at the end of the period.
4140
+ # Indicates how mid-period quantity adjustments are invoiced.
4141
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
4142
+ # quantity increase will be billed immediately on the scheduled date.
4143
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
4144
+ # in-arrears at the end of the period.
3940
4145
  #
3941
4146
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior, nil]
3942
4147
  optional :invoice_behavior,
@@ -3955,14 +4160,15 @@ module MetronomeSDK
3955
4160
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration} for
3956
4161
  # more details.
3957
4162
  #
3958
- # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
4163
+ # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced.
3959
4164
  #
3960
4165
  # @param is_prorated [Boolean] Indicates if the partial period will be prorated or charged a full amount.
3961
4166
 
3962
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3963
- # is selected, the quantity increase will be billed on the scheduled date. If
3964
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3965
- # for in-arrears at the end of the period.
4167
+ # Indicates how mid-period quantity adjustments are invoiced.
4168
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
4169
+ # quantity increase will be billed immediately on the scheduled date.
4170
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
4171
+ # in-arrears at the end of the period.
3966
4172
  #
3967
4173
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration#invoice_behavior
3968
4174
  module InvoiceBehavior
@@ -4108,6 +4314,11 @@ module MetronomeSDK
4108
4314
  # @return [String, nil]
4109
4315
  optional :netsuite_sales_order_id, String, nil?: true
4110
4316
 
4317
+ # @!attribute priority
4318
+ #
4319
+ # @return [Float, nil]
4320
+ optional :priority, Float, nil?: true
4321
+
4111
4322
  # @!attribute product_id
4112
4323
  #
4113
4324
  # @return [String, nil]
@@ -4118,7 +4329,7 @@ module MetronomeSDK
4118
4329
  # @return [Float, nil]
4119
4330
  optional :rollover_fraction, Float, nil?: true
4120
4331
 
4121
- # @!method initialize(commit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, invoice_schedule: nil, netsuite_sales_order_id: nil, product_id: nil, rollover_fraction: nil)
4332
+ # @!method initialize(commit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, invoice_schedule: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rollover_fraction: nil)
4122
4333
  # Some parameter documentations has been truncated, see
4123
4334
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit} for more details.
4124
4335
  #
@@ -4136,6 +4347,8 @@ module MetronomeSDK
4136
4347
  #
4137
4348
  # @param netsuite_sales_order_id [String, nil]
4138
4349
  #
4350
+ # @param priority [Float, nil]
4351
+ #
4139
4352
  # @param product_id [String]
4140
4353
  #
4141
4354
  # @param rollover_fraction [Float, nil]
@@ -4487,12 +4700,17 @@ module MetronomeSDK
4487
4700
  # @return [String, nil]
4488
4701
  optional :netsuite_sales_order_id, String, nil?: true
4489
4702
 
4703
+ # @!attribute priority
4704
+ #
4705
+ # @return [Float, nil]
4706
+ optional :priority, Float, nil?: true
4707
+
4490
4708
  # @!attribute product_id
4491
4709
  #
4492
4710
  # @return [String, nil]
4493
4711
  optional :product_id, String
4494
4712
 
4495
- # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, netsuite_sales_order_id: nil, product_id: nil)
4713
+ # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil)
4496
4714
  # Some parameter documentations has been truncated, see
4497
4715
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
4498
4716
  #
@@ -4508,6 +4726,8 @@ module MetronomeSDK
4508
4726
  #
4509
4727
  # @param netsuite_sales_order_id [String, nil]
4510
4728
  #
4729
+ # @param priority [Float, nil]
4730
+ #
4511
4731
  # @param product_id [String]
4512
4732
 
4513
4733
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#access_schedule
@@ -4817,6 +5037,8 @@ module MetronomeSDK
4817
5037
  # or credit. A customer's usage needs to meet the condition of at least one of the
4818
5038
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
4819
5039
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
5040
+ # Instead, to target usage by product or product tag, pass those values in the
5041
+ # body of `specifiers`.
4820
5042
  #
4821
5043
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
4822
5044
  optional :specifiers,