metronome-sdk 3.8.0 → 3.10.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/models/commit.rb +9 -1
  5. data/lib/metronome_sdk/models/contract.rb +46 -16
  6. data/lib/metronome_sdk/models/contract_v2.rb +378 -15
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +8 -5
  8. data/lib/metronome_sdk/models/v1/contract_create_params.rb +8 -5
  9. data/lib/metronome_sdk/models/v1/contract_create_response.rb +73 -18
  10. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +27 -1
  11. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +32 -5
  12. data/lib/metronome_sdk/models/v1/package_create_params.rb +8 -4
  13. data/lib/metronome_sdk/models/v1/package_list_response.rb +8 -4
  14. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +8 -4
  15. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +11 -1
  16. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +11 -1
  17. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +14 -8
  18. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +8 -4
  19. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +8 -4
  20. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +11 -14
  21. data/lib/metronome_sdk/resources/v1/dashboards.rb +6 -9
  22. data/lib/metronome_sdk/resources/v2/contracts.rb +6 -2
  23. data/lib/metronome_sdk/version.rb +1 -1
  24. data/rbi/metronome_sdk/models/commit.rbi +11 -0
  25. data/rbi/metronome_sdk/models/contract.rbi +47 -22
  26. data/rbi/metronome_sdk/models/contract_v2.rbi +711 -19
  27. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +12 -11
  28. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +12 -11
  29. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +72 -43
  30. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_params.rbi +67 -0
  31. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +96 -5
  32. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +12 -6
  33. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +12 -6
  34. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +12 -6
  35. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +12 -0
  36. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +12 -0
  37. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +28 -18
  38. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +12 -6
  39. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +12 -6
  40. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +15 -13
  41. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +6 -9
  42. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  43. data/sig/metronome_sdk/models/commit.rbs +7 -0
  44. data/sig/metronome_sdk/models/contract.rbs +22 -11
  45. data/sig/metronome_sdk/models/contract_v2.rbs +289 -5
  46. data/sig/metronome_sdk/models/contract_without_amendments.rbs +1 -2
  47. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +1 -2
  48. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +31 -17
  49. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_params.rbs +28 -0
  50. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +39 -4
  51. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +5 -0
  52. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +5 -0
  53. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +12 -14
  54. data/sig/metronome_sdk/resources/v1/contracts/rate_cards.rbs +1 -0
  55. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  56. metadata +2 -2
@@ -55,6 +55,29 @@ module MetronomeSDK
55
55
  sig { params(archived_at: Time).void }
56
56
  attr_writer :archived_at
57
57
 
58
+ # The schedule of billing provider configuration changes on the contract, ordered
59
+ # by effective_at ascending.
60
+ sig do
61
+ returns(
62
+ T.nilable(
63
+ T::Array[
64
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule
65
+ ]
66
+ )
67
+ )
68
+ end
69
+ attr_reader :billing_provider_configuration_schedule
70
+
71
+ sig do
72
+ params(
73
+ billing_provider_configuration_schedule:
74
+ T::Array[
75
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::OrHash
76
+ ]
77
+ ).void
78
+ end
79
+ attr_writer :billing_provider_configuration_schedule
80
+
58
81
  sig { returns(T.nilable(T::Array[MetronomeSDK::ContractV2::Credit])) }
59
82
  attr_reader :credits
60
83
 
@@ -70,7 +93,6 @@ module MetronomeSDK
70
93
  sig { params(custom_fields: T::Hash[Symbol, String]).void }
71
94
  attr_writer :custom_fields
72
95
 
73
- # This field's availability is dependent on your client's configuration.
74
96
  sig do
75
97
  returns(
76
98
  T.nilable(
@@ -246,6 +268,29 @@ module MetronomeSDK
246
268
  end
247
269
  attr_writer :reseller_royalties
248
270
 
271
+ # The schedule of revenue system configuration changes on the contract, ordered by
272
+ # effective_at ascending.
273
+ sig do
274
+ returns(
275
+ T.nilable(
276
+ T::Array[
277
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule
278
+ ]
279
+ )
280
+ )
281
+ end
282
+ attr_reader :revenue_system_configuration_schedule
283
+
284
+ sig do
285
+ params(
286
+ revenue_system_configuration_schedule:
287
+ T::Array[
288
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::OrHash
289
+ ]
290
+ ).void
291
+ end
292
+ attr_writer :revenue_system_configuration_schedule
293
+
249
294
  # This field's availability is dependent on your client's configuration.
250
295
  sig { returns(T.nilable(String)) }
251
296
  attr_reader :salesforce_opportunity_id
@@ -342,6 +387,10 @@ module MetronomeSDK
342
387
  usage_statement_schedule:
343
388
  MetronomeSDK::ContractV2::UsageStatementSchedule::OrHash,
344
389
  archived_at: Time,
390
+ billing_provider_configuration_schedule:
391
+ T::Array[
392
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::OrHash
393
+ ],
345
394
  credits: T::Array[MetronomeSDK::ContractV2::Credit::OrHash],
346
395
  custom_fields: T::Hash[Symbol, String],
347
396
  customer_billing_provider_configuration:
@@ -370,6 +419,10 @@ module MetronomeSDK
370
419
  T::Array[MetronomeSDK::ContractV2::RecurringCredit::OrHash],
371
420
  reseller_royalties:
372
421
  T::Array[MetronomeSDK::ContractV2::ResellerRoyalty::OrHash],
422
+ revenue_system_configuration_schedule:
423
+ T::Array[
424
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::OrHash
425
+ ],
373
426
  salesforce_opportunity_id: String,
374
427
  scheduled_charges_on_usage_invoices:
375
428
  MetronomeSDK::ContractV2::ScheduledChargesOnUsageInvoices::OrSymbol,
@@ -396,10 +449,12 @@ module MetronomeSDK
396
449
  usage_filter:,
397
450
  usage_statement_schedule:,
398
451
  archived_at: nil,
452
+ # The schedule of billing provider configuration changes on the contract, ordered
453
+ # by effective_at ascending.
454
+ billing_provider_configuration_schedule: nil,
399
455
  credits: nil,
400
456
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
401
457
  custom_fields: nil,
402
- # This field's availability is dependent on your client's configuration.
403
458
  customer_billing_provider_configuration: nil,
404
459
  # This field's availability is dependent on your client's configuration.
405
460
  discounts: nil,
@@ -429,6 +484,9 @@ module MetronomeSDK
429
484
  recurring_credits: nil,
430
485
  # This field's availability is dependent on your client's configuration.
431
486
  reseller_royalties: nil,
487
+ # The schedule of revenue system configuration changes on the contract, ordered by
488
+ # effective_at ascending.
489
+ revenue_system_configuration_schedule: nil,
432
490
  # This field's availability is dependent on your client's configuration.
433
491
  salesforce_opportunity_id: nil,
434
492
  # Determines which scheduled and commit charges to consolidate onto the Contract's
@@ -464,6 +522,10 @@ module MetronomeSDK
464
522
  usage_statement_schedule:
465
523
  MetronomeSDK::ContractV2::UsageStatementSchedule,
466
524
  archived_at: Time,
525
+ billing_provider_configuration_schedule:
526
+ T::Array[
527
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule
528
+ ],
467
529
  credits: T::Array[MetronomeSDK::ContractV2::Credit],
468
530
  custom_fields: T::Hash[Symbol, String],
469
531
  customer_billing_provider_configuration:
@@ -489,6 +551,10 @@ module MetronomeSDK
489
551
  T::Array[MetronomeSDK::ContractV2::RecurringCredit],
490
552
  reseller_royalties:
491
553
  T::Array[MetronomeSDK::ContractV2::ResellerRoyalty],
554
+ revenue_system_configuration_schedule:
555
+ T::Array[
556
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule
557
+ ],
492
558
  salesforce_opportunity_id: String,
493
559
  scheduled_charges_on_usage_invoices:
494
560
  MetronomeSDK::ContractV2::ScheduledChargesOnUsageInvoices::TaggedSymbol,
@@ -595,6 +661,13 @@ module MetronomeSDK
595
661
  end
596
662
  attr_writer :contract
597
663
 
664
+ # The ratio of the amount paid for the commit to the amount of credit granted.
665
+ sig { returns(T.nilable(Float)) }
666
+ attr_reader :cost_basis
667
+
668
+ sig { params(cost_basis: Float).void }
669
+ attr_writer :cost_basis
670
+
598
671
  # The actor who created this commit. Omitted for system-generated commits such as
599
672
  # recurring commits, rollover commits, and threshold commits.
600
673
  sig { returns(T.nilable(String)) }
@@ -813,6 +886,7 @@ module MetronomeSDK
813
886
  archived_at: Time,
814
887
  balance: Float,
815
888
  contract: MetronomeSDK::ContractV2::Commit::Contract::OrHash,
889
+ cost_basis: Float,
816
890
  created_by: String,
817
891
  custom_fields: T::Hash[Symbol, String],
818
892
  description: String,
@@ -883,6 +957,8 @@ module MetronomeSDK
883
957
  # included in the balance, including future-dated manual ledger entries.
884
958
  balance: nil,
885
959
  contract: nil,
960
+ # The ratio of the amount paid for the commit to the amount of credit granted.
961
+ cost_basis: nil,
886
962
  # The actor who created this commit. Omitted for system-generated commits such as
887
963
  # recurring commits, rollover commits, and threshold commits.
888
964
  created_by: nil,
@@ -936,6 +1012,7 @@ module MetronomeSDK
936
1012
  archived_at: Time,
937
1013
  balance: Float,
938
1014
  contract: MetronomeSDK::ContractV2::Commit::Contract,
1015
+ cost_basis: Float,
939
1016
  created_by: String,
940
1017
  custom_fields: T::Hash[Symbol, String],
941
1018
  description: String,
@@ -3084,11 +3161,6 @@ module MetronomeSDK
3084
3161
  end
3085
3162
  OrSymbol = T.type_alias { T.any(Symbol, String) }
3086
3163
 
3087
- SUPERSEDE =
3088
- T.let(
3089
- :SUPERSEDE,
3090
- MetronomeSDK::ContractV2::Transition::Type::TaggedSymbol
3091
- )
3092
3164
  RENEWAL =
3093
3165
  T.let(
3094
3166
  :RENEWAL,
@@ -3258,6 +3330,302 @@ module MetronomeSDK
3258
3330
  end
3259
3331
  end
3260
3332
 
3333
+ class BillingProviderConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
3334
+ OrHash =
3335
+ T.type_alias do
3336
+ T.any(
3337
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule,
3338
+ MetronomeSDK::Internal::AnyHash
3339
+ )
3340
+ end
3341
+
3342
+ sig do
3343
+ returns(
3344
+ T.nilable(
3345
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration
3346
+ )
3347
+ )
3348
+ end
3349
+ attr_reader :billing_provider_configuration
3350
+
3351
+ sig do
3352
+ params(
3353
+ billing_provider_configuration:
3354
+ T.nilable(
3355
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::OrHash
3356
+ )
3357
+ ).void
3358
+ end
3359
+ attr_writer :billing_provider_configuration
3360
+
3361
+ # The date this billing provider configuration became or becomes active.
3362
+ sig { returns(Time) }
3363
+ attr_accessor :effective_at
3364
+
3365
+ # The date this billing provider configuration is superseded by the next entry.
3366
+ # Null for the last entry in the schedule.
3367
+ sig { returns(T.nilable(Time)) }
3368
+ attr_reader :effective_until
3369
+
3370
+ sig { params(effective_until: Time).void }
3371
+ attr_writer :effective_until
3372
+
3373
+ sig do
3374
+ params(
3375
+ billing_provider_configuration:
3376
+ T.nilable(
3377
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::OrHash
3378
+ ),
3379
+ effective_at: Time,
3380
+ effective_until: Time
3381
+ ).returns(T.attached_class)
3382
+ end
3383
+ def self.new(
3384
+ billing_provider_configuration:,
3385
+ # The date this billing provider configuration became or becomes active.
3386
+ effective_at:,
3387
+ # The date this billing provider configuration is superseded by the next entry.
3388
+ # Null for the last entry in the schedule.
3389
+ effective_until: nil
3390
+ )
3391
+ end
3392
+
3393
+ sig do
3394
+ override.returns(
3395
+ {
3396
+ billing_provider_configuration:
3397
+ T.nilable(
3398
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration
3399
+ ),
3400
+ effective_at: Time,
3401
+ effective_until: Time
3402
+ }
3403
+ )
3404
+ end
3405
+ def to_hash
3406
+ end
3407
+
3408
+ class BillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
3409
+ OrHash =
3410
+ T.type_alias do
3411
+ T.any(
3412
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration,
3413
+ MetronomeSDK::Internal::AnyHash
3414
+ )
3415
+ end
3416
+
3417
+ # ID of this configuration; can be provided as the
3418
+ # billing_provider_configuration_id when creating a contract.
3419
+ sig { returns(String) }
3420
+ attr_accessor :id
3421
+
3422
+ sig { returns(T.nilable(Time)) }
3423
+ attr_accessor :archived_at
3424
+
3425
+ # The billing provider set for this configuration.
3426
+ sig do
3427
+ returns(
3428
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3429
+ )
3430
+ end
3431
+ attr_accessor :billing_provider
3432
+
3433
+ # Configuration for the billing provider. The structure of this object is specific
3434
+ # to the billing provider.
3435
+ sig { returns(T::Hash[Symbol, T.anything]) }
3436
+ attr_accessor :configuration
3437
+
3438
+ sig { returns(String) }
3439
+ attr_accessor :customer_id
3440
+
3441
+ # The method to use for delivering invoices to this customer.
3442
+ sig do
3443
+ returns(
3444
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3445
+ )
3446
+ end
3447
+ attr_accessor :delivery_method
3448
+
3449
+ # Configuration for the delivery method. The structure of this object is specific
3450
+ # to the delivery method.
3451
+ sig { returns(T::Hash[Symbol, T.anything]) }
3452
+ attr_accessor :delivery_method_configuration
3453
+
3454
+ # ID of the delivery method to use for this customer.
3455
+ sig { returns(String) }
3456
+ attr_accessor :delivery_method_id
3457
+
3458
+ sig do
3459
+ params(
3460
+ id: String,
3461
+ archived_at: T.nilable(Time),
3462
+ billing_provider:
3463
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::OrSymbol,
3464
+ configuration: T::Hash[Symbol, T.anything],
3465
+ customer_id: String,
3466
+ delivery_method:
3467
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::OrSymbol,
3468
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
3469
+ delivery_method_id: String
3470
+ ).returns(T.attached_class)
3471
+ end
3472
+ def self.new(
3473
+ # ID of this configuration; can be provided as the
3474
+ # billing_provider_configuration_id when creating a contract.
3475
+ id:,
3476
+ archived_at:,
3477
+ # The billing provider set for this configuration.
3478
+ billing_provider:,
3479
+ # Configuration for the billing provider. The structure of this object is specific
3480
+ # to the billing provider.
3481
+ configuration:,
3482
+ customer_id:,
3483
+ # The method to use for delivering invoices to this customer.
3484
+ delivery_method:,
3485
+ # Configuration for the delivery method. The structure of this object is specific
3486
+ # to the delivery method.
3487
+ delivery_method_configuration:,
3488
+ # ID of the delivery method to use for this customer.
3489
+ delivery_method_id:
3490
+ )
3491
+ end
3492
+
3493
+ sig do
3494
+ override.returns(
3495
+ {
3496
+ id: String,
3497
+ archived_at: T.nilable(Time),
3498
+ billing_provider:
3499
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol,
3500
+ configuration: T::Hash[Symbol, T.anything],
3501
+ customer_id: String,
3502
+ delivery_method:
3503
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol,
3504
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
3505
+ delivery_method_id: String
3506
+ }
3507
+ )
3508
+ end
3509
+ def to_hash
3510
+ end
3511
+
3512
+ # The billing provider set for this configuration.
3513
+ module BillingProvider
3514
+ extend MetronomeSDK::Internal::Type::Enum
3515
+
3516
+ TaggedSymbol =
3517
+ T.type_alias do
3518
+ T.all(
3519
+ Symbol,
3520
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider
3521
+ )
3522
+ end
3523
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3524
+
3525
+ AWS_MARKETPLACE =
3526
+ T.let(
3527
+ :aws_marketplace,
3528
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3529
+ )
3530
+ STRIPE =
3531
+ T.let(
3532
+ :stripe,
3533
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3534
+ )
3535
+ NETSUITE =
3536
+ T.let(
3537
+ :netsuite,
3538
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3539
+ )
3540
+ CUSTOM =
3541
+ T.let(
3542
+ :custom,
3543
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3544
+ )
3545
+ AZURE_MARKETPLACE =
3546
+ T.let(
3547
+ :azure_marketplace,
3548
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3549
+ )
3550
+ QUICKBOOKS_ONLINE =
3551
+ T.let(
3552
+ :quickbooks_online,
3553
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3554
+ )
3555
+ WORKDAY =
3556
+ T.let(
3557
+ :workday,
3558
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3559
+ )
3560
+ GCP_MARKETPLACE =
3561
+ T.let(
3562
+ :gcp_marketplace,
3563
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3564
+ )
3565
+ METRONOME =
3566
+ T.let(
3567
+ :metronome,
3568
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3569
+ )
3570
+
3571
+ sig do
3572
+ override.returns(
3573
+ T::Array[
3574
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3575
+ ]
3576
+ )
3577
+ end
3578
+ def self.values
3579
+ end
3580
+ end
3581
+
3582
+ # The method to use for delivering invoices to this customer.
3583
+ module DeliveryMethod
3584
+ extend MetronomeSDK::Internal::Type::Enum
3585
+
3586
+ TaggedSymbol =
3587
+ T.type_alias do
3588
+ T.all(
3589
+ Symbol,
3590
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod
3591
+ )
3592
+ end
3593
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3594
+
3595
+ DIRECT_TO_BILLING_PROVIDER =
3596
+ T.let(
3597
+ :direct_to_billing_provider,
3598
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3599
+ )
3600
+ AWS_SQS =
3601
+ T.let(
3602
+ :aws_sqs,
3603
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3604
+ )
3605
+ TACKLE =
3606
+ T.let(
3607
+ :tackle,
3608
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3609
+ )
3610
+ AWS_SNS =
3611
+ T.let(
3612
+ :aws_sns,
3613
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3614
+ )
3615
+
3616
+ sig do
3617
+ override.returns(
3618
+ T::Array[
3619
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3620
+ ]
3621
+ )
3622
+ end
3623
+ def self.values
3624
+ end
3625
+ end
3626
+ end
3627
+ end
3628
+
3261
3629
  class Credit < MetronomeSDK::Internal::Type::BaseModel
3262
3630
  OrHash =
3263
3631
  T.type_alias do
@@ -4473,10 +4841,15 @@ module MetronomeSDK
4473
4841
  )
4474
4842
  end
4475
4843
 
4476
- # ID of Customer's billing provider configuration.
4844
+ # ID of this configuration; can be provided as the
4845
+ # billing_provider_configuration_id when creating a contract.
4477
4846
  sig { returns(String) }
4478
4847
  attr_accessor :id
4479
4848
 
4849
+ sig { returns(T.nilable(Time)) }
4850
+ attr_accessor :archived_at
4851
+
4852
+ # The billing provider set for this configuration.
4480
4853
  sig do
4481
4854
  returns(
4482
4855
  MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
@@ -4484,6 +4857,15 @@ module MetronomeSDK
4484
4857
  end
4485
4858
  attr_accessor :billing_provider
4486
4859
 
4860
+ # Configuration for the billing provider. The structure of this object is specific
4861
+ # to the billing provider.
4862
+ sig { returns(T::Hash[Symbol, T.anything]) }
4863
+ attr_accessor :configuration
4864
+
4865
+ sig { returns(String) }
4866
+ attr_accessor :customer_id
4867
+
4868
+ # The method to use for delivering invoices to this customer.
4487
4869
  sig do
4488
4870
  returns(
4489
4871
  MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
@@ -4491,21 +4873,47 @@ module MetronomeSDK
4491
4873
  end
4492
4874
  attr_accessor :delivery_method
4493
4875
 
4494
- # This field's availability is dependent on your client's configuration.
4876
+ # Configuration for the delivery method. The structure of this object is specific
4877
+ # to the delivery method.
4878
+ sig { returns(T::Hash[Symbol, T.anything]) }
4879
+ attr_accessor :delivery_method_configuration
4880
+
4881
+ # ID of the delivery method to use for this customer.
4882
+ sig { returns(String) }
4883
+ attr_accessor :delivery_method_id
4884
+
4495
4885
  sig do
4496
4886
  params(
4497
4887
  id: String,
4888
+ archived_at: T.nilable(Time),
4498
4889
  billing_provider:
4499
4890
  MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider::OrSymbol,
4891
+ configuration: T::Hash[Symbol, T.anything],
4892
+ customer_id: String,
4500
4893
  delivery_method:
4501
- MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol
4894
+ MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol,
4895
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
4896
+ delivery_method_id: String
4502
4897
  ).returns(T.attached_class)
4503
4898
  end
4504
4899
  def self.new(
4505
- # ID of Customer's billing provider configuration.
4900
+ # ID of this configuration; can be provided as the
4901
+ # billing_provider_configuration_id when creating a contract.
4506
4902
  id:,
4903
+ archived_at:,
4904
+ # The billing provider set for this configuration.
4507
4905
  billing_provider:,
4508
- delivery_method:
4906
+ # Configuration for the billing provider. The structure of this object is specific
4907
+ # to the billing provider.
4908
+ configuration:,
4909
+ customer_id:,
4910
+ # The method to use for delivering invoices to this customer.
4911
+ delivery_method:,
4912
+ # Configuration for the delivery method. The structure of this object is specific
4913
+ # to the delivery method.
4914
+ delivery_method_configuration:,
4915
+ # ID of the delivery method to use for this customer.
4916
+ delivery_method_id:
4509
4917
  )
4510
4918
  end
4511
4919
 
@@ -4513,16 +4921,22 @@ module MetronomeSDK
4513
4921
  override.returns(
4514
4922
  {
4515
4923
  id: String,
4924
+ archived_at: T.nilable(Time),
4516
4925
  billing_provider:
4517
4926
  MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol,
4927
+ configuration: T::Hash[Symbol, T.anything],
4928
+ customer_id: String,
4518
4929
  delivery_method:
4519
- MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
4930
+ MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol,
4931
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
4932
+ delivery_method_id: String
4520
4933
  }
4521
4934
  )
4522
4935
  end
4523
4936
  def to_hash
4524
4937
  end
4525
4938
 
4939
+ # The billing provider set for this configuration.
4526
4940
  module BillingProvider
4527
4941
  extend MetronomeSDK::Internal::Type::Enum
4528
4942
 
@@ -4592,6 +5006,7 @@ module MetronomeSDK
4592
5006
  end
4593
5007
  end
4594
5008
 
5009
+ # The method to use for delivering invoices to this customer.
4595
5010
  module DeliveryMethod
4596
5011
  extend MetronomeSDK::Internal::Type::Enum
4597
5012
 
@@ -5362,7 +5777,8 @@ module MetronomeSDK
5362
5777
  # The commits will be created on the usage invoice frequency. If provided: - The
5363
5778
  # period defined in the duration will correspond to this frequency. - Commits will
5364
5779
  # be created aligned with the recurring commit's starting_at rather than the usage
5365
- # invoice dates.
5780
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
5781
+ # are unable to be created with seat-based subscriptions
5366
5782
  sig do
5367
5783
  returns(
5368
5784
  T.nilable(
@@ -5493,7 +5909,8 @@ module MetronomeSDK
5493
5909
  # The commits will be created on the usage invoice frequency. If provided: - The
5494
5910
  # period defined in the duration will correspond to this frequency. - Commits will
5495
5911
  # be created aligned with the recurring commit's starting_at rather than the usage
5496
- # invoice dates.
5912
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
5913
+ # are unable to be created with seat-based subscriptions
5497
5914
  recurrence_frequency: nil,
5498
5915
  # Will be passed down to the individual commits. This controls how much of an
5499
5916
  # individual unexpired commit will roll over upon contract transition. Must be
@@ -6087,7 +6504,8 @@ module MetronomeSDK
6087
6504
  # The commits will be created on the usage invoice frequency. If provided: - The
6088
6505
  # period defined in the duration will correspond to this frequency. - Commits will
6089
6506
  # be created aligned with the recurring commit's starting_at rather than the usage
6090
- # invoice dates.
6507
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
6508
+ # are unable to be created with seat-based subscriptions
6091
6509
  module RecurrenceFrequency
6092
6510
  extend MetronomeSDK::Internal::Type::Enum
6093
6511
 
@@ -6314,7 +6732,8 @@ module MetronomeSDK
6314
6732
  # The commits will be created on the usage invoice frequency. If provided: - The
6315
6733
  # period defined in the duration will correspond to this frequency. - Commits will
6316
6734
  # be created aligned with the recurring commit's starting_at rather than the usage
6317
- # invoice dates.
6735
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
6736
+ # are unable to be created with seat-based subscriptions
6318
6737
  sig do
6319
6738
  returns(
6320
6739
  T.nilable(
@@ -6441,7 +6860,8 @@ module MetronomeSDK
6441
6860
  # The commits will be created on the usage invoice frequency. If provided: - The
6442
6861
  # period defined in the duration will correspond to this frequency. - Commits will
6443
6862
  # be created aligned with the recurring commit's starting_at rather than the usage
6444
- # invoice dates.
6863
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
6864
+ # are unable to be created with seat-based subscriptions
6445
6865
  recurrence_frequency: nil,
6446
6866
  # Will be passed down to the individual commits. This controls how much of an
6447
6867
  # individual unexpired commit will roll over upon contract transition. Must be
@@ -6884,7 +7304,8 @@ module MetronomeSDK
6884
7304
  # The commits will be created on the usage invoice frequency. If provided: - The
6885
7305
  # period defined in the duration will correspond to this frequency. - Commits will
6886
7306
  # be created aligned with the recurring commit's starting_at rather than the usage
6887
- # invoice dates.
7307
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
7308
+ # are unable to be created with seat-based subscriptions
6888
7309
  module RecurrenceFrequency
6889
7310
  extend MetronomeSDK::Internal::Type::Enum
6890
7311
 
@@ -7209,6 +7630,277 @@ module MetronomeSDK
7209
7630
  end
7210
7631
  end
7211
7632
 
7633
+ class RevenueSystemConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
7634
+ OrHash =
7635
+ T.type_alias do
7636
+ T.any(
7637
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule,
7638
+ MetronomeSDK::Internal::AnyHash
7639
+ )
7640
+ end
7641
+
7642
+ # The date this revenue system configuration became or becomes active.
7643
+ sig { returns(Time) }
7644
+ attr_accessor :effective_at
7645
+
7646
+ sig do
7647
+ returns(
7648
+ T.nilable(
7649
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration
7650
+ )
7651
+ )
7652
+ end
7653
+ attr_reader :revenue_system_configuration
7654
+
7655
+ sig do
7656
+ params(
7657
+ revenue_system_configuration:
7658
+ T.nilable(
7659
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::OrHash
7660
+ )
7661
+ ).void
7662
+ end
7663
+ attr_writer :revenue_system_configuration
7664
+
7665
+ # The date this revenue system configuration is superseded by the next entry. Null
7666
+ # for the last entry in the schedule.
7667
+ sig { returns(T.nilable(Time)) }
7668
+ attr_reader :effective_until
7669
+
7670
+ sig { params(effective_until: Time).void }
7671
+ attr_writer :effective_until
7672
+
7673
+ sig do
7674
+ params(
7675
+ effective_at: Time,
7676
+ revenue_system_configuration:
7677
+ T.nilable(
7678
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::OrHash
7679
+ ),
7680
+ effective_until: Time
7681
+ ).returns(T.attached_class)
7682
+ end
7683
+ def self.new(
7684
+ # The date this revenue system configuration became or becomes active.
7685
+ effective_at:,
7686
+ revenue_system_configuration:,
7687
+ # The date this revenue system configuration is superseded by the next entry. Null
7688
+ # for the last entry in the schedule.
7689
+ effective_until: nil
7690
+ )
7691
+ end
7692
+
7693
+ sig do
7694
+ override.returns(
7695
+ {
7696
+ effective_at: Time,
7697
+ revenue_system_configuration:
7698
+ T.nilable(
7699
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration
7700
+ ),
7701
+ effective_until: Time
7702
+ }
7703
+ )
7704
+ end
7705
+ def to_hash
7706
+ end
7707
+
7708
+ class RevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
7709
+ OrHash =
7710
+ T.type_alias do
7711
+ T.any(
7712
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration,
7713
+ MetronomeSDK::Internal::AnyHash
7714
+ )
7715
+ end
7716
+
7717
+ # ID of the revenue system configuration.
7718
+ sig { returns(String) }
7719
+ attr_accessor :id
7720
+
7721
+ # Configuration for the revenue system. The structure of this object is specific
7722
+ # to the provider.
7723
+ sig { returns(T::Hash[Symbol, T.anything]) }
7724
+ attr_accessor :configuration
7725
+
7726
+ sig { returns(String) }
7727
+ attr_accessor :customer_id
7728
+
7729
+ # ID of the delivery method used for this customer configuration.
7730
+ sig { returns(String) }
7731
+ attr_accessor :delivery_method_id
7732
+
7733
+ # The revenue system provider (e.g. netsuite).
7734
+ sig do
7735
+ returns(
7736
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::TaggedSymbol
7737
+ )
7738
+ end
7739
+ attr_accessor :provider
7740
+
7741
+ sig { returns(T.nilable(Time)) }
7742
+ attr_accessor :archived_at
7743
+
7744
+ # The method to use for delivering data to the revenue system.
7745
+ sig do
7746
+ returns(
7747
+ T.nilable(
7748
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7749
+ )
7750
+ )
7751
+ end
7752
+ attr_reader :delivery_method
7753
+
7754
+ sig do
7755
+ params(
7756
+ delivery_method:
7757
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::OrSymbol
7758
+ ).void
7759
+ end
7760
+ attr_writer :delivery_method
7761
+
7762
+ # Configuration for the delivery method. The structure of this object is specific
7763
+ # to the delivery method.
7764
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
7765
+ attr_reader :delivery_method_configuration
7766
+
7767
+ sig do
7768
+ params(
7769
+ delivery_method_configuration: T::Hash[Symbol, T.anything]
7770
+ ).void
7771
+ end
7772
+ attr_writer :delivery_method_configuration
7773
+
7774
+ sig do
7775
+ params(
7776
+ id: String,
7777
+ configuration: T::Hash[Symbol, T.anything],
7778
+ customer_id: String,
7779
+ delivery_method_id: String,
7780
+ provider:
7781
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::OrSymbol,
7782
+ archived_at: T.nilable(Time),
7783
+ delivery_method:
7784
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::OrSymbol,
7785
+ delivery_method_configuration: T::Hash[Symbol, T.anything]
7786
+ ).returns(T.attached_class)
7787
+ end
7788
+ def self.new(
7789
+ # ID of the revenue system configuration.
7790
+ id:,
7791
+ # Configuration for the revenue system. The structure of this object is specific
7792
+ # to the provider.
7793
+ configuration:,
7794
+ customer_id:,
7795
+ # ID of the delivery method used for this customer configuration.
7796
+ delivery_method_id:,
7797
+ # The revenue system provider (e.g. netsuite).
7798
+ provider:,
7799
+ archived_at: nil,
7800
+ # The method to use for delivering data to the revenue system.
7801
+ delivery_method: nil,
7802
+ # Configuration for the delivery method. The structure of this object is specific
7803
+ # to the delivery method.
7804
+ delivery_method_configuration: nil
7805
+ )
7806
+ end
7807
+
7808
+ sig do
7809
+ override.returns(
7810
+ {
7811
+ id: String,
7812
+ configuration: T::Hash[Symbol, T.anything],
7813
+ customer_id: String,
7814
+ delivery_method_id: String,
7815
+ provider:
7816
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::TaggedSymbol,
7817
+ archived_at: T.nilable(Time),
7818
+ delivery_method:
7819
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol,
7820
+ delivery_method_configuration: T::Hash[Symbol, T.anything]
7821
+ }
7822
+ )
7823
+ end
7824
+ def to_hash
7825
+ end
7826
+
7827
+ # The revenue system provider (e.g. netsuite).
7828
+ module Provider
7829
+ extend MetronomeSDK::Internal::Type::Enum
7830
+
7831
+ TaggedSymbol =
7832
+ T.type_alias do
7833
+ T.all(
7834
+ Symbol,
7835
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider
7836
+ )
7837
+ end
7838
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7839
+
7840
+ NETSUITE =
7841
+ T.let(
7842
+ :netsuite,
7843
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::TaggedSymbol
7844
+ )
7845
+
7846
+ sig do
7847
+ override.returns(
7848
+ T::Array[
7849
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::TaggedSymbol
7850
+ ]
7851
+ )
7852
+ end
7853
+ def self.values
7854
+ end
7855
+ end
7856
+
7857
+ # The method to use for delivering data to the revenue system.
7858
+ module DeliveryMethod
7859
+ extend MetronomeSDK::Internal::Type::Enum
7860
+
7861
+ TaggedSymbol =
7862
+ T.type_alias do
7863
+ T.all(
7864
+ Symbol,
7865
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod
7866
+ )
7867
+ end
7868
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7869
+
7870
+ DIRECT_TO_BILLING_PROVIDER =
7871
+ T.let(
7872
+ :direct_to_billing_provider,
7873
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7874
+ )
7875
+ AWS_SQS =
7876
+ T.let(
7877
+ :aws_sqs,
7878
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7879
+ )
7880
+ TACKLE =
7881
+ T.let(
7882
+ :tackle,
7883
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7884
+ )
7885
+ AWS_SNS =
7886
+ T.let(
7887
+ :aws_sns,
7888
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7889
+ )
7890
+
7891
+ sig do
7892
+ override.returns(
7893
+ T::Array[
7894
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7895
+ ]
7896
+ )
7897
+ end
7898
+ def self.values
7899
+ end
7900
+ end
7901
+ end
7902
+ end
7903
+
7212
7904
  # Determines which scheduled and commit charges to consolidate onto the Contract's
7213
7905
  # usage invoice. The charge's `timestamp` must match the usage invoice's
7214
7906
  # `ending_before` date for consolidation to occur. This field cannot be modified