Class: CyberSourceMergedSpec::AutoRental

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/cyber_source_merged_spec/models/auto_rental.rb

Overview

AutoRental Model.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(no_show_indicator: SKIP, customer_name: SKIP, vehicle_class: SKIP, distance_travelled: SKIP, distance_unit: SKIP, return_date_time: SKIP, rental_date_time: SKIP, max_free_distance: SKIP, insurance_indicator: SKIP, program_code: SKIP, return_address: SKIP, rental_address: SKIP, agreement_number: SKIP, odometer_reading: SKIP, vehicle_identification_number: SKIP, company_id: SKIP, number_of_additional_drivers: SKIP, driver_age: SKIP, special_program_code: SKIP, vehicle_make: SKIP, vehicle_model: SKIP, time_period: SKIP, commodity_code: SKIP, customer_service_phone_number: SKIP, tax_details: SKIP, insurance_amount: SKIP, one_way_drop_off_amount: SKIP, adjusted_amount_indicator: SKIP, adjusted_amount: SKIP, fuel_charges: SKIP, weekly_rental_rate: SKIP, daily_rental_rate: SKIP, rate_per_mile: SKIP, mileage_charge: SKIP, extra_mileage_charge: SKIP, late_fee_amount: SKIP, towing_charge: SKIP, extra_charge: SKIP, gps_charge: SKIP, phone_charge: SKIP, parking_violation_charge: SKIP, other_charges: SKIP, company_name: SKIP, affiliate_name: SKIP, additional_properties: nil) ⇒ AutoRental

Returns a new instance of AutoRental.



441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 441

def initialize(no_show_indicator: SKIP, customer_name: SKIP,
               vehicle_class: SKIP, distance_travelled: SKIP,
               distance_unit: SKIP, return_date_time: SKIP,
               rental_date_time: SKIP, max_free_distance: SKIP,
               insurance_indicator: SKIP, program_code: SKIP,
               return_address: SKIP, rental_address: SKIP,
               agreement_number: SKIP, odometer_reading: SKIP,
               vehicle_identification_number: SKIP, company_id: SKIP,
               number_of_additional_drivers: SKIP, driver_age: SKIP,
               special_program_code: SKIP, vehicle_make: SKIP,
               vehicle_model: SKIP, time_period: SKIP, commodity_code: SKIP,
               customer_service_phone_number: SKIP, tax_details: SKIP,
               insurance_amount: SKIP, one_way_drop_off_amount: SKIP,
               adjusted_amount_indicator: SKIP, adjusted_amount: SKIP,
               fuel_charges: SKIP, weekly_rental_rate: SKIP,
               daily_rental_rate: SKIP, rate_per_mile: SKIP,
               mileage_charge: SKIP, extra_mileage_charge: SKIP,
               late_fee_amount: SKIP, towing_charge: SKIP,
               extra_charge: SKIP, gps_charge: SKIP, phone_charge: SKIP,
               parking_violation_charge: SKIP, other_charges: SKIP,
               company_name: SKIP, affiliate_name: SKIP,
               additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @no_show_indicator = no_show_indicator unless no_show_indicator == SKIP
  @customer_name = customer_name unless customer_name == SKIP
  @vehicle_class = vehicle_class unless vehicle_class == SKIP
  @distance_travelled = distance_travelled unless distance_travelled == SKIP
  @distance_unit = distance_unit unless distance_unit == SKIP
  @return_date_time = return_date_time unless return_date_time == SKIP
  @rental_date_time = rental_date_time unless rental_date_time == SKIP
  @max_free_distance = max_free_distance unless max_free_distance == SKIP
  @insurance_indicator = insurance_indicator unless insurance_indicator == SKIP
  @program_code = program_code unless program_code == SKIP
  @return_address = return_address unless return_address == SKIP
  @rental_address = rental_address unless rental_address == SKIP
  @agreement_number = agreement_number unless agreement_number == SKIP
  @odometer_reading = odometer_reading unless odometer_reading == SKIP
  unless vehicle_identification_number == SKIP
    @vehicle_identification_number =
      vehicle_identification_number
  end
  @company_id = company_id unless company_id == SKIP
  unless number_of_additional_drivers == SKIP
    @number_of_additional_drivers =
      number_of_additional_drivers
  end
  @driver_age = driver_age unless driver_age == SKIP
  @special_program_code = special_program_code unless special_program_code == SKIP
  @vehicle_make = vehicle_make unless vehicle_make == SKIP
  @vehicle_model = vehicle_model unless vehicle_model == SKIP
  @time_period = time_period unless time_period == SKIP
  @commodity_code = commodity_code unless commodity_code == SKIP
  unless customer_service_phone_number == SKIP
    @customer_service_phone_number =
      customer_service_phone_number
  end
  @tax_details = tax_details unless tax_details == SKIP
  @insurance_amount = insurance_amount unless insurance_amount == SKIP
  @one_way_drop_off_amount = one_way_drop_off_amount unless one_way_drop_off_amount == SKIP
  unless adjusted_amount_indicator == SKIP
    @adjusted_amount_indicator =
      adjusted_amount_indicator
  end
  @adjusted_amount = adjusted_amount unless adjusted_amount == SKIP
  @fuel_charges = fuel_charges unless fuel_charges == SKIP
  @weekly_rental_rate = weekly_rental_rate unless weekly_rental_rate == SKIP
  @daily_rental_rate = daily_rental_rate unless daily_rental_rate == SKIP
  @rate_per_mile = rate_per_mile unless rate_per_mile == SKIP
  @mileage_charge = mileage_charge unless mileage_charge == SKIP
  @extra_mileage_charge = extra_mileage_charge unless extra_mileage_charge == SKIP
  @late_fee_amount = late_fee_amount unless late_fee_amount == SKIP
  @towing_charge = towing_charge unless towing_charge == SKIP
  @extra_charge = extra_charge unless extra_charge == SKIP
  @gps_charge = gps_charge unless gps_charge == SKIP
  @phone_charge = phone_charge unless phone_charge == SKIP
  @parking_violation_charge = parking_violation_charge unless parking_violation_charge == SKIP
  @other_charges = other_charges unless other_charges == SKIP
  @company_name = company_name unless company_name == SKIP
  @affiliate_name = affiliate_name unless affiliate_name == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#adjusted_amountString

Adjusted Amount indicates whether any miscellaneous charges were incurred after the vehicle was returned. For authorizations, this field is supported only for American Express. For captures, this field is supported only for MasterCard and American Express. NOTE For American Express, this field is required if the travelInformation.autoRental.adjustedAmountIndicator field is included in the request and has a value; otherwise, this field is optional. For all other card types, this field is ignored.

Returns:

  • (String)


261
262
263
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 261

def adjusted_amount
  @adjusted_amount
end

#adjusted_amount_indicatorString

For MasterCard and Discover: Adjusted amount indicator code that indicates any miscellaneous charges incurred after the auto was returned. Possible values:

  • A - Drop-off charges
  • B - Delivery charges
  • C - Parking expenses
  • D - Extra hours
  • E - Violations
  • X - More than one of the above charges For American Express: Audit indicator code that indicates any adjustment for mileage, fuel, auto damage, etc. made to a rental agreement and whether the cardholder was notified. Possible value for the authorization service:
  • A (default): adjustment amount greater than 0 (zero) Possible values for the capture service:
  • X - Multiple adjustments
  • Y - One adjustment only; Cardmember notified
  • Z - One adjustment only; Cardmember not notified. This value is used as the default if the request does not include this field and includes an adjustment amount greater than 0 (zero). This is an optional field.

Returns:

  • (String)


248
249
250
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 248

def adjusted_amount_indicator
  @adjusted_amount_indicator
end

#affiliate_nameString

When merchant wants to send the affiliate name.

Returns:

  • (String)


334
335
336
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 334

def affiliate_name
  @affiliate_name
end

#agreement_numberString

Auto rental agency’s agreement (invoice) number provided to the customer. It is used to trace any inquiries about transactions. This field is supported for Visa, MasterCard, and American Express. This Merchant-defined value, which may be composed of any combination of characters and/or numerals, may become part of the descriptive bill on the Cardmember's statement.

Returns:

  • (String)


138
139
140
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 138

def agreement_number
  @agreement_number
end

#commodity_codeString

Commodity code or International description code used to classify the item. Contact your acquirer for a list of codes.

Returns:

  • (String)


199
200
201
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 199

def commodity_code
  @commodity_code
end

#company_idString

Corporate Identifier provides the unique identifier of the corporation or entity renting the vehicle:

Card Specific Validation VISA MasterCard Discover AMEX
Filed Length NA 12 NA NA
Field Type NA AN NA NA
M/O/C NA O NA NA

Returns:

  • (String)


157
158
159
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 157

def company_id
  @company_id
end

#company_nameString

Merchant to send their auto rental company name

Returns:

  • (String)


330
331
332
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 330

def company_name
  @company_name
end

#customer_nameString

Name of the individual making the rental agreement. Valid data lengths by card:

Card Specific Validation VISA MasterCard Discover AMEX
Filed Length 40 40 29 26
Field Type AN ANS AN AN
M/O/C O M M M

Returns:

  • (String)


28
29
30
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 28

def customer_name
  @customer_name
end

#customer_service_phone_numberString

Customer service telephone number that is used to resolve questions or disputes. Include the area code, exchange, and number. This field is supported only for MasterCard and American Express.

Returns:

  • (String)


205
206
207
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 205

def customer_service_phone_number
  @customer_service_phone_number
end

#daily_rental_rateString

Daily auto rental rate charged. This field is supported only for MasterCard and American Express. Field - Time Period needs to be populated with Daily if this field is present

Returns:

  • (String)


279
280
281
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 279

def daily_rental_rate
  @daily_rental_rate
end

#distance_travelledString

Total number of miles driven by the customer. This field is supported only for MasterCard and American Express.

Returns:

  • (String)


78
79
80
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 78

def distance_travelled
  @distance_travelled
end

#distance_unitString

Miles/Kilometers Indicator shows whether the “miles” fields are expressed in miles or kilometers. Allowed values:

  • K - Kilometers
  • M - Miles

Returns:

  • (String)


86
87
88
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 86

def distance_unit
  @distance_unit
end

#driver_ageString

Age of the driver renting the vehicle.

Returns:

  • (String)


166
167
168
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 166

def driver_age
  @driver_age
end

#extra_chargeString

(Extra Charges) provides the extra charges associated with the vehicle rental.

Returns:

  • (String)


308
309
310
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 308

def extra_charge
  @extra_charge
end

#extra_mileage_chargeString

Extra mileage charges that extend beyond the basic rental agreement. This field is supported only for Visa.

Returns:

  • (String)


294
295
296
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 294

def extra_mileage_charge
  @extra_mileage_charge
end

#fuel_chargesString

Extra gasoline charges that extend beyond the basic rental agreement. This field is supported only for Visa.

Returns:

  • (String)


266
267
268
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 266

def fuel_charges
  @fuel_charges
end

#gps_chargeString

Amount charged for renting a Global Positioning Service (GPS).

Returns:

  • (String)


312
313
314
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 312

def gps_charge
  @gps_charge
end

#insurance_amountString

Insurance charges. Field is conditional and can include decimal point.

Returns:

  • (String)


216
217
218
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 216

def insurance_amount
  @insurance_amount
end

#insurance_indicatorTrueClass | FalseClass

Used for MC and Discover Valid values:

  • true - Yes (insurance was purchased)
  • false - No (insurance was not purchased)

Returns:

  • (TrueClass | FalseClass)


111
112
113
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 111

def insurance_indicator
  @insurance_indicator
end

#late_fee_amountString

Extra charges related to a late return of the rented auto. This field is supported only for Visa.

Returns:

  • (String)


299
300
301
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 299

def late_fee_amount
  @late_fee_amount
end

#max_free_distanceString

Maximum number of free miles or kilometers allowed to a customer for the duration of the auto rental agreement. This field is supported only for MasterCard and American Express.

Returns:

  • (String)


104
105
106
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 104

def max_free_distance
  @max_free_distance
end

#mileage_chargeString

Regular Mileage Charge provides the amount charged for regular miles traveled during vehicle rental. Two decimal places

Returns:

  • (String)


289
290
291
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 289

def mileage_charge
  @mileage_charge
end

#no_show_indicatorTrueClass | FalseClass

No Show Indicator provides an indicator noting that the individual did not show up after making a reservation for a vehicle. Possible values:

  • true
  • false

Returns:

  • (TrueClass | FalseClass)


18
19
20
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 18

def no_show_indicator
  @no_show_indicator
end

#number_of_additional_driversString

The number of additional drivers included on the rental agreement not including the individual who signed the rental agreement.

Returns:

  • (String)


162
163
164
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 162

def number_of_additional_drivers
  @number_of_additional_drivers
end

#odometer_readingString

Odometer reading at time of vehicle rental.

Returns:

  • (String)


142
143
144
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 142

def odometer_reading
  @odometer_reading
end

#one_way_drop_off_amountString

Extra charges incurred for a one-way rental agreement for the auto. This field is supported only for Visa.

Returns:

  • (String)


221
222
223
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 221

def one_way_drop_off_amount
  @one_way_drop_off_amount
end

#other_chargesString

Total amount charged for all other miscellaneous charges not previously defined.

Returns:

  • (String)


326
327
328
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 326

def other_charges
  @other_charges
end

#parking_violation_chargeString

Extra charges incurred due to a parking violation for the auto. This field is supported only for Visa.

Returns:

  • (String)


321
322
323
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 321

def parking_violation_charge
  @parking_violation_charge
end

#phone_chargeString

Additional charges incurred for phone usage included on the total bill.

Returns:

  • (String)


316
317
318
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 316

def phone_charge
  @phone_charge
end

#program_codeString

Used to identify special circumstances applicable to the Card Transaction or Cardholder, such as "renter” or ”show”. This code is 2 digit value agreed by Merchant and processor.

Returns:

  • (String)


117
118
119
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 117

def program_code
  @program_code
end

#rate_per_mileString

Rate charged for each mile. This field is supported only for MasterCard and American Express.

Returns:

  • (String)


284
285
286
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 284

def rate_per_mile
  @rate_per_mile
end

#rental_addressRentalAddress

Used to identify special circumstances applicable to the Card Transaction or Cardholder, such as "renter” or ”show”. This code is 2 digit value agreed by Merchant and processor.

Returns:



129
130
131
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 129

def rental_address
  @rental_address
end

#rental_date_timeString

Date/time the auto was picked up from the rental agency. Format: yyyy-MM-dd HH-mm-ss z This field is supported for Visa, MasterCard, and American Express.

Returns:

  • (String)


98
99
100
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 98

def rental_date_time
  @rental_date_time
end

#return_addressReturnAddress

Used to identify special circumstances applicable to the Card Transaction or Cardholder, such as "renter” or ”show”. This code is 2 digit value agreed by Merchant and processor.

Returns:



123
124
125
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 123

def return_address
  @return_address
end

#return_date_timeString

Date/time the auto was returned to the rental agency. Format: yyyy-MM-dd HH-mm-ss z This field is supported for Visa, MasterCard, and American Express.

Returns:

  • (String)


92
93
94
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 92

def return_date_time
  @return_date_time
end

#special_program_codeString

Program code used to identify special circumstances, such as “frequent renter” or “no show” status for the renter. Possible values:

  • 0: not applicable (default)
  • 1: frequent renter
  • 2: no show For authorizations, this field is supported only for Visa. For captures, this field is supported for Visa, MasterCard, and American Express. Code for special programs applicable to the Card Transaction or the Cardholder.

Returns:

  • (String)


180
181
182
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 180

def special_program_code
  @special_program_code
end

#tax_detailsTaxDetails

Customer service telephone number that is used to resolve questions or disputes. Include the area code, exchange, and number. This field is supported only for MasterCard and American Express.

Returns:



211
212
213
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 211

def tax_details
  @tax_details
end

#time_periodString

Indicates the time period for which the vehicle rental rate applies (e.g., daily, weekly or monthly). Daily, Weekly and Monthly are valid values.

Returns:

  • (String)


193
194
195
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 193

def time_period
  @time_period
end

#towing_chargeString

(Towing Charges) provides the amount charged to tow the rental vehicle.

Returns:

  • (String)


303
304
305
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 303

def towing_charge
  @towing_charge
end

#vehicle_classString

Classification of the rented auto. NOTE For VISA, this is a 2-byte optional code. Valid values for American Express & MasterCard:

American Express MasterCard Description
0001 0001 Mini
0002 0002 Subcompact
0003 0003 Economy
0004 0004 Compact
0005 0005 Midsize
0006 0006 Intermediate
0007 0007 Standard
0008 0008 Fulll size
0009 0009 Luxury
0010 0010 Premium
0011 0011 Minivan
0012 0012 12-passenger van
0013 0013 Moving van
0014 0014 15-passenger van
0015 0015 Cargo van
0016 0016 12-foot truck
0017 0017 20-foot truck
0018 0018 24-foot truck
0019 0019 26-foot truck
0020 0020 Moped
0021 0021 Stretch
0022 0022 Regular
0023 0023 Unique
0024 0024 Exotic
0025 0025 Small/medium truck
0026 0026 Large truck
0027 0027 Small SUV
0028 0028 Medium SUV
0029 0029 Large SUV
0030 0030 Exotic SUV
9999 9999 Miscellaneous

Additional Values allowed only for American Express:

American Express MasterCard Description
0031 NA Four Wheel Drive
0032 NA Special
0099 NA Taxi

Returns:

  • (String)


73
74
75
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 73

def vehicle_class
  @vehicle_class
end

#vehicle_identification_numberString

This field contains a unique identifier assigned by the company to the vehicle.

Returns:

  • (String)


147
148
149
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 147

def vehicle_identification_number
  @vehicle_identification_number
end

#vehicle_makeString

Make of the vehicle being rented (e.g., Chevrolet or Ford).

Returns:

  • (String)


184
185
186
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 184

def vehicle_make
  @vehicle_make
end

#vehicle_modelString

Model of the vehicle being rented (e.g., Cavalier or Focus).

Returns:

  • (String)


188
189
190
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 188

def vehicle_model
  @vehicle_model
end

#weekly_rental_rateString

Weekly Rental Amount provides the amount charged for a seven-day rental period. Field - Time Period needs to be populated with Weekly if this field is present

Returns:

  • (String)


272
273
274
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 272

def weekly_rental_rate
  @weekly_rental_rate
end

Class Method Details

.from_element(root) ⇒ Object



651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 651

def self.from_element(root)
  no_show_indicator = XmlUtilities.from_element(root, 'noShowIndicator',
                                                TrueClass)
  customer_name = XmlUtilities.from_element(root, 'customerName', String)
  vehicle_class = XmlUtilities.from_element(root, 'vehicleClass', String)
  distance_travelled = XmlUtilities.from_element(root, 'distanceTravelled',
                                                 String)
  distance_unit = XmlUtilities.from_element(root, 'distanceUnit', String)
  return_date_time = XmlUtilities.from_element(root, 'returnDateTime',
                                               String)
  rental_date_time = XmlUtilities.from_element(root, 'rentalDateTime',
                                               String)
  max_free_distance = XmlUtilities.from_element(root, 'maxFreeDistance',
                                                String)
  insurance_indicator = XmlUtilities.from_element(root,
                                                  'insuranceIndicator',
                                                  TrueClass)
  program_code = XmlUtilities.from_element(root, 'programCode', String)
  return_address = XmlUtilities.from_element(root, 'ReturnAddress',
                                             ReturnAddress)
  rental_address = XmlUtilities.from_element(root, 'RentalAddress',
                                             RentalAddress)
  agreement_number = XmlUtilities.from_element(root, 'agreementNumber',
                                               String)
  odometer_reading = XmlUtilities.from_element(root, 'odometerReading',
                                               String)
  vehicle_identification_number = XmlUtilities.from_element(
    root, 'vehicleIdentificationNumber', String
  )
  company_id = XmlUtilities.from_element(root, 'companyId', String)
  number_of_additional_drivers = XmlUtilities.from_element(
    root, 'numberOfAdditionalDrivers', String
  )
  driver_age = XmlUtilities.from_element(root, 'driverAge', String)
  special_program_code = XmlUtilities.from_element(root,
                                                   'specialProgramCode',
                                                   String)
  vehicle_make = XmlUtilities.from_element(root, 'vehicleMake', String)
  vehicle_model = XmlUtilities.from_element(root, 'vehicleModel', String)
  time_period = XmlUtilities.from_element(root, 'timePeriod', String)
  commodity_code = XmlUtilities.from_element(root, 'commodityCode', String)
  customer_service_phone_number = XmlUtilities.from_element(
    root, 'customerServicePhoneNumber', String
  )
  tax_details = XmlUtilities.from_element(root, 'TaxDetails', TaxDetails)
  insurance_amount = XmlUtilities.from_element(root, 'insuranceAmount',
                                               String)
  one_way_drop_off_amount = XmlUtilities.from_element(root,
                                                      'oneWayDropOffAmount',
                                                      String)
  adjusted_amount_indicator = XmlUtilities.from_element(
    root, 'adjustedAmountIndicator', String
  )
  adjusted_amount = XmlUtilities.from_element(root, 'adjustedAmount',
                                              String)
  fuel_charges = XmlUtilities.from_element(root, 'fuelCharges', String)
  weekly_rental_rate = XmlUtilities.from_element(root, 'weeklyRentalRate',
                                                 String)
  daily_rental_rate = XmlUtilities.from_element(root, 'dailyRentalRate',
                                                String)
  rate_per_mile = XmlUtilities.from_element(root, 'ratePerMile', String)
  mileage_charge = XmlUtilities.from_element(root, 'mileageCharge', String)
  extra_mileage_charge = XmlUtilities.from_element(root,
                                                   'extraMileageCharge',
                                                   String)
  late_fee_amount = XmlUtilities.from_element(root, 'lateFeeAmount', String)
  towing_charge = XmlUtilities.from_element(root, 'towingCharge', String)
  extra_charge = XmlUtilities.from_element(root, 'extraCharge', String)
  gps_charge = XmlUtilities.from_element(root, 'gpsCharge', String)
  phone_charge = XmlUtilities.from_element(root, 'phoneCharge', String)
  parking_violation_charge = XmlUtilities.from_element(
    root, 'parkingViolationCharge', String
  )
  other_charges = XmlUtilities.from_element(root, 'otherCharges', String)
  company_name = XmlUtilities.from_element(root, 'companyName', String)
  affiliate_name = XmlUtilities.from_element(root, 'affiliateName', String)

  new(no_show_indicator: no_show_indicator,
      customer_name: customer_name,
      vehicle_class: vehicle_class,
      distance_travelled: distance_travelled,
      distance_unit: distance_unit,
      return_date_time: return_date_time,
      rental_date_time: rental_date_time,
      max_free_distance: max_free_distance,
      insurance_indicator: insurance_indicator,
      program_code: program_code,
      return_address: return_address,
      rental_address: rental_address,
      agreement_number: agreement_number,
      odometer_reading: odometer_reading,
      vehicle_identification_number: vehicle_identification_number,
      company_id: company_id,
      number_of_additional_drivers: number_of_additional_drivers,
      driver_age: driver_age,
      special_program_code: special_program_code,
      vehicle_make: vehicle_make,
      vehicle_model: vehicle_model,
      time_period: time_period,
      commodity_code: commodity_code,
      customer_service_phone_number: customer_service_phone_number,
      tax_details: tax_details,
      insurance_amount: insurance_amount,
      one_way_drop_off_amount: one_way_drop_off_amount,
      adjusted_amount_indicator: adjusted_amount_indicator,
      adjusted_amount: adjusted_amount,
      fuel_charges: fuel_charges,
      weekly_rental_rate: weekly_rental_rate,
      daily_rental_rate: daily_rental_rate,
      rate_per_mile: rate_per_mile,
      mileage_charge: mileage_charge,
      extra_mileage_charge: extra_mileage_charge,
      late_fee_amount: late_fee_amount,
      towing_charge: towing_charge,
      extra_charge: extra_charge,
      gps_charge: gps_charge,
      phone_charge: phone_charge,
      parking_violation_charge: parking_violation_charge,
      other_charges: other_charges,
      company_name: company_name,
      affiliate_name: affiliate_name,
      additional_properties: additional_properties)
end

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 526

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  no_show_indicator =
    hash.key?('noShowIndicator') ? hash['noShowIndicator'] : SKIP
  customer_name = hash.key?('customerName') ? hash['customerName'] : SKIP
  vehicle_class = hash.key?('vehicleClass') ? hash['vehicleClass'] : SKIP
  distance_travelled =
    hash.key?('distanceTravelled') ? hash['distanceTravelled'] : SKIP
  distance_unit = hash.key?('distanceUnit') ? hash['distanceUnit'] : SKIP
  return_date_time =
    hash.key?('returnDateTime') ? hash['returnDateTime'] : SKIP
  rental_date_time =
    hash.key?('rentalDateTime') ? hash['rentalDateTime'] : SKIP
  max_free_distance =
    hash.key?('maxFreeDistance') ? hash['maxFreeDistance'] : SKIP
  insurance_indicator =
    hash.key?('insuranceIndicator') ? hash['insuranceIndicator'] : SKIP
  program_code = hash.key?('programCode') ? hash['programCode'] : SKIP
  return_address = ReturnAddress.from_hash(hash['returnAddress']) if hash['returnAddress']
  rental_address = RentalAddress.from_hash(hash['rentalAddress']) if hash['rentalAddress']
  agreement_number =
    hash.key?('agreementNumber') ? hash['agreementNumber'] : SKIP
  odometer_reading =
    hash.key?('odometerReading') ? hash['odometerReading'] : SKIP
  vehicle_identification_number =
    hash.key?('vehicleIdentificationNumber') ? hash['vehicleIdentificationNumber'] : SKIP
  company_id = hash.key?('companyId') ? hash['companyId'] : SKIP
  number_of_additional_drivers =
    hash.key?('numberOfAdditionalDrivers') ? hash['numberOfAdditionalDrivers'] : SKIP
  driver_age = hash.key?('driverAge') ? hash['driverAge'] : SKIP
  special_program_code =
    hash.key?('specialProgramCode') ? hash['specialProgramCode'] : SKIP
  vehicle_make = hash.key?('vehicleMake') ? hash['vehicleMake'] : SKIP
  vehicle_model = hash.key?('vehicleModel') ? hash['vehicleModel'] : SKIP
  time_period = hash.key?('timePeriod') ? hash['timePeriod'] : SKIP
  commodity_code = hash.key?('commodityCode') ? hash['commodityCode'] : SKIP
  customer_service_phone_number =
    hash.key?('customerServicePhoneNumber') ? hash['customerServicePhoneNumber'] : SKIP
  tax_details = TaxDetails.from_hash(hash['taxDetails']) if hash['taxDetails']
  insurance_amount =
    hash.key?('insuranceAmount') ? hash['insuranceAmount'] : SKIP
  one_way_drop_off_amount =
    hash.key?('oneWayDropOffAmount') ? hash['oneWayDropOffAmount'] : SKIP
  adjusted_amount_indicator =
    hash.key?('adjustedAmountIndicator') ? hash['adjustedAmountIndicator'] : SKIP
  adjusted_amount =
    hash.key?('adjustedAmount') ? hash['adjustedAmount'] : SKIP
  fuel_charges = hash.key?('fuelCharges') ? hash['fuelCharges'] : SKIP
  weekly_rental_rate =
    hash.key?('weeklyRentalRate') ? hash['weeklyRentalRate'] : SKIP
  daily_rental_rate =
    hash.key?('dailyRentalRate') ? hash['dailyRentalRate'] : SKIP
  rate_per_mile = hash.key?('ratePerMile') ? hash['ratePerMile'] : SKIP
  mileage_charge = hash.key?('mileageCharge') ? hash['mileageCharge'] : SKIP
  extra_mileage_charge =
    hash.key?('extraMileageCharge') ? hash['extraMileageCharge'] : SKIP
  late_fee_amount =
    hash.key?('lateFeeAmount') ? hash['lateFeeAmount'] : SKIP
  towing_charge = hash.key?('towingCharge') ? hash['towingCharge'] : SKIP
  extra_charge = hash.key?('extraCharge') ? hash['extraCharge'] : SKIP
  gps_charge = hash.key?('gpsCharge') ? hash['gpsCharge'] : SKIP
  phone_charge = hash.key?('phoneCharge') ? hash['phoneCharge'] : SKIP
  parking_violation_charge =
    hash.key?('parkingViolationCharge') ? hash['parkingViolationCharge'] : SKIP
  other_charges = hash.key?('otherCharges') ? hash['otherCharges'] : SKIP
  company_name = hash.key?('companyName') ? hash['companyName'] : SKIP
  affiliate_name = hash.key?('affiliateName') ? hash['affiliateName'] : SKIP

  # Create a new hash for additional properties, removing known properties.
  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.
  AutoRental.new(no_show_indicator: no_show_indicator,
                 customer_name: customer_name,
                 vehicle_class: vehicle_class,
                 distance_travelled: distance_travelled,
                 distance_unit: distance_unit,
                 return_date_time: return_date_time,
                 rental_date_time: rental_date_time,
                 max_free_distance: max_free_distance,
                 insurance_indicator: insurance_indicator,
                 program_code: program_code,
                 return_address: return_address,
                 rental_address: rental_address,
                 agreement_number: agreement_number,
                 odometer_reading: odometer_reading,
                 vehicle_identification_number: vehicle_identification_number,
                 company_id: company_id,
                 number_of_additional_drivers: number_of_additional_drivers,
                 driver_age: driver_age,
                 special_program_code: special_program_code,
                 vehicle_make: vehicle_make,
                 vehicle_model: vehicle_model,
                 time_period: time_period,
                 commodity_code: commodity_code,
                 customer_service_phone_number: customer_service_phone_number,
                 tax_details: tax_details,
                 insurance_amount: insurance_amount,
                 one_way_drop_off_amount: one_way_drop_off_amount,
                 adjusted_amount_indicator: adjusted_amount_indicator,
                 adjusted_amount: adjusted_amount,
                 fuel_charges: fuel_charges,
                 weekly_rental_rate: weekly_rental_rate,
                 daily_rental_rate: daily_rental_rate,
                 rate_per_mile: rate_per_mile,
                 mileage_charge: mileage_charge,
                 extra_mileage_charge: extra_mileage_charge,
                 late_fee_amount: late_fee_amount,
                 towing_charge: towing_charge,
                 extra_charge: extra_charge,
                 gps_charge: gps_charge,
                 phone_charge: phone_charge,
                 parking_violation_charge: parking_violation_charge,
                 other_charges: other_charges,
                 company_name: company_name,
                 affiliate_name: affiliate_name,
                 additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 337

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['no_show_indicator'] = 'noShowIndicator'
  @_hash['customer_name'] = 'customerName'
  @_hash['vehicle_class'] = 'vehicleClass'
  @_hash['distance_travelled'] = 'distanceTravelled'
  @_hash['distance_unit'] = 'distanceUnit'
  @_hash['return_date_time'] = 'returnDateTime'
  @_hash['rental_date_time'] = 'rentalDateTime'
  @_hash['max_free_distance'] = 'maxFreeDistance'
  @_hash['insurance_indicator'] = 'insuranceIndicator'
  @_hash['program_code'] = 'programCode'
  @_hash['return_address'] = 'returnAddress'
  @_hash['rental_address'] = 'rentalAddress'
  @_hash['agreement_number'] = 'agreementNumber'
  @_hash['odometer_reading'] = 'odometerReading'
  @_hash['vehicle_identification_number'] = 'vehicleIdentificationNumber'
  @_hash['company_id'] = 'companyId'
  @_hash['number_of_additional_drivers'] = 'numberOfAdditionalDrivers'
  @_hash['driver_age'] = 'driverAge'
  @_hash['special_program_code'] = 'specialProgramCode'
  @_hash['vehicle_make'] = 'vehicleMake'
  @_hash['vehicle_model'] = 'vehicleModel'
  @_hash['time_period'] = 'timePeriod'
  @_hash['commodity_code'] = 'commodityCode'
  @_hash['customer_service_phone_number'] = 'customerServicePhoneNumber'
  @_hash['tax_details'] = 'taxDetails'
  @_hash['insurance_amount'] = 'insuranceAmount'
  @_hash['one_way_drop_off_amount'] = 'oneWayDropOffAmount'
  @_hash['adjusted_amount_indicator'] = 'adjustedAmountIndicator'
  @_hash['adjusted_amount'] = 'adjustedAmount'
  @_hash['fuel_charges'] = 'fuelCharges'
  @_hash['weekly_rental_rate'] = 'weeklyRentalRate'
  @_hash['daily_rental_rate'] = 'dailyRentalRate'
  @_hash['rate_per_mile'] = 'ratePerMile'
  @_hash['mileage_charge'] = 'mileageCharge'
  @_hash['extra_mileage_charge'] = 'extraMileageCharge'
  @_hash['late_fee_amount'] = 'lateFeeAmount'
  @_hash['towing_charge'] = 'towingCharge'
  @_hash['extra_charge'] = 'extraCharge'
  @_hash['gps_charge'] = 'gpsCharge'
  @_hash['phone_charge'] = 'phoneCharge'
  @_hash['parking_violation_charge'] = 'parkingViolationCharge'
  @_hash['other_charges'] = 'otherCharges'
  @_hash['company_name'] = 'companyName'
  @_hash['affiliate_name'] = 'affiliateName'
  @_hash
end

.nullablesObject

An array for nullable fields



437
438
439
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 437

def self.nullables
  []
end

.optionalsObject

An array for optional fields



387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 387

def self.optionals
  %w[
    no_show_indicator
    customer_name
    vehicle_class
    distance_travelled
    distance_unit
    return_date_time
    rental_date_time
    max_free_distance
    insurance_indicator
    program_code
    return_address
    rental_address
    agreement_number
    odometer_reading
    vehicle_identification_number
    company_id
    number_of_additional_drivers
    driver_age
    special_program_code
    vehicle_make
    vehicle_model
    time_period
    commodity_code
    customer_service_phone_number
    tax_details
    insurance_amount
    one_way_drop_off_amount
    adjusted_amount_indicator
    adjusted_amount
    fuel_charges
    weekly_rental_rate
    daily_rental_rate
    rate_per_mile
    mileage_charge
    extra_mileage_charge
    late_fee_amount
    towing_charge
    extra_charge
    gps_charge
    phone_charge
    parking_violation_charge
    other_charges
    company_name
    affiliate_name
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 878

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} no_show_indicator: #{@no_show_indicator.inspect}, customer_name:"\
  " #{@customer_name.inspect}, vehicle_class: #{@vehicle_class.inspect}, distance_travelled:"\
  " #{@distance_travelled.inspect}, distance_unit: #{@distance_unit.inspect},"\
  " return_date_time: #{@return_date_time.inspect}, rental_date_time:"\
  " #{@rental_date_time.inspect}, max_free_distance: #{@max_free_distance.inspect},"\
  " insurance_indicator: #{@insurance_indicator.inspect}, program_code:"\
  " #{@program_code.inspect}, return_address: #{@return_address.inspect}, rental_address:"\
  " #{@rental_address.inspect}, agreement_number: #{@agreement_number.inspect},"\
  " odometer_reading: #{@odometer_reading.inspect}, vehicle_identification_number:"\
  " #{@vehicle_identification_number.inspect}, company_id: #{@company_id.inspect},"\
  " number_of_additional_drivers: #{@number_of_additional_drivers.inspect}, driver_age:"\
  " #{@driver_age.inspect}, special_program_code: #{@special_program_code.inspect},"\
  " vehicle_make: #{@vehicle_make.inspect}, vehicle_model: #{@vehicle_model.inspect},"\
  " time_period: #{@time_period.inspect}, commodity_code: #{@commodity_code.inspect},"\
  " customer_service_phone_number: #{@customer_service_phone_number.inspect}, tax_details:"\
  " #{@tax_details.inspect}, insurance_amount: #{@insurance_amount.inspect},"\
  " one_way_drop_off_amount: #{@one_way_drop_off_amount.inspect}, adjusted_amount_indicator:"\
  " #{@adjusted_amount_indicator.inspect}, adjusted_amount: #{@adjusted_amount.inspect},"\
  " fuel_charges: #{@fuel_charges.inspect}, weekly_rental_rate:"\
  " #{@weekly_rental_rate.inspect}, daily_rental_rate: #{@daily_rental_rate.inspect},"\
  " rate_per_mile: #{@rate_per_mile.inspect}, mileage_charge: #{@mileage_charge.inspect},"\
  " extra_mileage_charge: #{@extra_mileage_charge.inspect}, late_fee_amount:"\
  " #{@late_fee_amount.inspect}, towing_charge: #{@towing_charge.inspect}, extra_charge:"\
  " #{@extra_charge.inspect}, gps_charge: #{@gps_charge.inspect}, phone_charge:"\
  " #{@phone_charge.inspect}, parking_violation_charge: #{@parking_violation_charge.inspect},"\
  " other_charges: #{@other_charges.inspect}, company_name: #{@company_name.inspect},"\
  " affiliate_name: #{@affiliate_name.inspect}, additional_properties:"\
  " #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 850

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} no_show_indicator: #{@no_show_indicator}, customer_name: #{@customer_name},"\
  " vehicle_class: #{@vehicle_class}, distance_travelled: #{@distance_travelled},"\
  " distance_unit: #{@distance_unit}, return_date_time: #{@return_date_time},"\
  " rental_date_time: #{@rental_date_time}, max_free_distance: #{@max_free_distance},"\
  " insurance_indicator: #{@insurance_indicator}, program_code: #{@program_code},"\
  " return_address: #{@return_address}, rental_address: #{@rental_address}, agreement_number:"\
  " #{@agreement_number}, odometer_reading: #{@odometer_reading},"\
  " vehicle_identification_number: #{@vehicle_identification_number}, company_id:"\
  " #{@company_id}, number_of_additional_drivers: #{@number_of_additional_drivers},"\
  " driver_age: #{@driver_age}, special_program_code: #{@special_program_code}, vehicle_make:"\
  " #{@vehicle_make}, vehicle_model: #{@vehicle_model}, time_period: #{@time_period},"\
  " commodity_code: #{@commodity_code}, customer_service_phone_number:"\
  " #{@customer_service_phone_number}, tax_details: #{@tax_details}, insurance_amount:"\
  " #{@insurance_amount}, one_way_drop_off_amount: #{@one_way_drop_off_amount},"\
  " adjusted_amount_indicator: #{@adjusted_amount_indicator}, adjusted_amount:"\
  " #{@adjusted_amount}, fuel_charges: #{@fuel_charges}, weekly_rental_rate:"\
  " #{@weekly_rental_rate}, daily_rental_rate: #{@daily_rental_rate}, rate_per_mile:"\
  " #{@rate_per_mile}, mileage_charge: #{@mileage_charge}, extra_mileage_charge:"\
  " #{@extra_mileage_charge}, late_fee_amount: #{@late_fee_amount}, towing_charge:"\
  " #{@towing_charge}, extra_charge: #{@extra_charge}, gps_charge: #{@gps_charge},"\
  " phone_charge: #{@phone_charge}, parking_violation_charge: #{@parking_violation_charge},"\
  " other_charges: #{@other_charges}, company_name: #{@company_name}, affiliate_name:"\
  " #{@affiliate_name}, additional_properties: #{@additional_properties}>"
end

#to_xml_element(doc, root_name) ⇒ Object



775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
# File 'lib/cyber_source_merged_spec/models/auto_rental.rb', line 775

def to_xml_element(doc, root_name)
  root = doc.create_element(root_name)

  XmlUtilities.add_as_subelement(doc, root, 'noShowIndicator',
                                 no_show_indicator)
  XmlUtilities.add_as_subelement(doc, root, 'customerName', customer_name)
  XmlUtilities.add_as_subelement(doc, root, 'vehicleClass', vehicle_class)
  XmlUtilities.add_as_subelement(doc, root, 'distanceTravelled',
                                 distance_travelled)
  XmlUtilities.add_as_subelement(doc, root, 'distanceUnit', distance_unit)
  XmlUtilities.add_as_subelement(doc, root, 'returnDateTime',
                                 return_date_time)
  XmlUtilities.add_as_subelement(doc, root, 'rentalDateTime',
                                 rental_date_time)
  XmlUtilities.add_as_subelement(doc, root, 'maxFreeDistance',
                                 max_free_distance)
  XmlUtilities.add_as_subelement(doc, root, 'insuranceIndicator',
                                 insurance_indicator)
  XmlUtilities.add_as_subelement(doc, root, 'programCode', program_code)
  XmlUtilities.add_as_subelement(doc, root, 'ReturnAddress', return_address)
  XmlUtilities.add_as_subelement(doc, root, 'RentalAddress', rental_address)
  XmlUtilities.add_as_subelement(doc, root, 'agreementNumber',
                                 agreement_number)
  XmlUtilities.add_as_subelement(doc, root, 'odometerReading',
                                 odometer_reading)
  XmlUtilities.add_as_subelement(doc, root, 'vehicleIdentificationNumber',
                                 vehicle_identification_number)
  XmlUtilities.add_as_subelement(doc, root, 'companyId', company_id)
  XmlUtilities.add_as_subelement(doc, root, 'numberOfAdditionalDrivers',
                                 number_of_additional_drivers)
  XmlUtilities.add_as_subelement(doc, root, 'driverAge', driver_age)
  XmlUtilities.add_as_subelement(doc, root, 'specialProgramCode',
                                 special_program_code)
  XmlUtilities.add_as_subelement(doc, root, 'vehicleMake', vehicle_make)
  XmlUtilities.add_as_subelement(doc, root, 'vehicleModel', vehicle_model)
  XmlUtilities.add_as_subelement(doc, root, 'timePeriod', time_period)
  XmlUtilities.add_as_subelement(doc, root, 'commodityCode', commodity_code)
  XmlUtilities.add_as_subelement(doc, root, 'customerServicePhoneNumber',
                                 customer_service_phone_number)
  XmlUtilities.add_as_subelement(doc, root, 'TaxDetails', tax_details)
  XmlUtilities.add_as_subelement(doc, root, 'insuranceAmount',
                                 insurance_amount)
  XmlUtilities.add_as_subelement(doc, root, 'oneWayDropOffAmount',
                                 one_way_drop_off_amount)
  XmlUtilities.add_as_subelement(doc, root, 'adjustedAmountIndicator',
                                 adjusted_amount_indicator)
  XmlUtilities.add_as_subelement(doc, root, 'adjustedAmount',
                                 adjusted_amount)
  XmlUtilities.add_as_subelement(doc, root, 'fuelCharges', fuel_charges)
  XmlUtilities.add_as_subelement(doc, root, 'weeklyRentalRate',
                                 weekly_rental_rate)
  XmlUtilities.add_as_subelement(doc, root, 'dailyRentalRate',
                                 daily_rental_rate)
  XmlUtilities.add_as_subelement(doc, root, 'ratePerMile', rate_per_mile)
  XmlUtilities.add_as_subelement(doc, root, 'mileageCharge', mileage_charge)
  XmlUtilities.add_as_subelement(doc, root, 'extraMileageCharge',
                                 extra_mileage_charge)
  XmlUtilities.add_as_subelement(doc, root, 'lateFeeAmount',
                                 late_fee_amount)
  XmlUtilities.add_as_subelement(doc, root, 'towingCharge', towing_charge)
  XmlUtilities.add_as_subelement(doc, root, 'extraCharge', extra_charge)
  XmlUtilities.add_as_subelement(doc, root, 'gpsCharge', gps_charge)
  XmlUtilities.add_as_subelement(doc, root, 'phoneCharge', phone_charge)
  XmlUtilities.add_as_subelement(doc, root, 'parkingViolationCharge',
                                 parking_violation_charge)
  XmlUtilities.add_as_subelement(doc, root, 'otherCharges', other_charges)
  XmlUtilities.add_as_subelement(doc, root, 'companyName', company_name)
  XmlUtilities.add_as_subelement(doc, root, 'affiliateName', affiliate_name)
  XmlUtilities.add_as_subelement(doc, root, 'additional_properties',
                                 additional_properties)

  root
end