wire4_client 1.0.3 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +50 -7
  3. data/docs/Account.md +3 -3
  4. data/docs/AccountDetail.md +13 -0
  5. data/docs/AccountReassigned.md +21 -0
  6. data/docs/AccountResponse.md +4 -3
  7. data/docs/AddressCompany.md +17 -0
  8. data/docs/AmountRequest.md +2 -0
  9. data/docs/AuthorizationTransactionGroup.md +9 -0
  10. data/docs/AuthorizedBeneficiariesResponse.md +10 -0
  11. data/docs/AuthorizedUsers.md +13 -0
  12. data/docs/CertificateRequest.md +11 -0
  13. data/docs/CodiCodeQrResponseDTO.md +17 -0
  14. data/docs/CodiCodeRequestDTO.md +14 -0
  15. data/docs/CodiOperationResponseDTO.md +14 -0
  16. data/docs/CodiOperationsFiltersRequestDTO.md +15 -0
  17. data/docs/CompanyRegistered.md +13 -0
  18. data/docs/CompanyRequested.md +11 -0
  19. data/docs/Compay.md +11 -0
  20. data/docs/ContractDetailRequest.md +11 -0
  21. data/docs/ContractDetailResponse.md +9 -0
  22. data/docs/ContractsDetailsApi.md +167 -0
  23. data/docs/CuentasDeBeneficiariosSPEIApi.md +69 -4
  24. data/docs/CuentasDeBeneficiariosSPIDApi.md +11 -1
  25. data/docs/EmpresasCoDiApi.md +107 -0
  26. data/docs/MessageAccountBeneficiary.md +2 -2
  27. data/docs/MessageCEP.md +9 -9
  28. data/docs/MessageCodiAction.md +19 -0
  29. data/docs/MessagePayment.md +3 -1
  30. data/docs/MessagePaymentStatePending.md +23 -0
  31. data/docs/MessageRequestChanged.md +2 -2
  32. data/docs/MessageSalesPoint.md +10 -0
  33. data/docs/MessageSubscription.md +6 -6
  34. data/docs/MessageUserAuthorized.md +13 -0
  35. data/docs/MessageWebHook.md +2 -2
  36. data/docs/OperacionesCoDiApi.md +68 -0
  37. data/docs/Operations.md +17 -0
  38. data/docs/PagerResponseDto.md +13 -0
  39. data/docs/Payment.md +3 -1
  40. data/docs/PaymentRequestCodiResponseDTO.md +18 -0
  41. data/docs/PeticionesDePagoPorCoDiApi.md +116 -0
  42. data/docs/PreMonexAuthorization.md +11 -0
  43. data/docs/PuntosDeVentaCoDiApi.md +113 -0
  44. data/docs/SalesPoint.md +10 -0
  45. data/docs/SalesPointFound.md +14 -0
  46. data/docs/SalesPointRequest.md +11 -0
  47. data/docs/SalesPointRespose.md +11 -0
  48. data/docs/SpidBeneficiaryResponse.md +2 -0
  49. data/docs/SuscripcionesApi.md +14 -14
  50. data/docs/TransactionOutgoing.md +2 -1
  51. data/docs/TransferenciasSPEIApi.md +60 -2
  52. data/docs/UrlsRedirect.md +9 -0
  53. data/docs/UserCompany.md +16 -0
  54. data/docs/Webhook.md +13 -0
  55. data/lib/wire4_client.rb +36 -0
  56. data/lib/wire4_client/api/contracts_details_api.rb +230 -0
  57. data/lib/wire4_client/api/cuentas_de_beneficiarios_spei_api.rb +100 -5
  58. data/lib/wire4_client/api/cuentas_de_beneficiarios_spid_api.rb +15 -0
  59. data/lib/wire4_client/api/empresas_co_di_api.rb +137 -0
  60. data/lib/wire4_client/api/operaciones_co_di_api.rb +92 -0
  61. data/lib/wire4_client/api/peticiones_de_pago_por_co_di_api.rb +178 -0
  62. data/lib/wire4_client/api/puntos_de_venta_co_di_api.rb +151 -0
  63. data/lib/wire4_client/api/suscripciones_api.rb +14 -14
  64. data/lib/wire4_client/api/transferencias_spei_api.rb +82 -0
  65. data/lib/wire4_client/models/account.rb +3 -3
  66. data/lib/wire4_client/models/account_detail.rb +239 -0
  67. data/lib/wire4_client/models/account_reassigned.rb +375 -0
  68. data/lib/wire4_client/models/account_response.rb +14 -4
  69. data/lib/wire4_client/models/address_company.rb +275 -0
  70. data/lib/wire4_client/models/amount_request.rb +90 -4
  71. data/lib/wire4_client/models/authorization_transaction_group.rb +207 -0
  72. data/lib/wire4_client/models/authorized_beneficiaries_response.rb +206 -0
  73. data/lib/wire4_client/models/authorized_users.rb +235 -0
  74. data/lib/wire4_client/models/certificate_request.rb +248 -0
  75. data/lib/wire4_client/models/codi_code_qr_response_dto.rb +320 -0
  76. data/lib/wire4_client/models/codi_code_request_dto.rb +402 -0
  77. data/lib/wire4_client/models/codi_operation_response_dto.rb +245 -0
  78. data/lib/wire4_client/models/codi_operations_filters_request_dto.rb +336 -0
  79. data/lib/wire4_client/models/company_registered.rb +235 -0
  80. data/lib/wire4_client/models/company_requested.rb +215 -0
  81. data/lib/wire4_client/models/compay.rb +215 -0
  82. data/lib/wire4_client/models/contract_detail_request.rb +247 -0
  83. data/lib/wire4_client/models/contract_detail_response.rb +194 -0
  84. data/lib/wire4_client/models/message_account_beneficiary.rb +2 -2
  85. data/lib/wire4_client/models/message_cep.rb +10 -10
  86. data/lib/wire4_client/models/message_codi_action.rb +295 -0
  87. data/lib/wire4_client/models/message_deposit_received.rb +1 -1
  88. data/lib/wire4_client/models/message_payment.rb +23 -2
  89. data/lib/wire4_client/models/message_payment_state_pending.rb +335 -0
  90. data/lib/wire4_client/models/message_request_changed.rb +3 -3
  91. data/lib/wire4_client/models/message_sales_point.rb +205 -0
  92. data/lib/wire4_client/models/message_subscription.rb +7 -7
  93. data/lib/wire4_client/models/message_user_authorized.rb +235 -0
  94. data/lib/wire4_client/models/message_web_hook.rb +2 -2
  95. data/lib/wire4_client/models/operations.rb +321 -0
  96. data/lib/wire4_client/models/pager_response_dto.rb +236 -0
  97. data/lib/wire4_client/models/payment.rb +22 -2
  98. data/lib/wire4_client/models/payment_request_codi_response_dto.rb +287 -0
  99. data/lib/wire4_client/models/pre_monex_authorization.rb +291 -0
  100. data/lib/wire4_client/models/sales_point.rb +205 -0
  101. data/lib/wire4_client/models/sales_point_found.rb +279 -0
  102. data/lib/wire4_client/models/sales_point_request.rb +254 -0
  103. data/lib/wire4_client/models/sales_point_respose.rb +215 -0
  104. data/lib/wire4_client/models/spid_beneficiary_response.rb +24 -4
  105. data/lib/wire4_client/models/transaction_outgoing.rb +12 -2
  106. data/lib/wire4_client/models/urls_redirect.rb +205 -0
  107. data/lib/wire4_client/models/user_company.rb +269 -0
  108. data/lib/wire4_client/models/webhook.rb +271 -0
  109. data/lib/wire4_client/version.rb +1 -1
  110. data/spec/api/contracts_details_api_spec.rb +76 -0
  111. data/spec/api/cuentas_de_beneficiarios_spei_api_spec.rb +20 -1
  112. data/spec/api/cuentas_de_beneficiarios_spid_api_spec.rb +5 -0
  113. data/spec/api/empresas_co_di_api_spec.rb +60 -0
  114. data/spec/api/operaciones_co_di_api_spec.rb +52 -0
  115. data/spec/api/peticiones_de_pago_por_co_di_api_spec.rb +63 -0
  116. data/spec/api/puntos_de_venta_co_di_api_spec.rb +62 -0
  117. data/spec/api/suscripciones_api_spec.rb +7 -7
  118. data/spec/api/transferencias_spei_api_spec.rb +15 -0
  119. data/spec/models/account_detail_spec.rb +71 -0
  120. data/spec/models/account_reassigned_spec.rb +119 -0
  121. data/spec/models/account_response_spec.rb +6 -0
  122. data/spec/models/address_company_spec.rb +95 -0
  123. data/spec/models/amount_request_spec.rb +12 -0
  124. data/spec/models/authorization_transaction_group_spec.rb +47 -0
  125. data/spec/models/authorized_beneficiaries_response_spec.rb +53 -0
  126. data/spec/models/authorized_users_spec.rb +71 -0
  127. data/spec/models/certificate_request_spec.rb +59 -0
  128. data/spec/models/codi_code_qr_response_dto_spec.rb +103 -0
  129. data/spec/models/codi_code_request_dto_spec.rb +81 -0
  130. data/spec/models/codi_operation_response_dto_spec.rb +77 -0
  131. data/spec/models/codi_operations_filters_request_dto_spec.rb +87 -0
  132. data/spec/models/company_registered_spec.rb +71 -0
  133. data/spec/models/company_requested_spec.rb +59 -0
  134. data/spec/models/compay_spec.rb +59 -0
  135. data/spec/models/contract_detail_request_spec.rb +59 -0
  136. data/spec/models/contract_detail_response_spec.rb +47 -0
  137. data/spec/models/message_codi_action_spec.rb +107 -0
  138. data/spec/models/message_payment_spec.rb +12 -0
  139. data/spec/models/message_payment_state_pending_spec.rb +131 -0
  140. data/spec/models/message_sales_point_spec.rb +53 -0
  141. data/spec/models/message_user_authorized_spec.rb +71 -0
  142. data/spec/models/operations_spec.rb +103 -0
  143. data/spec/models/pager_response_dto_spec.rb +71 -0
  144. data/spec/models/payment_request_codi_response_dto_spec.rb +101 -0
  145. data/spec/models/payment_spec.rb +12 -0
  146. data/spec/models/pre_monex_authorization_spec.rb +59 -0
  147. data/spec/models/sales_point_found_spec.rb +81 -0
  148. data/spec/models/sales_point_request_spec.rb +59 -0
  149. data/spec/models/sales_point_respose_spec.rb +59 -0
  150. data/spec/models/sales_point_spec.rb +53 -0
  151. data/spec/models/spid_beneficiary_response_spec.rb +12 -0
  152. data/spec/models/transaction_outgoing_spec.rb +6 -0
  153. data/spec/models/urls_redirect_spec.rb +47 -0
  154. data/spec/models/user_company_spec.rb +89 -0
  155. data/spec/models/webhook_spec.rb +75 -0
  156. metadata +146 -3
  157. data/Gemfile.lock +0 -69
@@ -0,0 +1,320 @@
1
+ =begin
2
+ #Wire4RestAPI
3
+
4
+ #Referencia de la API de Wire4
5
+
6
+ OpenAPI spec version: 1.0.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.10
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Wire4Client
16
+ class CodiCodeQrResponseDTO
17
+ # Monto del pago CODI®
18
+ attr_accessor :amount
19
+
20
+ # El código QR en su represantación base 64
21
+ attr_accessor :barcode_base64
22
+
23
+ # La URL del código QR
24
+ attr_accessor :barcode_url
25
+
26
+ # Descripción del pago CODI®
27
+ attr_accessor :concept
28
+
29
+ # Fecha de creación del código QR para pago CODI®
30
+ attr_accessor :creation_date
31
+
32
+ # Fecha de operación del pago CODI®
33
+ attr_accessor :due_date
34
+
35
+ # Referencia de la transferencia asignada por el cliente
36
+ attr_accessor :order_id
37
+
38
+ # Número de teléfono móvil en caso de ser un pago CODI® usando 'PUSH_NOTIFICATION'
39
+ attr_accessor :phone_number
40
+
41
+ # El estado del código QR para pago CODI®
42
+ attr_accessor :status
43
+
44
+ # El tipo de código QR para pago con CODI®
45
+ attr_accessor :type
46
+
47
+ class EnumAttributeValidator
48
+ attr_reader :datatype
49
+ attr_reader :allowable_values
50
+
51
+ def initialize(datatype, allowable_values)
52
+ @allowable_values = allowable_values.map do |value|
53
+ case datatype.to_s
54
+ when /Integer/i
55
+ value.to_i
56
+ when /Float/i
57
+ value.to_f
58
+ else
59
+ value
60
+ end
61
+ end
62
+ end
63
+
64
+ def valid?(value)
65
+ !value || allowable_values.include?(value)
66
+ end
67
+ end
68
+
69
+ # Attribute mapping from ruby-style variable name to JSON key.
70
+ def self.attribute_map
71
+ {
72
+ :'amount' => :'amount',
73
+ :'barcode_base64' => :'barcode_base64',
74
+ :'barcode_url' => :'barcode_url',
75
+ :'concept' => :'concept',
76
+ :'creation_date' => :'creation_date',
77
+ :'due_date' => :'due_date',
78
+ :'order_id' => :'order_id',
79
+ :'phone_number' => :'phone_number',
80
+ :'status' => :'status',
81
+ :'type' => :'type'
82
+ }
83
+ end
84
+
85
+ # Attribute type mapping.
86
+ def self.swagger_types
87
+ {
88
+ :'amount' => :'Float',
89
+ :'barcode_base64' => :'String',
90
+ :'barcode_url' => :'String',
91
+ :'concept' => :'String',
92
+ :'creation_date' => :'DateTime',
93
+ :'due_date' => :'DateTime',
94
+ :'order_id' => :'String',
95
+ :'phone_number' => :'String',
96
+ :'status' => :'String',
97
+ :'type' => :'String'
98
+ }
99
+ end
100
+
101
+ # Initializes the object
102
+ # @param [Hash] attributes Model attributes in the form of hash
103
+ def initialize(attributes = {})
104
+ return unless attributes.is_a?(Hash)
105
+
106
+ # convert string to symbol for hash key
107
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
108
+
109
+ if attributes.has_key?(:'amount')
110
+ self.amount = attributes[:'amount']
111
+ end
112
+
113
+ if attributes.has_key?(:'barcode_base64')
114
+ self.barcode_base64 = attributes[:'barcode_base64']
115
+ end
116
+
117
+ if attributes.has_key?(:'barcode_url')
118
+ self.barcode_url = attributes[:'barcode_url']
119
+ end
120
+
121
+ if attributes.has_key?(:'concept')
122
+ self.concept = attributes[:'concept']
123
+ end
124
+
125
+ if attributes.has_key?(:'creation_date')
126
+ self.creation_date = attributes[:'creation_date']
127
+ end
128
+
129
+ if attributes.has_key?(:'due_date')
130
+ self.due_date = attributes[:'due_date']
131
+ end
132
+
133
+ if attributes.has_key?(:'order_id')
134
+ self.order_id = attributes[:'order_id']
135
+ end
136
+
137
+ if attributes.has_key?(:'phone_number')
138
+ self.phone_number = attributes[:'phone_number']
139
+ end
140
+
141
+ if attributes.has_key?(:'status')
142
+ self.status = attributes[:'status']
143
+ end
144
+
145
+ if attributes.has_key?(:'type')
146
+ self.type = attributes[:'type']
147
+ end
148
+ end
149
+
150
+ # Show invalid properties with the reasons. Usually used together with valid?
151
+ # @return Array for valid properties with the reasons
152
+ def list_invalid_properties
153
+ invalid_properties = Array.new
154
+ invalid_properties
155
+ end
156
+
157
+ # Check to see if the all the properties in the model are valid
158
+ # @return true if the model is valid
159
+ def valid?
160
+ status_validator = EnumAttributeValidator.new('String', ['RECEIVED', 'COMPLETED', 'CANCELLED'])
161
+ return false unless status_validator.valid?(@status)
162
+ type_validator = EnumAttributeValidator.new('String', ['PUSH_NOTIFICATION', 'QR_CODE'])
163
+ return false unless type_validator.valid?(@type)
164
+ true
165
+ end
166
+
167
+ # Custom attribute writer method checking allowed values (enum).
168
+ # @param [Object] status Object to be assigned
169
+ def status=(status)
170
+ validator = EnumAttributeValidator.new('String', ['RECEIVED', 'COMPLETED', 'CANCELLED'])
171
+ unless validator.valid?(status)
172
+ fail ArgumentError, 'invalid value for "status", must be one of #{validator.allowable_values}.'
173
+ end
174
+ @status = status
175
+ end
176
+
177
+ # Custom attribute writer method checking allowed values (enum).
178
+ # @param [Object] type Object to be assigned
179
+ def type=(type)
180
+ validator = EnumAttributeValidator.new('String', ['PUSH_NOTIFICATION', 'QR_CODE'])
181
+ unless validator.valid?(type)
182
+ fail ArgumentError, 'invalid value for "type", must be one of #{validator.allowable_values}.'
183
+ end
184
+ @type = type
185
+ end
186
+
187
+ # Checks equality by comparing each attribute.
188
+ # @param [Object] Object to be compared
189
+ def ==(o)
190
+ return true if self.equal?(o)
191
+ self.class == o.class &&
192
+ amount == o.amount &&
193
+ barcode_base64 == o.barcode_base64 &&
194
+ barcode_url == o.barcode_url &&
195
+ concept == o.concept &&
196
+ creation_date == o.creation_date &&
197
+ due_date == o.due_date &&
198
+ order_id == o.order_id &&
199
+ phone_number == o.phone_number &&
200
+ status == o.status &&
201
+ type == o.type
202
+ end
203
+
204
+ # @see the `==` method
205
+ # @param [Object] Object to be compared
206
+ def eql?(o)
207
+ self == o
208
+ end
209
+
210
+ # Calculates hash code according to all attributes.
211
+ # @return [Fixnum] Hash code
212
+ def hash
213
+ [amount, barcode_base64, barcode_url, concept, creation_date, due_date, order_id, phone_number, status, type].hash
214
+ end
215
+
216
+ # Builds the object from hash
217
+ # @param [Hash] attributes Model attributes in the form of hash
218
+ # @return [Object] Returns the model itself
219
+ def build_from_hash(attributes)
220
+ return nil unless attributes.is_a?(Hash)
221
+ self.class.swagger_types.each_pair do |key, type|
222
+ if type =~ /\AArray<(.*)>/i
223
+ # check to ensure the input is an array given that the the attribute
224
+ # is documented as an array but the input is not
225
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
226
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
227
+ end
228
+ elsif !attributes[self.class.attribute_map[key]].nil?
229
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
230
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
231
+ end
232
+
233
+ self
234
+ end
235
+
236
+ # Deserializes the data based on type
237
+ # @param string type Data type
238
+ # @param string value Value to be deserialized
239
+ # @return [Object] Deserialized data
240
+ def _deserialize(type, value)
241
+ case type.to_sym
242
+ when :DateTime
243
+ DateTime.parse(value)
244
+ when :Date
245
+ Date.parse(value)
246
+ when :String
247
+ value.to_s
248
+ when :Integer
249
+ value.to_i
250
+ when :Float
251
+ value.to_f
252
+ when :BOOLEAN
253
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
254
+ true
255
+ else
256
+ false
257
+ end
258
+ when :Object
259
+ # generic object (usually a Hash), return directly
260
+ value
261
+ when /\AArray<(?<inner_type>.+)>\z/
262
+ inner_type = Regexp.last_match[:inner_type]
263
+ value.map { |v| _deserialize(inner_type, v) }
264
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
265
+ k_type = Regexp.last_match[:k_type]
266
+ v_type = Regexp.last_match[:v_type]
267
+ {}.tap do |hash|
268
+ value.each do |k, v|
269
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
270
+ end
271
+ end
272
+ else # model
273
+ temp_model = Wire4Client.const_get(type).new
274
+ temp_model.build_from_hash(value)
275
+ end
276
+ end
277
+
278
+ # Returns the string representation of the object
279
+ # @return [String] String presentation of the object
280
+ def to_s
281
+ to_hash.to_s
282
+ end
283
+
284
+ # to_body is an alias to to_hash (backward compatibility)
285
+ # @return [Hash] Returns the object in the form of hash
286
+ def to_body
287
+ to_hash
288
+ end
289
+
290
+ # Returns the object in the form of hash
291
+ # @return [Hash] Returns the object in the form of hash
292
+ def to_hash
293
+ hash = {}
294
+ self.class.attribute_map.each_pair do |attr, param|
295
+ value = self.send(attr)
296
+ next if value.nil?
297
+ hash[param] = _to_hash(value)
298
+ end
299
+ hash
300
+ end
301
+
302
+ # Outputs non-array value in the form of hash
303
+ # For object, use to_hash. Otherwise, just return the value
304
+ # @param [Object] value Any valid value
305
+ # @return [Hash] Returns the value in the form of hash
306
+ def _to_hash(value)
307
+ if value.is_a?(Array)
308
+ value.compact.map { |v| _to_hash(v) }
309
+ elsif value.is_a?(Hash)
310
+ {}.tap do |hash|
311
+ value.each { |k, v| hash[k] = _to_hash(v) }
312
+ end
313
+ elsif value.respond_to? :to_hash
314
+ value.to_hash
315
+ else
316
+ value
317
+ end
318
+ end
319
+ end
320
+ end
@@ -0,0 +1,402 @@
1
+ =begin
2
+ #Wire4RestAPI
3
+
4
+ #Referencia de la API de Wire4
5
+
6
+ OpenAPI spec version: 1.0.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.10
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Wire4Client
16
+ class CodiCodeRequestDTO
17
+ # Monto del pago CODI®
18
+ attr_accessor :amount
19
+
20
+ # Descripción del pago CODI®
21
+ attr_accessor :concept
22
+
23
+ # Fecha de operación pago CODI®, formato: yyyy-MM-dd'T'HH:mm:ss
24
+ attr_accessor :due_date
25
+
26
+ # Campo de metada CODI®, longitud máxima determinada por configuracion de la empresa, por defecto 100 caracteres
27
+ attr_accessor :metadata
28
+
29
+ # Referencia de la transferencia asignada por el cliente
30
+ attr_accessor :order_id
31
+
32
+ # Número de teléfono móvil en caso de ser un pago CODI® usando 'PUSH_NOTIFICATION' estecampo sería obligatorio
33
+ attr_accessor :phone_number
34
+
35
+ # El tipo de código QR para pago con CODI®
36
+ attr_accessor :type
37
+
38
+ class EnumAttributeValidator
39
+ attr_reader :datatype
40
+ attr_reader :allowable_values
41
+
42
+ def initialize(datatype, allowable_values)
43
+ @allowable_values = allowable_values.map do |value|
44
+ case datatype.to_s
45
+ when /Integer/i
46
+ value.to_i
47
+ when /Float/i
48
+ value.to_f
49
+ else
50
+ value
51
+ end
52
+ end
53
+ end
54
+
55
+ def valid?(value)
56
+ !value || allowable_values.include?(value)
57
+ end
58
+ end
59
+
60
+ # Attribute mapping from ruby-style variable name to JSON key.
61
+ def self.attribute_map
62
+ {
63
+ :'amount' => :'amount',
64
+ :'concept' => :'concept',
65
+ :'due_date' => :'due_date',
66
+ :'metadata' => :'metadata',
67
+ :'order_id' => :'order_id',
68
+ :'phone_number' => :'phone_number',
69
+ :'type' => :'type'
70
+ }
71
+ end
72
+
73
+ # Attribute type mapping.
74
+ def self.swagger_types
75
+ {
76
+ :'amount' => :'Float',
77
+ :'concept' => :'String',
78
+ :'due_date' => :'DateTime',
79
+ :'metadata' => :'String',
80
+ :'order_id' => :'String',
81
+ :'phone_number' => :'String',
82
+ :'type' => :'String'
83
+ }
84
+ end
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ def initialize(attributes = {})
89
+ return unless attributes.is_a?(Hash)
90
+
91
+ # convert string to symbol for hash key
92
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
93
+
94
+ if attributes.has_key?(:'amount')
95
+ self.amount = attributes[:'amount']
96
+ end
97
+
98
+ if attributes.has_key?(:'concept')
99
+ self.concept = attributes[:'concept']
100
+ end
101
+
102
+ if attributes.has_key?(:'due_date')
103
+ self.due_date = attributes[:'due_date']
104
+ end
105
+
106
+ if attributes.has_key?(:'metadata')
107
+ self.metadata = attributes[:'metadata']
108
+ end
109
+
110
+ if attributes.has_key?(:'order_id')
111
+ self.order_id = attributes[:'order_id']
112
+ end
113
+
114
+ if attributes.has_key?(:'phone_number')
115
+ self.phone_number = attributes[:'phone_number']
116
+ end
117
+
118
+ if attributes.has_key?(:'type')
119
+ self.type = attributes[:'type']
120
+ end
121
+ end
122
+
123
+ # Show invalid properties with the reasons. Usually used together with valid?
124
+ # @return Array for valid properties with the reasons
125
+ def list_invalid_properties
126
+ invalid_properties = Array.new
127
+ if !@amount.nil? && @amount > 8000.0
128
+ invalid_properties.push('invalid value for "amount", must be smaller than or equal to 8000.0.')
129
+ end
130
+
131
+ if !@amount.nil? && @amount < 0.01
132
+ invalid_properties.push('invalid value for "amount", must be greater than or equal to 0.01.')
133
+ end
134
+
135
+ if @concept.nil?
136
+ invalid_properties.push('invalid value for "concept", concept cannot be nil.')
137
+ end
138
+
139
+ if @concept.to_s.length > 200
140
+ invalid_properties.push('invalid value for "concept", the character length must be smaller than or equal to 200.')
141
+ end
142
+
143
+ if @concept.to_s.length < 0
144
+ invalid_properties.push('invalid value for "concept", the character length must be great than or equal to 0.')
145
+ end
146
+
147
+ if @due_date.nil?
148
+ invalid_properties.push('invalid value for "due_date", due_date cannot be nil.')
149
+ end
150
+
151
+ if @order_id.nil?
152
+ invalid_properties.push('invalid value for "order_id", order_id cannot be nil.')
153
+ end
154
+
155
+ if @order_id.to_s.length > 36
156
+ invalid_properties.push('invalid value for "order_id", the character length must be smaller than or equal to 36.')
157
+ end
158
+
159
+ if @order_id.to_s.length < 5
160
+ invalid_properties.push('invalid value for "order_id", the character length must be great than or equal to 5.')
161
+ end
162
+
163
+ if !@phone_number.nil? && @phone_number.to_s.length > 10
164
+ invalid_properties.push('invalid value for "phone_number", the character length must be smaller than or equal to 10.')
165
+ end
166
+
167
+ if !@phone_number.nil? && @phone_number.to_s.length < 10
168
+ invalid_properties.push('invalid value for "phone_number", the character length must be great than or equal to 10.')
169
+ end
170
+
171
+ if @type.nil?
172
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
173
+ end
174
+
175
+ invalid_properties
176
+ end
177
+
178
+ # Check to see if the all the properties in the model are valid
179
+ # @return true if the model is valid
180
+ def valid?
181
+ return false if !@amount.nil? && @amount > 8000.0
182
+ return false if !@amount.nil? && @amount < 0.01
183
+ return false if @concept.nil?
184
+ return false if @concept.to_s.length > 200
185
+ return false if @concept.to_s.length < 0
186
+ return false if @due_date.nil?
187
+ return false if @order_id.nil?
188
+ return false if @order_id.to_s.length > 36
189
+ return false if @order_id.to_s.length < 5
190
+ return false if !@phone_number.nil? && @phone_number.to_s.length > 10
191
+ return false if !@phone_number.nil? && @phone_number.to_s.length < 10
192
+ return false if @type.nil?
193
+ type_validator = EnumAttributeValidator.new('String', ['PUSH_NOTIFICATION', 'QR_CODE'])
194
+ return false unless type_validator.valid?(@type)
195
+ true
196
+ end
197
+
198
+ # Custom attribute writer method with validation
199
+ # @param [Object] amount Value to be assigned
200
+ def amount=(amount)
201
+ if !amount.nil? && amount > 8000.0
202
+ fail ArgumentError, 'invalid value for "amount", must be smaller than or equal to 8000.0.'
203
+ end
204
+
205
+ if !amount.nil? && amount < 0.01
206
+ fail ArgumentError, 'invalid value for "amount", must be greater than or equal to 0.01.'
207
+ end
208
+
209
+ @amount = amount
210
+ end
211
+
212
+ # Custom attribute writer method with validation
213
+ # @param [Object] concept Value to be assigned
214
+ def concept=(concept)
215
+ if concept.nil?
216
+ fail ArgumentError, 'concept cannot be nil'
217
+ end
218
+
219
+ if concept.to_s.length > 200
220
+ fail ArgumentError, 'invalid value for "concept", the character length must be smaller than or equal to 200.'
221
+ end
222
+
223
+ if concept.to_s.length < 0
224
+ fail ArgumentError, 'invalid value for "concept", the character length must be great than or equal to 0.'
225
+ end
226
+
227
+ @concept = concept
228
+ end
229
+
230
+ # Custom attribute writer method with validation
231
+ # @param [Object] order_id Value to be assigned
232
+ def order_id=(order_id)
233
+ if order_id.nil?
234
+ fail ArgumentError, 'order_id cannot be nil'
235
+ end
236
+
237
+ if order_id.to_s.length > 36
238
+ fail ArgumentError, 'invalid value for "order_id", the character length must be smaller than or equal to 36.'
239
+ end
240
+
241
+ if order_id.to_s.length < 5
242
+ fail ArgumentError, 'invalid value for "order_id", the character length must be great than or equal to 5.'
243
+ end
244
+
245
+ @order_id = order_id
246
+ end
247
+
248
+ # Custom attribute writer method with validation
249
+ # @param [Object] phone_number Value to be assigned
250
+ def phone_number=(phone_number)
251
+ if !phone_number.nil? && phone_number.to_s.length > 10
252
+ fail ArgumentError, 'invalid value for "phone_number", the character length must be smaller than or equal to 10.'
253
+ end
254
+
255
+ if !phone_number.nil? && phone_number.to_s.length < 10
256
+ fail ArgumentError, 'invalid value for "phone_number", the character length must be great than or equal to 10.'
257
+ end
258
+
259
+ @phone_number = phone_number
260
+ end
261
+
262
+ # Custom attribute writer method checking allowed values (enum).
263
+ # @param [Object] type Object to be assigned
264
+ def type=(type)
265
+ validator = EnumAttributeValidator.new('String', ['PUSH_NOTIFICATION', 'QR_CODE'])
266
+ unless validator.valid?(type)
267
+ fail ArgumentError, 'invalid value for "type", must be one of #{validator.allowable_values}.'
268
+ end
269
+ @type = type
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
+ amount == o.amount &&
278
+ concept == o.concept &&
279
+ due_date == o.due_date &&
280
+ metadata == o.metadata &&
281
+ order_id == o.order_id &&
282
+ phone_number == o.phone_number &&
283
+ type == o.type
284
+ end
285
+
286
+ # @see the `==` method
287
+ # @param [Object] Object to be compared
288
+ def eql?(o)
289
+ self == o
290
+ end
291
+
292
+ # Calculates hash code according to all attributes.
293
+ # @return [Fixnum] Hash code
294
+ def hash
295
+ [amount, concept, due_date, metadata, order_id, phone_number, type].hash
296
+ end
297
+
298
+ # Builds the object from hash
299
+ # @param [Hash] attributes Model attributes in the form of hash
300
+ # @return [Object] Returns the model itself
301
+ def build_from_hash(attributes)
302
+ return nil unless attributes.is_a?(Hash)
303
+ self.class.swagger_types.each_pair do |key, type|
304
+ if type =~ /\AArray<(.*)>/i
305
+ # check to ensure the input is an array given that the the attribute
306
+ # is documented as an array but the input is not
307
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
308
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
309
+ end
310
+ elsif !attributes[self.class.attribute_map[key]].nil?
311
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
312
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
313
+ end
314
+
315
+ self
316
+ end
317
+
318
+ # Deserializes the data based on type
319
+ # @param string type Data type
320
+ # @param string value Value to be deserialized
321
+ # @return [Object] Deserialized data
322
+ def _deserialize(type, value)
323
+ case type.to_sym
324
+ when :DateTime
325
+ DateTime.parse(value)
326
+ when :Date
327
+ Date.parse(value)
328
+ when :String
329
+ value.to_s
330
+ when :Integer
331
+ value.to_i
332
+ when :Float
333
+ value.to_f
334
+ when :BOOLEAN
335
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
336
+ true
337
+ else
338
+ false
339
+ end
340
+ when :Object
341
+ # generic object (usually a Hash), return directly
342
+ value
343
+ when /\AArray<(?<inner_type>.+)>\z/
344
+ inner_type = Regexp.last_match[:inner_type]
345
+ value.map { |v| _deserialize(inner_type, v) }
346
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
347
+ k_type = Regexp.last_match[:k_type]
348
+ v_type = Regexp.last_match[:v_type]
349
+ {}.tap do |hash|
350
+ value.each do |k, v|
351
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
352
+ end
353
+ end
354
+ else # model
355
+ temp_model = Wire4Client.const_get(type).new
356
+ temp_model.build_from_hash(value)
357
+ end
358
+ end
359
+
360
+ # Returns the string representation of the object
361
+ # @return [String] String presentation of the object
362
+ def to_s
363
+ to_hash.to_s
364
+ end
365
+
366
+ # to_body is an alias to to_hash (backward compatibility)
367
+ # @return [Hash] Returns the object in the form of hash
368
+ def to_body
369
+ to_hash
370
+ end
371
+
372
+ # Returns the object in the form of hash
373
+ # @return [Hash] Returns the object in the form of hash
374
+ def to_hash
375
+ hash = {}
376
+ self.class.attribute_map.each_pair do |attr, param|
377
+ value = self.send(attr)
378
+ next if value.nil?
379
+ hash[param] = _to_hash(value)
380
+ end
381
+ hash
382
+ end
383
+
384
+ # Outputs non-array value in the form of hash
385
+ # For object, use to_hash. Otherwise, just return the value
386
+ # @param [Object] value Any valid value
387
+ # @return [Hash] Returns the value in the form of hash
388
+ def _to_hash(value)
389
+ if value.is_a?(Array)
390
+ value.compact.map { |v| _to_hash(v) }
391
+ elsif value.is_a?(Hash)
392
+ {}.tap do |hash|
393
+ value.each { |k, v| hash[k] = _to_hash(v) }
394
+ end
395
+ elsif value.respond_to? :to_hash
396
+ value.to_hash
397
+ else
398
+ value
399
+ end
400
+ end
401
+ end
402
+ end