first_data_gateway 1.0.1

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 (176) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/README.md +123 -0
  4. data/Rakefile +8 -0
  5. data/docs/AccessTokenResponse.md +11 -0
  6. data/docs/Address.md +14 -0
  7. data/docs/Airline.md +21 -0
  8. data/docs/AirlineAncillaryServiceCategory.md +8 -0
  9. data/docs/AirlineTravelRoute.md +16 -0
  10. data/docs/Amount.md +10 -0
  11. data/docs/AmountComponents.md +14 -0
  12. data/docs/AuthenticationApi.md +68 -0
  13. data/docs/AuthenticationResponseVerification.md +10 -0
  14. data/docs/BasketItem.md +11 -0
  15. data/docs/Billing.md +13 -0
  16. data/docs/CarRental.md +15 -0
  17. data/docs/CarRentalExtraCharges.md +8 -0
  18. data/docs/CardVerificationsTransaction.md +9 -0
  19. data/docs/ClientLocale.md +9 -0
  20. data/docs/Contact.md +11 -0
  21. data/docs/Error.md +10 -0
  22. data/docs/ErrorDetails.md +9 -0
  23. data/docs/ErrorResponse.md +11 -0
  24. data/docs/Expiration.md +9 -0
  25. data/docs/Frequency.md +9 -0
  26. data/docs/IndustrySpecificExtensions.md +10 -0
  27. data/docs/InstallmentOptions.md +10 -0
  28. data/docs/Lodging.md +12 -0
  29. data/docs/LodgingExtraCharges.md +8 -0
  30. data/docs/Order.md +10 -0
  31. data/docs/OrderApi.md +148 -0
  32. data/docs/PayPal.md +8 -0
  33. data/docs/PaymentApi.md +345 -0
  34. data/docs/PaymentCard.md +15 -0
  35. data/docs/PaymentCardAuthenticationRequest.md +8 -0
  36. data/docs/PaymentCardAuthenticationResult.md +12 -0
  37. data/docs/PaymentMethod.md +11 -0
  38. data/docs/PaymentSchedulesRequest.md +21 -0
  39. data/docs/PaymentSchedulesResponse.md +11 -0
  40. data/docs/PaymentUrlRequest.md +11 -0
  41. data/docs/PaymentUrlResponse.md +13 -0
  42. data/docs/PrimaryTransaction.md +18 -0
  43. data/docs/PrimaryTransactionAdditionalDetails.md +14 -0
  44. data/docs/ProcessorData.md +10 -0
  45. data/docs/ResponseType.md +7 -0
  46. data/docs/SecondaryTransaction.md +9 -0
  47. data/docs/Sepa.md +12 -0
  48. data/docs/SepaMandate.md +11 -0
  49. data/docs/Shipping.md +10 -0
  50. data/docs/SplitShipment.md +9 -0
  51. data/docs/StoredCredential.md +11 -0
  52. data/docs/TransactionErrorResponse.md +28 -0
  53. data/docs/TransactionResponse.md +27 -0
  54. data/docs/TransactionResponseAuthenticationRedirect.md +10 -0
  55. data/docs/TransactionResponseAuthenticationRedirectParams.md +10 -0
  56. data/docs/TransactionType.md +7 -0
  57. data/first_data_gateway.gemspec +45 -0
  58. data/git_push.sh +55 -0
  59. data/lib/simple/client_context.rb +15 -0
  60. data/lib/simple/gateway.rb +155 -0
  61. data/lib/simple/merchant_credentials.rb +10 -0
  62. data/lib/simple/signature.rb +52 -0
  63. data/lib/simple_client.rb +4 -0
  64. data/lib/swagger_client.rb +91 -0
  65. data/lib/swagger_client/api/authentication_api.rb +111 -0
  66. data/lib/swagger_client/api/order_api.rb +229 -0
  67. data/lib/swagger_client/api/payment_api.rb +517 -0
  68. data/lib/swagger_client/api_client.rb +390 -0
  69. data/lib/swagger_client/api_error.rb +38 -0
  70. data/lib/swagger_client/configuration.rb +202 -0
  71. data/lib/swagger_client/models/access_token_response.rb +252 -0
  72. data/lib/swagger_client/models/address.rb +361 -0
  73. data/lib/swagger_client/models/airline.rb +487 -0
  74. data/lib/swagger_client/models/airline_ancillary_service_category.rb +221 -0
  75. data/lib/swagger_client/models/airline_travel_route.rb +406 -0
  76. data/lib/swagger_client/models/amount.rb +217 -0
  77. data/lib/swagger_client/models/amount_components.rb +242 -0
  78. data/lib/swagger_client/models/authentication_response_verification.rb +239 -0
  79. data/lib/swagger_client/models/basket_item.rb +218 -0
  80. data/lib/swagger_client/models/billing.rb +282 -0
  81. data/lib/swagger_client/models/car_rental.rb +317 -0
  82. data/lib/swagger_client/models/car_rental_extra_charges.rb +221 -0
  83. data/lib/swagger_client/models/card_verifications_transaction.rb +203 -0
  84. data/lib/swagger_client/models/client_locale.rb +209 -0
  85. data/lib/swagger_client/models/contact.rb +279 -0
  86. data/lib/swagger_client/models/error.rb +211 -0
  87. data/lib/swagger_client/models/error_details.rb +199 -0
  88. data/lib/swagger_client/models/error_response.rb +218 -0
  89. data/lib/swagger_client/models/expiration.rb +207 -0
  90. data/lib/swagger_client/models/frequency.rb +270 -0
  91. data/lib/swagger_client/models/industry_specific_extensions.rb +206 -0
  92. data/lib/swagger_client/models/installment_options.rb +259 -0
  93. data/lib/swagger_client/models/lodging.rb +245 -0
  94. data/lib/swagger_client/models/lodging_extra_charges.rb +221 -0
  95. data/lib/swagger_client/models/order.rb +206 -0
  96. data/lib/swagger_client/models/pay_pal.rb +213 -0
  97. data/lib/swagger_client/models/payment_card.rb +294 -0
  98. data/lib/swagger_client/models/payment_card_authentication_request.rb +222 -0
  99. data/lib/swagger_client/models/payment_card_authentication_result.rb +336 -0
  100. data/lib/swagger_client/models/payment_method.rb +254 -0
  101. data/lib/swagger_client/models/payment_schedules_request.rb +398 -0
  102. data/lib/swagger_client/models/payment_schedules_response.rb +267 -0
  103. data/lib/swagger_client/models/payment_url_request.rb +232 -0
  104. data/lib/swagger_client/models/payment_url_response.rb +286 -0
  105. data/lib/swagger_client/models/primary_transaction.rb +298 -0
  106. data/lib/swagger_client/models/primary_transaction_additional_details.rb +244 -0
  107. data/lib/swagger_client/models/processor_data.rb +216 -0
  108. data/lib/swagger_client/models/response_type.rb +37 -0
  109. data/lib/swagger_client/models/secondary_transaction.rb +197 -0
  110. data/lib/swagger_client/models/sepa.rb +321 -0
  111. data/lib/swagger_client/models/sepa_mandate.rb +321 -0
  112. data/lib/swagger_client/models/shipping.rb +222 -0
  113. data/lib/swagger_client/models/split_shipment.rb +201 -0
  114. data/lib/swagger_client/models/stored_credential.rb +290 -0
  115. data/lib/swagger_client/models/transaction_error_response.rb +445 -0
  116. data/lib/swagger_client/models/transaction_response.rb +436 -0
  117. data/lib/swagger_client/models/transaction_response_authentication_redirect.rb +239 -0
  118. data/lib/swagger_client/models/transaction_response_authentication_redirect_params.rb +206 -0
  119. data/lib/swagger_client/models/transaction_type.rb +36 -0
  120. data/lib/swagger_client/version.rb +15 -0
  121. data/spec/api/authentication_api_spec.rb +51 -0
  122. data/spec/api/order_api_spec.rb +73 -0
  123. data/spec/api/payment_api_spec.rb +126 -0
  124. data/spec/api_client_spec.rb +226 -0
  125. data/spec/configuration_spec.rb +42 -0
  126. data/spec/models/access_token_response_spec.rb +64 -0
  127. data/spec/models/address_spec.rb +78 -0
  128. data/spec/models/airline_ancillary_service_category_spec.rb +46 -0
  129. data/spec/models/airline_spec.rb +124 -0
  130. data/spec/models/airline_travel_route_spec.rb +94 -0
  131. data/spec/models/amount_components_spec.rb +78 -0
  132. data/spec/models/amount_spec.rb +54 -0
  133. data/spec/models/authentication_response_verification_spec.rb +58 -0
  134. data/spec/models/basket_item_spec.rb +60 -0
  135. data/spec/models/billing_spec.rb +76 -0
  136. data/spec/models/car_rental_extra_charges_spec.rb +46 -0
  137. data/spec/models/car_rental_spec.rb +84 -0
  138. data/spec/models/card_verifications_transaction_spec.rb +48 -0
  139. data/spec/models/client_locale_spec.rb +48 -0
  140. data/spec/models/contact_spec.rb +60 -0
  141. data/spec/models/error_details_spec.rb +48 -0
  142. data/spec/models/error_response_spec.rb +60 -0
  143. data/spec/models/error_spec.rb +54 -0
  144. data/spec/models/expiration_spec.rb +48 -0
  145. data/spec/models/frequency_spec.rb +52 -0
  146. data/spec/models/industry_specific_extensions_spec.rb +54 -0
  147. data/spec/models/installment_options_spec.rb +54 -0
  148. data/spec/models/lodging_extra_charges_spec.rb +46 -0
  149. data/spec/models/lodging_spec.rb +66 -0
  150. data/spec/models/order_spec.rb +54 -0
  151. data/spec/models/pay_pal_spec.rb +42 -0
  152. data/spec/models/payment_card_authentication_request_spec.rb +46 -0
  153. data/spec/models/payment_card_authentication_result_spec.rb +78 -0
  154. data/spec/models/payment_card_spec.rb +88 -0
  155. data/spec/models/payment_method_spec.rb +64 -0
  156. data/spec/models/payment_schedules_request_spec.rb +124 -0
  157. data/spec/models/payment_schedules_response_spec.rb +64 -0
  158. data/spec/models/payment_url_request_spec.rb +60 -0
  159. data/spec/models/payment_url_response_spec.rb +76 -0
  160. data/spec/models/primary_transaction_additional_details_spec.rb +78 -0
  161. data/spec/models/primary_transaction_spec.rb +102 -0
  162. data/spec/models/processor_data_spec.rb +54 -0
  163. data/spec/models/response_type_spec.rb +36 -0
  164. data/spec/models/secondary_transaction_spec.rb +48 -0
  165. data/spec/models/sepa_mandate_spec.rb +64 -0
  166. data/spec/models/sepa_spec.rb +66 -0
  167. data/spec/models/shipping_spec.rb +54 -0
  168. data/spec/models/split_shipment_spec.rb +48 -0
  169. data/spec/models/stored_credential_spec.rb +68 -0
  170. data/spec/models/transaction_error_response_spec.rb +170 -0
  171. data/spec/models/transaction_response_authentication_redirect_params_spec.rb +54 -0
  172. data/spec/models/transaction_response_authentication_redirect_spec.rb +58 -0
  173. data/spec/models/transaction_response_spec.rb +164 -0
  174. data/spec/models/transaction_type_spec.rb +36 -0
  175. data/spec/spec_helper.rb +111 -0
  176. metadata +457 -0
@@ -0,0 +1,221 @@
1
+ =begin
2
+ #Payment Gateway API Specification
3
+
4
+ #Payment Gateway API for payment processing.
5
+
6
+ OpenAPI spec version: 0.0.1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: unset
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module SwaggerClient
16
+
17
+ class AirlineAncillaryServiceCategory
18
+ attr_accessor :service_category
19
+
20
+ class EnumAttributeValidator
21
+ attr_reader :datatype
22
+ attr_reader :allowable_values
23
+
24
+ def initialize(datatype, allowable_values)
25
+ @allowable_values = allowable_values.map do |value|
26
+ case datatype.to_s
27
+ when /Integer/i
28
+ value.to_i
29
+ when /Float/i
30
+ value.to_f
31
+ else
32
+ value
33
+ end
34
+ end
35
+ end
36
+
37
+ def valid?(value)
38
+ !value || allowable_values.include?(value)
39
+ end
40
+ end
41
+
42
+ # Attribute mapping from ruby-style variable name to JSON key.
43
+ def self.attribute_map
44
+ {
45
+ :'service_category' => :'serviceCategory'
46
+ }
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ def self.swagger_types
51
+ {
52
+ :'service_category' => :'String'
53
+ }
54
+ end
55
+
56
+ # Initializes the object
57
+ # @param [Hash] attributes Model attributes in the form of hash
58
+ def initialize(attributes = {})
59
+ return unless attributes.is_a?(Hash)
60
+
61
+ # convert string to symbol for hash key
62
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
63
+
64
+ if attributes.has_key?(:'serviceCategory')
65
+ self.service_category = attributes[:'serviceCategory']
66
+ end
67
+
68
+ end
69
+
70
+ # Show invalid properties with the reasons. Usually used together with valid?
71
+ # @return Array for valid properties with the reasons
72
+ def list_invalid_properties
73
+ invalid_properties = Array.new
74
+ return invalid_properties
75
+ end
76
+
77
+ # Check to see if the all the properties in the model are valid
78
+ # @return true if the model is valid
79
+ def valid?
80
+ service_category_validator = EnumAttributeValidator.new('String', ["BUNDLED_SERVICE", "BAGGAGE_FEE", "CHANGE_FEE", "CARGO", "CARBON_OFFSET", "FREQUENT_FLYER", "GIFT_CARD", "GROUND_TRANSPORT", "IN_FLIGHT_ENTERTAINMENT", "LOUNGE", "MEDICAL", "MEAL_BEVERAGE", "OTHER", "PASSENGER_ASSIST_FEE", "PETS", "SEAT_FEES", "STANDBY", "SERVICE_FEE", "STORE", "TRAVEL_SERVICE", "UNACCOMPANIED_TRAVEL", "UPGRADES", "WI_FI"])
81
+ return false unless service_category_validator.valid?(@service_category)
82
+ return true
83
+ end
84
+
85
+ # Custom attribute writer method checking allowed values (enum).
86
+ # @param [Object] service_category Object to be assigned
87
+ def service_category=(service_category)
88
+ validator = EnumAttributeValidator.new('String', ["BUNDLED_SERVICE", "BAGGAGE_FEE", "CHANGE_FEE", "CARGO", "CARBON_OFFSET", "FREQUENT_FLYER", "GIFT_CARD", "GROUND_TRANSPORT", "IN_FLIGHT_ENTERTAINMENT", "LOUNGE", "MEDICAL", "MEAL_BEVERAGE", "OTHER", "PASSENGER_ASSIST_FEE", "PETS", "SEAT_FEES", "STANDBY", "SERVICE_FEE", "STORE", "TRAVEL_SERVICE", "UNACCOMPANIED_TRAVEL", "UPGRADES", "WI_FI"])
89
+ unless validator.valid?(service_category)
90
+ fail ArgumentError, "invalid value for 'service_category', must be one of #{validator.allowable_values}."
91
+ end
92
+ @service_category = service_category
93
+ end
94
+
95
+ # Checks equality by comparing each attribute.
96
+ # @param [Object] Object to be compared
97
+ def ==(o)
98
+ return true if self.equal?(o)
99
+ self.class == o.class &&
100
+ service_category == o.service_category
101
+ end
102
+
103
+ # @see the `==` method
104
+ # @param [Object] Object to be compared
105
+ def eql?(o)
106
+ self == o
107
+ end
108
+
109
+ # Calculates hash code according to all attributes.
110
+ # @return [Fixnum] Hash code
111
+ def hash
112
+ [service_category].hash
113
+ end
114
+
115
+ # Builds the object from hash
116
+ # @param [Hash] attributes Model attributes in the form of hash
117
+ # @return [Object] Returns the model itself
118
+ def build_from_hash(attributes)
119
+ return nil unless attributes.is_a?(Hash)
120
+ self.class.swagger_types.each_pair do |key, type|
121
+ if type =~ /\AArray<(.*)>/i
122
+ # check to ensure the input is an array given that the the attribute
123
+ # is documented as an array but the input is not
124
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
125
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
126
+ end
127
+ elsif !attributes[self.class.attribute_map[key]].nil?
128
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
129
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
130
+ end
131
+
132
+ self
133
+ end
134
+
135
+ # Deserializes the data based on type
136
+ # @param string type Data type
137
+ # @param string value Value to be deserialized
138
+ # @return [Object] Deserialized data
139
+ def _deserialize(type, value)
140
+ case type.to_sym
141
+ when :DateTime
142
+ DateTime.parse(value)
143
+ when :Date
144
+ Date.parse(value)
145
+ when :String
146
+ value.to_s
147
+ when :Integer
148
+ value.to_i
149
+ when :Float
150
+ value.to_f
151
+ when :BOOLEAN
152
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
153
+ true
154
+ else
155
+ false
156
+ end
157
+ when :Object
158
+ # generic object (usually a Hash), return directly
159
+ value
160
+ when /\AArray<(?<inner_type>.+)>\z/
161
+ inner_type = Regexp.last_match[:inner_type]
162
+ value.map { |v| _deserialize(inner_type, v) }
163
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
164
+ k_type = Regexp.last_match[:k_type]
165
+ v_type = Regexp.last_match[:v_type]
166
+ {}.tap do |hash|
167
+ value.each do |k, v|
168
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
169
+ end
170
+ end
171
+ else # model
172
+ temp_model = SwaggerClient.const_get(type).new
173
+ temp_model.build_from_hash(value)
174
+ end
175
+ end
176
+
177
+ # Returns the string representation of the object
178
+ # @return [String] String presentation of the object
179
+ def to_s
180
+ to_hash.to_s
181
+ end
182
+
183
+ # to_body is an alias to to_hash (backward compatibility)
184
+ # @return [Hash] Returns the object in the form of hash
185
+ def to_body
186
+ to_hash
187
+ end
188
+
189
+ # Returns the object in the form of hash
190
+ # @return [Hash] Returns the object in the form of hash
191
+ def to_hash
192
+ hash = {}
193
+ self.class.attribute_map.each_pair do |attr, param|
194
+ value = self.send(attr)
195
+ next if value.nil?
196
+ hash[param] = _to_hash(value)
197
+ end
198
+ hash
199
+ end
200
+
201
+ # Outputs non-array value in the form of hash
202
+ # For object, use to_hash. Otherwise, just return the value
203
+ # @param [Object] value Any valid value
204
+ # @return [Hash] Returns the value in the form of hash
205
+ def _to_hash(value)
206
+ if value.is_a?(Array)
207
+ value.compact.map{ |v| _to_hash(v) }
208
+ elsif value.is_a?(Hash)
209
+ {}.tap do |hash|
210
+ value.each { |k, v| hash[k] = _to_hash(v) }
211
+ end
212
+ elsif value.respond_to? :to_hash
213
+ value.to_hash
214
+ else
215
+ value
216
+ end
217
+ end
218
+
219
+ end
220
+
221
+ end
@@ -0,0 +1,406 @@
1
+ =begin
2
+ #Payment Gateway API Specification
3
+
4
+ #Payment Gateway API for payment processing.
5
+
6
+ OpenAPI spec version: 0.0.1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: unset
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module SwaggerClient
16
+
17
+ class AirlineTravelRoute
18
+ # Date of departure
19
+ attr_accessor :departure_date
20
+
21
+ attr_accessor :origin
22
+
23
+ attr_accessor :destination
24
+
25
+ attr_accessor :carrier_code
26
+
27
+ attr_accessor :service_class
28
+
29
+ attr_accessor :stopover_type
30
+
31
+ attr_accessor :fare_basis_code
32
+
33
+ attr_accessor :departure_tax
34
+
35
+ attr_accessor :flight_number
36
+
37
+ class EnumAttributeValidator
38
+ attr_reader :datatype
39
+ attr_reader :allowable_values
40
+
41
+ def initialize(datatype, allowable_values)
42
+ @allowable_values = allowable_values.map do |value|
43
+ case datatype.to_s
44
+ when /Integer/i
45
+ value.to_i
46
+ when /Float/i
47
+ value.to_f
48
+ else
49
+ value
50
+ end
51
+ end
52
+ end
53
+
54
+ def valid?(value)
55
+ !value || allowable_values.include?(value)
56
+ end
57
+ end
58
+
59
+ # Attribute mapping from ruby-style variable name to JSON key.
60
+ def self.attribute_map
61
+ {
62
+ :'departure_date' => :'departureDate',
63
+ :'origin' => :'origin',
64
+ :'destination' => :'destination',
65
+ :'carrier_code' => :'carrierCode',
66
+ :'service_class' => :'serviceClass',
67
+ :'stopover_type' => :'stopoverType',
68
+ :'fare_basis_code' => :'fareBasisCode',
69
+ :'departure_tax' => :'departureTax',
70
+ :'flight_number' => :'flightNumber'
71
+ }
72
+ end
73
+
74
+ # Attribute type mapping.
75
+ def self.swagger_types
76
+ {
77
+ :'departure_date' => :'Date',
78
+ :'origin' => :'String',
79
+ :'destination' => :'String',
80
+ :'carrier_code' => :'String',
81
+ :'service_class' => :'String',
82
+ :'stopover_type' => :'String',
83
+ :'fare_basis_code' => :'String',
84
+ :'departure_tax' => :'Float',
85
+ :'flight_number' => :'String'
86
+ }
87
+ end
88
+
89
+ # Initializes the object
90
+ # @param [Hash] attributes Model attributes in the form of hash
91
+ def initialize(attributes = {})
92
+ return unless attributes.is_a?(Hash)
93
+
94
+ # convert string to symbol for hash key
95
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
96
+
97
+ if attributes.has_key?(:'departureDate')
98
+ self.departure_date = attributes[:'departureDate']
99
+ end
100
+
101
+ if attributes.has_key?(:'origin')
102
+ self.origin = attributes[:'origin']
103
+ end
104
+
105
+ if attributes.has_key?(:'destination')
106
+ self.destination = attributes[:'destination']
107
+ end
108
+
109
+ if attributes.has_key?(:'carrierCode')
110
+ self.carrier_code = attributes[:'carrierCode']
111
+ end
112
+
113
+ if attributes.has_key?(:'serviceClass')
114
+ self.service_class = attributes[:'serviceClass']
115
+ end
116
+
117
+ if attributes.has_key?(:'stopoverType')
118
+ self.stopover_type = attributes[:'stopoverType']
119
+ end
120
+
121
+ if attributes.has_key?(:'fareBasisCode')
122
+ self.fare_basis_code = attributes[:'fareBasisCode']
123
+ end
124
+
125
+ if attributes.has_key?(:'departureTax')
126
+ self.departure_tax = attributes[:'departureTax']
127
+ end
128
+
129
+ if attributes.has_key?(:'flightNumber')
130
+ self.flight_number = attributes[:'flightNumber']
131
+ end
132
+
133
+ end
134
+
135
+ # Show invalid properties with the reasons. Usually used together with valid?
136
+ # @return Array for valid properties with the reasons
137
+ def list_invalid_properties
138
+ invalid_properties = Array.new
139
+ if !@origin.nil? && @origin.to_s.length > 3
140
+ invalid_properties.push("invalid value for 'origin', the character length must be smaller than or equal to 3.")
141
+ end
142
+
143
+ if !@destination.nil? && @destination.to_s.length > 3
144
+ invalid_properties.push("invalid value for 'destination', the character length must be smaller than or equal to 3.")
145
+ end
146
+
147
+ if !@carrier_code.nil? && @carrier_code.to_s.length > 2
148
+ invalid_properties.push("invalid value for 'carrier_code', the character length must be smaller than or equal to 2.")
149
+ end
150
+
151
+ if !@service_class.nil? && @service_class.to_s.length > 1
152
+ invalid_properties.push("invalid value for 'service_class', the character length must be smaller than or equal to 1.")
153
+ end
154
+
155
+ if !@fare_basis_code.nil? && @fare_basis_code.to_s.length > 2
156
+ invalid_properties.push("invalid value for 'fare_basis_code', the character length must be smaller than or equal to 2.")
157
+ end
158
+
159
+ if !@departure_tax.nil? && @departure_tax > 999999999999
160
+ invalid_properties.push("invalid value for 'departure_tax', must be smaller than or equal to 999999999999.")
161
+ end
162
+
163
+ if !@flight_number.nil? && @flight_number.to_s.length > 10
164
+ invalid_properties.push("invalid value for 'flight_number', the character length must be smaller than or equal to 10.")
165
+ end
166
+
167
+ return invalid_properties
168
+ end
169
+
170
+ # Check to see if the all the properties in the model are valid
171
+ # @return true if the model is valid
172
+ def valid?
173
+ return false if !@origin.nil? && @origin.to_s.length > 3
174
+ return false if !@destination.nil? && @destination.to_s.length > 3
175
+ return false if !@carrier_code.nil? && @carrier_code.to_s.length > 2
176
+ return false if !@service_class.nil? && @service_class.to_s.length > 1
177
+ stopover_type_validator = EnumAttributeValidator.new('String', ["DIRECT", "STOPOVER"])
178
+ return false unless stopover_type_validator.valid?(@stopover_type)
179
+ return false if !@fare_basis_code.nil? && @fare_basis_code.to_s.length > 2
180
+ return false if !@departure_tax.nil? && @departure_tax > 999999999999
181
+ return false if !@flight_number.nil? && @flight_number.to_s.length > 10
182
+ return true
183
+ end
184
+
185
+ # Custom attribute writer method with validation
186
+ # @param [Object] origin Value to be assigned
187
+ def origin=(origin)
188
+
189
+ if !origin.nil? && origin.to_s.length > 3
190
+ fail ArgumentError, "invalid value for 'origin', the character length must be smaller than or equal to 3."
191
+ end
192
+
193
+ @origin = origin
194
+ end
195
+
196
+ # Custom attribute writer method with validation
197
+ # @param [Object] destination Value to be assigned
198
+ def destination=(destination)
199
+
200
+ if !destination.nil? && destination.to_s.length > 3
201
+ fail ArgumentError, "invalid value for 'destination', the character length must be smaller than or equal to 3."
202
+ end
203
+
204
+ @destination = destination
205
+ end
206
+
207
+ # Custom attribute writer method with validation
208
+ # @param [Object] carrier_code Value to be assigned
209
+ def carrier_code=(carrier_code)
210
+
211
+ if !carrier_code.nil? && carrier_code.to_s.length > 2
212
+ fail ArgumentError, "invalid value for 'carrier_code', the character length must be smaller than or equal to 2."
213
+ end
214
+
215
+ @carrier_code = carrier_code
216
+ end
217
+
218
+ # Custom attribute writer method with validation
219
+ # @param [Object] service_class Value to be assigned
220
+ def service_class=(service_class)
221
+
222
+ if !service_class.nil? && service_class.to_s.length > 1
223
+ fail ArgumentError, "invalid value for 'service_class', the character length must be smaller than or equal to 1."
224
+ end
225
+
226
+ @service_class = service_class
227
+ end
228
+
229
+ # Custom attribute writer method checking allowed values (enum).
230
+ # @param [Object] stopover_type Object to be assigned
231
+ def stopover_type=(stopover_type)
232
+ validator = EnumAttributeValidator.new('String', ["DIRECT", "STOPOVER"])
233
+ unless validator.valid?(stopover_type)
234
+ fail ArgumentError, "invalid value for 'stopover_type', must be one of #{validator.allowable_values}."
235
+ end
236
+ @stopover_type = stopover_type
237
+ end
238
+
239
+ # Custom attribute writer method with validation
240
+ # @param [Object] fare_basis_code Value to be assigned
241
+ def fare_basis_code=(fare_basis_code)
242
+
243
+ if !fare_basis_code.nil? && fare_basis_code.to_s.length > 2
244
+ fail ArgumentError, "invalid value for 'fare_basis_code', the character length must be smaller than or equal to 2."
245
+ end
246
+
247
+ @fare_basis_code = fare_basis_code
248
+ end
249
+
250
+ # Custom attribute writer method with validation
251
+ # @param [Object] departure_tax Value to be assigned
252
+ def departure_tax=(departure_tax)
253
+
254
+ if !departure_tax.nil? && departure_tax > 999999999999
255
+ fail ArgumentError, "invalid value for 'departure_tax', must be smaller than or equal to 999999999999."
256
+ end
257
+
258
+ @departure_tax = departure_tax
259
+ end
260
+
261
+ # Custom attribute writer method with validation
262
+ # @param [Object] flight_number Value to be assigned
263
+ def flight_number=(flight_number)
264
+
265
+ if !flight_number.nil? && flight_number.to_s.length > 10
266
+ fail ArgumentError, "invalid value for 'flight_number', the character length must be smaller than or equal to 10."
267
+ end
268
+
269
+ @flight_number = flight_number
270
+ end
271
+
272
+ # Checks equality by comparing each attribute.
273
+ # @param [Object] Object to be compared
274
+ def ==(o)
275
+ return true if self.equal?(o)
276
+ self.class == o.class &&
277
+ departure_date == o.departure_date &&
278
+ origin == o.origin &&
279
+ destination == o.destination &&
280
+ carrier_code == o.carrier_code &&
281
+ service_class == o.service_class &&
282
+ stopover_type == o.stopover_type &&
283
+ fare_basis_code == o.fare_basis_code &&
284
+ departure_tax == o.departure_tax &&
285
+ flight_number == o.flight_number
286
+ end
287
+
288
+ # @see the `==` method
289
+ # @param [Object] Object to be compared
290
+ def eql?(o)
291
+ self == o
292
+ end
293
+
294
+ # Calculates hash code according to all attributes.
295
+ # @return [Fixnum] Hash code
296
+ def hash
297
+ [departure_date, origin, destination, carrier_code, service_class, stopover_type, fare_basis_code, departure_tax, flight_number].hash
298
+ end
299
+
300
+ # Builds the object from hash
301
+ # @param [Hash] attributes Model attributes in the form of hash
302
+ # @return [Object] Returns the model itself
303
+ def build_from_hash(attributes)
304
+ return nil unless attributes.is_a?(Hash)
305
+ self.class.swagger_types.each_pair do |key, type|
306
+ if type =~ /\AArray<(.*)>/i
307
+ # check to ensure the input is an array given that the the attribute
308
+ # is documented as an array but the input is not
309
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
310
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
311
+ end
312
+ elsif !attributes[self.class.attribute_map[key]].nil?
313
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
314
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
315
+ end
316
+
317
+ self
318
+ end
319
+
320
+ # Deserializes the data based on type
321
+ # @param string type Data type
322
+ # @param string value Value to be deserialized
323
+ # @return [Object] Deserialized data
324
+ def _deserialize(type, value)
325
+ case type.to_sym
326
+ when :DateTime
327
+ DateTime.parse(value)
328
+ when :Date
329
+ Date.parse(value)
330
+ when :String
331
+ value.to_s
332
+ when :Integer
333
+ value.to_i
334
+ when :Float
335
+ value.to_f
336
+ when :BOOLEAN
337
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
338
+ true
339
+ else
340
+ false
341
+ end
342
+ when :Object
343
+ # generic object (usually a Hash), return directly
344
+ value
345
+ when /\AArray<(?<inner_type>.+)>\z/
346
+ inner_type = Regexp.last_match[:inner_type]
347
+ value.map { |v| _deserialize(inner_type, v) }
348
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
349
+ k_type = Regexp.last_match[:k_type]
350
+ v_type = Regexp.last_match[:v_type]
351
+ {}.tap do |hash|
352
+ value.each do |k, v|
353
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
354
+ end
355
+ end
356
+ else # model
357
+ temp_model = SwaggerClient.const_get(type).new
358
+ temp_model.build_from_hash(value)
359
+ end
360
+ end
361
+
362
+ # Returns the string representation of the object
363
+ # @return [String] String presentation of the object
364
+ def to_s
365
+ to_hash.to_s
366
+ end
367
+
368
+ # to_body is an alias to to_hash (backward compatibility)
369
+ # @return [Hash] Returns the object in the form of hash
370
+ def to_body
371
+ to_hash
372
+ end
373
+
374
+ # Returns the object in the form of hash
375
+ # @return [Hash] Returns the object in the form of hash
376
+ def to_hash
377
+ hash = {}
378
+ self.class.attribute_map.each_pair do |attr, param|
379
+ value = self.send(attr)
380
+ next if value.nil?
381
+ hash[param] = _to_hash(value)
382
+ end
383
+ hash
384
+ end
385
+
386
+ # Outputs non-array value in the form of hash
387
+ # For object, use to_hash. Otherwise, just return the value
388
+ # @param [Object] value Any valid value
389
+ # @return [Hash] Returns the value in the form of hash
390
+ def _to_hash(value)
391
+ if value.is_a?(Array)
392
+ value.compact.map{ |v| _to_hash(v) }
393
+ elsif value.is_a?(Hash)
394
+ {}.tap do |hash|
395
+ value.each { |k, v| hash[k] = _to_hash(v) }
396
+ end
397
+ elsif value.respond_to? :to_hash
398
+ value.to_hash
399
+ else
400
+ value
401
+ end
402
+ end
403
+
404
+ end
405
+
406
+ end