metronome-sdk 3.8.0 → 3.9.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.
@@ -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,
@@ -3258,6 +3324,294 @@ module MetronomeSDK
3258
3324
  end
3259
3325
  end
3260
3326
 
3327
+ class BillingProviderConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
3328
+ OrHash =
3329
+ T.type_alias do
3330
+ T.any(
3331
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule,
3332
+ MetronomeSDK::Internal::AnyHash
3333
+ )
3334
+ end
3335
+
3336
+ sig do
3337
+ returns(
3338
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration
3339
+ )
3340
+ end
3341
+ attr_reader :billing_provider_configuration
3342
+
3343
+ sig do
3344
+ params(
3345
+ billing_provider_configuration:
3346
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::OrHash
3347
+ ).void
3348
+ end
3349
+ attr_writer :billing_provider_configuration
3350
+
3351
+ # The date this billing provider configuration became or becomes active.
3352
+ sig { returns(Time) }
3353
+ attr_accessor :effective_at
3354
+
3355
+ # The date this billing provider configuration is superseded by the next entry.
3356
+ # Null for the last entry in the schedule.
3357
+ sig { returns(T.nilable(Time)) }
3358
+ attr_reader :effective_until
3359
+
3360
+ sig { params(effective_until: Time).void }
3361
+ attr_writer :effective_until
3362
+
3363
+ sig do
3364
+ params(
3365
+ billing_provider_configuration:
3366
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::OrHash,
3367
+ effective_at: Time,
3368
+ effective_until: Time
3369
+ ).returns(T.attached_class)
3370
+ end
3371
+ def self.new(
3372
+ billing_provider_configuration:,
3373
+ # The date this billing provider configuration became or becomes active.
3374
+ effective_at:,
3375
+ # The date this billing provider configuration is superseded by the next entry.
3376
+ # Null for the last entry in the schedule.
3377
+ effective_until: nil
3378
+ )
3379
+ end
3380
+
3381
+ sig do
3382
+ override.returns(
3383
+ {
3384
+ billing_provider_configuration:
3385
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration,
3386
+ effective_at: Time,
3387
+ effective_until: Time
3388
+ }
3389
+ )
3390
+ end
3391
+ def to_hash
3392
+ end
3393
+
3394
+ class BillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
3395
+ OrHash =
3396
+ T.type_alias do
3397
+ T.any(
3398
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration,
3399
+ MetronomeSDK::Internal::AnyHash
3400
+ )
3401
+ end
3402
+
3403
+ # ID of this configuration; can be provided as the
3404
+ # billing_provider_configuration_id when creating a contract.
3405
+ sig { returns(String) }
3406
+ attr_accessor :id
3407
+
3408
+ sig { returns(T.nilable(Time)) }
3409
+ attr_accessor :archived_at
3410
+
3411
+ # The billing provider set for this configuration.
3412
+ sig do
3413
+ returns(
3414
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3415
+ )
3416
+ end
3417
+ attr_accessor :billing_provider
3418
+
3419
+ # Configuration for the billing provider. The structure of this object is specific
3420
+ # to the billing provider.
3421
+ sig { returns(T::Hash[Symbol, T.anything]) }
3422
+ attr_accessor :configuration
3423
+
3424
+ sig { returns(String) }
3425
+ attr_accessor :customer_id
3426
+
3427
+ # The method to use for delivering invoices to this customer.
3428
+ sig do
3429
+ returns(
3430
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3431
+ )
3432
+ end
3433
+ attr_accessor :delivery_method
3434
+
3435
+ # Configuration for the delivery method. The structure of this object is specific
3436
+ # to the delivery method.
3437
+ sig { returns(T::Hash[Symbol, T.anything]) }
3438
+ attr_accessor :delivery_method_configuration
3439
+
3440
+ # ID of the delivery method to use for this customer.
3441
+ sig { returns(String) }
3442
+ attr_accessor :delivery_method_id
3443
+
3444
+ sig do
3445
+ params(
3446
+ id: String,
3447
+ archived_at: T.nilable(Time),
3448
+ billing_provider:
3449
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::OrSymbol,
3450
+ configuration: T::Hash[Symbol, T.anything],
3451
+ customer_id: String,
3452
+ delivery_method:
3453
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::OrSymbol,
3454
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
3455
+ delivery_method_id: String
3456
+ ).returns(T.attached_class)
3457
+ end
3458
+ def self.new(
3459
+ # ID of this configuration; can be provided as the
3460
+ # billing_provider_configuration_id when creating a contract.
3461
+ id:,
3462
+ archived_at:,
3463
+ # The billing provider set for this configuration.
3464
+ billing_provider:,
3465
+ # Configuration for the billing provider. The structure of this object is specific
3466
+ # to the billing provider.
3467
+ configuration:,
3468
+ customer_id:,
3469
+ # The method to use for delivering invoices to this customer.
3470
+ delivery_method:,
3471
+ # Configuration for the delivery method. The structure of this object is specific
3472
+ # to the delivery method.
3473
+ delivery_method_configuration:,
3474
+ # ID of the delivery method to use for this customer.
3475
+ delivery_method_id:
3476
+ )
3477
+ end
3478
+
3479
+ sig do
3480
+ override.returns(
3481
+ {
3482
+ id: String,
3483
+ archived_at: T.nilable(Time),
3484
+ billing_provider:
3485
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol,
3486
+ configuration: T::Hash[Symbol, T.anything],
3487
+ customer_id: String,
3488
+ delivery_method:
3489
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol,
3490
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
3491
+ delivery_method_id: String
3492
+ }
3493
+ )
3494
+ end
3495
+ def to_hash
3496
+ end
3497
+
3498
+ # The billing provider set for this configuration.
3499
+ module BillingProvider
3500
+ extend MetronomeSDK::Internal::Type::Enum
3501
+
3502
+ TaggedSymbol =
3503
+ T.type_alias do
3504
+ T.all(
3505
+ Symbol,
3506
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider
3507
+ )
3508
+ end
3509
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3510
+
3511
+ AWS_MARKETPLACE =
3512
+ T.let(
3513
+ :aws_marketplace,
3514
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3515
+ )
3516
+ STRIPE =
3517
+ T.let(
3518
+ :stripe,
3519
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3520
+ )
3521
+ NETSUITE =
3522
+ T.let(
3523
+ :netsuite,
3524
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3525
+ )
3526
+ CUSTOM =
3527
+ T.let(
3528
+ :custom,
3529
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3530
+ )
3531
+ AZURE_MARKETPLACE =
3532
+ T.let(
3533
+ :azure_marketplace,
3534
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3535
+ )
3536
+ QUICKBOOKS_ONLINE =
3537
+ T.let(
3538
+ :quickbooks_online,
3539
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3540
+ )
3541
+ WORKDAY =
3542
+ T.let(
3543
+ :workday,
3544
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3545
+ )
3546
+ GCP_MARKETPLACE =
3547
+ T.let(
3548
+ :gcp_marketplace,
3549
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3550
+ )
3551
+ METRONOME =
3552
+ T.let(
3553
+ :metronome,
3554
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3555
+ )
3556
+
3557
+ sig do
3558
+ override.returns(
3559
+ T::Array[
3560
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider::TaggedSymbol
3561
+ ]
3562
+ )
3563
+ end
3564
+ def self.values
3565
+ end
3566
+ end
3567
+
3568
+ # The method to use for delivering invoices to this customer.
3569
+ module DeliveryMethod
3570
+ extend MetronomeSDK::Internal::Type::Enum
3571
+
3572
+ TaggedSymbol =
3573
+ T.type_alias do
3574
+ T.all(
3575
+ Symbol,
3576
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod
3577
+ )
3578
+ end
3579
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3580
+
3581
+ DIRECT_TO_BILLING_PROVIDER =
3582
+ T.let(
3583
+ :direct_to_billing_provider,
3584
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3585
+ )
3586
+ AWS_SQS =
3587
+ T.let(
3588
+ :aws_sqs,
3589
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3590
+ )
3591
+ TACKLE =
3592
+ T.let(
3593
+ :tackle,
3594
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3595
+ )
3596
+ AWS_SNS =
3597
+ T.let(
3598
+ :aws_sns,
3599
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3600
+ )
3601
+
3602
+ sig do
3603
+ override.returns(
3604
+ T::Array[
3605
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod::TaggedSymbol
3606
+ ]
3607
+ )
3608
+ end
3609
+ def self.values
3610
+ end
3611
+ end
3612
+ end
3613
+ end
3614
+
3261
3615
  class Credit < MetronomeSDK::Internal::Type::BaseModel
3262
3616
  OrHash =
3263
3617
  T.type_alias do
@@ -4473,10 +4827,15 @@ module MetronomeSDK
4473
4827
  )
4474
4828
  end
4475
4829
 
4476
- # ID of Customer's billing provider configuration.
4830
+ # ID of this configuration; can be provided as the
4831
+ # billing_provider_configuration_id when creating a contract.
4477
4832
  sig { returns(String) }
4478
4833
  attr_accessor :id
4479
4834
 
4835
+ sig { returns(T.nilable(Time)) }
4836
+ attr_accessor :archived_at
4837
+
4838
+ # The billing provider set for this configuration.
4480
4839
  sig do
4481
4840
  returns(
4482
4841
  MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
@@ -4484,6 +4843,15 @@ module MetronomeSDK
4484
4843
  end
4485
4844
  attr_accessor :billing_provider
4486
4845
 
4846
+ # Configuration for the billing provider. The structure of this object is specific
4847
+ # to the billing provider.
4848
+ sig { returns(T::Hash[Symbol, T.anything]) }
4849
+ attr_accessor :configuration
4850
+
4851
+ sig { returns(String) }
4852
+ attr_accessor :customer_id
4853
+
4854
+ # The method to use for delivering invoices to this customer.
4487
4855
  sig do
4488
4856
  returns(
4489
4857
  MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
@@ -4491,21 +4859,47 @@ module MetronomeSDK
4491
4859
  end
4492
4860
  attr_accessor :delivery_method
4493
4861
 
4494
- # This field's availability is dependent on your client's configuration.
4862
+ # Configuration for the delivery method. The structure of this object is specific
4863
+ # to the delivery method.
4864
+ sig { returns(T::Hash[Symbol, T.anything]) }
4865
+ attr_accessor :delivery_method_configuration
4866
+
4867
+ # ID of the delivery method to use for this customer.
4868
+ sig { returns(String) }
4869
+ attr_accessor :delivery_method_id
4870
+
4495
4871
  sig do
4496
4872
  params(
4497
4873
  id: String,
4874
+ archived_at: T.nilable(Time),
4498
4875
  billing_provider:
4499
4876
  MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider::OrSymbol,
4877
+ configuration: T::Hash[Symbol, T.anything],
4878
+ customer_id: String,
4500
4879
  delivery_method:
4501
- MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol
4880
+ MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol,
4881
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
4882
+ delivery_method_id: String
4502
4883
  ).returns(T.attached_class)
4503
4884
  end
4504
4885
  def self.new(
4505
- # ID of Customer's billing provider configuration.
4886
+ # ID of this configuration; can be provided as the
4887
+ # billing_provider_configuration_id when creating a contract.
4506
4888
  id:,
4889
+ archived_at:,
4890
+ # The billing provider set for this configuration.
4507
4891
  billing_provider:,
4508
- delivery_method:
4892
+ # Configuration for the billing provider. The structure of this object is specific
4893
+ # to the billing provider.
4894
+ configuration:,
4895
+ customer_id:,
4896
+ # The method to use for delivering invoices to this customer.
4897
+ delivery_method:,
4898
+ # Configuration for the delivery method. The structure of this object is specific
4899
+ # to the delivery method.
4900
+ delivery_method_configuration:,
4901
+ # ID of the delivery method to use for this customer.
4902
+ delivery_method_id:
4509
4903
  )
4510
4904
  end
4511
4905
 
@@ -4513,16 +4907,22 @@ module MetronomeSDK
4513
4907
  override.returns(
4514
4908
  {
4515
4909
  id: String,
4910
+ archived_at: T.nilable(Time),
4516
4911
  billing_provider:
4517
4912
  MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol,
4913
+ configuration: T::Hash[Symbol, T.anything],
4914
+ customer_id: String,
4518
4915
  delivery_method:
4519
- MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
4916
+ MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol,
4917
+ delivery_method_configuration: T::Hash[Symbol, T.anything],
4918
+ delivery_method_id: String
4520
4919
  }
4521
4920
  )
4522
4921
  end
4523
4922
  def to_hash
4524
4923
  end
4525
4924
 
4925
+ # The billing provider set for this configuration.
4526
4926
  module BillingProvider
4527
4927
  extend MetronomeSDK::Internal::Type::Enum
4528
4928
 
@@ -4592,6 +4992,7 @@ module MetronomeSDK
4592
4992
  end
4593
4993
  end
4594
4994
 
4995
+ # The method to use for delivering invoices to this customer.
4595
4996
  module DeliveryMethod
4596
4997
  extend MetronomeSDK::Internal::Type::Enum
4597
4998
 
@@ -7209,6 +7610,269 @@ module MetronomeSDK
7209
7610
  end
7210
7611
  end
7211
7612
 
7613
+ class RevenueSystemConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
7614
+ OrHash =
7615
+ T.type_alias do
7616
+ T.any(
7617
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule,
7618
+ MetronomeSDK::Internal::AnyHash
7619
+ )
7620
+ end
7621
+
7622
+ # The date this revenue system configuration became or becomes active.
7623
+ sig { returns(Time) }
7624
+ attr_accessor :effective_at
7625
+
7626
+ sig do
7627
+ returns(
7628
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration
7629
+ )
7630
+ end
7631
+ attr_reader :revenue_system_configuration
7632
+
7633
+ sig do
7634
+ params(
7635
+ revenue_system_configuration:
7636
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::OrHash
7637
+ ).void
7638
+ end
7639
+ attr_writer :revenue_system_configuration
7640
+
7641
+ # The date this revenue system configuration is superseded by the next entry. Null
7642
+ # for the last entry in the schedule.
7643
+ sig { returns(T.nilable(Time)) }
7644
+ attr_reader :effective_until
7645
+
7646
+ sig { params(effective_until: Time).void }
7647
+ attr_writer :effective_until
7648
+
7649
+ sig do
7650
+ params(
7651
+ effective_at: Time,
7652
+ revenue_system_configuration:
7653
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::OrHash,
7654
+ effective_until: Time
7655
+ ).returns(T.attached_class)
7656
+ end
7657
+ def self.new(
7658
+ # The date this revenue system configuration became or becomes active.
7659
+ effective_at:,
7660
+ revenue_system_configuration:,
7661
+ # The date this revenue system configuration is superseded by the next entry. Null
7662
+ # for the last entry in the schedule.
7663
+ effective_until: nil
7664
+ )
7665
+ end
7666
+
7667
+ sig do
7668
+ override.returns(
7669
+ {
7670
+ effective_at: Time,
7671
+ revenue_system_configuration:
7672
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration,
7673
+ effective_until: Time
7674
+ }
7675
+ )
7676
+ end
7677
+ def to_hash
7678
+ end
7679
+
7680
+ class RevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
7681
+ OrHash =
7682
+ T.type_alias do
7683
+ T.any(
7684
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration,
7685
+ MetronomeSDK::Internal::AnyHash
7686
+ )
7687
+ end
7688
+
7689
+ # ID of the revenue system configuration.
7690
+ sig { returns(String) }
7691
+ attr_accessor :id
7692
+
7693
+ # Configuration for the revenue system. The structure of this object is specific
7694
+ # to the provider.
7695
+ sig { returns(T::Hash[Symbol, T.anything]) }
7696
+ attr_accessor :configuration
7697
+
7698
+ sig { returns(String) }
7699
+ attr_accessor :customer_id
7700
+
7701
+ # ID of the delivery method used for this customer configuration.
7702
+ sig { returns(String) }
7703
+ attr_accessor :delivery_method_id
7704
+
7705
+ # The revenue system provider (e.g. netsuite).
7706
+ sig do
7707
+ returns(
7708
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::TaggedSymbol
7709
+ )
7710
+ end
7711
+ attr_accessor :provider
7712
+
7713
+ sig { returns(T.nilable(Time)) }
7714
+ attr_accessor :archived_at
7715
+
7716
+ # The method to use for delivering data to the revenue system.
7717
+ sig do
7718
+ returns(
7719
+ T.nilable(
7720
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7721
+ )
7722
+ )
7723
+ end
7724
+ attr_reader :delivery_method
7725
+
7726
+ sig do
7727
+ params(
7728
+ delivery_method:
7729
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::OrSymbol
7730
+ ).void
7731
+ end
7732
+ attr_writer :delivery_method
7733
+
7734
+ # Configuration for the delivery method. The structure of this object is specific
7735
+ # to the delivery method.
7736
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
7737
+ attr_reader :delivery_method_configuration
7738
+
7739
+ sig do
7740
+ params(
7741
+ delivery_method_configuration: T::Hash[Symbol, T.anything]
7742
+ ).void
7743
+ end
7744
+ attr_writer :delivery_method_configuration
7745
+
7746
+ sig do
7747
+ params(
7748
+ id: String,
7749
+ configuration: T::Hash[Symbol, T.anything],
7750
+ customer_id: String,
7751
+ delivery_method_id: String,
7752
+ provider:
7753
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::OrSymbol,
7754
+ archived_at: T.nilable(Time),
7755
+ delivery_method:
7756
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::OrSymbol,
7757
+ delivery_method_configuration: T::Hash[Symbol, T.anything]
7758
+ ).returns(T.attached_class)
7759
+ end
7760
+ def self.new(
7761
+ # ID of the revenue system configuration.
7762
+ id:,
7763
+ # Configuration for the revenue system. The structure of this object is specific
7764
+ # to the provider.
7765
+ configuration:,
7766
+ customer_id:,
7767
+ # ID of the delivery method used for this customer configuration.
7768
+ delivery_method_id:,
7769
+ # The revenue system provider (e.g. netsuite).
7770
+ provider:,
7771
+ archived_at: nil,
7772
+ # The method to use for delivering data to the revenue system.
7773
+ delivery_method: nil,
7774
+ # Configuration for the delivery method. The structure of this object is specific
7775
+ # to the delivery method.
7776
+ delivery_method_configuration: nil
7777
+ )
7778
+ end
7779
+
7780
+ sig do
7781
+ override.returns(
7782
+ {
7783
+ id: String,
7784
+ configuration: T::Hash[Symbol, T.anything],
7785
+ customer_id: String,
7786
+ delivery_method_id: String,
7787
+ provider:
7788
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::TaggedSymbol,
7789
+ archived_at: T.nilable(Time),
7790
+ delivery_method:
7791
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol,
7792
+ delivery_method_configuration: T::Hash[Symbol, T.anything]
7793
+ }
7794
+ )
7795
+ end
7796
+ def to_hash
7797
+ end
7798
+
7799
+ # The revenue system provider (e.g. netsuite).
7800
+ module Provider
7801
+ extend MetronomeSDK::Internal::Type::Enum
7802
+
7803
+ TaggedSymbol =
7804
+ T.type_alias do
7805
+ T.all(
7806
+ Symbol,
7807
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider
7808
+ )
7809
+ end
7810
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7811
+
7812
+ NETSUITE =
7813
+ T.let(
7814
+ :netsuite,
7815
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::TaggedSymbol
7816
+ )
7817
+
7818
+ sig do
7819
+ override.returns(
7820
+ T::Array[
7821
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider::TaggedSymbol
7822
+ ]
7823
+ )
7824
+ end
7825
+ def self.values
7826
+ end
7827
+ end
7828
+
7829
+ # The method to use for delivering data to the revenue system.
7830
+ module DeliveryMethod
7831
+ extend MetronomeSDK::Internal::Type::Enum
7832
+
7833
+ TaggedSymbol =
7834
+ T.type_alias do
7835
+ T.all(
7836
+ Symbol,
7837
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod
7838
+ )
7839
+ end
7840
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7841
+
7842
+ DIRECT_TO_BILLING_PROVIDER =
7843
+ T.let(
7844
+ :direct_to_billing_provider,
7845
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7846
+ )
7847
+ AWS_SQS =
7848
+ T.let(
7849
+ :aws_sqs,
7850
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7851
+ )
7852
+ TACKLE =
7853
+ T.let(
7854
+ :tackle,
7855
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7856
+ )
7857
+ AWS_SNS =
7858
+ T.let(
7859
+ :aws_sns,
7860
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7861
+ )
7862
+
7863
+ sig do
7864
+ override.returns(
7865
+ T::Array[
7866
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod::TaggedSymbol
7867
+ ]
7868
+ )
7869
+ end
7870
+ def self.values
7871
+ end
7872
+ end
7873
+ end
7874
+ end
7875
+
7212
7876
  # Determines which scheduled and commit charges to consolidate onto the Contract's
7213
7877
  # usage invoice. The charge's `timestamp` must match the usage invoice's
7214
7878
  # `ending_before` date for consolidation to occur. This field cannot be modified