bf_ruby2 1.2016.229 → 1.2016.230

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 (180) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +53 -29
  3. data/bf_ruby2-1.2016.229.gem +0 -0
  4. data/docs/AccountsApi.md +82 -31
  5. data/docs/AddChargeToAccountResponse.md +9 -0
  6. data/docs/AddChargeToAccountResponsePagedMetadata.md +14 -0
  7. data/docs/AddChargesToAccountAPIRequest.md +17 -0
  8. data/docs/AddressesApi.md +4 -4
  9. data/docs/AmendmentsApi.md +13 -13
  10. data/docs/AnalyticsApi.md +15 -15
  11. data/docs/AuditlogsApi.md +5 -5
  12. data/docs/BatchUpdatePricingComponentValuesRequest.md +9 -0
  13. data/docs/ChargesApi.md +56 -8
  14. data/docs/ClientsApi.md +6 -6
  15. data/docs/ConfigurationsApi.md +6 -6
  16. data/docs/CouponbookApi.md +11 -11
  17. data/docs/CouponbookdefinitionApi.md +8 -8
  18. data/docs/CoupondefinitionApi.md +7 -7
  19. data/docs/CouponinstanceApi.md +12 -12
  20. data/docs/CouponmodifierApi.md +9 -9
  21. data/docs/CouponruleApi.md +6 -6
  22. data/docs/CouponsApi.md +10 -10
  23. data/docs/CreateSubscriptionChargeAmendment.md +0 -1
  24. data/docs/CreateSubscriptionRequest.md +2 -0
  25. data/docs/CreditnotesApi.md +7 -7
  26. data/docs/CybersourcetokensApi.md +7 -7
  27. data/docs/DunninglinesApi.md +8 -8
  28. data/docs/EmailprovidersApi.md +5 -5
  29. data/docs/EmailsApi.md +1 -1
  30. data/docs/EmailsubscriptionsApi.md +7 -7
  31. data/docs/FixedtermdefinitionsApi.md +4 -4
  32. data/docs/FixedtermsApi.md +2 -2
  33. data/docs/Invoice.md +3 -0
  34. data/docs/InvoicesApi.md +63 -63
  35. data/docs/MetadataApi.md +6 -6
  36. data/docs/NestedChargeRequest.md +19 -0
  37. data/docs/NotificationsApi.md +6 -6
  38. data/docs/OrganizationsApi.md +9 -9
  39. data/docs/PasswordsApi.md +2 -2
  40. data/docs/PaymentmethodsApi.md +10 -10
  41. data/docs/PaymentmethodsubscriptionlinksApi.md +3 -3
  42. data/docs/PaymentsApi.md +9 -9
  43. data/docs/PeriodsApi.md +2 -2
  44. data/docs/PermissionsApi.md +8 -8
  45. data/docs/PricingcalculatorApi.md +6 -6
  46. data/docs/PricingcomponentsApi.md +8 -8
  47. data/docs/PricingcomponenttiersApi.md +7 -7
  48. data/docs/PricingcomponentvaluechangesApi.md +7 -7
  49. data/docs/PricingcomponentvaluesApi.md +7 -7
  50. data/docs/ProductrateplansApi.md +27 -27
  51. data/docs/ProductsApi.md +17 -17
  52. data/docs/ProfilesApi.md +6 -6
  53. data/docs/QuotesApi.md +2 -2
  54. data/docs/RecalculateChargeBatchRequest.md +12 -0
  55. data/docs/RecalculateChargeBatchResponse.md +11 -0
  56. data/docs/RecalculateChargeBatchResponsePagedMetadata.md +14 -0
  57. data/docs/ReceiptsApi.md +6 -6
  58. data/docs/RefundsApi.md +9 -9
  59. data/docs/RolesApi.md +8 -8
  60. data/docs/SearchApi.md +1 -1
  61. data/docs/SingleRecalculateChargeRequest.md +15 -0
  62. data/docs/Subscription.md +1 -0
  63. data/docs/SubscriptionsApi.md +153 -102
  64. data/docs/SynchAppConfigsApi.md +6 -6
  65. data/docs/SynchConfigsApi.md +8 -8
  66. data/docs/SynchJobsApi.md +10 -10
  67. data/docs/TaxationlinksApi.md +8 -8
  68. data/docs/TaxationstrategiesApi.md +11 -11
  69. data/docs/TimeApi.md +1 -1
  70. data/docs/TokenizationApi.md +6 -6
  71. data/docs/UnitofmeasureApi.md +6 -6
  72. data/docs/UpdatePricingComponentValueChangeResult.md +19 -0
  73. data/docs/UpdatePricingComponentValueRequest.md +10 -0
  74. data/docs/UpdatePricingComponentValueResponse.md +9 -0
  75. data/docs/UpdatePricingComponentValueResponsePagedMetadata.md +14 -0
  76. data/docs/UsageApi.md +7 -7
  77. data/docs/UsageperiodsApi.md +3 -3
  78. data/docs/UsageroundingstrategiesApi.md +6 -6
  79. data/docs/UsagesessionsApi.md +6 -6
  80. data/docs/UsernamesApi.md +2 -2
  81. data/docs/UsersApi.md +16 -16
  82. data/docs/VaultedgatewaysApi.md +22 -22
  83. data/docs/WebhooksApi.md +10 -10
  84. data/lib/bf_ruby2.rb +13 -0
  85. data/lib/bf_ruby2/api/accounts_api.rb +92 -31
  86. data/lib/bf_ruby2/api/addresses_api.rb +4 -4
  87. data/lib/bf_ruby2/api/amendments_api.rb +13 -13
  88. data/lib/bf_ruby2/api/analytics_api.rb +15 -15
  89. data/lib/bf_ruby2/api/auditlogs_api.rb +5 -5
  90. data/lib/bf_ruby2/api/charges_api.rb +65 -8
  91. data/lib/bf_ruby2/api/clients_api.rb +6 -6
  92. data/lib/bf_ruby2/api/configurations_api.rb +6 -6
  93. data/lib/bf_ruby2/api/couponbook_api.rb +11 -11
  94. data/lib/bf_ruby2/api/couponbookdefinition_api.rb +8 -8
  95. data/lib/bf_ruby2/api/coupondefinition_api.rb +7 -7
  96. data/lib/bf_ruby2/api/couponinstance_api.rb +12 -12
  97. data/lib/bf_ruby2/api/couponmodifier_api.rb +9 -9
  98. data/lib/bf_ruby2/api/couponrule_api.rb +6 -6
  99. data/lib/bf_ruby2/api/coupons_api.rb +10 -10
  100. data/lib/bf_ruby2/api/creditnotes_api.rb +7 -7
  101. data/lib/bf_ruby2/api/cybersourcetokens_api.rb +7 -7
  102. data/lib/bf_ruby2/api/dunninglines_api.rb +8 -8
  103. data/lib/bf_ruby2/api/emailproviders_api.rb +5 -5
  104. data/lib/bf_ruby2/api/emails_api.rb +1 -1
  105. data/lib/bf_ruby2/api/emailsubscriptions_api.rb +7 -7
  106. data/lib/bf_ruby2/api/fixedtermdefinitions_api.rb +4 -4
  107. data/lib/bf_ruby2/api/fixedterms_api.rb +2 -2
  108. data/lib/bf_ruby2/api/invoices_api.rb +63 -63
  109. data/lib/bf_ruby2/api/metadata_api.rb +6 -6
  110. data/lib/bf_ruby2/api/notifications_api.rb +6 -6
  111. data/lib/bf_ruby2/api/organizations_api.rb +9 -9
  112. data/lib/bf_ruby2/api/passwords_api.rb +2 -2
  113. data/lib/bf_ruby2/api/paymentmethods_api.rb +10 -10
  114. data/lib/bf_ruby2/api/paymentmethodsubscriptionlinks_api.rb +3 -3
  115. data/lib/bf_ruby2/api/payments_api.rb +9 -9
  116. data/lib/bf_ruby2/api/periods_api.rb +2 -2
  117. data/lib/bf_ruby2/api/permissions_api.rb +8 -8
  118. data/lib/bf_ruby2/api/pricingcalculator_api.rb +6 -6
  119. data/lib/bf_ruby2/api/pricingcomponents_api.rb +8 -8
  120. data/lib/bf_ruby2/api/pricingcomponenttiers_api.rb +7 -7
  121. data/lib/bf_ruby2/api/pricingcomponentvaluechanges_api.rb +7 -7
  122. data/lib/bf_ruby2/api/pricingcomponentvalues_api.rb +7 -7
  123. data/lib/bf_ruby2/api/productrateplans_api.rb +27 -27
  124. data/lib/bf_ruby2/api/products_api.rb +17 -17
  125. data/lib/bf_ruby2/api/profiles_api.rb +6 -6
  126. data/lib/bf_ruby2/api/quotes_api.rb +2 -2
  127. data/lib/bf_ruby2/api/receipts_api.rb +6 -6
  128. data/lib/bf_ruby2/api/refunds_api.rb +9 -9
  129. data/lib/bf_ruby2/api/roles_api.rb +8 -8
  130. data/lib/bf_ruby2/api/search_api.rb +1 -1
  131. data/lib/bf_ruby2/api/subscriptions_api.rb +163 -102
  132. data/lib/bf_ruby2/api/synch_app_configs_api.rb +6 -6
  133. data/lib/bf_ruby2/api/synch_configs_api.rb +8 -8
  134. data/lib/bf_ruby2/api/synch_jobs_api.rb +10 -10
  135. data/lib/bf_ruby2/api/taxationlinks_api.rb +8 -8
  136. data/lib/bf_ruby2/api/taxationstrategies_api.rb +11 -11
  137. data/lib/bf_ruby2/api/time_api.rb +1 -1
  138. data/lib/bf_ruby2/api/tokenization_api.rb +6 -6
  139. data/lib/bf_ruby2/api/unitofmeasure_api.rb +6 -6
  140. data/lib/bf_ruby2/api/usage_api.rb +7 -7
  141. data/lib/bf_ruby2/api/usageperiods_api.rb +3 -3
  142. data/lib/bf_ruby2/api/usageroundingstrategies_api.rb +6 -6
  143. data/lib/bf_ruby2/api/usagesessions_api.rb +6 -6
  144. data/lib/bf_ruby2/api/usernames_api.rb +2 -2
  145. data/lib/bf_ruby2/api/users_api.rb +16 -16
  146. data/lib/bf_ruby2/api/vaultedgateways_api.rb +22 -22
  147. data/lib/bf_ruby2/api/webhooks_api.rb +10 -10
  148. data/lib/bf_ruby2/models/add_charge_to_account_response.rb +212 -0
  149. data/lib/bf_ruby2/models/add_charge_to_account_response_paged_metadata.rb +269 -0
  150. data/lib/bf_ruby2/models/add_charges_to_account_api_request.rb +337 -0
  151. data/lib/bf_ruby2/models/batch_update_pricing_component_values_request.rb +244 -0
  152. data/lib/bf_ruby2/models/create_subscription_charge_amendment.rb +1 -24
  153. data/lib/bf_ruby2/models/create_subscription_request.rb +24 -4
  154. data/lib/bf_ruby2/models/invoice.rb +32 -1
  155. data/lib/bf_ruby2/models/nested_charge_request.rb +343 -0
  156. data/lib/bf_ruby2/models/recalculate_charge_batch_request.rb +279 -0
  157. data/lib/bf_ruby2/models/recalculate_charge_batch_response.rb +234 -0
  158. data/lib/bf_ruby2/models/recalculate_charge_batch_response_paged_metadata.rb +269 -0
  159. data/lib/bf_ruby2/models/single_recalculate_charge_request.rb +317 -0
  160. data/lib/bf_ruby2/models/subscription.rb +11 -1
  161. data/lib/bf_ruby2/models/update_pricing_component_value_change_result.rb +367 -0
  162. data/lib/bf_ruby2/models/update_pricing_component_value_request.rb +253 -0
  163. data/lib/bf_ruby2/models/update_pricing_component_value_response.rb +210 -0
  164. data/lib/bf_ruby2/models/update_pricing_component_value_response_paged_metadata.rb +269 -0
  165. data/lib/bf_ruby2/version.rb +1 -1
  166. data/spec/models/add_charge_to_account_response_paged_metadata_spec.rb +89 -0
  167. data/spec/models/add_charge_to_account_response_spec.rb +59 -0
  168. data/spec/models/add_charges_to_account_api_request_spec.rb +115 -0
  169. data/spec/models/batch_update_pricing_component_values_request_spec.rb +63 -0
  170. data/spec/models/nested_charge_request_spec.rb +123 -0
  171. data/spec/models/recalculate_charge_batch_request_spec.rb +81 -0
  172. data/spec/models/recalculate_charge_batch_response_paged_metadata_spec.rb +89 -0
  173. data/spec/models/recalculate_charge_batch_response_spec.rb +71 -0
  174. data/spec/models/single_recalculate_charge_request_spec.rb +103 -0
  175. data/spec/models/update_pricing_component_value_change_result_spec.rb +131 -0
  176. data/spec/models/update_pricing_component_value_request_spec.rb +69 -0
  177. data/spec/models/update_pricing_component_value_response_paged_metadata_spec.rb +89 -0
  178. data/spec/models/update_pricing_component_value_response_spec.rb +59 -0
  179. metadata +54 -2
  180. data/setup.scratch.rb +0 -33
@@ -74,9 +74,6 @@ module BillForward
74
74
  # { \"description\" : \"\", \"verbs\":[] }
75
75
  attr_accessor :discount
76
76
 
77
- # { \"description\" : \"\", \"default\" : \"Manual\", \"verbs\":[] }
78
- attr_accessor :type
79
-
80
77
  # { \"description\" : \"<span class=\\\"label label-default\\\">Immediate</span> invoicing will result in an invoice being issued immediately for the charge. <span class=\\\"label label-default\\\">Aggregated</span> invoicing will generate a charge to be added to the next issued invoice, for example at the current billing period end.\", \"default\" : \"Aggregated\", \"verbs\":[\"POST\",\"PUT\",\"GET\"] }
81
78
  attr_accessor :invoicing_type
82
79
 
@@ -133,7 +130,6 @@ module BillForward
133
130
  :'description' => :'description',
134
131
  :'amount' => :'amount',
135
132
  :'discount' => :'discount',
136
- :'type' => :'type',
137
133
  :'invoicing_type' => :'invoicingType',
138
134
  :'tax_status' => :'taxStatus',
139
135
  :'subscription_charge' => :'subscriptionCharge',
@@ -161,7 +157,6 @@ module BillForward
161
157
  :'description' => :'String',
162
158
  :'amount' => :'Float',
163
159
  :'discount' => :'Float',
164
- :'type' => :'String',
165
160
  :'invoicing_type' => :'String',
166
161
  :'tax_status' => :'String',
167
162
  :'subscription_charge' => :'SubscriptionCharge',
@@ -244,10 +239,6 @@ module BillForward
244
239
  self.discount = attributes[:'discount']
245
240
  end
246
241
 
247
- if attributes.has_key?(:'type')
248
- self.type = attributes[:'type']
249
- end
250
-
251
242
  if attributes.has_key?(:'invoicingType')
252
243
  self.invoicing_type = attributes[:'invoicingType']
253
244
  end
@@ -292,9 +283,6 @@ module BillForward
292
283
  return false unless state_validator.valid?(@state)
293
284
  return false if @deleted.nil?
294
285
  return false if @amount.nil?
295
- return false if @type.nil?
296
- type_validator = EnumAttributeValidator.new('String', ["Setup", "Upgrade", "Manual", "ProductRatePlanMigration", "Arrears", "Advance", "Coupon", "Usage", "PricingComponent"])
297
- return false unless type_validator.valid?(@type)
298
286
  return false if @invoicing_type.nil?
299
287
  invoicing_type_validator = EnumAttributeValidator.new('String', ["Immediate", "Aggregated"])
300
288
  return false unless invoicing_type_validator.valid?(@invoicing_type)
@@ -334,16 +322,6 @@ module BillForward
334
322
  @state = state
335
323
  end
336
324
 
337
- # Custom attribute writer method checking allowed values (enum).
338
- # @param [Object] type Object to be assigned
339
- def type=(type)
340
- validator = EnumAttributeValidator.new('String', ["Setup", "Upgrade", "Manual", "ProductRatePlanMigration", "Arrears", "Advance", "Coupon", "Usage", "PricingComponent"])
341
- unless validator.valid?(type)
342
- fail ArgumentError, "invalid value for 'type', must be one of #{validator.allowable_values}."
343
- end
344
- @type = type
345
- end
346
-
347
325
  # Custom attribute writer method checking allowed values (enum).
348
326
  # @param [Object] invoicing_type Object to be assigned
349
327
  def invoicing_type=(invoicing_type)
@@ -385,7 +363,6 @@ module BillForward
385
363
  description == o.description &&
386
364
  amount == o.amount &&
387
365
  discount == o.discount &&
388
- type == o.type &&
389
366
  invoicing_type == o.invoicing_type &&
390
367
  tax_status == o.tax_status &&
391
368
  subscription_charge == o.subscription_charge &&
@@ -402,7 +379,7 @@ module BillForward
402
379
  # Calculates hash code according to all attributes.
403
380
  # @return [Fixnum] Hash code
404
381
  def hash
405
- [created, changed_by, updated, type, id, organization_id, subscription_id, amendment_type, actioning_time, actioned_time, state, deleted, subscription_charge_id, description, amount, discount, type, invoicing_type, tax_status, subscription_charge, pricing_component_value_change, pricing_component_id].hash
382
+ [created, changed_by, updated, type, id, organization_id, subscription_id, amendment_type, actioning_time, actioned_time, state, deleted, subscription_charge_id, description, amount, discount, invoicing_type, tax_status, subscription_charge, pricing_component_value_change, pricing_component_id].hash
406
383
  end
407
384
 
408
385
  # Builds the object from hash
@@ -75,12 +75,18 @@ module BillForward
75
75
 
76
76
  attr_accessor :payment_terms
77
77
 
78
+ # { \"default\": \" \", \"description\":\"Purchase order associated with the subscription. If specified this is copied to any invoices issued for this subscription.\",\"verbs\":[\"POST\"]}
79
+ attr_accessor :purchase_order
80
+
78
81
  # {\"description\":\"start of the contracted period. This will be after a trial, if one exists\",\"verbs\":[\"GET\"]}
79
82
  attr_accessor :contract_start
80
83
 
81
84
  # {\"default\":\"None\",\"description\":\"The action that should be taken, should an invoice for some subscription to this rate plan remain unpaid despite the dunning period's being exceeded.<br><span class=\\\"label label-default\\\">CancelSubscription</span> &mdash; Demotes the subscription to the `Failed` state as soon as the dunning period is exceeded.<br><span class=\\\"label label-default\\\">None</span> &mdash; The subscription is allowed to continue in the `AwaitingPayment` state indefinitely even if the dunning period is exceeded.For slow payment cycles &mdash; or when manual invoice remediation is common &mdash; <span class=\\\"label label-default\\\">None</span> is recommended.<br>In a heavily-automated SaaS environment, automatic cancellation via <span class=\\\"label label-default\\\">CancelSubscription</span> is recommended.\",\"verbs\":[\"POST\",\"PUT\",\"GET\"]}
82
85
  attr_accessor :failed_payment_behaviour
83
86
 
87
+ # { \"description\":\"How much prepayment should be taken upfront.\", \"verbs\":[\"POST\",\"GET\"]}
88
+ attr_accessor :prepayment_amount
89
+
84
90
  class EnumAttributeValidator
85
91
  attr_reader :datatype
86
92
  attr_reader :allowable_values
@@ -123,8 +129,10 @@ module BillForward
123
129
  :'pricing_component_quantities' => :'pricingComponentQuantities',
124
130
  :'metadata' => :'metadata',
125
131
  :'payment_terms' => :'paymentTerms',
132
+ :'purchase_order' => :'purchaseOrder',
126
133
  :'contract_start' => :'contractStart',
127
- :'failed_payment_behaviour' => :'failedPaymentBehaviour'
134
+ :'failed_payment_behaviour' => :'failedPaymentBehaviour',
135
+ :'prepayment_amount' => :'prepaymentAmount'
128
136
  }
129
137
  end
130
138
 
@@ -148,8 +156,10 @@ module BillForward
148
156
  :'pricing_component_quantities' => :'Array<PricingComponentQuantityRequest>',
149
157
  :'metadata' => :'DynamicMetadata',
150
158
  :'payment_terms' => :'Integer',
159
+ :'purchase_order' => :'String',
151
160
  :'contract_start' => :'DateTime',
152
- :'failed_payment_behaviour' => :'String'
161
+ :'failed_payment_behaviour' => :'String',
162
+ :'prepayment_amount' => :'Float'
153
163
  }
154
164
  end
155
165
 
@@ -235,6 +245,10 @@ module BillForward
235
245
  self.payment_terms = attributes[:'paymentTerms']
236
246
  end
237
247
 
248
+ if attributes.has_key?(:'purchaseOrder')
249
+ self.purchase_order = attributes[:'purchaseOrder']
250
+ end
251
+
238
252
  if attributes.has_key?(:'contractStart')
239
253
  self.contract_start = attributes[:'contractStart']
240
254
  end
@@ -243,6 +257,10 @@ module BillForward
243
257
  self.failed_payment_behaviour = attributes[:'failedPaymentBehaviour']
244
258
  end
245
259
 
260
+ if attributes.has_key?(:'prepaymentAmount')
261
+ self.prepayment_amount = attributes[:'prepaymentAmount']
262
+ end
263
+
246
264
  end
247
265
 
248
266
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -319,8 +337,10 @@ module BillForward
319
337
  pricing_component_quantities == o.pricing_component_quantities &&
320
338
  metadata == o.metadata &&
321
339
  payment_terms == o.payment_terms &&
340
+ purchase_order == o.purchase_order &&
322
341
  contract_start == o.contract_start &&
323
- failed_payment_behaviour == o.failed_payment_behaviour
342
+ failed_payment_behaviour == o.failed_payment_behaviour &&
343
+ prepayment_amount == o.prepayment_amount
324
344
  end
325
345
 
326
346
  # @see the `==` method
@@ -332,7 +352,7 @@ module BillForward
332
352
  # Calculates hash code according to all attributes.
333
353
  # @return [Fixnum] Hash code
334
354
  def hash
335
- [account_id, product, product_rate_plan, organization_id, name, description, start, _end, state, trial_end, type, parent_id, aggregate_all_subscriptions_on_account, align_period_with_aggregating_subscription, pricing_component_quantities, metadata, payment_terms, contract_start, failed_payment_behaviour].hash
355
+ [account_id, product, product_rate_plan, organization_id, name, description, start, _end, state, trial_end, type, parent_id, aggregate_all_subscriptions_on_account, align_period_with_aggregating_subscription, pricing_component_quantities, metadata, payment_terms, purchase_order, contract_start, failed_payment_behaviour, prepayment_amount].hash
336
356
  end
337
357
 
338
358
  # Builds the object from hash
@@ -143,6 +143,14 @@ module BillForward
143
143
  # { \"description\" : \"Is this an initial invoice. An initial invoice is the first invoice generated for a subscription. Initial invoices will not have dunning applied to them and as such will only have a single payment attempt. For trial periods, the trial invoice is the initial invoice.\", \"verbs\":[\"GET\"] }
144
144
  attr_accessor :initial_invoice
145
145
 
146
+ # { \"processing\" : \"If true, the invoice is processing.\", \"verbs\":[] }
147
+ attr_accessor :processing
148
+
149
+ attr_accessor :payment_terms
150
+
151
+ # { \"description\" : \"Purchase order associated with the subscription. If specified this is copied to any invoices issued for this subscription.\", \"verbs\":[\"GET\",\"PUT\",\"POST\"] }
152
+ attr_accessor :purchase_order
153
+
146
154
  # { \"description\" : \"The version number of the Invoice. The first version of an Invoice is version number 1\", \"verbs\":[\"GET\"] }
147
155
  attr_accessor :version_number
148
156
 
@@ -228,6 +236,9 @@ module BillForward
228
236
  :'locked' => :'locked',
229
237
  :'managed_by' => :'managedBy',
230
238
  :'initial_invoice' => :'initialInvoice',
239
+ :'processing' => :'processing',
240
+ :'payment_terms' => :'paymentTerms',
241
+ :'purchase_order' => :'purchaseOrder',
231
242
  :'version_number' => :'versionNumber',
232
243
  :'invoice_lines' => :'invoiceLines',
233
244
  :'tax_lines' => :'taxLines',
@@ -281,6 +292,9 @@ module BillForward
281
292
  :'locked' => :'String',
282
293
  :'managed_by' => :'String',
283
294
  :'initial_invoice' => :'BOOLEAN',
295
+ :'processing' => :'BOOLEAN',
296
+ :'payment_terms' => :'Integer',
297
+ :'purchase_order' => :'String',
284
298
  :'version_number' => :'Integer',
285
299
  :'invoice_lines' => :'Array<InvoiceLine>',
286
300
  :'tax_lines' => :'Array<InsertableBillingEntity>',
@@ -460,6 +474,20 @@ module BillForward
460
474
  self.initial_invoice = false
461
475
  end
462
476
 
477
+ if attributes.has_key?(:'processing')
478
+ self.processing = attributes[:'processing']
479
+ else
480
+ self.processing = false
481
+ end
482
+
483
+ if attributes.has_key?(:'paymentTerms')
484
+ self.payment_terms = attributes[:'paymentTerms']
485
+ end
486
+
487
+ if attributes.has_key?(:'purchaseOrder')
488
+ self.purchase_order = attributes[:'purchaseOrder']
489
+ end
490
+
463
491
  if attributes.has_key?(:'versionNumber')
464
492
  self.version_number = attributes[:'versionNumber']
465
493
  end
@@ -615,6 +643,9 @@ module BillForward
615
643
  locked == o.locked &&
616
644
  managed_by == o.managed_by &&
617
645
  initial_invoice == o.initial_invoice &&
646
+ processing == o.processing &&
647
+ payment_terms == o.payment_terms &&
648
+ purchase_order == o.purchase_order &&
618
649
  version_number == o.version_number &&
619
650
  invoice_lines == o.invoice_lines &&
620
651
  tax_lines == o.tax_lines &&
@@ -634,7 +665,7 @@ module BillForward
634
665
  # Calculates hash code according to all attributes.
635
666
  # @return [Fixnum] Hash code
636
667
  def hash
637
- [created, changed_by, updated, version_id, id, crm_id, subscription_id, subscription_version_id, account_id, organization_id, parent_invoice_id, name, description, state, issued, period_start, period_end, due, deleted, total_execution_attempts, last_execution_attempt, next_execution_attempt, final_execution_attempt, payment_received, currency, cost_excluding_tax, invoice_cost, non_discounted_cost, non_discounted_cost_excluding_tax, invoice_paid, discount_amount, discount_amount_excluding_tax, invoice_refunded, credit_rolled_over, credit_rolled_over_excluding_tax, type, locked, managed_by, initial_invoice, version_number, invoice_lines, tax_lines, invoice_payments, invoice_refunds, invoice_credit_notes, charges, children].hash
668
+ [created, changed_by, updated, version_id, id, crm_id, subscription_id, subscription_version_id, account_id, organization_id, parent_invoice_id, name, description, state, issued, period_start, period_end, due, deleted, total_execution_attempts, last_execution_attempt, next_execution_attempt, final_execution_attempt, payment_received, currency, cost_excluding_tax, invoice_cost, non_discounted_cost, non_discounted_cost_excluding_tax, invoice_paid, discount_amount, discount_amount_excluding_tax, invoice_refunded, credit_rolled_over, credit_rolled_over_excluding_tax, type, locked, managed_by, initial_invoice, processing, payment_terms, purchase_order, version_number, invoice_lines, tax_lines, invoice_payments, invoice_refunds, invoice_credit_notes, charges, children].hash
638
669
  end
639
670
 
640
671
  # Builds the object from hash
@@ -0,0 +1,343 @@
1
+ =begin
2
+ #BillForward REST API
3
+
4
+ #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
+
6
+ OpenAPI spec version: 1.0.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ Licensed under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License.
12
+ You may obtain a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing, software
17
+ distributed under the License is distributed on an "AS IS" BASIS,
18
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ See the License for the specific language governing permissions and
20
+ limitations under the License.
21
+
22
+ =end
23
+
24
+ require 'date'
25
+
26
+ module BillForward
27
+ # Partial request, which -- when accompanied by additional context -- describes some request concerning charges.
28
+ class NestedChargeRequest
29
+ # {\"description\":\"Friendly name given to the charge to help identify it.\",\"verbs\":[\"POST\",\"GET\"]}
30
+ attr_accessor :name
31
+
32
+ # {\"description\":\"\",\"verbs\":[\"POST\",\"GET\"]}
33
+ attr_accessor :description
34
+
35
+ # {\"description\":\"Monetary amount for which to charge. Used only for ad-hoc charges i.e charges not associated with any pricing component. Applicable if pricingComponent is NOT defined\",\"verbs\":[\"POST\",\"GET\"]}
36
+ attr_accessor :amount
37
+
38
+ # {\"default\":false,\"description\":\"Applicable if amount is specified and indicates whether or not to apply tax in addition to the value specified.<br><span class=\\\"label label-default\\\">true</span> &mdash; Tax will be added on top of the nominal price specified in amount &mdash; in accordance with any taxation strategies you have defined.<br><span class=\\\"label label-default\\\">false</span> &mdash; No tax will be applied on top of the price specified in amount.\",\"verbs\":[\"POST\",\"GET\"]}
39
+ attr_accessor :tax_amount
40
+
41
+ # {\"default\":\"Now\",\"description\":\"Start of the interval to which the charge applies. This can be used to apply a charge across partial or multiple periods. Pro-rating the price of pricingComponents purchased\",\"verbs\":[\"POST\",\"GET\"]}
42
+ attr_accessor :period_start
43
+
44
+ # {\"default\":\"(End of current period)\",\"description\":\"(Applicable only if `pricingComponent` is defined)<br>End of the interval to which the charge applies. Used in pro-rata calculation\",\"verbs\":[\"POST\",\"GET\"]}
45
+ attr_accessor :period_end
46
+
47
+ # {\"default\":\"<span class=\\\"label label-default\\\">Debit</span>\",\"description\":\"Whether this charge represents an increase or decrease in invoice cost<br><span class=\\\"label label-default\\\">Credit</span> &mdash; This results in a reduction to the invoice cost<br><span class=\\\"label label-default\\\">Debit</span> &mdash; This will increase the invoice cost\",\"verbs\":[\"POST\",\"GET\"]}
48
+ attr_accessor :charge_type
49
+
50
+ # {\"default\":\"false\",\"description\":\"Whether the charge is meant in the context of a trial.<br><span class=\\\"label label-default\\\">false</span> &mdash; This is a non-trial charge, so funds will be sought from the customer.<br><span class=\\\"label label-default\\\">true</span> &mdash; This is a trial charge, soThe charge can be considered 'Paid' without taking any funds from the customer.\",\"verbs\":[\"POST\",\"GET\"]}
51
+ attr_accessor :trial
52
+
53
+ # {\"description\":\"[Required only if the `productRatePlan` field is populated with a name (as opposed to an ID)]. The ID or name of the product rate plan to which the referenced rate plan belongs.\",\"verbs\":[\"POST\",\"GET\"]}
54
+ attr_accessor :product
55
+
56
+ # {\"description\":\"[Required only if the `pricingComponent` field is populated with a name (as opposed to an ID)]. The ID or name of the rate plan to which the referenced PricingComponent belongs.\",\"verbs\":[\"POST\",\"GET\"]}
57
+ attr_accessor :product_rate_plan
58
+
59
+ # {\"description\":\"Specifies that this charge is for consumption of some quantity of this pricing component (whose name or ID can be provided).<br>If left blank:<br>The charge will be created as 'ad-hoc'. That is: a monetary lump sum, associated with no pricing component\",\"verbs\":[\"POST\",\"GET\"]}
60
+ attr_accessor :pricing_component
61
+
62
+ # {\"description\":\"[Required if pricingComponent is defined]. The value consumed of the pricing component which this charge concerns.\",\"verbs\":[\"POST\",\"GET\"]}
63
+ attr_accessor :pricing_component_value
64
+
65
+ class EnumAttributeValidator
66
+ attr_reader :datatype
67
+ attr_reader :allowable_values
68
+
69
+ def initialize(datatype, allowable_values)
70
+ @allowable_values = allowable_values.map do |value|
71
+ case datatype.to_s
72
+ when /Integer/i
73
+ value.to_i
74
+ when /Float/i
75
+ value.to_f
76
+ else
77
+ value
78
+ end
79
+ end
80
+ end
81
+
82
+ def valid?(value)
83
+ !value || allowable_values.include?(value)
84
+ end
85
+ end
86
+
87
+ # Attribute mapping from ruby-style variable name to JSON key.
88
+ def self.attribute_map
89
+ {
90
+ :'name' => :'name',
91
+ :'description' => :'description',
92
+ :'amount' => :'amount',
93
+ :'tax_amount' => :'taxAmount',
94
+ :'period_start' => :'periodStart',
95
+ :'period_end' => :'periodEnd',
96
+ :'charge_type' => :'chargeType',
97
+ :'trial' => :'trial',
98
+ :'product' => :'product',
99
+ :'product_rate_plan' => :'productRatePlan',
100
+ :'pricing_component' => :'pricingComponent',
101
+ :'pricing_component_value' => :'pricingComponentValue'
102
+ }
103
+ end
104
+
105
+ # Attribute type mapping.
106
+ def self.swagger_types
107
+ {
108
+ :'name' => :'String',
109
+ :'description' => :'String',
110
+ :'amount' => :'Float',
111
+ :'tax_amount' => :'BOOLEAN',
112
+ :'period_start' => :'DateTime',
113
+ :'period_end' => :'DateTime',
114
+ :'charge_type' => :'String',
115
+ :'trial' => :'BOOLEAN',
116
+ :'product' => :'String',
117
+ :'product_rate_plan' => :'String',
118
+ :'pricing_component' => :'String',
119
+ :'pricing_component_value' => :'Integer'
120
+ }
121
+ end
122
+
123
+ # Initializes the object
124
+ # @param [Hash] attributes Model attributes in the form of hash
125
+ def initialize(attributes = {})
126
+ return unless attributes.is_a?(Hash)
127
+
128
+ # convert string to symbol for hash key
129
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
130
+
131
+ if attributes.has_key?(:'name')
132
+ self.name = attributes[:'name']
133
+ end
134
+
135
+ if attributes.has_key?(:'description')
136
+ self.description = attributes[:'description']
137
+ end
138
+
139
+ if attributes.has_key?(:'amount')
140
+ self.amount = attributes[:'amount']
141
+ end
142
+
143
+ if attributes.has_key?(:'taxAmount')
144
+ self.tax_amount = attributes[:'taxAmount']
145
+ end
146
+
147
+ if attributes.has_key?(:'periodStart')
148
+ self.period_start = attributes[:'periodStart']
149
+ end
150
+
151
+ if attributes.has_key?(:'periodEnd')
152
+ self.period_end = attributes[:'periodEnd']
153
+ end
154
+
155
+ if attributes.has_key?(:'chargeType')
156
+ self.charge_type = attributes[:'chargeType']
157
+ end
158
+
159
+ if attributes.has_key?(:'trial')
160
+ self.trial = attributes[:'trial']
161
+ end
162
+
163
+ if attributes.has_key?(:'product')
164
+ self.product = attributes[:'product']
165
+ end
166
+
167
+ if attributes.has_key?(:'productRatePlan')
168
+ self.product_rate_plan = attributes[:'productRatePlan']
169
+ end
170
+
171
+ if attributes.has_key?(:'pricingComponent')
172
+ self.pricing_component = attributes[:'pricingComponent']
173
+ end
174
+
175
+ if attributes.has_key?(:'pricingComponentValue')
176
+ self.pricing_component_value = attributes[:'pricingComponentValue']
177
+ end
178
+
179
+ end
180
+
181
+ # Show invalid properties with the reasons. Usually used together with valid?
182
+ # @return Array for valid properies with the reasons
183
+ def list_invalid_properties
184
+ invalid_properties = Array.new
185
+ return invalid_properties
186
+ end
187
+
188
+ # Check to see if the all the properties in the model are valid
189
+ # @return true if the model is valid
190
+ def valid?
191
+ charge_type_validator = EnumAttributeValidator.new('String', ["Credit", "Debit"])
192
+ return false unless charge_type_validator.valid?(@charge_type)
193
+ return true
194
+ end
195
+
196
+ # Custom attribute writer method checking allowed values (enum).
197
+ # @param [Object] charge_type Object to be assigned
198
+ def charge_type=(charge_type)
199
+ validator = EnumAttributeValidator.new('String', ["Credit", "Debit"])
200
+ unless validator.valid?(charge_type)
201
+ fail ArgumentError, "invalid value for 'charge_type', must be one of #{validator.allowable_values}."
202
+ end
203
+ @charge_type = charge_type
204
+ end
205
+
206
+ # Checks equality by comparing each attribute.
207
+ # @param [Object] Object to be compared
208
+ def ==(o)
209
+ return true if self.equal?(o)
210
+ self.class == o.class &&
211
+ name == o.name &&
212
+ description == o.description &&
213
+ amount == o.amount &&
214
+ tax_amount == o.tax_amount &&
215
+ period_start == o.period_start &&
216
+ period_end == o.period_end &&
217
+ charge_type == o.charge_type &&
218
+ trial == o.trial &&
219
+ product == o.product &&
220
+ product_rate_plan == o.product_rate_plan &&
221
+ pricing_component == o.pricing_component &&
222
+ pricing_component_value == o.pricing_component_value
223
+ end
224
+
225
+ # @see the `==` method
226
+ # @param [Object] Object to be compared
227
+ def eql?(o)
228
+ self == o
229
+ end
230
+
231
+ # Calculates hash code according to all attributes.
232
+ # @return [Fixnum] Hash code
233
+ def hash
234
+ [name, description, amount, tax_amount, period_start, period_end, charge_type, trial, product, product_rate_plan, pricing_component, pricing_component_value].hash
235
+ end
236
+
237
+ # Builds the object from hash
238
+ # @param [Hash] attributes Model attributes in the form of hash
239
+ # @return [Object] Returns the model itself
240
+ def build_from_hash(attributes)
241
+ return nil unless attributes.is_a?(Hash)
242
+ self.class.swagger_types.each_pair do |key, type|
243
+ if type =~ /^Array<(.*)>/i
244
+ # check to ensure the input is an array given that the the attribute
245
+ # is documented as an array but the input is not
246
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
247
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
248
+ end
249
+ elsif !attributes[self.class.attribute_map[key]].nil?
250
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
251
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
252
+ end
253
+
254
+ self
255
+ end
256
+
257
+ # Deserializes the data based on type
258
+ # @param string type Data type
259
+ # @param string value Value to be deserialized
260
+ # @return [Object] Deserialized data
261
+ def _deserialize(type, value)
262
+ case type.to_sym
263
+ when :DateTime
264
+ DateTime.parse(value)
265
+ when :Date
266
+ Date.parse(value)
267
+ when :String
268
+ value.to_s
269
+ when :Integer
270
+ value.to_i
271
+ when :Float
272
+ value.to_f
273
+ when :BOOLEAN
274
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
275
+ true
276
+ else
277
+ false
278
+ end
279
+ when :Object
280
+ # generic object (usually a Hash), return directly
281
+ value
282
+ when /\AArray<(?<inner_type>.+)>\z/
283
+ inner_type = Regexp.last_match[:inner_type]
284
+ value.map { |v| _deserialize(inner_type, v) }
285
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
286
+ k_type = Regexp.last_match[:k_type]
287
+ v_type = Regexp.last_match[:v_type]
288
+ {}.tap do |hash|
289
+ value.each do |k, v|
290
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
291
+ end
292
+ end
293
+ else # model
294
+ temp_model = BillForward.const_get(type).new
295
+ temp_model.build_from_hash(value)
296
+ end
297
+ end
298
+
299
+ # Returns the string representation of the object
300
+ # @return [String] String presentation of the object
301
+ def to_s
302
+ to_hash.to_s
303
+ end
304
+
305
+ # to_body is an alias to to_hash (backward compatibility)
306
+ # @return [Hash] Returns the object in the form of hash
307
+ def to_body
308
+ to_hash
309
+ end
310
+
311
+ # Returns the object in the form of hash
312
+ # @return [Hash] Returns the object in the form of hash
313
+ def to_hash
314
+ hash = {}
315
+ self.class.attribute_map.each_pair do |attr, param|
316
+ value = self.send(attr)
317
+ next if value.nil?
318
+ hash[param] = _to_hash(value)
319
+ end
320
+ hash
321
+ end
322
+
323
+ # Outputs non-array value in the form of hash
324
+ # For object, use to_hash. Otherwise, just return the value
325
+ # @param [Object] value Any valid value
326
+ # @return [Hash] Returns the value in the form of hash
327
+ def _to_hash(value)
328
+ if value.is_a?(Array)
329
+ value.compact.map{ |v| _to_hash(v) }
330
+ elsif value.is_a?(Hash)
331
+ {}.tap do |hash|
332
+ value.each { |k, v| hash[k] = _to_hash(v) }
333
+ end
334
+ elsif value.respond_to? :to_hash
335
+ value.to_hash
336
+ else
337
+ value
338
+ end
339
+ end
340
+
341
+ end
342
+
343
+ end