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
@@ -306,6 +306,13 @@ module MetronomeSDK
306
306
  # @return [String, nil]
307
307
  optional :description, String
308
308
 
309
+ # @!attribute hierarchy_configuration
310
+ # Optional configuration for commit hierarchy access control
311
+ #
312
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration, nil]
313
+ optional :hierarchy_configuration,
314
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration }
315
+
309
316
  # @!attribute invoice_schedule
310
317
  # The schedule that the customer will be invoiced for this commit.
311
318
  #
@@ -352,12 +359,14 @@ module MetronomeSDK
352
359
  # or credit. A customer's usage needs to meet the condition of at least one of the
353
360
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
354
361
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
362
+ # Instead, to target usage by product or product tag, pass those values in the
363
+ # body of `specifiers`.
355
364
  #
356
365
  # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::Specifier>, nil]
357
366
  optional :specifiers,
358
367
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::Specifier] }
359
368
 
360
- # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil)
369
+ # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil)
361
370
  # Some parameter documentations has been truncated, see
362
371
  # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit} for
363
372
  # more details.
@@ -376,6 +385,8 @@ module MetronomeSDK
376
385
  #
377
386
  # @param description [String]
378
387
  #
388
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
389
+ #
379
390
  # @param invoice_schedule [MetronomeSDK::Models::SchedulePointInTime] The schedule that the customer will be invoiced for this commit.
380
391
  #
381
392
  # @param name [String]
@@ -420,6 +431,103 @@ module MetronomeSDK
420
431
  # @return [Array<Symbol>]
421
432
  end
422
433
 
434
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit#hierarchy_configuration
435
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
436
+ # @!attribute child_access
437
+ #
438
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
439
+ required :child_access,
440
+ union: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess }
441
+
442
+ # @!method initialize(child_access:)
443
+ # Optional configuration for commit hierarchy access control
444
+ #
445
+ # @param child_access [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
446
+
447
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration#child_access
448
+ module ChildAccess
449
+ extend MetronomeSDK::Internal::Type::Union
450
+
451
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll }
452
+
453
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone }
454
+
455
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs }
456
+
457
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
458
+ # @!attribute type
459
+ #
460
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
461
+ required :type,
462
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type }
463
+
464
+ # @!method initialize(type:)
465
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
466
+
467
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
468
+ module Type
469
+ extend MetronomeSDK::Internal::Type::Enum
470
+
471
+ ALL = :ALL
472
+
473
+ # @!method self.values
474
+ # @return [Array<Symbol>]
475
+ end
476
+ end
477
+
478
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
479
+ # @!attribute type
480
+ #
481
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
482
+ required :type,
483
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type }
484
+
485
+ # @!method initialize(type:)
486
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
487
+
488
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
489
+ module Type
490
+ extend MetronomeSDK::Internal::Type::Enum
491
+
492
+ NONE = :NONE
493
+
494
+ # @!method self.values
495
+ # @return [Array<Symbol>]
496
+ end
497
+ end
498
+
499
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
500
+ # @!attribute contract_ids
501
+ #
502
+ # @return [Array<String>]
503
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
504
+
505
+ # @!attribute type
506
+ #
507
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
508
+ required :type,
509
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type }
510
+
511
+ # @!method initialize(contract_ids:, type:)
512
+ # @param contract_ids [Array<String>]
513
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
514
+
515
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
516
+ module Type
517
+ extend MetronomeSDK::Internal::Type::Enum
518
+
519
+ CONTRACT_IDS = :CONTRACT_IDS
520
+
521
+ # @!method self.values
522
+ # @return [Array<Symbol>]
523
+ end
524
+ end
525
+
526
+ # @!method self.variants
527
+ # @return [Array(MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
528
+ end
529
+ end
530
+
423
531
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit#rate_type
424
532
  module RateType
425
533
  extend MetronomeSDK::Internal::Type::Enum
@@ -509,6 +617,13 @@ module MetronomeSDK
509
617
  # @return [String, nil]
510
618
  optional :description, String
511
619
 
620
+ # @!attribute hierarchy_configuration
621
+ # Optional configuration for recurring credit hierarchy access control
622
+ #
623
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration, nil]
624
+ optional :hierarchy_configuration,
625
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration }
626
+
512
627
  # @!attribute name
513
628
  #
514
629
  # @return [String, nil]
@@ -538,12 +653,14 @@ module MetronomeSDK
538
653
  # or credit. A customer's usage needs to meet the condition of at least one of the
539
654
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
540
655
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
656
+ # Instead, to target usage by product or product tag, pass those values in the
657
+ # body of `specifiers`.
541
658
  #
542
659
  # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Specifier>, nil]
543
660
  optional :specifiers,
544
661
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Specifier] }
545
662
 
546
- # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, salesforce_opportunity_id: nil, specifiers: nil)
663
+ # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, salesforce_opportunity_id: nil, specifiers: nil)
547
664
  # Some parameter documentations has been truncated, see
548
665
  # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit} for
549
666
  # more details.
@@ -562,6 +679,8 @@ module MetronomeSDK
562
679
  #
563
680
  # @param description [String]
564
681
  #
682
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
683
+ #
565
684
  # @param name [String]
566
685
  #
567
686
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
@@ -599,6 +718,103 @@ module MetronomeSDK
599
718
  # @return [Array<Symbol>]
600
719
  end
601
720
 
721
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit#hierarchy_configuration
722
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
723
+ # @!attribute child_access
724
+ #
725
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
726
+ required :child_access,
727
+ union: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess }
728
+
729
+ # @!method initialize(child_access:)
730
+ # Optional configuration for recurring credit hierarchy access control
731
+ #
732
+ # @param child_access [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
733
+
734
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration#child_access
735
+ module ChildAccess
736
+ extend MetronomeSDK::Internal::Type::Union
737
+
738
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll }
739
+
740
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone }
741
+
742
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs }
743
+
744
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
745
+ # @!attribute type
746
+ #
747
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
748
+ required :type,
749
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type }
750
+
751
+ # @!method initialize(type:)
752
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
753
+
754
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
755
+ module Type
756
+ extend MetronomeSDK::Internal::Type::Enum
757
+
758
+ ALL = :ALL
759
+
760
+ # @!method self.values
761
+ # @return [Array<Symbol>]
762
+ end
763
+ end
764
+
765
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
766
+ # @!attribute type
767
+ #
768
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
769
+ required :type,
770
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type }
771
+
772
+ # @!method initialize(type:)
773
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
774
+
775
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
776
+ module Type
777
+ extend MetronomeSDK::Internal::Type::Enum
778
+
779
+ NONE = :NONE
780
+
781
+ # @!method self.values
782
+ # @return [Array<Symbol>]
783
+ end
784
+ end
785
+
786
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
787
+ # @!attribute contract_ids
788
+ #
789
+ # @return [Array<String>]
790
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
791
+
792
+ # @!attribute type
793
+ #
794
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
795
+ required :type,
796
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type }
797
+
798
+ # @!method initialize(contract_ids:, type:)
799
+ # @param contract_ids [Array<String>]
800
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
801
+
802
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
803
+ module Type
804
+ extend MetronomeSDK::Internal::Type::Enum
805
+
806
+ CONTRACT_IDS = :CONTRACT_IDS
807
+
808
+ # @!method self.values
809
+ # @return [Array<Symbol>]
810
+ end
811
+ end
812
+
813
+ # @!method self.variants
814
+ # @return [Array(MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
815
+ end
816
+ end
817
+
602
818
  class Specifier < MetronomeSDK::Internal::Type::BaseModel
603
819
  # @!attribute presentation_group_values
604
820
  #
@@ -1036,6 +1252,8 @@ module MetronomeSDK
1036
1252
  # or credit. A customer's usage needs to meet the condition of at least one of the
1037
1253
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1038
1254
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
1255
+ # Instead, to target usage by product or product tag, pass those values in the
1256
+ # body of `specifiers`.
1039
1257
  #
1040
1258
  # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
1041
1259
  optional :specifiers,
@@ -1329,6 +1547,13 @@ module MetronomeSDK
1329
1547
  # @return [Time, nil]
1330
1548
  optional :ending_before, Time
1331
1549
 
1550
+ # @!attribute hierarchy_configuration
1551
+ # Optional configuration for recurring credit hierarchy access control
1552
+ #
1553
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration, nil]
1554
+ optional :hierarchy_configuration,
1555
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration }
1556
+
1332
1557
  # @!attribute invoice_amount
1333
1558
  # The amount the customer should be billed for the commit. Not required.
1334
1559
  #
@@ -1351,7 +1576,6 @@ module MetronomeSDK
1351
1576
  # @!attribute proration
1352
1577
  # Determines whether the first and last commit will be prorated. If not provided,
1353
1578
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
1354
- # subscription_config:
1355
1579
  #
1356
1580
  # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Proration, nil]
1357
1581
  optional :proration,
@@ -1385,7 +1609,14 @@ module MetronomeSDK
1385
1609
  optional :specifiers,
1386
1610
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Specifier] }
1387
1611
 
1388
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil)
1612
+ # @!attribute subscription_config
1613
+ # Attach a subscription to the recurring commit/credit.
1614
+ #
1615
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig, nil]
1616
+ optional :subscription_config,
1617
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig }
1618
+
1619
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1389
1620
  # Some parameter documentations has been truncated, see
1390
1621
  # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit}
1391
1622
  # for more details.
@@ -1414,6 +1645,8 @@ module MetronomeSDK
1414
1645
  #
1415
1646
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. Optional
1416
1647
  #
1648
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
1649
+ #
1417
1650
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
1418
1651
  #
1419
1652
  # @param name [String] Displayed on invoices. Will be passed through to the individual commits
@@ -1427,6 +1660,8 @@ module MetronomeSDK
1427
1660
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1428
1661
  #
1429
1662
  # @param specifiers [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1663
+ #
1664
+ # @param subscription_config [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
1430
1665
 
1431
1666
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit#access_amount
1432
1667
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -1524,6 +1759,103 @@ module MetronomeSDK
1524
1759
  # @param id [String]
1525
1760
  end
1526
1761
 
1762
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit#hierarchy_configuration
1763
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1764
+ # @!attribute child_access
1765
+ #
1766
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1767
+ required :child_access,
1768
+ union: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess }
1769
+
1770
+ # @!method initialize(child_access:)
1771
+ # Optional configuration for recurring credit hierarchy access control
1772
+ #
1773
+ # @param child_access [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1774
+
1775
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration#child_access
1776
+ module ChildAccess
1777
+ extend MetronomeSDK::Internal::Type::Union
1778
+
1779
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll }
1780
+
1781
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone }
1782
+
1783
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs }
1784
+
1785
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1786
+ # @!attribute type
1787
+ #
1788
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1789
+ required :type,
1790
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type }
1791
+
1792
+ # @!method initialize(type:)
1793
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1794
+
1795
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
1796
+ module Type
1797
+ extend MetronomeSDK::Internal::Type::Enum
1798
+
1799
+ ALL = :ALL
1800
+
1801
+ # @!method self.values
1802
+ # @return [Array<Symbol>]
1803
+ end
1804
+ end
1805
+
1806
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1807
+ # @!attribute type
1808
+ #
1809
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1810
+ required :type,
1811
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type }
1812
+
1813
+ # @!method initialize(type:)
1814
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1815
+
1816
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
1817
+ module Type
1818
+ extend MetronomeSDK::Internal::Type::Enum
1819
+
1820
+ NONE = :NONE
1821
+
1822
+ # @!method self.values
1823
+ # @return [Array<Symbol>]
1824
+ end
1825
+ end
1826
+
1827
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1828
+ # @!attribute contract_ids
1829
+ #
1830
+ # @return [Array<String>]
1831
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1832
+
1833
+ # @!attribute type
1834
+ #
1835
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1836
+ required :type,
1837
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type }
1838
+
1839
+ # @!method initialize(contract_ids:, type:)
1840
+ # @param contract_ids [Array<String>]
1841
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1842
+
1843
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
1844
+ module Type
1845
+ extend MetronomeSDK::Internal::Type::Enum
1846
+
1847
+ CONTRACT_IDS = :CONTRACT_IDS
1848
+
1849
+ # @!method self.values
1850
+ # @return [Array<Symbol>]
1851
+ end
1852
+ end
1853
+
1854
+ # @!method self.variants
1855
+ # @return [Array(MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
1856
+ end
1857
+ end
1858
+
1527
1859
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit#invoice_amount
1528
1860
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
1529
1861
  # @!attribute credit_type_id
@@ -1551,7 +1883,6 @@ module MetronomeSDK
1551
1883
 
1552
1884
  # Determines whether the first and last commit will be prorated. If not provided,
1553
1885
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
1554
- # subscription_config:
1555
1886
  #
1556
1887
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit#proration
1557
1888
  module Proration
@@ -1622,6 +1953,56 @@ module MetronomeSDK
1622
1953
  #
1623
1954
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1624
1955
  end
1956
+
1957
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit#subscription_config
1958
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
1959
+ # @!attribute allocation
1960
+ #
1961
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation]
1962
+ required :allocation,
1963
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation }
1964
+
1965
+ # @!attribute apply_seat_increase_config
1966
+ #
1967
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
1968
+ required :apply_seat_increase_config,
1969
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig }
1970
+
1971
+ # @!attribute subscription_id
1972
+ #
1973
+ # @return [String]
1974
+ required :subscription_id, String
1975
+
1976
+ # @!method initialize(allocation:, apply_seat_increase_config:, subscription_id:)
1977
+ # Attach a subscription to the recurring commit/credit.
1978
+ #
1979
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation]
1980
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
1981
+ # @param subscription_id [String]
1982
+
1983
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig#allocation
1984
+ module Allocation
1985
+ extend MetronomeSDK::Internal::Type::Enum
1986
+
1987
+ INDIVIDUAL = :INDIVIDUAL
1988
+ POOLED = :POOLED
1989
+
1990
+ # @!method self.values
1991
+ # @return [Array<Symbol>]
1992
+ end
1993
+
1994
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig#apply_seat_increase_config
1995
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
1996
+ # @!attribute is_prorated
1997
+ # Indicates whether a mid-period seat increase should be prorated.
1998
+ #
1999
+ # @return [Boolean]
2000
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
2001
+
2002
+ # @!method initialize(is_prorated:)
2003
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2004
+ end
2005
+ end
1625
2006
  end
1626
2007
 
1627
2008
  class AddRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -1699,6 +2080,13 @@ module MetronomeSDK
1699
2080
  # @return [Time, nil]
1700
2081
  optional :ending_before, Time
1701
2082
 
2083
+ # @!attribute hierarchy_configuration
2084
+ # Optional configuration for recurring credit hierarchy access control
2085
+ #
2086
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration, nil]
2087
+ optional :hierarchy_configuration,
2088
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration }
2089
+
1702
2090
  # @!attribute name
1703
2091
  # Displayed on invoices. Will be passed through to the individual commits
1704
2092
  #
@@ -1714,7 +2102,6 @@ module MetronomeSDK
1714
2102
  # @!attribute proration
1715
2103
  # Determines whether the first and last commit will be prorated. If not provided,
1716
2104
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
1717
- # subscription_config:
1718
2105
  #
1719
2106
  # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Proration, nil]
1720
2107
  optional :proration,
@@ -1748,7 +2135,14 @@ module MetronomeSDK
1748
2135
  optional :specifiers,
1749
2136
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Specifier] }
1750
2137
 
1751
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil)
2138
+ # @!attribute subscription_config
2139
+ # Attach a subscription to the recurring commit/credit.
2140
+ #
2141
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig, nil]
2142
+ optional :subscription_config,
2143
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig }
2144
+
2145
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1752
2146
  # Some parameter documentations has been truncated, see
1753
2147
  # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit}
1754
2148
  # for more details.
@@ -1777,6 +2171,8 @@ module MetronomeSDK
1777
2171
  #
1778
2172
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. Optional
1779
2173
  #
2174
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
2175
+ #
1780
2176
  # @param name [String] Displayed on invoices. Will be passed through to the individual commits
1781
2177
  #
1782
2178
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
@@ -1788,6 +2184,8 @@ module MetronomeSDK
1788
2184
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1789
2185
  #
1790
2186
  # @param specifiers [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2187
+ #
2188
+ # @param subscription_config [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
1791
2189
 
1792
2190
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit#access_amount
1793
2191
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -1885,9 +2283,105 @@ module MetronomeSDK
1885
2283
  # @param id [String]
1886
2284
  end
1887
2285
 
2286
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit#hierarchy_configuration
2287
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2288
+ # @!attribute child_access
2289
+ #
2290
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2291
+ required :child_access,
2292
+ union: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess }
2293
+
2294
+ # @!method initialize(child_access:)
2295
+ # Optional configuration for recurring credit hierarchy access control
2296
+ #
2297
+ # @param child_access [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2298
+
2299
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration#child_access
2300
+ module ChildAccess
2301
+ extend MetronomeSDK::Internal::Type::Union
2302
+
2303
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll }
2304
+
2305
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone }
2306
+
2307
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs }
2308
+
2309
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2310
+ # @!attribute type
2311
+ #
2312
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2313
+ required :type,
2314
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type }
2315
+
2316
+ # @!method initialize(type:)
2317
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2318
+
2319
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
2320
+ module Type
2321
+ extend MetronomeSDK::Internal::Type::Enum
2322
+
2323
+ ALL = :ALL
2324
+
2325
+ # @!method self.values
2326
+ # @return [Array<Symbol>]
2327
+ end
2328
+ end
2329
+
2330
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2331
+ # @!attribute type
2332
+ #
2333
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2334
+ required :type,
2335
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type }
2336
+
2337
+ # @!method initialize(type:)
2338
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2339
+
2340
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
2341
+ module Type
2342
+ extend MetronomeSDK::Internal::Type::Enum
2343
+
2344
+ NONE = :NONE
2345
+
2346
+ # @!method self.values
2347
+ # @return [Array<Symbol>]
2348
+ end
2349
+ end
2350
+
2351
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2352
+ # @!attribute contract_ids
2353
+ #
2354
+ # @return [Array<String>]
2355
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2356
+
2357
+ # @!attribute type
2358
+ #
2359
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2360
+ required :type,
2361
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type }
2362
+
2363
+ # @!method initialize(contract_ids:, type:)
2364
+ # @param contract_ids [Array<String>]
2365
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2366
+
2367
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
2368
+ module Type
2369
+ extend MetronomeSDK::Internal::Type::Enum
2370
+
2371
+ CONTRACT_IDS = :CONTRACT_IDS
2372
+
2373
+ # @!method self.values
2374
+ # @return [Array<Symbol>]
2375
+ end
2376
+ end
2377
+
2378
+ # @!method self.variants
2379
+ # @return [Array(MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
2380
+ end
2381
+ end
2382
+
1888
2383
  # Determines whether the first and last commit will be prorated. If not provided,
1889
2384
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
1890
- # subscription_config:
1891
2385
  #
1892
2386
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit#proration
1893
2387
  module Proration
@@ -1958,6 +2452,56 @@ module MetronomeSDK
1958
2452
  #
1959
2453
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1960
2454
  end
2455
+
2456
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit#subscription_config
2457
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
2458
+ # @!attribute allocation
2459
+ #
2460
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation]
2461
+ required :allocation,
2462
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation }
2463
+
2464
+ # @!attribute apply_seat_increase_config
2465
+ #
2466
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
2467
+ required :apply_seat_increase_config,
2468
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig }
2469
+
2470
+ # @!attribute subscription_id
2471
+ #
2472
+ # @return [String]
2473
+ required :subscription_id, String
2474
+
2475
+ # @!method initialize(allocation:, apply_seat_increase_config:, subscription_id:)
2476
+ # Attach a subscription to the recurring commit/credit.
2477
+ #
2478
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation]
2479
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
2480
+ # @param subscription_id [String]
2481
+
2482
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig#allocation
2483
+ module Allocation
2484
+ extend MetronomeSDK::Internal::Type::Enum
2485
+
2486
+ INDIVIDUAL = :INDIVIDUAL
2487
+ POOLED = :POOLED
2488
+
2489
+ # @!method self.values
2490
+ # @return [Array<Symbol>]
2491
+ end
2492
+
2493
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig#apply_seat_increase_config
2494
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
2495
+ # @!attribute is_prorated
2496
+ # Indicates whether a mid-period seat increase should be prorated.
2497
+ #
2498
+ # @return [Boolean]
2499
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
2500
+
2501
+ # @!method initialize(is_prorated:)
2502
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2503
+ end
2504
+ end
1961
2505
  end
1962
2506
 
1963
2507
  class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -2650,6 +3194,13 @@ module MetronomeSDK
2650
3194
  # @return [Array<String>, nil]
2651
3195
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
2652
3196
 
3197
+ # @!attribute hierarchy_configuration
3198
+ # Optional configuration for commit hierarchy access control
3199
+ #
3200
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration, nil]
3201
+ optional :hierarchy_configuration,
3202
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration }
3203
+
2653
3204
  # @!attribute invoice_schedule
2654
3205
  #
2655
3206
  # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::InvoiceSchedule, nil]
@@ -2681,13 +3232,15 @@ module MetronomeSDK
2681
3232
  # or credit. A customer's usage needs to meet the condition of at least one of the
2682
3233
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2683
3234
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
3235
+ # Instead, to target usage by product or product tag, pass those values in the
3236
+ # body of `specifiers`.
2684
3237
  #
2685
3238
  # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::Specifier>, nil]
2686
3239
  optional :specifiers,
2687
3240
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::Specifier] },
2688
3241
  nil?: true
2689
3242
 
2690
- # @!method initialize(id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, product_id: nil, rollover_fraction: nil, specifiers: nil)
3243
+ # @!method initialize(id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, product_id: nil, rollover_fraction: nil, specifiers: nil)
2691
3244
  # Some parameter documentations has been truncated, see
2692
3245
  # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit}
2693
3246
  # for more details.
@@ -2700,6 +3253,8 @@ module MetronomeSDK
2700
3253
  #
2701
3254
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
2702
3255
  #
3256
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
3257
+ #
2703
3258
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::InvoiceSchedule]
2704
3259
  #
2705
3260
  # @param name [String]
@@ -2819,6 +3374,103 @@ module MetronomeSDK
2819
3374
  end
2820
3375
  end
2821
3376
 
3377
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit#hierarchy_configuration
3378
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3379
+ # @!attribute child_access
3380
+ #
3381
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3382
+ required :child_access,
3383
+ union: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess }
3384
+
3385
+ # @!method initialize(child_access:)
3386
+ # Optional configuration for commit hierarchy access control
3387
+ #
3388
+ # @param child_access [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3389
+
3390
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration#child_access
3391
+ module ChildAccess
3392
+ extend MetronomeSDK::Internal::Type::Union
3393
+
3394
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll }
3395
+
3396
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone }
3397
+
3398
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs }
3399
+
3400
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3401
+ # @!attribute type
3402
+ #
3403
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3404
+ required :type,
3405
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type }
3406
+
3407
+ # @!method initialize(type:)
3408
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3409
+
3410
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
3411
+ module Type
3412
+ extend MetronomeSDK::Internal::Type::Enum
3413
+
3414
+ ALL = :ALL
3415
+
3416
+ # @!method self.values
3417
+ # @return [Array<Symbol>]
3418
+ end
3419
+ end
3420
+
3421
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3422
+ # @!attribute type
3423
+ #
3424
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3425
+ required :type,
3426
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type }
3427
+
3428
+ # @!method initialize(type:)
3429
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3430
+
3431
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
3432
+ module Type
3433
+ extend MetronomeSDK::Internal::Type::Enum
3434
+
3435
+ NONE = :NONE
3436
+
3437
+ # @!method self.values
3438
+ # @return [Array<Symbol>]
3439
+ end
3440
+ end
3441
+
3442
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3443
+ # @!attribute contract_ids
3444
+ #
3445
+ # @return [Array<String>]
3446
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3447
+
3448
+ # @!attribute type
3449
+ #
3450
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3451
+ required :type,
3452
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type }
3453
+
3454
+ # @!method initialize(contract_ids:, type:)
3455
+ # @param contract_ids [Array<String>]
3456
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3457
+
3458
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
3459
+ module Type
3460
+ extend MetronomeSDK::Internal::Type::Enum
3461
+
3462
+ CONTRACT_IDS = :CONTRACT_IDS
3463
+
3464
+ # @!method self.values
3465
+ # @return [Array<Symbol>]
3466
+ end
3467
+ end
3468
+
3469
+ # @!method self.variants
3470
+ # @return [Array(MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
3471
+ end
3472
+ end
3473
+
2822
3474
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit#invoice_schedule
2823
3475
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
2824
3476
  # @!attribute add_schedule_items
@@ -2980,6 +3632,13 @@ module MetronomeSDK
2980
3632
  optional :access_schedule,
2981
3633
  -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::AccessSchedule }
2982
3634
 
3635
+ # @!attribute hierarchy_configuration
3636
+ # Optional configuration for credit hierarchy access control
3637
+ #
3638
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration, nil]
3639
+ optional :hierarchy_configuration,
3640
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration }
3641
+
2983
3642
  # @!attribute name
2984
3643
  #
2985
3644
  # @return [String, nil]
@@ -2995,11 +3654,17 @@ module MetronomeSDK
2995
3654
  # @return [Float, nil]
2996
3655
  optional :rollover_fraction, Float, nil?: true
2997
3656
 
2998
- # @!method initialize(id:, access_schedule: nil, name: nil, netsuite_sales_order_id: nil, rollover_fraction: nil)
3657
+ # @!method initialize(id:, access_schedule: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, rollover_fraction: nil)
2999
3658
  # @param id [String]
3659
+ #
3000
3660
  # @param access_schedule [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::AccessSchedule]
3661
+ #
3662
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration] Optional configuration for credit hierarchy access control
3663
+ #
3001
3664
  # @param name [String]
3665
+ #
3002
3666
  # @param netsuite_sales_order_id [String, nil]
3667
+ #
3003
3668
  # @param rollover_fraction [Float, nil]
3004
3669
 
3005
3670
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit#access_schedule
@@ -3108,6 +3773,103 @@ module MetronomeSDK
3108
3773
  # @param starting_at [Time] RFC 3339 timestamp (inclusive)
3109
3774
  end
3110
3775
  end
3776
+
3777
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit#hierarchy_configuration
3778
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3779
+ # @!attribute child_access
3780
+ #
3781
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3782
+ required :child_access,
3783
+ union: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess }
3784
+
3785
+ # @!method initialize(child_access:)
3786
+ # Optional configuration for credit hierarchy access control
3787
+ #
3788
+ # @param child_access [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3789
+
3790
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration#child_access
3791
+ module ChildAccess
3792
+ extend MetronomeSDK::Internal::Type::Union
3793
+
3794
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll }
3795
+
3796
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone }
3797
+
3798
+ variant -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs }
3799
+
3800
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3801
+ # @!attribute type
3802
+ #
3803
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3804
+ required :type,
3805
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type }
3806
+
3807
+ # @!method initialize(type:)
3808
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3809
+
3810
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
3811
+ module Type
3812
+ extend MetronomeSDK::Internal::Type::Enum
3813
+
3814
+ ALL = :ALL
3815
+
3816
+ # @!method self.values
3817
+ # @return [Array<Symbol>]
3818
+ end
3819
+ end
3820
+
3821
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3822
+ # @!attribute type
3823
+ #
3824
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3825
+ required :type,
3826
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type }
3827
+
3828
+ # @!method initialize(type:)
3829
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3830
+
3831
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
3832
+ module Type
3833
+ extend MetronomeSDK::Internal::Type::Enum
3834
+
3835
+ NONE = :NONE
3836
+
3837
+ # @!method self.values
3838
+ # @return [Array<Symbol>]
3839
+ end
3840
+ end
3841
+
3842
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3843
+ # @!attribute contract_ids
3844
+ #
3845
+ # @return [Array<String>]
3846
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3847
+
3848
+ # @!attribute type
3849
+ #
3850
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3851
+ required :type,
3852
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type }
3853
+
3854
+ # @!method initialize(contract_ids:, type:)
3855
+ # @param contract_ids [Array<String>]
3856
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3857
+
3858
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
3859
+ module Type
3860
+ extend MetronomeSDK::Internal::Type::Enum
3861
+
3862
+ CONTRACT_IDS = :CONTRACT_IDS
3863
+
3864
+ # @!method self.values
3865
+ # @return [Array<Symbol>]
3866
+ end
3867
+ end
3868
+
3869
+ # @!method self.variants
3870
+ # @return [Array(MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
3871
+ end
3872
+ end
3111
3873
  end
3112
3874
 
3113
3875
  class UpdateDiscount < MetronomeSDK::Internal::Type::BaseModel
@@ -3152,7 +3914,7 @@ module MetronomeSDK
3152
3914
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateDiscount#schedule
3153
3915
  class Schedule < MetronomeSDK::Internal::Type::BaseModel
3154
3916
  # @!attribute credit_type_id
3155
- # Defaults to USD if not passed. Only USD is supported at this time.
3917
+ # Defaults to USD (cents) if not passed.
3156
3918
  #
3157
3919
  # @return [String, nil]
3158
3920
  optional :credit_type_id, String
@@ -3180,7 +3942,7 @@ module MetronomeSDK
3180
3942
  #
3181
3943
  # Must provide either schedule_items or recurring_schedule.
3182
3944
  #
3183
- # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
3945
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
3184
3946
  #
3185
3947
  # @param recurring_schedule [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateDiscount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
3186
3948
  #
@@ -3433,6 +4195,8 @@ module MetronomeSDK
3433
4195
  # or credit. A customer's usage needs to meet the condition of at least one of the
3434
4196
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
3435
4197
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
4198
+ # Instead, to target usage by product or product tag, pass those values in the
4199
+ # body of `specifiers`.
3436
4200
  #
3437
4201
  # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
3438
4202
  optional :specifiers,