active_zuora 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/README.rdoc +22 -1
  2. data/Rakefile +0 -9
  3. data/VERSION +1 -1
  4. data/active_zuora.gemspec +43 -13
  5. data/lib/active_zuora.rb +5 -10
  6. data/lib/active_zuora/account.rb +27 -0
  7. data/lib/active_zuora/amendment.rb +7 -0
  8. data/lib/active_zuora/bill_run.rb +4 -0
  9. data/lib/active_zuora/contact.rb +7 -0
  10. data/lib/active_zuora/invoice.rb +46 -0
  11. data/lib/active_zuora/invoice_item.rb +26 -0
  12. data/lib/active_zuora/invoice_item_adjustment.rb +4 -0
  13. data/lib/active_zuora/invoice_payment.rb +11 -0
  14. data/lib/active_zuora/payment.rb +18 -0
  15. data/lib/active_zuora/payment_method.rb +10 -0
  16. data/lib/active_zuora/product.rb +4 -0
  17. data/lib/active_zuora/product_rate_plan.rb +9 -0
  18. data/lib/active_zuora/product_rate_plan_charge.rb +11 -0
  19. data/lib/active_zuora/product_rate_plan_charge_tier.rb +7 -0
  20. data/lib/active_zuora/product_rate_plan_charge_tier_data.rb +4 -0
  21. data/lib/active_zuora/rate_plan.rb +16 -0
  22. data/lib/active_zuora/rate_plan_charge.rb +44 -0
  23. data/lib/active_zuora/rate_plan_charge_data.rb +4 -0
  24. data/lib/active_zuora/rate_plan_charge_tier.rb +4 -0
  25. data/lib/{zuora → active_zuora}/rate_plan_data.rb +0 -0
  26. data/lib/active_zuora/refund.rb +4 -0
  27. data/lib/{zuora → active_zuora}/subscribe_options.rb +0 -0
  28. data/lib/active_zuora/subscribe_request.rb +13 -0
  29. data/lib/{zuora → active_zuora}/subscribe_with_existing_account_request.rb +0 -0
  30. data/lib/active_zuora/subscription.rb +17 -0
  31. data/lib/{zuora → active_zuora}/subscription_data.rb +0 -0
  32. data/lib/active_zuora/usage.rb +4 -0
  33. data/lib/active_zuora/zobject.rb +156 -0
  34. data/lib/zuora/ZUORA.rb +180 -27
  35. data/lib/zuora/ZUORADriver.rb +17 -0
  36. data/lib/zuora/ZUORAMappingRegistry.rb +236 -23
  37. data/lib/zuora_client.rb +28 -24
  38. data/lib/zuora_interface.rb +21 -5
  39. metadata +112 -17
  40. data/lib/zuora/account.rb +0 -4
  41. data/lib/zuora/contact.rb +0 -4
  42. data/lib/zuora/rate_plan.rb +0 -4
  43. data/lib/zuora/subscribe_request.rb +0 -4
  44. data/lib/zuora/subscription.rb +0 -4
  45. data/lib/zuora/zobject.rb +0 -52
@@ -0,0 +1,4 @@
1
+ module Zuora
2
+ class RatePlanChargeData < ZObject
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Zuora
2
+ class RatePlanChargeTier < ZObject
3
+ end
4
+ end
File without changes
@@ -0,0 +1,4 @@
1
+ module Zuora
2
+ class Refund < ZObject
3
+ end
4
+ end
File without changes
@@ -0,0 +1,13 @@
1
+ module Zuora
2
+ class SubscribeRequest < ZObject
3
+ def self.create(args={})
4
+ self.client.subscribe([self.new(args).to_zobject])
5
+ end
6
+
7
+ def save
8
+ result = self.class.client.subscribe([self.to_zobject])
9
+ self.account.id = result.accountId
10
+ result.success
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ module Zuora
2
+ class Subscription < ZObject
3
+
4
+ def account
5
+ @account ||= Account.find(self.accountId)
6
+ end
7
+
8
+ def rate_plans
9
+ @rate_plans ||= RatePlan.where(:subscriptionId => self.id)
10
+ end
11
+
12
+ def unload_rate_plans
13
+ @rate_plans = nil
14
+ end
15
+
16
+ end
17
+ end
File without changes
@@ -0,0 +1,4 @@
1
+ module Zuora
2
+ class Usage < ZObject
3
+ end
4
+ end
@@ -0,0 +1,156 @@
1
+ module Zuora
2
+ class ZObject < SimpleDelegator
3
+ def initialize(attributes={})
4
+ super(self.class.zobject_class.new).tap do |zobject|
5
+ attributes.each do |attr, value|
6
+ zobject.send("#{attr}=", self.class.convert_date(value))
7
+ end
8
+ end
9
+ end
10
+
11
+ def self.new_from_zobject(zobject)
12
+ self.new.tap do |active_zobject|
13
+ active_zobject.__setobj__(zobject)
14
+ end
15
+ end
16
+
17
+ def to_zobject
18
+ __getobj__
19
+ end
20
+
21
+ def id
22
+ __getobj__.id
23
+ end
24
+
25
+ def type
26
+ __getobj__.type
27
+ end
28
+
29
+ def ==(another)
30
+ id == another.id && another.respond_to?(:zobject_class) && zobject_class == another.zobject_class
31
+ end
32
+
33
+ def attributes
34
+ Hash.new.tap do |hash|
35
+ self.class.attribute_names.each do |attr|
36
+ hash[attr] = __getobj__.send(attr)
37
+ end
38
+ end
39
+ end
40
+
41
+ # Any attributes that are Dates should be created as a
42
+ # DateTime in the PST timezone.
43
+ # Zuora doesn't actually use the time portion of any Datetime field.
44
+ # All that matters is the date.
45
+ def self.convert_date(value)
46
+ if value.is_a?(Date) || value.is_a?(DateTime) || value.is_a?(Time)
47
+ DateTime.new(value.year, value.month, value.day, 0, 0, 0, "-0800")
48
+ else
49
+ value
50
+ end
51
+ end
52
+
53
+ def destroy
54
+ self.class.destroy(id)
55
+ end
56
+
57
+ def self.destroy(ids)
58
+ self.client.delete(self.klass_name, [ids].flatten)
59
+ end
60
+
61
+ def self.create(attributes={})
62
+ self.client.create([self.new(attributes).to_zobject])
63
+ end
64
+
65
+ def self.update_attributes(attributes={})
66
+ self.client.update([self.new(attributes).to_zobject])
67
+ end
68
+
69
+ def self.zobject_class
70
+ return @zobject_class if @zobject_class
71
+
72
+ if ZUORA.const_defined?(self.klass_name)
73
+ @zobject_class = ZUORA.const_get(self.klass_name)
74
+ else
75
+ @zobject_class = self.superclass.respond_to?(:zobject_class) ? self.superclass.zobject_class : ZUORA.const_missing(self.klass_name)
76
+ end
77
+ end
78
+
79
+ def zobject_class
80
+ self.class.zobject_class
81
+ end
82
+
83
+ def self.klass_name
84
+ @klass_name ||= name.split("::").last
85
+ end
86
+
87
+ #TODO: This sucks attributes need to be clearly defined
88
+ def self.attribute_names
89
+ @attribute_names ||= zobject_class.instance_variable_get("@attributes")
90
+ end
91
+
92
+ def self.query_attribute_names(options={})
93
+ excluded_attributes = []
94
+ excluded_attributes.concat excluded_query_attributes unless options[:include_excluded]
95
+ excluded_attributes.concat extra_attributes unless options[:include_extras]
96
+ attribute_names - excluded_attributes
97
+ end
98
+
99
+ def self.exclude_query_attributes(*attributes)
100
+ excluded_query_attributes.concat attributes
101
+ end
102
+
103
+ def self.excluded_query_attributes
104
+ @excluded_query_attributes ||= [:fieldsToNull]
105
+ end
106
+
107
+ def self.extra_attributes(attributes=[])
108
+ attributes
109
+ end
110
+
111
+ def self.where(conditions={}, options={})
112
+ # You can give a hash or a string for the conditions
113
+ conditions = build_filter_statments(conditions) if conditions.is_a? Hash
114
+ query = "select #{self.query_attribute_names(options).join(", ")} from #{self.name.gsub(/Zuora::/,"")} where #{conditions}"
115
+ puts query if $DEBUG
116
+ zobjects = self.client.query(query)
117
+ zobjects.map{|zobject| self.new_from_zobject zobject }
118
+ end
119
+
120
+ def self.build_filter_statments(filter_statments)
121
+ filter_statments.map{|key, value|
122
+ value = "'#{value}'" if value.kind_of?(String)
123
+ value = "null" if value.nil?
124
+ "#{key} = #{value}"
125
+ }.join(" and ")
126
+ end
127
+
128
+ def self.find(id)
129
+ nil unless valid_id(id)
130
+ query = "select #{query_attribute_names(:include_extras => true).join(", ")} from #{self.name.gsub(/Zuora::/,"")} where Id = '#{id}'"
131
+ puts query if $DEBUG
132
+ zobject = client.query(query).first
133
+ new_from_zobject zobject if zobject
134
+ end
135
+
136
+ def self.valid_id(id)
137
+ id.to_s.size == 32 && id.hex.to_s(16) == id
138
+ end
139
+
140
+ def self.all(options={})
141
+ zobjects = client.query("select #{query_attribute_names(options).join(", ")} from #{self.name.gsub(/Zuora::/,"")}")
142
+ zobjects.map{|zobject| self.new_from_zobject zobject }
143
+ end
144
+
145
+ def self.client
146
+ return @client if @client && self.valid_session?
147
+ @session_start_time = Time.now
148
+ @client = Zuora::Client.new
149
+ end
150
+
151
+ def self.valid_session?
152
+ #session is valid if it has been running for less than 8 hours
153
+ @session_start_time + 28800 > Time.now
154
+ end
155
+ end
156
+ end
data/lib/zuora/ZUORA.rb CHANGED
@@ -29,6 +29,7 @@ end
29
29
  # fieldsToNull - SOAP::SOAPString
30
30
  # id - (any)
31
31
  # accountNumber - SOAP::SOAPString
32
+ # additionalEmailAddresses - SOAP::SOAPString
32
33
  # allowInvoiceEdit - SOAP::SOAPBoolean
33
34
  # autoPay - SOAP::SOAPBoolean
34
35
  # batch - SOAP::SOAPString
@@ -51,6 +52,7 @@ class Account < ZObject
51
52
  attr_accessor :fieldsToNull
52
53
  attr_accessor :id
53
54
  attr_accessor :accountNumber
55
+ attr_accessor :additionalEmailAddresses
54
56
  attr_accessor :allowInvoiceEdit
55
57
  attr_accessor :autoPay
56
58
  attr_accessor :batch
@@ -72,10 +74,11 @@ class Account < ZObject
72
74
  attr_accessor :updatedDate
73
75
  attr_accessor :invoiceDeliveryPrefsEmail
74
76
 
75
- def initialize(fieldsToNull = [], id = nil, accountNumber = nil, allowInvoiceEdit = nil, autoPay = nil, batch = nil, billCycleDay = nil, billToId = nil, createdDate = nil, crmId = nil, currency = nil, customerServiceRepName = nil, defaultPaymentMethodId = nil, paymentGateway = nil, name = nil, notes = nil, paymentTerm = nil, purchaseOrderNumber = nil, salesRepName = nil, soldToId = nil, status = nil, updatedDate = nil)
77
+ def initialize(fieldsToNull = [], id = nil, accountNumber = nil, additionalEmailAddresses = nil, allowInvoiceEdit = nil, autoPay = nil, batch = nil, billCycleDay = nil, billToId = nil, createdDate = nil, crmId = nil, currency = nil, customerServiceRepName = nil, defaultPaymentMethodId = nil, paymentGateway = nil, name = nil, notes = nil, paymentTerm = nil, purchaseOrderNumber = nil, salesRepName = nil, soldToId = nil, status = nil, updatedDate = nil)
76
78
  @fieldsToNull = fieldsToNull
77
79
  @id = id
78
80
  @accountNumber = accountNumber
81
+ @additionalEmailAddresses = additionalEmailAddresses
79
82
  @allowInvoiceEdit = allowInvoiceEdit
80
83
  @autoPay = autoPay
81
84
  @batch = batch
@@ -144,6 +147,7 @@ end
144
147
  # {http://object.api.zuora.com/}Amendment
145
148
  # fieldsToNull - SOAP::SOAPString
146
149
  # id - (any)
150
+ # autoRenew - SOAP::SOAPBoolean
147
151
  # contractEffectiveDate - SOAP::SOAPDateTime
148
152
  # customerAcceptanceDate - SOAP::SOAPDateTime
149
153
  # description - SOAP::SOAPString
@@ -154,12 +158,12 @@ end
154
158
  # serviceActivationDate - SOAP::SOAPDateTime
155
159
  # status - SOAP::SOAPString
156
160
  # subscriptionId - (any)
157
- # termCommitment - SOAP::SOAPString
158
161
  # termStartDate - SOAP::SOAPDateTime
159
162
  # type - SOAP::SOAPString
160
163
  class Amendment < ZObject
161
164
  attr_accessor :fieldsToNull
162
165
  attr_accessor :id
166
+ attr_accessor :autoRenew
163
167
  attr_accessor :contractEffectiveDate
164
168
  attr_accessor :customerAcceptanceDate
165
169
  attr_accessor :description
@@ -167,17 +171,18 @@ class Amendment < ZObject
167
171
  attr_accessor :initialTerm
168
172
  attr_accessor :name
169
173
  attr_accessor :renewalTerm
174
+ attr_accessor :termType
170
175
  attr_accessor :serviceActivationDate
171
176
  attr_accessor :status
172
177
  attr_accessor :subscriptionId
173
- attr_accessor :termCommitment
174
178
  attr_accessor :termStartDate
175
179
  attr_accessor :type
176
180
  attr_accessor :ratePlanData
177
181
 
178
- def initialize(fieldsToNull = [], id = nil, contractEffectiveDate = nil, customerAcceptanceDate = nil, description = nil, effectiveDate = nil, initialTerm = nil, name = nil, renewalTerm = nil, serviceActivationDate = nil, status = nil, subscriptionId = nil, termCommitment = nil, termStartDate = nil, type = nil, ratePlanData =[])
182
+ def initialize(fieldsToNull = [], id = nil, autoRenew = nil, contractEffectiveDate = nil, customerAcceptanceDate = nil, description = nil, effectiveDate = nil, initialTerm = nil, name = nil, renewalTerm = nil, termType = nil, serviceActivationDate = nil, status = nil, subscriptionId = nil, termStartDate = nil, type = nil, ratePlanData =[])
179
183
  @fieldsToNull = fieldsToNull
180
184
  @id = id
185
+ @autoRenew = autoRenew
181
186
  @contractEffectiveDate = contractEffectiveDate
182
187
  @customerAcceptanceDate = customerAcceptanceDate
183
188
  @description = description
@@ -185,10 +190,10 @@ class Amendment < ZObject
185
190
  @initialTerm = initialTerm
186
191
  @name = name
187
192
  @renewalTerm = renewalTerm
193
+ @termType = termType
188
194
  @serviceActivationDate = serviceActivationDate
189
195
  @status = status
190
196
  @subscriptionId = subscriptionId
191
- @termCommitment = termCommitment
192
197
  @termStartDate = termStartDate
193
198
  @type = type
194
199
  @ratePlanData = ratePlanData
@@ -308,6 +313,54 @@ class Invoice < ZObject
308
313
  end
309
314
  end
310
315
 
316
+ class InvoiceItem < ZObject
317
+ attr_accessor :fieldsToNull
318
+ attr_accessor :id
319
+ attr_accessor :chargeAmount
320
+ attr_accessor :chargeDate
321
+ attr_accessor :chargeDescription
322
+ attr_accessor :chargeName
323
+ attr_accessor :chargeNumber
324
+ attr_accessor :invoiceId
325
+ attr_accessor :processingType
326
+ attr_accessor :productId
327
+ attr_accessor :productDescription
328
+ attr_accessor :productName
329
+ attr_accessor :quantity
330
+ attr_accessor :ratePlanChargeId
331
+ attr_accessor :serviceEndDate
332
+ attr_accessor :serviceStartDate
333
+ attr_accessor :subscriptionId
334
+ attr_accessor :subscriptionNumber
335
+ attr_accessor :taxAmount
336
+ attr_accessor :taxExemptAmount
337
+ attr_accessor :unitPrice
338
+
339
+ def initialize(fieldsToNull=[], id=nil, chargeAmount=nil, chargeDate=nil, chargeDescription=nil, chargeName=nil, chargeNumber=nil, invoiceId=nil, processingType=nil, productId=nil, productDescription=nil, productName=nil, quantity=nil, ratePlanChargeId=nil, serviceEndDate=nil, serviceStartDate=nil, subscriptionId=nil, subscriptionNumber=nil, taxAmount=nil, taxExemptAmount=nil, unitPrice=nil)
340
+ @fieldsToNull = fieldsToNull
341
+ @id = id
342
+ @chargeAmount = chargeAmount
343
+ @chargeDate = chargeDate
344
+ @chargeDescription = chargeDescription
345
+ @chargeName = chargeName
346
+ @chargeNumber = chargeNumber
347
+ @invoiceId = invoiceId
348
+ @processingType = processingType
349
+ @productId = productId
350
+ @productDescription = productDescription
351
+ @productName = productName
352
+ @quantity = quantity
353
+ @ratePlanChargeId = ratePlanChargeId
354
+ @serviceEndDate = serviceEndDate
355
+ @serviceStartDate = serviceStartDate
356
+ @subscriptionId = subscriptionId
357
+ @subscriptionNumber = subscriptionNumber
358
+ @taxAmount = taxAmount
359
+ @taxExemptAmount = taxExemptAmount
360
+ @unitPrice = unitPrice
361
+ end
362
+ end
363
+
311
364
  class InvoiceItemAdjustment < ZObject
312
365
  attr_accessor :fieldsToNull
313
366
  attr_accessor :id
@@ -360,6 +413,8 @@ end
360
413
  # id - (any)
361
414
  # accountId - (any)
362
415
  # amount - SOAP::SOAPDouble
416
+ # appliedInvoiceAmount - SOAP::SOAPDouble
417
+ # invoiceId - (any)
363
418
  # comment - SOAP::SOAPString
364
419
  # effectiveDate - SOAP::SOAPDateTime
365
420
  # paymentMethodId - (any)
@@ -371,24 +426,44 @@ class Payment < ZObject
371
426
  attr_accessor :id
372
427
  attr_accessor :accountId
373
428
  attr_accessor :amount
429
+ attr_accessor :appliedInvoiceAmount
430
+ attr_accessor :cancelledOn
431
+ attr_accessor :createdDate
432
+ attr_accessor :gatewayResponse
433
+ attr_accessor :gatewayResponseCode
434
+ attr_accessor :gatewayState
435
+ attr_accessor :invoiceId
374
436
  attr_accessor :comment
375
437
  attr_accessor :effectiveDate
376
438
  attr_accessor :paymentMethodId
377
439
  attr_accessor :referenceId
440
+ attr_accessor :refundAmount
378
441
  attr_accessor :status
442
+ attr_accessor :settledOn
379
443
  attr_accessor :type
444
+ attr_accessor :updatedDate
380
445
 
381
- def initialize(fieldsToNull = [], id = nil, accountId = nil, amount = nil, comment = nil, effectiveDate = nil, paymentMethodId = nil, referenceId = nil, status = nil, type = nil)
446
+ def initialize(fieldsToNull = [], id = nil, accountId = nil, amount = nil, appliedInvoiceAmount = nil, cancelledOn = nil, createdDate = nil, gatewayResponse = nil, gatewayResponseCode = nil, gatewayState = nil, invoiceId = nil, comment = nil, effectiveDate = nil, paymentMethodId = nil, referenceId = nil, refundAmount = nil, status = nil, settledOn = nil, type = nil, updatedDate = nil)
382
447
  @fieldsToNull = fieldsToNull
383
448
  @id = id
384
449
  @accountId = accountId
385
450
  @amount = amount
451
+ @appliedInvoiceAmount = appliedInvoiceAmount
452
+ @cancelledOn = cancelledOn
453
+ @createdDate = createdDate
454
+ @gatewayResponse = gatewayResponse
455
+ @gatewayResponseCode = gatewayResponseCode
456
+ @gatewayState = gatewayState
457
+ @invoiceId = invoiceId
386
458
  @comment = comment
387
459
  @effectiveDate = effectiveDate
388
460
  @paymentMethodId = paymentMethodId
389
461
  @referenceId = referenceId
462
+ @refundAmount = refundAmount
390
463
  @status = status
464
+ @settledOn = settledOn
391
465
  @type = type
466
+ @updatedDate = updatedDate
392
467
  end
393
468
  end
394
469
 
@@ -589,10 +664,8 @@ class ProductRatePlanCharge < ZObject
589
664
  attr_accessor :description
590
665
  attr_accessor :maxQuantity
591
666
  attr_accessor :minQuantity
592
- attr_accessor :model
593
667
  attr_accessor :name
594
668
  attr_accessor :productRatePlanId
595
- attr_accessor :type
596
669
  attr_accessor :uOM
597
670
  attr_accessor :chargeModel
598
671
  attr_accessor :revRecCode
@@ -600,11 +673,9 @@ class ProductRatePlanCharge < ZObject
600
673
  attr_accessor :chargeType
601
674
  attr_accessor :billingPeriod
602
675
  attr_accessor :billCycleType
603
- attr_accessor :billingPeriodAlignement
604
676
  attr_accessor :revRecTriggerCondition
605
- attr_accessor :productRatePlanChargeTierData
606
677
 
607
- def initialize(fieldsToNull = [], id = nil, accountingCode = nil, defaultQuantity = nil, description = nil, maxQuantity = nil, minQuantity = nil, model = nil, name = nil, productRatePlanId = nil, type = nil, uOM = nil, chargeModel = nil, revRecCode=nil, triggerEvent=nil, chargeType=nil, billingPeriod=nil, billCycleType=nil, billingPeriodAlignement=nil, revRecTriggerCondition=nil, productRatePlanChargeTierData=nil)
678
+ def initialize(fieldsToNull = [], id = nil, accountingCode = nil, defaultQuantity = nil, description = nil, maxQuantity = nil, minQuantity = nil, name = nil, productRatePlanId = nil, uOM = nil, chargeModel = nil, revRecCode=nil, triggerEvent=nil, chargeType=nil, billingPeriod=nil, billCycleType=nil, revRecTriggerCondition=nil)
608
679
  @fieldsToNull = fieldsToNull
609
680
  @id = id
610
681
  @accountingCode = accountingCode
@@ -612,10 +683,8 @@ class ProductRatePlanCharge < ZObject
612
683
  @description = description
613
684
  @maxQuantity = maxQuantity
614
685
  @minQuantity = minQuantity
615
- @model = model
616
686
  @name = name
617
687
  @productRatePlanId = productRatePlanId
618
- @type = type
619
688
  @uOM = uOM
620
689
  @chargeModel = chargeModel
621
690
  @revRecCode=revRecCode,
@@ -623,9 +692,7 @@ class ProductRatePlanCharge < ZObject
623
692
  @chargeType=chargeType,
624
693
  @billingPeriod=billingPeriod,
625
694
  @billCycleType=billCycleType,
626
- @billingPeriodAlignement=billingPeriodAlignement
627
695
  @revRecTriggerCondition=revRecTriggerCondition
628
- @productRatePlanChargeTierData=productRatePlanChargeTierData
629
696
  end
630
697
  end
631
698
 
@@ -727,6 +794,8 @@ class RatePlanCharge < ZObject
727
794
  attr_accessor :fieldsToNull
728
795
  attr_accessor :id
729
796
  attr_accessor :accountingCode
797
+ attr_accessor :billCycleDay
798
+ attr_accessor :billCycleType
730
799
  attr_accessor :chargeModel
731
800
  attr_accessor :chargeNumber
732
801
  attr_accessor :chargeType
@@ -734,6 +803,7 @@ class RatePlanCharge < ZObject
734
803
  attr_accessor :dMRC
735
804
  attr_accessor :dTCV
736
805
  attr_accessor :includedUnits
806
+ attr_accessor :isLastSegment
737
807
  attr_accessor :mRR
738
808
  attr_accessor :name
739
809
  attr_accessor :numberOfPeriods
@@ -743,14 +813,17 @@ class RatePlanCharge < ZObject
743
813
  attr_accessor :quantity
744
814
  attr_accessor :ratePlanId
745
815
  attr_accessor :tCV
816
+ attr_accessor :triggerDate
746
817
  attr_accessor :triggerEvent
747
818
  attr_accessor :uOM
748
819
  attr_accessor :chargedThroughDate
749
820
 
750
- def initialize(fieldsToNull = [], id = nil, accountingCode = nil, chargeModel = nil, chargeNumber = nil, chargeType = nil, description = nil, dMRC = nil, dTCV = nil, includedUnits = nil, mRR = nil, name = nil, numberOfPeriods = nil, overagePrice = nil, price = nil, productRatePlanChargeId = nil, quantity = nil, ratePlanId = nil, tCV = nil, triggerEvent = nil, uOM = nil, chargedThroughDate = nil)
821
+ def initialize(fieldsToNull = [], id = nil, accountingCode = nil, billCycleDay = nil, billCycleType = nil, chargeModel = nil, chargeNumber = nil, chargeType = nil, description = nil, dMRC = nil, dTCV = nil, includedUnits = nil, isLastSegment = nil, mRR = nil, name = nil, numberOfPeriods = nil, overagePrice = nil, price = nil, productRatePlanChargeId = nil, quantity = nil, ratePlanId = nil, tCV = nil, triggerDate = nil, triggerEvent = nil, uOM = nil, chargedThroughDate = nil)
751
822
  @fieldsToNull = fieldsToNull
752
823
  @id = id
753
824
  @accountingCode = accountingCode
825
+ @billCycleDay = billCycleDay
826
+ @billCycleType = billCycleType
754
827
  @chargeModel = chargeModel
755
828
  @chargeNumber = chargeNumber
756
829
  @chargeType = chargeType
@@ -758,6 +831,7 @@ class RatePlanCharge < ZObject
758
831
  @dMRC = dMRC
759
832
  @dTCV = dTCV
760
833
  @includedUnits = includedUnits
834
+ @isLastSegment = isLastSegment
761
835
  @mRR = mRR
762
836
  @name = name
763
837
  @numberOfPeriods = numberOfPeriods
@@ -767,6 +841,7 @@ class RatePlanCharge < ZObject
767
841
  @quantity = quantity
768
842
  @ratePlanId = ratePlanId
769
843
  @tCV = tCV
844
+ @triggerDate = triggerDate
770
845
  @triggerEvent = triggerEvent
771
846
  @uOM = uOM
772
847
  @chargedThroughDate = chargedThroughDate
@@ -816,12 +891,13 @@ end
816
891
  # initialTerm - SOAP::SOAPInt
817
892
  # name - SOAP::SOAPString
818
893
  # notes - SOAP::SOAPString
819
- # originalSubscriptionId - SOAP::SOAPString
820
- # previousSubscriptionId - SOAP::SOAPString
894
+ # originalId - (any)
895
+ # previousSubscriptionId - (any)
821
896
  # renewalTerm - SOAP::SOAPInt
822
897
  # serviceActivationDate - SOAP::SOAPDateTime
823
898
  # status - SOAP::SOAPString
824
899
  # termStartDate - SOAP::SOAPDateTime
900
+ # termEndDate - SOAP::SOAPDateTime
825
901
  # version - SOAP::SOAPInt
826
902
  class Subscription < ZObject
827
903
  attr_accessor :fieldsToNull
@@ -829,40 +905,44 @@ class Subscription < ZObject
829
905
  attr_accessor :accountId
830
906
  attr_accessor :autoRenew
831
907
  attr_accessor :cancelledDate
908
+ attr_accessor :createdDate
832
909
  attr_accessor :contractAcceptanceDate
833
910
  attr_accessor :contractEffectiveDate
834
- attr_accessor :currency
835
911
  attr_accessor :initialTerm
836
912
  attr_accessor :name
837
913
  attr_accessor :notes
838
- attr_accessor :originalSubscriptionId
914
+ attr_accessor :originalId
839
915
  attr_accessor :previousSubscriptionId
840
916
  attr_accessor :renewalTerm
841
917
  attr_accessor :serviceActivationDate
842
918
  attr_accessor :subscriptionEndDate
843
919
  attr_accessor :status
844
920
  attr_accessor :termStartDate
921
+ attr_accessor :termEndDate
922
+ attr_accessor :termType
845
923
  attr_accessor :version
846
924
 
847
- def initialize(fieldsToNull = [], id = nil, accountId = nil, autoRenew = nil, cancelledDate = nil, contractAcceptanceDate = nil, contractEffectiveDate = nil, currency = nil, initialTerm = nil, name = nil, notes = nil, originalSubscriptionId = nil, previousSubscriptionId = nil, renewalTerm = nil, serviceActivationDate = nil, subscriptionEndDate = nil, status = nil, termStartDate = nil, version = nil)
925
+ def initialize(fieldsToNull = [], id = nil, accountId = nil, autoRenew = nil, cancelledDate = nil, createdDate = nil, contractAcceptanceDate = nil, contractEffectiveDate = nil, initialTerm = nil, name = nil, notes = nil, originalId = nil, previousSubscriptionId = nil, renewalTerm = nil, serviceActivationDate = nil, subscriptionEndDate = nil, status = nil, termStartDate = nil, termEndDate = nil, termType = nil, version = nil)
848
926
  @fieldsToNull = fieldsToNull
849
927
  @id = id
850
928
  @accountId = accountId
851
929
  @autoRenew = autoRenew
852
930
  @cancelledDate = cancelledDate
931
+ @createdDate = createdDate
853
932
  @contractAcceptanceDate = contractAcceptanceDate
854
933
  @contractEffectiveDate = contractEffectiveDate
855
- @currency = currency
856
934
  @initialTerm = initialTerm
857
935
  @name = name
858
936
  @notes = notes
859
- @originalSubscriptionId = originalSubscriptionId
937
+ @originalId = originalId
860
938
  @previousSubscriptionId = previousSubscriptionId
861
939
  @renewalTerm = renewalTerm
862
940
  @serviceActivationDate = serviceActivationDate
863
941
  @subscriptionEndDate= subscriptionEndDate
864
942
  @status = status
865
943
  @termStartDate = termStartDate
944
+ @termEndDate = termEndDate
945
+ @termType = termType
866
946
  @version = version
867
947
  end
868
948
  end
@@ -885,7 +965,9 @@ class Usage < ZObject
885
965
  attr_accessor :fieldsToNull
886
966
  attr_accessor :id
887
967
  attr_accessor :accountId
968
+ attr_accessor :chargeId
888
969
  attr_accessor :chargeNumber
970
+ attr_accessor :description
889
971
  attr_accessor :endDateTime
890
972
  attr_accessor :quantity
891
973
  attr_accessor :rbeStatus
@@ -896,11 +978,13 @@ class Usage < ZObject
896
978
  attr_accessor :subscriptionNumber
897
979
  attr_accessor :uOM
898
980
 
899
- def initialize(fieldsToNull = [], id = nil, accountId = nil, chargeNumber = nil, endDateTime = nil, quantity = nil, rbeStatus = nil, sourceName = nil, sourceType = nil, startDateTime = nil, submissionDateTime = nil, subscriptionNumber = nil, uOM = nil)
981
+ def initialize(fieldsToNull = [], id = nil, accountId = nil, chargeId = nil, chargeNumber = nil, description = nil, endDateTime = nil, quantity = nil, rbeStatus = nil, sourceName = nil, sourceType = nil, startDateTime = nil, submissionDateTime = nil, subscriptionNumber = nil, uOM = nil)
900
982
  @fieldsToNull = fieldsToNull
901
983
  @id = id
902
984
  @accountId = accountId
985
+ @chargeId = chargeId
903
986
  @chargeNumber = chargeNumber
987
+ @description = description
904
988
  @endDateTime = endDateTime
905
989
  @quantity = quantity
906
990
  @rbeStatus = rbeStatus
@@ -998,12 +1082,10 @@ end
998
1082
  # ratePlanCharge - ZUORA::RatePlanCharge
999
1083
  class RatePlanData
1000
1084
  attr_accessor :ratePlan
1001
- attr_accessor :ratePlanCharge
1002
1085
  attr_accessor :ratePlanChargeData
1003
1086
 
1004
- def initialize(ratePlan = nil, ratePlanCharge = nil, ratePlanChargeData = [])
1087
+ def initialize(ratePlan = nil, ratePlanChargeData = [])
1005
1088
  @ratePlan = ratePlan
1006
- @ratePlanCharge = ratePlanCharge
1007
1089
  @ratePlanChargeData = ratePlanChargeData
1008
1090
  end
1009
1091
  end
@@ -1052,6 +1134,51 @@ class SubscribeResult
1052
1134
  end
1053
1135
  end
1054
1136
 
1137
+ class AmendRequest
1138
+ attr_accessor :amendment, :amendOptions, :previewOptions
1139
+
1140
+ def initialize(amendment = nil, amendOptions = nil, previewOptions = nil)
1141
+ @amendment, @amendOptions, @previewOptions = amendment, amendOptions, previewOptions
1142
+ end
1143
+ end
1144
+
1145
+ class AmendOptions
1146
+ attr_accessor :generateInvoice, :invoiceProcessingOptions, :processPayments
1147
+
1148
+ def initialize(generateInvoice = nil, invoiceProcessingOptions = nil, processPayments = nil)
1149
+ @generateInvoice, @invoiceProcessingOptions, @processPayments =
1150
+ generateInvoice, invoiceProcessingOptions, processPayments
1151
+ end
1152
+ end
1153
+
1154
+ class InvoiceProcessingOptions
1155
+ attr_accessor :invoiceTargetDate
1156
+
1157
+ def initialize(invoiceTargetDate = nil)
1158
+ @invoiceTargetDate = invoiceTargetDate
1159
+ end
1160
+ end
1161
+
1162
+ class PreviewOptions
1163
+ attr_accessor :enablePreviewMode, :numberOfPeriods
1164
+
1165
+ def initialize(enablePreviewMode = nil, numberOfPeriods = nil)
1166
+ @enablePreviewMode, @numberOfPeriods = enablePreviewMode, numberOfPeriods
1167
+ end
1168
+ end
1169
+
1170
+ class AmendResult
1171
+ attr_accessor :amendmentIds
1172
+ attr_accessor :errors
1173
+ attr_accessor :success
1174
+
1175
+ def initialize(amendmentIds = [], errors = [], success = nil)
1176
+ @amendmentIds = amendmentIds
1177
+ @errors = errors
1178
+ @success = success
1179
+ end
1180
+ end
1181
+
1055
1182
  # {http://api.zuora.com/}SaveResult
1056
1183
  # errors - ZUORA::Error
1057
1184
  # id - (any)
@@ -1265,6 +1392,12 @@ end
1265
1392
  class SubscribeResponse < ::Array
1266
1393
  end
1267
1394
 
1395
+ class Amend < ::Array
1396
+ end
1397
+
1398
+ class AmendResponse < ::Array
1399
+ end
1400
+
1268
1401
  # {http://api.zuora.com/}create
1269
1402
  class Create < ::Array
1270
1403
  end
@@ -1326,6 +1459,26 @@ class QueryResponse
1326
1459
  end
1327
1460
  end
1328
1461
 
1462
+ # {http://api.zuora.com/}queryMore
1463
+ # queryLocator - SOAP::SOAPString
1464
+ class QueryMore
1465
+ attr_accessor :queryLocator
1466
+
1467
+ def initialize(queryLocator = nil)
1468
+ @queryLocator = queryLocator
1469
+ end
1470
+ end
1471
+
1472
+ # {http://api.zuora.com/}queryMoreResponse
1473
+ # result - ZUORA::QueryResult
1474
+ class QueryMoreResponse
1475
+ attr_accessor :result
1476
+
1477
+ def initialize(result = nil)
1478
+ @result = result
1479
+ end
1480
+ end
1481
+
1329
1482
  # {http://api.zuora.com/}SessionHeader
1330
1483
  # session - SOAP::SOAPString
1331
1484
  class SessionHeader