metronome-sdk 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -1
  5. data/lib/metronome_sdk/internal/type/array_of.rb +1 -0
  6. data/lib/metronome_sdk/internal/type/base_model.rb +3 -1
  7. data/lib/metronome_sdk/internal/type/converter.rb +27 -0
  8. data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
  9. data/lib/metronome_sdk/internal/type/union.rb +9 -7
  10. data/lib/metronome_sdk/models/commit.rb +35 -5
  11. data/lib/metronome_sdk/models/contract_without_amendments.rb +128 -2
  12. data/lib/metronome_sdk/models/credit.rb +21 -3
  13. data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
  14. data/lib/metronome_sdk/models/v1/alert_create_params.rb +9 -11
  15. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +54 -5
  16. data/lib/metronome_sdk/models/v1/contract_create_params.rb +219 -23
  17. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +8 -1
  18. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +10 -1
  19. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +29 -1
  20. data/lib/metronome_sdk/models/v1/customers/invoice.rb +13 -1
  21. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  22. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +12 -1
  23. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +12 -1
  24. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +259 -37
  25. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +602 -15
  26. data/lib/metronome_sdk/models/v2/contract_list_response.rb +194 -17
  27. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +194 -17
  28. data/lib/metronome_sdk/resources/v1/alerts.rb +2 -2
  29. data/lib/metronome_sdk/resources/v1/contracts/products.rb +3 -1
  30. data/lib/metronome_sdk/resources/v2/contracts.rb +6 -2
  31. data/lib/metronome_sdk/version.rb +1 -1
  32. data/rbi/metronome_sdk/internal/transport/base_client.rbi +1 -1
  33. data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
  34. data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
  35. data/rbi/metronome_sdk/models/commit.rbi +89 -15
  36. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +304 -6
  37. data/rbi/metronome_sdk/models/credit.rbi +54 -9
  38. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
  39. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +16 -18
  40. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +76 -3
  41. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +433 -26
  42. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +9 -0
  43. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +13 -0
  44. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +60 -0
  45. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +16 -0
  46. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  47. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +14 -0
  48. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +14 -0
  49. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +481 -38
  50. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1565 -42
  51. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +431 -37
  52. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +431 -37
  53. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -5
  54. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +2 -0
  55. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  56. data/sig/metronome_sdk/internal/transport/base_client.rbs +1 -1
  57. data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
  58. data/sig/metronome_sdk/internal/type/union.rbs +2 -2
  59. data/sig/metronome_sdk/models/commit.rbs +50 -15
  60. data/sig/metronome_sdk/models/contract_without_amendments.rbs +120 -6
  61. data/sig/metronome_sdk/models/credit.rbs +30 -9
  62. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
  63. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +9 -9
  64. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +38 -3
  65. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +168 -6
  66. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
  67. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +7 -0
  68. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +21 -0
  69. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
  70. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  71. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +5 -0
  72. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +5 -0
  73. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +178 -6
  74. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +629 -6
  75. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +205 -30
  76. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +205 -30
  77. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -1
  78. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
  79. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  80. metadata +2 -2
@@ -763,12 +763,18 @@ module MetronomeSDK
763
763
  required :type,
764
764
  enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type }
765
765
 
766
- # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:)
766
+ # @!attribute contract_id
767
+ #
768
+ # @return [String, nil]
769
+ optional :contract_id, String
770
+
771
+ # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:, contract_id: nil)
767
772
  # @param amount [Float]
768
773
  # @param invoice_id [String]
769
774
  # @param segment_id [String]
770
775
  # @param timestamp [Time]
771
776
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type]
777
+ # @param contract_id [String]
772
778
 
773
779
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry#type
774
780
  module Type
@@ -892,12 +898,18 @@ module MetronomeSDK
892
898
  required :type,
893
899
  enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type }
894
900
 
895
- # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:)
901
+ # @!attribute contract_id
902
+ #
903
+ # @return [String, nil]
904
+ optional :contract_id, String
905
+
906
+ # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:, contract_id: nil)
896
907
  # @param amount [Float]
897
908
  # @param invoice_id [String]
898
909
  # @param segment_id [String]
899
910
  # @param timestamp [Time]
900
911
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type]
912
+ # @param contract_id [String]
901
913
 
902
914
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry#type
903
915
  module Type
@@ -937,12 +949,18 @@ module MetronomeSDK
937
949
  required :type,
938
950
  enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type }
939
951
 
940
- # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:)
952
+ # @!attribute contract_id
953
+ #
954
+ # @return [String, nil]
955
+ optional :contract_id, String
956
+
957
+ # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:, contract_id: nil)
941
958
  # @param amount [Float]
942
959
  # @param invoice_id [String]
943
960
  # @param segment_id [String]
944
961
  # @param timestamp [Time]
945
962
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type]
963
+ # @param contract_id [String]
946
964
 
947
965
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry#type
948
966
  module Type
@@ -1054,12 +1072,18 @@ module MetronomeSDK
1054
1072
  required :type,
1055
1073
  enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type }
1056
1074
 
1057
- # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:)
1075
+ # @!attribute contract_id
1076
+ #
1077
+ # @return [String, nil]
1078
+ optional :contract_id, String
1079
+
1080
+ # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:, contract_id: nil)
1058
1081
  # @param amount [Float]
1059
1082
  # @param invoice_id [String]
1060
1083
  # @param segment_id [String]
1061
1084
  # @param timestamp [Time]
1062
1085
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type]
1086
+ # @param contract_id [String]
1063
1087
 
1064
1088
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry#type
1065
1089
  module Type
@@ -1139,11 +1163,17 @@ module MetronomeSDK
1139
1163
  required :type,
1140
1164
  enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type }
1141
1165
 
1142
- # @!method initialize(amount:, invoice_id:, timestamp:, type:)
1166
+ # @!attribute contract_id
1167
+ #
1168
+ # @return [String, nil]
1169
+ optional :contract_id, String
1170
+
1171
+ # @!method initialize(amount:, invoice_id:, timestamp:, type:, contract_id: nil)
1143
1172
  # @param amount [Float]
1144
1173
  # @param invoice_id [String]
1145
1174
  # @param timestamp [Time]
1146
1175
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type]
1176
+ # @param contract_id [String]
1147
1177
 
1148
1178
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry#type
1149
1179
  module Type
@@ -2108,12 +2138,18 @@ module MetronomeSDK
2108
2138
  required :type,
2109
2139
  enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type }
2110
2140
 
2111
- # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:)
2141
+ # @!attribute contract_id
2142
+ #
2143
+ # @return [String, nil]
2144
+ optional :contract_id, String
2145
+
2146
+ # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:, contract_id: nil)
2112
2147
  # @param amount [Float]
2113
2148
  # @param invoice_id [String]
2114
2149
  # @param segment_id [String]
2115
2150
  # @param timestamp [Time]
2116
2151
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type]
2152
+ # @param contract_id [String]
2117
2153
 
2118
2154
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry#type
2119
2155
  module Type
@@ -2192,12 +2228,18 @@ module MetronomeSDK
2192
2228
  required :type,
2193
2229
  enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry::Type }
2194
2230
 
2195
- # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:)
2231
+ # @!attribute contract_id
2232
+ #
2233
+ # @return [String, nil]
2234
+ optional :contract_id, String
2235
+
2236
+ # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:, contract_id: nil)
2196
2237
  # @param amount [Float]
2197
2238
  # @param invoice_id [String]
2198
2239
  # @param segment_id [String]
2199
2240
  # @param timestamp [Time]
2200
2241
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry::Type]
2242
+ # @param contract_id [String]
2201
2243
 
2202
2244
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry#type
2203
2245
  module Type
@@ -2237,12 +2279,18 @@ module MetronomeSDK
2237
2279
  required :type,
2238
2280
  enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry::Type }
2239
2281
 
2240
- # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:)
2282
+ # @!attribute contract_id
2283
+ #
2284
+ # @return [String, nil]
2285
+ optional :contract_id, String
2286
+
2287
+ # @!method initialize(amount:, invoice_id:, segment_id:, timestamp:, type:, contract_id: nil)
2241
2288
  # @param amount [Float]
2242
2289
  # @param invoice_id [String]
2243
2290
  # @param segment_id [String]
2244
2291
  # @param timestamp [Time]
2245
2292
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry::Type]
2293
+ # @param contract_id [String]
2246
2294
 
2247
2295
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry#type
2248
2296
  module Type
@@ -2378,6 +2426,12 @@ module MetronomeSDK
2378
2426
 
2379
2427
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data#customer_billing_provider_configuration
2380
2428
  class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
2429
+ # @!attribute id
2430
+ # ID of Customer's billing provider configuration.
2431
+ #
2432
+ # @return [String]
2433
+ required :id, String
2434
+
2381
2435
  # @!attribute billing_provider
2382
2436
  #
2383
2437
  # @return [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider]
@@ -2390,10 +2444,13 @@ module MetronomeSDK
2390
2444
  required :delivery_method,
2391
2445
  enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod }
2392
2446
 
2393
- # @!method initialize(billing_provider:, delivery_method:)
2447
+ # @!method initialize(id:, billing_provider:, delivery_method:)
2394
2448
  # This field's availability is dependent on your client's configuration.
2395
2449
  #
2450
+ # @param id [String] ID of Customer's billing provider configuration.
2451
+ #
2396
2452
  # @param billing_provider [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider]
2453
+ #
2397
2454
  # @param delivery_method [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod]
2398
2455
 
2399
2456
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration#billing_provider
@@ -2653,6 +2710,8 @@ module MetronomeSDK
2653
2710
  # or credit. A customer's usage needs to meet the condition of at least one of the
2654
2711
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2655
2712
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
2713
+ # Instead, to target usage by product or product tag, pass those values in the
2714
+ # body of `specifiers`.
2656
2715
  #
2657
2716
  # @return [Array<MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
2658
2717
  optional :specifiers,
@@ -2945,7 +3004,7 @@ module MetronomeSDK
2945
3004
  optional :ending_before, Time
2946
3005
 
2947
3006
  # @!attribute hierarchy_configuration
2948
- # Optional configuration for recurring commit/credit hierarchy access control
3007
+ # Optional configuration for recurring credit hierarchy access control
2949
3008
  #
2950
3009
  # @return [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration, nil]
2951
3010
  optional :hierarchy_configuration,
@@ -3006,7 +3065,14 @@ module MetronomeSDK
3006
3065
  optional :specifiers,
3007
3066
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Specifier] }
3008
3067
 
3009
- # @!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)
3068
+ # @!attribute subscription_config
3069
+ # Attach a subscription to the recurring commit/credit.
3070
+ #
3071
+ # @return [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig, nil]
3072
+ optional :subscription_config,
3073
+ -> { MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig }
3074
+
3075
+ # @!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)
3010
3076
  # Some parameter documentations has been truncated, see
3011
3077
  # {MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit} for more
3012
3078
  # details.
@@ -3035,7 +3101,7 @@ module MetronomeSDK
3035
3101
  #
3036
3102
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. Optional
3037
3103
  #
3038
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
3104
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
3039
3105
  #
3040
3106
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
3041
3107
  #
@@ -3050,6 +3116,8 @@ module MetronomeSDK
3050
3116
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
3051
3117
  #
3052
3118
  # @param specifiers [Array<MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
3119
+ #
3120
+ # @param subscription_config [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
3053
3121
 
3054
3122
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit#access_amount
3055
3123
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -3156,7 +3224,7 @@ module MetronomeSDK
3156
3224
  union: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess }
3157
3225
 
3158
3226
  # @!method initialize(child_access:)
3159
- # Optional configuration for recurring commit/credit hierarchy access control
3227
+ # Optional configuration for recurring credit hierarchy access control
3160
3228
  #
3161
3229
  # @param child_access [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3162
3230
 
@@ -3341,6 +3409,56 @@ module MetronomeSDK
3341
3409
  #
3342
3410
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3343
3411
  end
3412
+
3413
+ # @see MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit#subscription_config
3414
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
3415
+ # @!attribute allocation
3416
+ #
3417
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation]
3418
+ required :allocation,
3419
+ enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation }
3420
+
3421
+ # @!attribute apply_seat_increase_config
3422
+ #
3423
+ # @return [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
3424
+ required :apply_seat_increase_config,
3425
+ -> { MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig }
3426
+
3427
+ # @!attribute subscription_id
3428
+ #
3429
+ # @return [String]
3430
+ required :subscription_id, String
3431
+
3432
+ # @!method initialize(allocation:, apply_seat_increase_config:, subscription_id:)
3433
+ # Attach a subscription to the recurring commit/credit.
3434
+ #
3435
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation]
3436
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
3437
+ # @param subscription_id [String]
3438
+
3439
+ # @see MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig#allocation
3440
+ module Allocation
3441
+ extend MetronomeSDK::Internal::Type::Enum
3442
+
3443
+ INDIVIDUAL = :INDIVIDUAL
3444
+ POOLED = :POOLED
3445
+
3446
+ # @!method self.values
3447
+ # @return [Array<Symbol>]
3448
+ end
3449
+
3450
+ # @see MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig#apply_seat_increase_config
3451
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
3452
+ # @!attribute is_prorated
3453
+ # Indicates whether a mid-period seat increase should be prorated.
3454
+ #
3455
+ # @return [Boolean]
3456
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
3457
+
3458
+ # @!method initialize(is_prorated:)
3459
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
3460
+ end
3461
+ end
3344
3462
  end
3345
3463
 
3346
3464
  class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -3417,7 +3535,7 @@ module MetronomeSDK
3417
3535
  optional :ending_before, Time
3418
3536
 
3419
3537
  # @!attribute hierarchy_configuration
3420
- # Optional configuration for recurring commit/credit hierarchy access control
3538
+ # Optional configuration for recurring credit hierarchy access control
3421
3539
  #
3422
3540
  # @return [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration, nil]
3423
3541
  optional :hierarchy_configuration,
@@ -3471,7 +3589,14 @@ module MetronomeSDK
3471
3589
  optional :specifiers,
3472
3590
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Specifier] }
3473
3591
 
3474
- # @!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)
3592
+ # @!attribute subscription_config
3593
+ # Attach a subscription to the recurring commit/credit.
3594
+ #
3595
+ # @return [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig, nil]
3596
+ optional :subscription_config,
3597
+ -> { MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig }
3598
+
3599
+ # @!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)
3475
3600
  # Some parameter documentations has been truncated, see
3476
3601
  # {MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit} for more
3477
3602
  # details.
@@ -3500,7 +3625,7 @@ module MetronomeSDK
3500
3625
  #
3501
3626
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. Optional
3502
3627
  #
3503
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
3628
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
3504
3629
  #
3505
3630
  # @param name [String] Displayed on invoices. Will be passed through to the individual commits
3506
3631
  #
@@ -3513,6 +3638,8 @@ module MetronomeSDK
3513
3638
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
3514
3639
  #
3515
3640
  # @param specifiers [Array<MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
3641
+ #
3642
+ # @param subscription_config [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
3516
3643
 
3517
3644
  # @see MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit#access_amount
3518
3645
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -3619,7 +3746,7 @@ module MetronomeSDK
3619
3746
  union: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess }
3620
3747
 
3621
3748
  # @!method initialize(child_access:)
3622
- # Optional configuration for recurring commit/credit hierarchy access control
3749
+ # Optional configuration for recurring credit hierarchy access control
3623
3750
  #
3624
3751
  # @param child_access [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3625
3752
 
@@ -3779,6 +3906,56 @@ module MetronomeSDK
3779
3906
  #
3780
3907
  # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3781
3908
  end
3909
+
3910
+ # @see MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit#subscription_config
3911
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
3912
+ # @!attribute allocation
3913
+ #
3914
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation]
3915
+ required :allocation,
3916
+ enum: -> { MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation }
3917
+
3918
+ # @!attribute apply_seat_increase_config
3919
+ #
3920
+ # @return [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3921
+ required :apply_seat_increase_config,
3922
+ -> { MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig }
3923
+
3924
+ # @!attribute subscription_id
3925
+ #
3926
+ # @return [String]
3927
+ required :subscription_id, String
3928
+
3929
+ # @!method initialize(allocation:, apply_seat_increase_config:, subscription_id:)
3930
+ # Attach a subscription to the recurring commit/credit.
3931
+ #
3932
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation]
3933
+ # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3934
+ # @param subscription_id [String]
3935
+
3936
+ # @see MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig#allocation
3937
+ module Allocation
3938
+ extend MetronomeSDK::Internal::Type::Enum
3939
+
3940
+ INDIVIDUAL = :INDIVIDUAL
3941
+ POOLED = :POOLED
3942
+
3943
+ # @!method self.values
3944
+ # @return [Array<Symbol>]
3945
+ end
3946
+
3947
+ # @see MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig#apply_seat_increase_config
3948
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
3949
+ # @!attribute is_prorated
3950
+ # Indicates whether a mid-period seat increase should be prorated.
3951
+ #
3952
+ # @return [Boolean]
3953
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
3954
+
3955
+ # @!method initialize(is_prorated:)
3956
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
3957
+ end
3958
+ end
3782
3959
  end
3783
3960
 
3784
3961
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel