metronome-sdk 3.7.0 → 3.8.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/models/commit.rb +10 -1
  6. data/lib/metronome_sdk/models/contract_v2.rb +290 -7
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +178 -4
  8. data/lib/metronome_sdk/models/credit.rb +10 -1
  9. data/lib/metronome_sdk/models/override.rb +7 -1
  10. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +10 -2
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +3 -1
  12. data/lib/metronome_sdk/models/subscription.rb +90 -2
  13. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  14. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +17 -4
  15. data/lib/metronome_sdk/models/v1/contract_create_params.rb +290 -10
  16. data/lib/metronome_sdk/models/v1/contract_create_response.rb +178 -4
  17. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  18. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  21. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  22. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  23. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  24. data/lib/metronome_sdk/models/v1/package_create_params.rb +279 -10
  25. data/lib/metronome_sdk/models/v1/package_list_response.rb +264 -7
  26. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +264 -7
  27. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +515 -9
  28. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +456 -8
  29. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +456 -8
  30. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  31. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  32. data/lib/metronome_sdk/resources/v1/contracts.rb +68 -1
  33. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  34. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  36. data/lib/metronome_sdk/version.rb +1 -1
  37. data/lib/metronome_sdk.rb +2 -0
  38. data/rbi/metronome_sdk/models/commit.rbi +13 -0
  39. data/rbi/metronome_sdk/models/contract_v2.rbi +715 -3
  40. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +463 -0
  41. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  42. data/rbi/metronome_sdk/models/override.rbi +9 -0
  43. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +11 -1
  44. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +4 -0
  45. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  46. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  47. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +27 -6
  48. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +719 -9
  49. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +463 -0
  50. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  51. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  52. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  53. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  54. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  55. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  56. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  57. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +706 -9
  58. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +693 -3
  59. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +693 -3
  60. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1333 -40
  61. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +1204 -67
  62. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1204 -67
  63. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  64. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  65. data/rbi/metronome_sdk/resources/v1/contracts.rbi +70 -0
  66. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  67. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  68. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  69. data/sig/metronome_sdk/models/commit.rbs +7 -0
  70. data/sig/metronome_sdk/models/contract_v2.rbs +278 -5
  71. data/sig/metronome_sdk/models/contract_without_amendments.rbs +169 -2
  72. data/sig/metronome_sdk/models/credit.rbs +7 -0
  73. data/sig/metronome_sdk/models/override.rbs +7 -0
  74. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  75. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  76. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +7 -0
  77. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +278 -5
  78. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +167 -2
  79. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  80. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  81. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  82. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  83. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  84. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  85. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  86. data/sig/metronome_sdk/models/v1/package_create_params.rbs +271 -5
  87. data/sig/metronome_sdk/models/v1/package_list_response.rbs +265 -5
  88. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +263 -5
  89. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +468 -5
  90. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +428 -5
  91. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +427 -5
  92. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  93. data/sig/metronome_sdk/resources/v1/contracts.rbs +13 -0
  94. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  95. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  96. metadata +8 -2
@@ -384,6 +384,14 @@ module MetronomeSDK
384
384
  # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::Proration, nil]
385
385
  optional :proration, enum: -> { MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Proration }
386
386
 
387
+ # @!attribute proration_rounding
388
+ # Rounding configuration for prorated recurring commit amounts.
389
+ #
390
+ # @return [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding, nil]
391
+ optional :proration_rounding,
392
+ -> { MetronomeSDK::ContractWithoutAmendments::RecurringCommit::ProrationRounding },
393
+ nil?: true
394
+
387
395
  # @!attribute recurrence_frequency
388
396
  # The frequency at which the recurring commits will be created. If not provided: -
389
397
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -417,7 +425,7 @@ module MetronomeSDK
417
425
  # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
418
426
  optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
419
427
 
420
- # @!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)
428
+ # @!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, proration_rounding: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
421
429
  # Some parameter documentations has been truncated, see
422
430
  # {MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit} for more
423
431
  # details.
@@ -456,7 +464,9 @@ module MetronomeSDK
456
464
  #
457
465
  # @param proration [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
458
466
  #
459
- # @param recurrence_frequency [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
467
+ # @param proration_rounding [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding, nil] Rounding configuration for prorated recurring commit amounts.
468
+ #
469
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
460
470
  #
461
471
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
462
472
  #
@@ -601,6 +611,105 @@ module MetronomeSDK
601
611
  # @return [Array<Symbol>]
602
612
  end
603
613
 
614
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit#proration_rounding
615
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
616
+ # @!attribute access
617
+ #
618
+ # @return [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Access, nil]
619
+ optional :access,
620
+ -> { MetronomeSDK::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Access }
621
+
622
+ # @!attribute invoice
623
+ #
624
+ # @return [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Invoice, nil]
625
+ optional :invoice,
626
+ -> { MetronomeSDK::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Invoice }
627
+
628
+ # @!method initialize(access: nil, invoice: nil)
629
+ # Rounding configuration for prorated recurring commit amounts.
630
+ #
631
+ # @param access [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Access]
632
+ # @param invoice [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Invoice]
633
+
634
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding#access
635
+ class Access < MetronomeSDK::Internal::Type::BaseModel
636
+ # @!attribute decimal_places
637
+ # Number of decimal places to round to. Applied directly to the stored monetary
638
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
639
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
640
+ # dollar).
641
+ #
642
+ # @return [Float]
643
+ required :decimal_places, Float
644
+
645
+ # @!attribute rounding_method
646
+ #
647
+ # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Access::RoundingMethod]
648
+ required :rounding_method,
649
+ enum: -> { MetronomeSDK::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Access::RoundingMethod }
650
+
651
+ # @!method initialize(decimal_places:, rounding_method:)
652
+ # Some parameter documentations has been truncated, see
653
+ # {MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Access}
654
+ # for more details.
655
+ #
656
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
657
+ #
658
+ # @param rounding_method [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Access::RoundingMethod]
659
+
660
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Access#rounding_method
661
+ module RoundingMethod
662
+ extend MetronomeSDK::Internal::Type::Enum
663
+
664
+ HALF_UP = :HALF_UP
665
+ FLOOR = :FLOOR
666
+ CEILING = :CEILING
667
+
668
+ # @!method self.values
669
+ # @return [Array<Symbol>]
670
+ end
671
+ end
672
+
673
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding#invoice
674
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
675
+ # @!attribute decimal_places
676
+ # Number of decimal places to round to. Applied directly to the stored monetary
677
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
678
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
679
+ # dollar).
680
+ #
681
+ # @return [Float]
682
+ required :decimal_places, Float
683
+
684
+ # @!attribute rounding_method
685
+ #
686
+ # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
687
+ required :rounding_method,
688
+ enum: -> { MetronomeSDK::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Invoice::RoundingMethod }
689
+
690
+ # @!method initialize(decimal_places:, rounding_method:)
691
+ # Some parameter documentations has been truncated, see
692
+ # {MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Invoice}
693
+ # for more details.
694
+ #
695
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
696
+ #
697
+ # @param rounding_method [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
698
+
699
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::ProrationRounding::Invoice#rounding_method
700
+ module RoundingMethod
701
+ extend MetronomeSDK::Internal::Type::Enum
702
+
703
+ HALF_UP = :HALF_UP
704
+ FLOOR = :FLOOR
705
+ CEILING = :CEILING
706
+
707
+ # @!method self.values
708
+ # @return [Array<Symbol>]
709
+ end
710
+ end
711
+ end
712
+
604
713
  # The frequency at which the recurring commits will be created. If not provided: -
605
714
  # The commits will be created on the usage invoice frequency. If provided: - The
606
715
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -615,6 +724,7 @@ module MetronomeSDK
615
724
  QUARTERLY = :QUARTERLY
616
725
  ANNUAL = :ANNUAL
617
726
  WEEKLY = :WEEKLY
727
+ DAILY = :DAILY
618
728
 
619
729
  # @!method self.values
620
730
  # @return [Array<Symbol>]
@@ -716,6 +826,14 @@ module MetronomeSDK
716
826
  # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::Proration, nil]
717
827
  optional :proration, enum: -> { MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Proration }
718
828
 
829
+ # @!attribute proration_rounding
830
+ # Rounding configuration for prorated recurring credit amounts.
831
+ #
832
+ # @return [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::ProrationRounding, nil]
833
+ optional :proration_rounding,
834
+ -> { MetronomeSDK::ContractWithoutAmendments::RecurringCredit::ProrationRounding },
835
+ nil?: true
836
+
719
837
  # @!attribute recurrence_frequency
720
838
  # The frequency at which the recurring commits will be created. If not provided: -
721
839
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -749,7 +867,7 @@ module MetronomeSDK
749
867
  # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
750
868
  optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
751
869
 
752
- # @!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)
870
+ # @!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, proration_rounding: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
753
871
  # Some parameter documentations has been truncated, see
754
872
  # {MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit} for more
755
873
  # details.
@@ -786,7 +904,9 @@ module MetronomeSDK
786
904
  #
787
905
  # @param proration [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
788
906
  #
789
- # @param recurrence_frequency [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
907
+ # @param proration_rounding [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::ProrationRounding, nil] Rounding configuration for prorated recurring credit amounts.
908
+ #
909
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
790
910
  #
791
911
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
792
912
  #
@@ -906,6 +1026,59 @@ module MetronomeSDK
906
1026
  # @return [Array<Symbol>]
907
1027
  end
908
1028
 
1029
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit#proration_rounding
1030
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
1031
+ # @!attribute access
1032
+ #
1033
+ # @return [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::ProrationRounding::Access, nil]
1034
+ optional :access,
1035
+ -> { MetronomeSDK::ContractWithoutAmendments::RecurringCredit::ProrationRounding::Access }
1036
+
1037
+ # @!method initialize(access: nil)
1038
+ # Rounding configuration for prorated recurring credit amounts.
1039
+ #
1040
+ # @param access [MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::ProrationRounding::Access]
1041
+
1042
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::ProrationRounding#access
1043
+ class Access < MetronomeSDK::Internal::Type::BaseModel
1044
+ # @!attribute decimal_places
1045
+ # Number of decimal places to round to. Applied directly to the stored monetary
1046
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1047
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1048
+ # dollar).
1049
+ #
1050
+ # @return [Float]
1051
+ required :decimal_places, Float
1052
+
1053
+ # @!attribute rounding_method
1054
+ #
1055
+ # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::ProrationRounding::Access::RoundingMethod]
1056
+ required :rounding_method,
1057
+ enum: -> { MetronomeSDK::ContractWithoutAmendments::RecurringCredit::ProrationRounding::Access::RoundingMethod }
1058
+
1059
+ # @!method initialize(decimal_places:, rounding_method:)
1060
+ # Some parameter documentations has been truncated, see
1061
+ # {MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::ProrationRounding::Access}
1062
+ # for more details.
1063
+ #
1064
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
1065
+ #
1066
+ # @param rounding_method [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::ProrationRounding::Access::RoundingMethod]
1067
+
1068
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::ProrationRounding::Access#rounding_method
1069
+ module RoundingMethod
1070
+ extend MetronomeSDK::Internal::Type::Enum
1071
+
1072
+ HALF_UP = :HALF_UP
1073
+ FLOOR = :FLOOR
1074
+ CEILING = :CEILING
1075
+
1076
+ # @!method self.values
1077
+ # @return [Array<Symbol>]
1078
+ end
1079
+ end
1080
+ end
1081
+
909
1082
  # The frequency at which the recurring commits will be created. If not provided: -
910
1083
  # The commits will be created on the usage invoice frequency. If provided: - The
911
1084
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -920,6 +1093,7 @@ module MetronomeSDK
920
1093
  QUARTERLY = :QUARTERLY
921
1094
  ANNUAL = :ANNUAL
922
1095
  WEEKLY = :WEEKLY
1096
+ DAILY = :DAILY
923
1097
 
924
1098
  # @!method self.values
925
1099
  # @return [Array<Symbol>]
@@ -57,6 +57,13 @@ module MetronomeSDK
57
57
  # @return [MetronomeSDK::Models::Credit::Contract, nil]
58
58
  optional :contract, -> { MetronomeSDK::Credit::Contract }
59
59
 
60
+ # @!attribute created_by
61
+ # The actor who created this credit. Omitted for system-generated credits such as
62
+ # recurring credits.
63
+ #
64
+ # @return [String, nil]
65
+ optional :created_by, String
66
+
60
67
  # @!attribute custom_fields
61
68
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
62
69
  #
@@ -146,7 +153,7 @@ module MetronomeSDK
146
153
  # @return [String, nil]
147
154
  optional :uniqueness_key, String
148
155
 
149
- # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, recurring_credit_id: nil, rolled_over_from: nil, salesforce_opportunity_id: nil, specifiers: nil, subscription_config: nil, uniqueness_key: nil)
156
+ # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, balance: nil, contract: nil, created_by: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, recurring_credit_id: nil, rolled_over_from: nil, salesforce_opportunity_id: nil, specifiers: nil, subscription_config: nil, uniqueness_key: nil)
150
157
  # Some parameter documentations has been truncated, see
151
158
  # {MetronomeSDK::Models::Credit} for more details.
152
159
  #
@@ -168,6 +175,8 @@ module MetronomeSDK
168
175
  #
169
176
  # @param contract [MetronomeSDK::Models::Credit::Contract]
170
177
  #
178
+ # @param created_by [String] The actor who created this credit. Omitted for system-generated credits such as
179
+ #
171
180
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
172
181
  #
173
182
  # @param description [String]
@@ -171,6 +171,11 @@ module MetronomeSDK
171
171
  # @param value [Hash{Symbol=>Object}] Only set for CUSTOM rate_type. This field is interpreted by custom rate processo
172
172
 
173
173
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
174
+ # @!attribute any_commit_or_credit_ids
175
+ #
176
+ # @return [Array<String>, nil]
177
+ optional :any_commit_or_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
178
+
174
179
  # @!attribute billing_frequency
175
180
  #
176
181
  # @return [Symbol, MetronomeSDK::Models::Override::OverrideSpecifier::BillingFrequency, nil]
@@ -206,7 +211,8 @@ module MetronomeSDK
206
211
  # @return [Array<String>, nil]
207
212
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
208
213
 
209
- # @!method initialize(billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
214
+ # @!method initialize(any_commit_or_credit_ids: nil, billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
215
+ # @param any_commit_or_credit_ids [Array<String>]
210
216
  # @param billing_frequency [Symbol, MetronomeSDK::Models::Override::OverrideSpecifier::BillingFrequency]
211
217
  # @param commit_ids [Array<String>]
212
218
  # @param presentation_group_values [Hash{Symbol=>String, nil}]
@@ -48,6 +48,8 @@ module MetronomeSDK
48
48
  -> { MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration }
49
49
 
50
50
  # @!attribute threshold_balance_specifiers
51
+ # Determines which balances are excluded from remaining balance calculation for
52
+ # threshold billing.
51
53
  #
52
54
  # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil]
53
55
  optional :threshold_balance_specifiers,
@@ -71,7 +73,7 @@ module MetronomeSDK
71
73
  #
72
74
  # @param discount_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::DiscountConfiguration]
73
75
  #
74
- # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>]
76
+ # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>] Determines which balances are excluded from remaining balance calculation for th
75
77
 
76
78
  # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration#commit
77
79
  class Commit < MetronomeSDK::Models::BaseThresholdCommit
@@ -164,13 +166,19 @@ module MetronomeSDK
164
166
 
165
167
  class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
166
168
  # @!attribute exclude
169
+ # If any of the exclude specifier is met, the balance is not considered when
170
+ # evaluating threshold billing
167
171
  #
168
172
  # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude>]
169
173
  required :exclude,
170
174
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude] }
171
175
 
172
176
  # @!method initialize(exclude:)
173
- # @param exclude [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude>]
177
+ # Some parameter documentations has been truncated, see
178
+ # {MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier}
179
+ # for more details.
180
+ #
181
+ # @param exclude [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude>] If any of the exclude specifier is met, the balance is not considered when evalu
174
182
 
175
183
  class Exclude < MetronomeSDK::Internal::Type::BaseModel
176
184
  # @!attribute custom_field_filters
@@ -48,6 +48,8 @@ module MetronomeSDK
48
48
  -> { MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration }
49
49
 
50
50
  # @!attribute threshold_balance_specifiers
51
+ # Determines which balances are excluded from remaining balance calculation for
52
+ # threshold billing.
51
53
  #
52
54
  # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier>, nil]
53
55
  optional :threshold_balance_specifiers,
@@ -71,7 +73,7 @@ module MetronomeSDK
71
73
  #
72
74
  # @param discount_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration]
73
75
  #
74
- # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier>]
76
+ # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier>] Determines which balances are excluded from remaining balance calculation for th
75
77
 
76
78
  # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2#commit
77
79
  class Commit < MetronomeSDK::Models::BaseThresholdCommit
@@ -56,6 +56,11 @@ module MetronomeSDK
56
56
  # @return [String, nil]
57
57
  optional :id, String
58
58
 
59
+ # @!attribute billing_cycle_config
60
+ #
61
+ # @return [MetronomeSDK::Models::Subscription::BillingCycleConfig, nil]
62
+ optional :billing_cycle_config, -> { MetronomeSDK::Subscription::BillingCycleConfig }
63
+
59
64
  # @!attribute custom_fields
60
65
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
61
66
  #
@@ -87,7 +92,7 @@ module MetronomeSDK
87
92
  # @return [MetronomeSDK::Models::Subscription::SeatConfig, nil]
88
93
  optional :seat_config, -> { MetronomeSDK::Subscription::SeatConfig }
89
94
 
90
- # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil, seat_config: nil)
95
+ # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, billing_cycle_config: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil, seat_config: nil)
91
96
  # Some parameter documentations has been truncated, see
92
97
  # {MetronomeSDK::Models::Subscription} for more details.
93
98
  #
@@ -107,6 +112,8 @@ module MetronomeSDK
107
112
  #
108
113
  # @param id [String]
109
114
  #
115
+ # @param billing_cycle_config [MetronomeSDK::Models::Subscription::BillingCycleConfig]
116
+ #
110
117
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
111
118
  #
112
119
  # @param description [String]
@@ -218,9 +225,15 @@ module MetronomeSDK
218
225
  # @return [Boolean]
219
226
  required :is_prorated, MetronomeSDK::Internal::Type::Boolean
220
227
 
221
- # @!method initialize(invoice_behavior:, is_prorated:)
228
+ # @!attribute rounding
229
+ #
230
+ # @return [MetronomeSDK::Models::Subscription::Proration::Rounding, nil]
231
+ optional :rounding, -> { MetronomeSDK::Subscription::Proration::Rounding }
232
+
233
+ # @!method initialize(invoice_behavior:, is_prorated:, rounding: nil)
222
234
  # @param invoice_behavior [Symbol, MetronomeSDK::Models::Subscription::Proration::InvoiceBehavior]
223
235
  # @param is_prorated [Boolean]
236
+ # @param rounding [MetronomeSDK::Models::Subscription::Proration::Rounding]
224
237
 
225
238
  # @see MetronomeSDK::Models::Subscription::Proration#invoice_behavior
226
239
  module InvoiceBehavior
@@ -232,6 +245,43 @@ module MetronomeSDK
232
245
  # @!method self.values
233
246
  # @return [Array<Symbol>]
234
247
  end
248
+
249
+ # @see MetronomeSDK::Models::Subscription::Proration#rounding
250
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
251
+ # @!attribute decimal_places
252
+ # Number of decimal places to round to. Applied directly to the stored monetary
253
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
254
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
255
+ # dollar).
256
+ #
257
+ # @return [Float]
258
+ required :decimal_places, Float
259
+
260
+ # @!attribute rounding_method
261
+ #
262
+ # @return [Symbol, MetronomeSDK::Models::Subscription::Proration::Rounding::RoundingMethod]
263
+ required :rounding_method, enum: -> { MetronomeSDK::Subscription::Proration::Rounding::RoundingMethod }
264
+
265
+ # @!method initialize(decimal_places:, rounding_method:)
266
+ # Some parameter documentations has been truncated, see
267
+ # {MetronomeSDK::Models::Subscription::Proration::Rounding} for more details.
268
+ #
269
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
270
+ #
271
+ # @param rounding_method [Symbol, MetronomeSDK::Models::Subscription::Proration::Rounding::RoundingMethod]
272
+
273
+ # @see MetronomeSDK::Models::Subscription::Proration::Rounding#rounding_method
274
+ module RoundingMethod
275
+ extend MetronomeSDK::Internal::Type::Enum
276
+
277
+ HALF_UP = :HALF_UP
278
+ FLOOR = :FLOOR
279
+ CEILING = :CEILING
280
+
281
+ # @!method self.values
282
+ # @return [Array<Symbol>]
283
+ end
284
+ end
235
285
  end
236
286
 
237
287
  # Determines how the subscription's quantity is controlled. Defaults to
@@ -324,6 +374,44 @@ module MetronomeSDK
324
374
  end
325
375
  end
326
376
 
377
+ # @see MetronomeSDK::Models::Subscription#billing_cycle_config
378
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
379
+ # @!attribute anchor_date
380
+ # The date this subscription's billing cycle is anchored to.
381
+ #
382
+ # @return [Time]
383
+ required :anchor_date, Time
384
+
385
+ # @!attribute invoice_placement
386
+ # Controls whether this subscription consolidates onto usage invoices or gets its
387
+ # own scheduled invoice.
388
+ #
389
+ # @return [Symbol, MetronomeSDK::Models::Subscription::BillingCycleConfig::InvoicePlacement]
390
+ required :invoice_placement, enum: -> { MetronomeSDK::Subscription::BillingCycleConfig::InvoicePlacement }
391
+
392
+ # @!method initialize(anchor_date:, invoice_placement:)
393
+ # Some parameter documentations has been truncated, see
394
+ # {MetronomeSDK::Models::Subscription::BillingCycleConfig} for more details.
395
+ #
396
+ # @param anchor_date [Time] The date this subscription's billing cycle is anchored to.
397
+ #
398
+ # @param invoice_placement [Symbol, MetronomeSDK::Models::Subscription::BillingCycleConfig::InvoicePlacement] Controls whether this subscription consolidates onto usage invoices or gets its
399
+
400
+ # Controls whether this subscription consolidates onto usage invoices or gets its
401
+ # own scheduled invoice.
402
+ #
403
+ # @see MetronomeSDK::Models::Subscription::BillingCycleConfig#invoice_placement
404
+ module InvoicePlacement
405
+ extend MetronomeSDK::Internal::Type::Enum
406
+
407
+ ON_SCHEDULED_INVOICE = :ON_SCHEDULED_INVOICE
408
+ ON_USAGE_INVOICE = :ON_USAGE_INVOICE
409
+
410
+ # @!method self.values
411
+ # @return [Array<Symbol>]
412
+ end
413
+ end
414
+
327
415
  # @see MetronomeSDK::Models::Subscription#seat_config
328
416
  class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
329
417
  # @!attribute seat_group_key
@@ -28,6 +28,15 @@ module MetronomeSDK
28
28
  # @return [Float]
29
29
  required :threshold, Float
30
30
 
31
+ # @!attribute alert_specifiers
32
+ # Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
33
+ # notifications. Defines the balances that are considered when evaluating the
34
+ # alert.
35
+ #
36
+ # @return [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier>, nil]
37
+ optional :alert_specifiers,
38
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::AlertCreateParams::AlertSpecifier] }
39
+
31
40
  # @!attribute billable_metric_id
32
41
  # For threshold notifications of type `usage_threshold_reached`, specifies which
33
42
  # billable metric to track the usage for.
@@ -112,7 +121,7 @@ module MetronomeSDK
112
121
  # @return [String, nil]
113
122
  optional :uniqueness_key, String
114
123
 
115
- # @!method initialize(alert_type:, name:, threshold:, billable_metric_id: nil, credit_grant_type_filters: nil, credit_type_id: nil, custom_field_filters: nil, customer_id: nil, evaluate_on_create: nil, group_values: nil, invoice_types_filter: nil, plan_id: nil, seat_filter: nil, uniqueness_key: nil, request_options: {})
124
+ # @!method initialize(alert_type:, name:, threshold:, alert_specifiers: nil, billable_metric_id: nil, credit_grant_type_filters: nil, credit_type_id: nil, custom_field_filters: nil, customer_id: nil, evaluate_on_create: nil, group_values: nil, invoice_types_filter: nil, plan_id: nil, seat_filter: nil, uniqueness_key: nil, request_options: {})
116
125
  # Some parameter documentations has been truncated, see
117
126
  # {MetronomeSDK::Models::V1::AlertCreateParams} for more details.
118
127
  #
@@ -122,6 +131,8 @@ module MetronomeSDK
122
131
  #
123
132
  # @param threshold [Float] Threshold value of the notification policy. Depending upon the notification typ
124
133
  #
134
+ # @param alert_specifiers [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier>] Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
135
+ #
125
136
  # @param billable_metric_id [String] For threshold notifications of type `usage_threshold_reached`, specifies which b
126
137
  #
127
138
  # @param credit_grant_type_filters [Array<String>] An array of strings, representing a way to filter the credit grant this threshol
@@ -172,6 +183,121 @@ module MetronomeSDK
172
183
  # @return [Array<Symbol>]
173
184
  end
174
185
 
186
+ class AlertSpecifier < MetronomeSDK::Internal::Type::BaseModel
187
+ # @!attribute custom_field_filters
188
+ # A list of custom field filters for notification types that support advanced
189
+ # filtering
190
+ #
191
+ # @return [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter>, nil]
192
+ optional :custom_field_filters,
193
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter] }
194
+
195
+ # @!attribute exclude
196
+ # If provided, the specifier will not apply to balances that matches the inclusion
197
+ # criteria and any of the excluding values.
198
+ #
199
+ # @return [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude>, nil]
200
+ optional :exclude,
201
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::Exclude] }
202
+
203
+ # @!method initialize(custom_field_filters: nil, exclude: nil)
204
+ # Some parameter documentations has been truncated, see
205
+ # {MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier} for more details.
206
+ #
207
+ # @param custom_field_filters [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter>] A list of custom field filters for notification types that support advanced filt
208
+ #
209
+ # @param exclude [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude>] If provided, the specifier will not apply to balances that matches the inclusion
210
+
211
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
212
+ # @!attribute entity
213
+ #
214
+ # @return [Symbol, MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter::Entity]
215
+ required :entity,
216
+ enum: -> { MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter::Entity }
217
+
218
+ # @!attribute key
219
+ #
220
+ # @return [String]
221
+ required :key, String
222
+
223
+ # @!attribute value
224
+ #
225
+ # @return [String, nil]
226
+ optional :value, String
227
+
228
+ # @!method initialize(entity:, key:, value: nil)
229
+ # @param entity [Symbol, MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter::Entity]
230
+ # @param key [String]
231
+ # @param value [String]
232
+
233
+ # @see MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter#entity
234
+ module Entity
235
+ extend MetronomeSDK::Internal::Type::Enum
236
+
237
+ CONTRACT = :Contract
238
+ COMMIT = :Commit
239
+ CONTRACT_CREDIT = :ContractCredit
240
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
241
+
242
+ # @!method self.values
243
+ # @return [Array<Symbol>]
244
+ end
245
+ end
246
+
247
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
248
+ # @!attribute custom_field_filters
249
+ # A list of custom field filters for notification types that support advanced
250
+ # filtering
251
+ #
252
+ # @return [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter>, nil]
253
+ optional :custom_field_filters,
254
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter] }
255
+
256
+ # @!method initialize(custom_field_filters: nil)
257
+ # Some parameter documentations has been truncated, see
258
+ # {MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude} for more
259
+ # details.
260
+ #
261
+ # @param custom_field_filters [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter>] A list of custom field filters for notification types that support advanced filt
262
+
263
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
264
+ # @!attribute entity
265
+ #
266
+ # @return [Symbol, MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity]
267
+ required :entity,
268
+ enum: -> { MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity }
269
+
270
+ # @!attribute key
271
+ #
272
+ # @return [String]
273
+ required :key, String
274
+
275
+ # @!attribute value
276
+ #
277
+ # @return [String]
278
+ required :value, String
279
+
280
+ # @!method initialize(entity:, key:, value:)
281
+ # @param entity [Symbol, MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity]
282
+ # @param key [String]
283
+ # @param value [String]
284
+
285
+ # @see MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter#entity
286
+ module Entity
287
+ extend MetronomeSDK::Internal::Type::Enum
288
+
289
+ CONTRACT = :Contract
290
+ COMMIT = :Commit
291
+ CONTRACT_CREDIT = :ContractCredit
292
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
293
+
294
+ # @!method self.values
295
+ # @return [Array<Symbol>]
296
+ end
297
+ end
298
+ end
299
+ end
300
+
175
301
  class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
176
302
  # @!attribute entity
177
303
  #