yapstone-so 1.0.0

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 (421) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/Gemfile.lock +79 -0
  4. data/README.md +260 -0
  5. data/Rakefile +10 -0
  6. data/docs/AbstractEntity.md +17 -0
  7. data/docs/ActionResource.md +25 -0
  8. data/docs/ActionStatusResource.md +21 -0
  9. data/docs/AddressResource.md +31 -0
  10. data/docs/ApplicantConsentRequest.md +25 -0
  11. data/docs/ApplicantConsentResource.md +27 -0
  12. data/docs/ApplicantConsentType.md +16 -0
  13. data/docs/ApplicantResource.md +39 -0
  14. data/docs/AssetRequest.md +25 -0
  15. data/docs/AssetRequestAllOf.md +17 -0
  16. data/docs/AssetRequestCommon.md +23 -0
  17. data/docs/AssetResource.md +29 -0
  18. data/docs/AssetResourceAllOf.md +19 -0
  19. data/docs/AssetUpdateRequest.md +27 -0
  20. data/docs/AssetUpdateRequestAllOf.md +19 -0
  21. data/docs/AssetsApi.md +276 -0
  22. data/docs/AssetsResource.md +19 -0
  23. data/docs/AssetsResourceAllOf.md +17 -0
  24. data/docs/AuthenticationApi.md +58 -0
  25. data/docs/BankAccountDataResource.md +23 -0
  26. data/docs/BankAccountResource.md +25 -0
  27. data/docs/BeneficialOwnerRequest.md +27 -0
  28. data/docs/BeneficialOwnerResource.md +31 -0
  29. data/docs/BeneficialOwnersPatch.md +21 -0
  30. data/docs/BusinessApplicantAdminFieldsResource.md +17 -0
  31. data/docs/BusinessApplicantAdminResource.md +49 -0
  32. data/docs/BusinessApplicantRequest.md +39 -0
  33. data/docs/BusinessApplicantResource.md +23 -0
  34. data/docs/BusinessApplicantResourceAllOf.md +23 -0
  35. data/docs/BusinessApplicantUpdateRequest.md +41 -0
  36. data/docs/BusinessApplicantsApi.md +276 -0
  37. data/docs/BusinessApplicantsResource.md +19 -0
  38. data/docs/BusinessApplicantsResourceAllOf.md +17 -0
  39. data/docs/BusinessIdType.md +16 -0
  40. data/docs/BusinessIdentificationResource.md +25 -0
  41. data/docs/BusinessOwnerResource.md +17 -0
  42. data/docs/BusinessProfileResource.md +33 -0
  43. data/docs/BusinessUpdateIdentificationResource.md +25 -0
  44. data/docs/CapabilityResource.md +19 -0
  45. data/docs/CardDataResource.md +35 -0
  46. data/docs/Consent.md +25 -0
  47. data/docs/ConsentRequest.md +25 -0
  48. data/docs/ConsentResource.md +27 -0
  49. data/docs/ConsentType.md +16 -0
  50. data/docs/ContractCreateRequest.md +21 -0
  51. data/docs/ContractResource.md +23 -0
  52. data/docs/ContractResourceDTO.md +17 -0
  53. data/docs/ContractResourceDTOAllOf.md +17 -0
  54. data/docs/ContractUpdateRequest.md +19 -0
  55. data/docs/ContractsApi.md +227 -0
  56. data/docs/CustomerHistoryResource.md +19 -0
  57. data/docs/DeactivateRequest.md +19 -0
  58. data/docs/DeactivateResponse.md +21 -0
  59. data/docs/DirectDebitConsentResource.md +19 -0
  60. data/docs/DirectDebitFrequencyType.md +16 -0
  61. data/docs/DirectDebitSchemeType.md +16 -0
  62. data/docs/DirectDebtCapabilityResource.md +23 -0
  63. data/docs/EntitiesResource.md +17 -0
  64. data/docs/EntityHistoryResource.md +17 -0
  65. data/docs/EntityProductStatusResource.md +19 -0
  66. data/docs/EntityUpdateEvent.md +23 -0
  67. data/docs/EntityUpdatedAttribute.md +21 -0
  68. data/docs/Errors.md +19 -0
  69. data/docs/ExpirationDateResource.md +19 -0
  70. data/docs/Gender.md +16 -0
  71. data/docs/GovIdentificationResource.md +29 -0
  72. data/docs/GovIdentificationUpdateResource.md +29 -0
  73. data/docs/GovernmentIdType.md +16 -0
  74. data/docs/IndividualApplicantAdminFieldsResource.md +17 -0
  75. data/docs/IndividualApplicantAdminResource.md +43 -0
  76. data/docs/IndividualApplicantRequest.md +33 -0
  77. data/docs/IndividualApplicantResource.md +17 -0
  78. data/docs/IndividualApplicantUpdateRequest.md +35 -0
  79. data/docs/IndividualApplicantsApi.md +276 -0
  80. data/docs/IndividualApplicantsResource.md +19 -0
  81. data/docs/IndividualApplicantsResourceAllOf.md +17 -0
  82. data/docs/IndividualOwnerResource.md +19 -0
  83. data/docs/InlineResponse200.md +25 -0
  84. data/docs/InstrumentsApi.md +274 -0
  85. data/docs/IssuerScope.md +16 -0
  86. data/docs/MarketPlaceApplicantResource.md +17 -0
  87. data/docs/MarketPlacePropertyResource.md +27 -0
  88. data/docs/MarketplaceProductAdd.md +27 -0
  89. data/docs/MarketplaceProductBasic.md +23 -0
  90. data/docs/MarketplaceProductExtra.md +33 -0
  91. data/docs/MarketplaceProductExtraAllOf.md +25 -0
  92. data/docs/MarketplaceProductPayoutInstrumentResource.md +19 -0
  93. data/docs/MarketplaceProductPayoutInstrumentUpdate.md +21 -0
  94. data/docs/MarketplaceProductResource.md +39 -0
  95. data/docs/MarketplaceProductSubResource.md +37 -0
  96. data/docs/MarketplaceProductUpdate.md +37 -0
  97. data/docs/MarketplaceProductsApi.md +116 -0
  98. data/docs/MarketplacesApi.md +227 -0
  99. data/docs/Meta.md +21 -0
  100. data/docs/MoneyResource.md +19 -0
  101. data/docs/NameResource.md +27 -0
  102. data/docs/OwnerRequest.md +21 -0
  103. data/docs/OwnerResource.md +23 -0
  104. data/docs/Pagination.md +21 -0
  105. data/docs/PatchOperation.md +16 -0
  106. data/docs/PayoutInstrumentRequest.md +29 -0
  107. data/docs/PayoutInstrumentResource.md +35 -0
  108. data/docs/PayoutInstrumentResourceCommonEntities.md +23 -0
  109. data/docs/PayoutInstrumentUpdateRequest.md +31 -0
  110. data/docs/PayoutInstrumentsApi.md +274 -0
  111. data/docs/PayoutInstrumentsResource.md +19 -0
  112. data/docs/PayoutInstrumentsResourceAllOf.md +17 -0
  113. data/docs/PayoutProductAdd.md +19 -0
  114. data/docs/PayoutProductResource.md +27 -0
  115. data/docs/PayoutProductSubResource.md +25 -0
  116. data/docs/PayoutProductSubResourceAllOf.md +23 -0
  117. data/docs/PayoutProductsApi.md +61 -0
  118. data/docs/PayoutsApi.md +227 -0
  119. data/docs/PhoneResource.md +19 -0
  120. data/docs/PriceSettingResource.md +29 -0
  121. data/docs/PrimaryContactResource.md +35 -0
  122. data/docs/Product.md +16 -0
  123. data/docs/ProductRead.md +17 -0
  124. data/docs/ProductWrite.md +17 -0
  125. data/docs/ProfileResource.md +35 -0
  126. data/docs/PropertyHistoryResource.md +27 -0
  127. data/docs/PropertyInfoResource.md +23 -0
  128. data/docs/PropertyOwnerResource.md +31 -0
  129. data/docs/PropertyResource.md +27 -0
  130. data/docs/PropertyTrackerResource.md +23 -0
  131. data/docs/RegistrationResource.md +21 -0
  132. data/docs/ReservationSettingResource.md +19 -0
  133. data/docs/Resource.md +17 -0
  134. data/docs/SocialNetworkResource.md +19 -0
  135. data/docs/StatusReasonResource.md +23 -0
  136. data/docs/StatusRequest.md +17 -0
  137. data/docs/StatusResource.md +21 -0
  138. data/docs/StaySettingResource.md +19 -0
  139. data/docs/SuspensionReasonResource.md +17 -0
  140. data/docs/TravelerResource.md +23 -0
  141. data/git_push.sh +55 -0
  142. data/lib/yapstone-so/api/assets_api.rb +335 -0
  143. data/lib/yapstone-so/api/authentication_api.rb +92 -0
  144. data/lib/yapstone-so/api/business_applicants_api.rb +339 -0
  145. data/lib/yapstone-so/api/contracts_api.rb +284 -0
  146. data/lib/yapstone-so/api/individual_applicants_api.rb +339 -0
  147. data/lib/yapstone-so/api/instruments_api.rb +332 -0
  148. data/lib/yapstone-so/api/marketplace_products_api.rb +154 -0
  149. data/lib/yapstone-so/api/marketplaces_api.rb +304 -0
  150. data/lib/yapstone-so/api/payout_instruments_api.rb +332 -0
  151. data/lib/yapstone-so/api/payout_products_api.rb +84 -0
  152. data/lib/yapstone-so/api/payouts_api.rb +304 -0
  153. data/lib/yapstone-so/api_client.rb +386 -0
  154. data/lib/yapstone-so/api_error.rb +57 -0
  155. data/lib/yapstone-so/configuration.rb +249 -0
  156. data/lib/yapstone-so/models/abstract_entity.rb +232 -0
  157. data/lib/yapstone-so/models/action_resource.rb +238 -0
  158. data/lib/yapstone-so/models/action_status_resource.rb +260 -0
  159. data/lib/yapstone-so/models/address_resource.rb +444 -0
  160. data/lib/yapstone-so/models/applicant_consent_request.rb +317 -0
  161. data/lib/yapstone-so/models/applicant_consent_resource.rb +271 -0
  162. data/lib/yapstone-so/models/applicant_consent_type.rb +39 -0
  163. data/lib/yapstone-so/models/applicant_resource.rb +391 -0
  164. data/lib/yapstone-so/models/asset_request.rb +325 -0
  165. data/lib/yapstone-so/models/asset_request_all_of.rb +199 -0
  166. data/lib/yapstone-so/models/asset_request_common.rb +305 -0
  167. data/lib/yapstone-so/models/asset_resource.rb +344 -0
  168. data/lib/yapstone-so/models/asset_resource_all_of.rb +206 -0
  169. data/lib/yapstone-so/models/asset_update_request.rb +334 -0
  170. data/lib/yapstone-so/models/asset_update_request_all_of.rb +208 -0
  171. data/lib/yapstone-so/models/assets_resource.rb +225 -0
  172. data/lib/yapstone-so/models/assets_resource_all_of.rb +204 -0
  173. data/lib/yapstone-so/models/bank_account_data_resource.rb +228 -0
  174. data/lib/yapstone-so/models/bank_account_resource.rb +334 -0
  175. data/lib/yapstone-so/models/beneficial_owner_request.rb +293 -0
  176. data/lib/yapstone-so/models/beneficial_owner_resource.rb +312 -0
  177. data/lib/yapstone-so/models/beneficial_owners_patch.rb +221 -0
  178. data/lib/yapstone-so/models/business_applicant_admin_fields_resource.rb +198 -0
  179. data/lib/yapstone-so/models/business_applicant_admin_resource.rb +442 -0
  180. data/lib/yapstone-so/models/business_applicant_request.rb +375 -0
  181. data/lib/yapstone-so/models/business_applicant_resource.rb +239 -0
  182. data/lib/yapstone-so/models/business_applicant_resource_all_of.rb +226 -0
  183. data/lib/yapstone-so/models/business_applicant_update_request.rb +360 -0
  184. data/lib/yapstone-so/models/business_applicants_resource.rb +225 -0
  185. data/lib/yapstone-so/models/business_applicants_resource_all_of.rb +204 -0
  186. data/lib/yapstone-so/models/business_id_type.rb +37 -0
  187. data/lib/yapstone-so/models/business_identification_resource.rb +267 -0
  188. data/lib/yapstone-so/models/business_owner_resource.rb +231 -0
  189. data/lib/yapstone-so/models/business_profile_resource.rb +416 -0
  190. data/lib/yapstone-so/models/business_update_identification_resource.rb +253 -0
  191. data/lib/yapstone-so/models/capability_resource.rb +249 -0
  192. data/lib/yapstone-so/models/card_data_resource.rb +382 -0
  193. data/lib/yapstone-so/models/consent.rb +329 -0
  194. data/lib/yapstone-so/models/consent_request.rb +318 -0
  195. data/lib/yapstone-so/models/consent_resource.rb +272 -0
  196. data/lib/yapstone-so/models/consent_type.rb +36 -0
  197. data/lib/yapstone-so/models/contract_create_request.rb +260 -0
  198. data/lib/yapstone-so/models/contract_resource.rb +270 -0
  199. data/lib/yapstone-so/models/contract_resource_dto.rb +205 -0
  200. data/lib/yapstone-so/models/contract_resource_dto_all_of.rb +198 -0
  201. data/lib/yapstone-so/models/contract_update_request.rb +250 -0
  202. data/lib/yapstone-so/models/customer_history_resource.rb +206 -0
  203. data/lib/yapstone-so/models/deactivate_request.rb +228 -0
  204. data/lib/yapstone-so/models/deactivate_response.rb +221 -0
  205. data/lib/yapstone-so/models/direct_debit_consent_resource.rb +252 -0
  206. data/lib/yapstone-so/models/direct_debit_frequency_type.rb +36 -0
  207. data/lib/yapstone-so/models/direct_debit_scheme_type.rb +37 -0
  208. data/lib/yapstone-so/models/direct_debt_capability_resource.rb +283 -0
  209. data/lib/yapstone-so/models/entities_resource.rb +202 -0
  210. data/lib/yapstone-so/models/entity_history_resource.rb +200 -0
  211. data/lib/yapstone-so/models/entity_product_status_resource.rb +206 -0
  212. data/lib/yapstone-so/models/entity_update_event.rb +230 -0
  213. data/lib/yapstone-so/models/entity_updated_attribute.rb +218 -0
  214. data/lib/yapstone-so/models/errors.rb +205 -0
  215. data/lib/yapstone-so/models/expiration_date_resource.rb +238 -0
  216. data/lib/yapstone-so/models/gender.rb +37 -0
  217. data/lib/yapstone-so/models/gov_identification_resource.rb +336 -0
  218. data/lib/yapstone-so/models/gov_identification_update_resource.rb +322 -0
  219. data/lib/yapstone-so/models/government_id_type.rb +43 -0
  220. data/lib/yapstone-so/models/individual_applicant_admin_fields_resource.rb +198 -0
  221. data/lib/yapstone-so/models/individual_applicant_admin_resource.rb +411 -0
  222. data/lib/yapstone-so/models/individual_applicant_request.rb +345 -0
  223. data/lib/yapstone-so/models/individual_applicant_resource.rb +207 -0
  224. data/lib/yapstone-so/models/individual_applicant_update_request.rb +330 -0
  225. data/lib/yapstone-so/models/individual_applicants_resource.rb +225 -0
  226. data/lib/yapstone-so/models/individual_applicants_resource_all_of.rb +204 -0
  227. data/lib/yapstone-so/models/individual_owner_resource.rb +296 -0
  228. data/lib/yapstone-so/models/inline_response200.rb +232 -0
  229. data/lib/yapstone-so/models/issuer_scope.rb +39 -0
  230. data/lib/yapstone-so/models/market_place_applicant_resource.rb +197 -0
  231. data/lib/yapstone-so/models/market_place_property_resource.rb +261 -0
  232. data/lib/yapstone-so/models/marketplace_product_add.rb +293 -0
  233. data/lib/yapstone-so/models/marketplace_product_basic.rb +261 -0
  234. data/lib/yapstone-so/models/marketplace_product_extra.rb +328 -0
  235. data/lib/yapstone-so/models/marketplace_product_extra_all_of.rb +268 -0
  236. data/lib/yapstone-so/models/marketplace_product_payout_instrument_resource.rb +217 -0
  237. data/lib/yapstone-so/models/marketplace_product_payout_instrument_update.rb +233 -0
  238. data/lib/yapstone-so/models/marketplace_product_resource.rb +363 -0
  239. data/lib/yapstone-so/models/marketplace_product_sub_resource.rb +353 -0
  240. data/lib/yapstone-so/models/marketplace_product_update.rb +352 -0
  241. data/lib/yapstone-so/models/meta.rb +231 -0
  242. data/lib/yapstone-so/models/money_resource.rb +218 -0
  243. data/lib/yapstone-so/models/name_resource.rb +444 -0
  244. data/lib/yapstone-so/models/owner_request.rb +305 -0
  245. data/lib/yapstone-so/models/owner_resource.rb +315 -0
  246. data/lib/yapstone-so/models/pagination.rb +224 -0
  247. data/lib/yapstone-so/models/patch_operation.rb +37 -0
  248. data/lib/yapstone-so/models/payout_instrument_request.rb +340 -0
  249. data/lib/yapstone-so/models/payout_instrument_resource.rb +371 -0
  250. data/lib/yapstone-so/models/payout_instrument_resource_common_entities.rb +300 -0
  251. data/lib/yapstone-so/models/payout_instrument_update_request.rb +349 -0
  252. data/lib/yapstone-so/models/payout_instruments_resource.rb +225 -0
  253. data/lib/yapstone-so/models/payout_instruments_resource_all_of.rb +204 -0
  254. data/lib/yapstone-so/models/payout_product_add.rb +217 -0
  255. data/lib/yapstone-so/models/payout_product_resource.rb +255 -0
  256. data/lib/yapstone-so/models/payout_product_sub_resource.rb +245 -0
  257. data/lib/yapstone-so/models/payout_product_sub_resource_all_of.rb +224 -0
  258. data/lib/yapstone-so/models/phone_resource.rb +228 -0
  259. data/lib/yapstone-so/models/price_setting_resource.rb +301 -0
  260. data/lib/yapstone-so/models/primary_contact_resource.rb +417 -0
  261. data/lib/yapstone-so/models/product.rb +36 -0
  262. data/lib/yapstone-so/models/product_read.rb +199 -0
  263. data/lib/yapstone-so/models/product_write.rb +199 -0
  264. data/lib/yapstone-so/models/profile_resource.rb +422 -0
  265. data/lib/yapstone-so/models/property_history_resource.rb +245 -0
  266. data/lib/yapstone-so/models/property_info_resource.rb +229 -0
  267. data/lib/yapstone-so/models/property_owner_resource.rb +341 -0
  268. data/lib/yapstone-so/models/property_resource.rb +315 -0
  269. data/lib/yapstone-so/models/property_tracker_resource.rb +228 -0
  270. data/lib/yapstone-so/models/registration_resource.rb +253 -0
  271. data/lib/yapstone-so/models/reservation_setting_resource.rb +206 -0
  272. data/lib/yapstone-so/models/resource.rb +198 -0
  273. data/lib/yapstone-so/models/social_network_resource.rb +291 -0
  274. data/lib/yapstone-so/models/status_reason_resource.rb +267 -0
  275. data/lib/yapstone-so/models/status_request.rb +232 -0
  276. data/lib/yapstone-so/models/status_resource.rb +259 -0
  277. data/lib/yapstone-so/models/stay_setting_resource.rb +208 -0
  278. data/lib/yapstone-so/models/suspension_reason_resource.rb +198 -0
  279. data/lib/yapstone-so/models/traveler_resource.rb +278 -0
  280. data/lib/yapstone-so/version.rb +15 -0
  281. data/lib/yapstone-so.rb +174 -0
  282. data/spec/api/assets_api_spec.rb +93 -0
  283. data/spec/api/authentication_api_spec.rb +48 -0
  284. data/spec/api/business_applicants_api_spec.rb +93 -0
  285. data/spec/api/contracts_api_spec.rb +84 -0
  286. data/spec/api/individual_applicants_api_spec.rb +93 -0
  287. data/spec/api/instruments_api_spec.rb +92 -0
  288. data/spec/api/marketplace_products_api_spec.rb +60 -0
  289. data/spec/api/marketplaces_api_spec.rb +85 -0
  290. data/spec/api/payout_instruments_api_spec.rb +92 -0
  291. data/spec/api/payout_products_api_spec.rb +47 -0
  292. data/spec/api/payouts_api_spec.rb +85 -0
  293. data/spec/api_client_spec.rb +226 -0
  294. data/spec/configuration_spec.rb +42 -0
  295. data/spec/models/abstract_entity_spec.rb +41 -0
  296. data/spec/models/action_resource_spec.rb +65 -0
  297. data/spec/models/action_status_resource_spec.rb +57 -0
  298. data/spec/models/address_resource_spec.rb +83 -0
  299. data/spec/models/applicant_consent_request_spec.rb +65 -0
  300. data/spec/models/applicant_consent_resource_spec.rb +71 -0
  301. data/spec/models/applicant_consent_type_spec.rb +35 -0
  302. data/spec/models/applicant_resource_spec.rb +107 -0
  303. data/spec/models/asset_request_all_of_spec.rb +41 -0
  304. data/spec/models/asset_request_common_spec.rb +63 -0
  305. data/spec/models/asset_request_spec.rb +69 -0
  306. data/spec/models/asset_resource_all_of_spec.rb +47 -0
  307. data/spec/models/asset_resource_spec.rb +81 -0
  308. data/spec/models/asset_update_request_all_of_spec.rb +47 -0
  309. data/spec/models/asset_update_request_spec.rb +75 -0
  310. data/spec/models/assets_resource_all_of_spec.rb +41 -0
  311. data/spec/models/assets_resource_spec.rb +47 -0
  312. data/spec/models/bank_account_data_resource_spec.rb +59 -0
  313. data/spec/models/bank_account_resource_spec.rb +69 -0
  314. data/spec/models/beneficial_owner_request_spec.rb +71 -0
  315. data/spec/models/beneficial_owner_resource_spec.rb +83 -0
  316. data/spec/models/beneficial_owners_patch_spec.rb +53 -0
  317. data/spec/models/business_applicant_admin_fields_resource_spec.rb +41 -0
  318. data/spec/models/business_applicant_admin_resource_spec.rb +137 -0
  319. data/spec/models/business_applicant_request_spec.rb +107 -0
  320. data/spec/models/business_applicant_resource_all_of_spec.rb +59 -0
  321. data/spec/models/business_applicant_resource_spec.rb +59 -0
  322. data/spec/models/business_applicant_update_request_spec.rb +113 -0
  323. data/spec/models/business_applicants_resource_all_of_spec.rb +41 -0
  324. data/spec/models/business_applicants_resource_spec.rb +47 -0
  325. data/spec/models/business_id_type_spec.rb +35 -0
  326. data/spec/models/business_identification_resource_spec.rb +65 -0
  327. data/spec/models/business_owner_resource_spec.rb +41 -0
  328. data/spec/models/business_profile_resource_spec.rb +93 -0
  329. data/spec/models/business_update_identification_resource_spec.rb +65 -0
  330. data/spec/models/capability_resource_spec.rb +51 -0
  331. data/spec/models/card_data_resource_spec.rb +107 -0
  332. data/spec/models/consent_request_spec.rb +65 -0
  333. data/spec/models/consent_resource_spec.rb +71 -0
  334. data/spec/models/consent_spec.rb +69 -0
  335. data/spec/models/consent_type_spec.rb +35 -0
  336. data/spec/models/contract_create_request_spec.rb +53 -0
  337. data/spec/models/contract_resource_dto_all_of_spec.rb +41 -0
  338. data/spec/models/contract_resource_dto_spec.rb +41 -0
  339. data/spec/models/contract_resource_spec.rb +59 -0
  340. data/spec/models/contract_update_request_spec.rb +47 -0
  341. data/spec/models/customer_history_resource_spec.rb +47 -0
  342. data/spec/models/deactivate_request_spec.rb +47 -0
  343. data/spec/models/deactivate_response_spec.rb +53 -0
  344. data/spec/models/direct_debit_consent_resource_spec.rb +51 -0
  345. data/spec/models/direct_debit_frequency_type_spec.rb +35 -0
  346. data/spec/models/direct_debit_scheme_type_spec.rb +35 -0
  347. data/spec/models/direct_debt_capability_resource_spec.rb +67 -0
  348. data/spec/models/entities_resource_spec.rb +41 -0
  349. data/spec/models/entity_history_resource_spec.rb +41 -0
  350. data/spec/models/entity_product_status_resource_spec.rb +47 -0
  351. data/spec/models/entity_update_event_spec.rb +59 -0
  352. data/spec/models/entity_updated_attribute_spec.rb +53 -0
  353. data/spec/models/errors_spec.rb +47 -0
  354. data/spec/models/expiration_date_resource_spec.rb +47 -0
  355. data/spec/models/gender_spec.rb +35 -0
  356. data/spec/models/gov_identification_resource_spec.rb +77 -0
  357. data/spec/models/gov_identification_update_resource_spec.rb +77 -0
  358. data/spec/models/government_id_type_spec.rb +35 -0
  359. data/spec/models/individual_applicant_admin_fields_resource_spec.rb +41 -0
  360. data/spec/models/individual_applicant_admin_resource_spec.rb +119 -0
  361. data/spec/models/individual_applicant_request_spec.rb +89 -0
  362. data/spec/models/individual_applicant_resource_spec.rb +41 -0
  363. data/spec/models/individual_applicant_update_request_spec.rb +95 -0
  364. data/spec/models/individual_applicants_resource_all_of_spec.rb +41 -0
  365. data/spec/models/individual_applicants_resource_spec.rb +47 -0
  366. data/spec/models/individual_owner_resource_spec.rb +47 -0
  367. data/spec/models/inline_response200_spec.rb +65 -0
  368. data/spec/models/issuer_scope_spec.rb +35 -0
  369. data/spec/models/market_place_applicant_resource_spec.rb +41 -0
  370. data/spec/models/market_place_property_resource_spec.rb +71 -0
  371. data/spec/models/marketplace_product_add_spec.rb +75 -0
  372. data/spec/models/marketplace_product_basic_spec.rb +63 -0
  373. data/spec/models/marketplace_product_extra_all_of_spec.rb +69 -0
  374. data/spec/models/marketplace_product_extra_spec.rb +97 -0
  375. data/spec/models/marketplace_product_payout_instrument_resource_spec.rb +47 -0
  376. data/spec/models/marketplace_product_payout_instrument_update_spec.rb +53 -0
  377. data/spec/models/marketplace_product_resource_spec.rb +115 -0
  378. data/spec/models/marketplace_product_sub_resource_spec.rb +109 -0
  379. data/spec/models/marketplace_product_update_spec.rb +109 -0
  380. data/spec/models/meta_spec.rb +53 -0
  381. data/spec/models/money_resource_spec.rb +47 -0
  382. data/spec/models/name_resource_spec.rb +75 -0
  383. data/spec/models/owner_request_spec.rb +53 -0
  384. data/spec/models/owner_resource_spec.rb +59 -0
  385. data/spec/models/pagination_spec.rb +53 -0
  386. data/spec/models/patch_operation_spec.rb +35 -0
  387. data/spec/models/payout_instrument_request_spec.rb +81 -0
  388. data/spec/models/payout_instrument_resource_common_entities_spec.rb +63 -0
  389. data/spec/models/payout_instrument_resource_spec.rb +99 -0
  390. data/spec/models/payout_instrument_update_request_spec.rb +87 -0
  391. data/spec/models/payout_instruments_resource_all_of_spec.rb +41 -0
  392. data/spec/models/payout_instruments_resource_spec.rb +47 -0
  393. data/spec/models/payout_product_add_spec.rb +47 -0
  394. data/spec/models/payout_product_resource_spec.rb +71 -0
  395. data/spec/models/payout_product_sub_resource_all_of_spec.rb +59 -0
  396. data/spec/models/payout_product_sub_resource_spec.rb +65 -0
  397. data/spec/models/phone_resource_spec.rb +47 -0
  398. data/spec/models/price_setting_resource_spec.rb +85 -0
  399. data/spec/models/primary_contact_resource_spec.rb +95 -0
  400. data/spec/models/product_read_spec.rb +41 -0
  401. data/spec/models/product_spec.rb +35 -0
  402. data/spec/models/product_write_spec.rb +41 -0
  403. data/spec/models/profile_resource_spec.rb +95 -0
  404. data/spec/models/property_history_resource_spec.rb +71 -0
  405. data/spec/models/property_info_resource_spec.rb +59 -0
  406. data/spec/models/property_owner_resource_spec.rb +83 -0
  407. data/spec/models/property_resource_spec.rb +71 -0
  408. data/spec/models/property_tracker_resource_spec.rb +59 -0
  409. data/spec/models/registration_resource_spec.rb +53 -0
  410. data/spec/models/reservation_setting_resource_spec.rb +47 -0
  411. data/spec/models/resource_spec.rb +41 -0
  412. data/spec/models/social_network_resource_spec.rb +51 -0
  413. data/spec/models/status_reason_resource_spec.rb +63 -0
  414. data/spec/models/status_request_spec.rb +45 -0
  415. data/spec/models/status_resource_spec.rb +57 -0
  416. data/spec/models/stay_setting_resource_spec.rb +47 -0
  417. data/spec/models/suspension_reason_resource_spec.rb +41 -0
  418. data/spec/models/traveler_resource_spec.rb +59 -0
  419. data/spec/spec_helper.rb +111 -0
  420. data/yapstone-so.gemspec +45 -0
  421. metadata +781 -0
@@ -0,0 +1,329 @@
1
+ =begin
2
+ #Yapstone Staged On-Boarding Services
3
+
4
+ #Set of API's that allow clients to onboard with Yapstone.
5
+
6
+ The version of the OpenAPI document: 2.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.1.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Yapstone
16
+ class Consent
17
+ # Type of the consent
18
+ attr_accessor :type
19
+
20
+ # Indicates the acceptance of the T&Cs.
21
+ attr_accessor :accepted
22
+
23
+ # Time of the consent
24
+ attr_accessor :time_of_consent
25
+
26
+ # Version of the consent
27
+ attr_accessor :version
28
+
29
+ # IP Address of machine from which consent was given
30
+ attr_accessor :ip_address
31
+
32
+ class EnumAttributeValidator
33
+ attr_reader :datatype
34
+ attr_reader :allowable_values
35
+
36
+ def initialize(datatype, allowable_values)
37
+ @allowable_values = allowable_values.map do |value|
38
+ case datatype.to_s
39
+ when /Integer/i
40
+ value.to_i
41
+ when /Float/i
42
+ value.to_f
43
+ else
44
+ value
45
+ end
46
+ end
47
+ end
48
+
49
+ def valid?(value)
50
+ !value || allowable_values.include?(value)
51
+ end
52
+ end
53
+
54
+ # Attribute mapping from ruby-style variable name to JSON key.
55
+ def self.attribute_map
56
+ {
57
+ :'type' => :'type',
58
+ :'accepted' => :'accepted',
59
+ :'time_of_consent' => :'timeOfConsent',
60
+ :'version' => :'version',
61
+ :'ip_address' => :'ipAddress'
62
+ }
63
+ end
64
+
65
+ # Attribute type mapping.
66
+ def self.openapi_types
67
+ {
68
+ :'type' => :'String',
69
+ :'accepted' => :'Boolean',
70
+ :'time_of_consent' => :'DateTime',
71
+ :'version' => :'Integer',
72
+ :'ip_address' => :'String'
73
+ }
74
+ end
75
+
76
+ # discriminator's property name in OpenAPI v3
77
+ def self.openapi_discriminator_name
78
+ :'type'
79
+ end
80
+
81
+ # Initializes the object
82
+ # @param [Hash] attributes Model attributes in the form of hash
83
+ def initialize(attributes = {})
84
+ if (!attributes.is_a?(Hash))
85
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Yapstone::Consent` initialize method"
86
+ end
87
+
88
+ # check to see if the attribute exists and convert string to symbol for hash key
89
+ attributes = attributes.each_with_object({}) { |(k, v), h|
90
+ if (!self.class.attribute_map.key?(k.to_sym))
91
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Yapstone::Consent`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
92
+ end
93
+ h[k.to_sym] = v
94
+ }
95
+
96
+ if attributes.key?(:'type')
97
+ self.type = attributes[:'type']
98
+ end
99
+
100
+ if attributes.key?(:'accepted')
101
+ self.accepted = attributes[:'accepted']
102
+ end
103
+
104
+ if attributes.key?(:'time_of_consent')
105
+ self.time_of_consent = attributes[:'time_of_consent']
106
+ end
107
+
108
+ if attributes.key?(:'version')
109
+ self.version = attributes[:'version']
110
+ end
111
+
112
+ if attributes.key?(:'ip_address')
113
+ self.ip_address = attributes[:'ip_address']
114
+ end
115
+ end
116
+
117
+ # Show invalid properties with the reasons. Usually used together with valid?
118
+ # @return Array for valid properties with the reasons
119
+ def list_invalid_properties
120
+ invalid_properties = Array.new
121
+ if @type.nil?
122
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
123
+ end
124
+
125
+ if @accepted.nil?
126
+ invalid_properties.push('invalid value for "accepted", accepted cannot be nil.')
127
+ end
128
+
129
+ if @time_of_consent.nil?
130
+ invalid_properties.push('invalid value for "time_of_consent", time_of_consent cannot be nil.')
131
+ end
132
+
133
+ if @version.nil?
134
+ invalid_properties.push('invalid value for "version", version cannot be nil.')
135
+ end
136
+
137
+ if @ip_address.nil?
138
+ invalid_properties.push('invalid value for "ip_address", ip_address cannot be nil.')
139
+ end
140
+
141
+ if @ip_address.to_s.length > 15
142
+ invalid_properties.push('invalid value for "ip_address", the character length must be smaller than or equal to 15.')
143
+ end
144
+
145
+ if @ip_address.to_s.length < 1
146
+ invalid_properties.push('invalid value for "ip_address", the character length must be great than or equal to 1.')
147
+ end
148
+
149
+ invalid_properties
150
+ end
151
+
152
+ # Check to see if the all the properties in the model are valid
153
+ # @return true if the model is valid
154
+ def valid?
155
+ return false if @type.nil?
156
+ type_validator = EnumAttributeValidator.new('String', ["DIRECT_DEBIT"])
157
+ return false unless type_validator.valid?(@type)
158
+ return false if @accepted.nil?
159
+ return false if @time_of_consent.nil?
160
+ return false if @version.nil?
161
+ return false if @ip_address.nil?
162
+ return false if @ip_address.to_s.length > 15
163
+ return false if @ip_address.to_s.length < 1
164
+ true
165
+ end
166
+
167
+ # Custom attribute writer method checking allowed values (enum).
168
+ # @param [Object] type Object to be assigned
169
+ def type=(type)
170
+ validator = EnumAttributeValidator.new('String', ["DIRECT_DEBIT"])
171
+ unless validator.valid?(type)
172
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
173
+ end
174
+ @type = type
175
+ end
176
+
177
+ # Custom attribute writer method with validation
178
+ # @param [Object] ip_address Value to be assigned
179
+ def ip_address=(ip_address)
180
+ if ip_address.nil?
181
+ fail ArgumentError, 'ip_address cannot be nil'
182
+ end
183
+
184
+ if ip_address.to_s.length > 15
185
+ fail ArgumentError, 'invalid value for "ip_address", the character length must be smaller than or equal to 15.'
186
+ end
187
+
188
+ if ip_address.to_s.length < 1
189
+ fail ArgumentError, 'invalid value for "ip_address", the character length must be great than or equal to 1.'
190
+ end
191
+
192
+ @ip_address = ip_address
193
+ end
194
+
195
+ # Checks equality by comparing each attribute.
196
+ # @param [Object] Object to be compared
197
+ def ==(o)
198
+ return true if self.equal?(o)
199
+ self.class == o.class &&
200
+ type == o.type &&
201
+ accepted == o.accepted &&
202
+ time_of_consent == o.time_of_consent &&
203
+ version == o.version &&
204
+ ip_address == o.ip_address
205
+ end
206
+
207
+ # @see the `==` method
208
+ # @param [Object] Object to be compared
209
+ def eql?(o)
210
+ self == o
211
+ end
212
+
213
+ # Calculates hash code according to all attributes.
214
+ # @return [Integer] Hash code
215
+ def hash
216
+ [type, accepted, time_of_consent, version, ip_address].hash
217
+ end
218
+
219
+ # Builds the object from hash
220
+ # @param [Hash] attributes Model attributes in the form of hash
221
+ # @return [Object] Returns the model itself
222
+ def self.build_from_hash(attributes)
223
+ new.build_from_hash(attributes)
224
+ end
225
+
226
+ # Builds the object from hash
227
+ # @param [Hash] attributes Model attributes in the form of hash
228
+ # @return [Object] Returns the model itself
229
+ def build_from_hash(attributes)
230
+ return nil unless attributes.is_a?(Hash)
231
+ self.class.openapi_types.each_pair do |key, type|
232
+ if type =~ /\AArray<(.*)>/i
233
+ # check to ensure the input is an array given that the attribute
234
+ # is documented as an array but the input is not
235
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
236
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
237
+ end
238
+ elsif !attributes[self.class.attribute_map[key]].nil?
239
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
240
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
241
+ end
242
+
243
+ self
244
+ end
245
+
246
+ # Deserializes the data based on type
247
+ # @param string type Data type
248
+ # @param string value Value to be deserialized
249
+ # @return [Object] Deserialized data
250
+ def _deserialize(type, value)
251
+ case type.to_sym
252
+ when :DateTime
253
+ DateTime.parse(value)
254
+ when :Date
255
+ Date.parse(value)
256
+ when :String
257
+ value.to_s
258
+ when :Integer
259
+ value.to_i
260
+ when :Float
261
+ value.to_f
262
+ when :Boolean
263
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
264
+ true
265
+ else
266
+ false
267
+ end
268
+ when :Object
269
+ # generic object (usually a Hash), return directly
270
+ value
271
+ when /\AArray<(?<inner_type>.+)>\z/
272
+ inner_type = Regexp.last_match[:inner_type]
273
+ value.map { |v| _deserialize(inner_type, v) }
274
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
275
+ k_type = Regexp.last_match[:k_type]
276
+ v_type = Regexp.last_match[:v_type]
277
+ {}.tap do |hash|
278
+ value.each do |k, v|
279
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
280
+ end
281
+ end
282
+ else # model
283
+ Yapstone.const_get(type).build_from_hash(value)
284
+ end
285
+ end
286
+
287
+ # Returns the string representation of the object
288
+ # @return [String] String presentation of the object
289
+ def to_s
290
+ to_hash.to_s
291
+ end
292
+
293
+ # to_body is an alias to to_hash (backward compatibility)
294
+ # @return [Hash] Returns the object in the form of hash
295
+ def to_body
296
+ to_hash
297
+ end
298
+
299
+ # Returns the object in the form of hash
300
+ # @return [Hash] Returns the object in the form of hash
301
+ def to_hash
302
+ hash = {}
303
+ self.class.attribute_map.each_pair do |attr, param|
304
+ value = self.send(attr)
305
+ next if value.nil?
306
+ hash[param] = _to_hash(value)
307
+ end
308
+ hash
309
+ end
310
+
311
+ # Outputs non-array value in the form of hash
312
+ # For object, use to_hash. Otherwise, just return the value
313
+ # @param [Object] value Any valid value
314
+ # @return [Hash] Returns the value in the form of hash
315
+ def _to_hash(value)
316
+ if value.is_a?(Array)
317
+ value.compact.map { |v| _to_hash(v) }
318
+ elsif value.is_a?(Hash)
319
+ {}.tap do |hash|
320
+ value.each { |k, v| hash[k] = _to_hash(v) }
321
+ end
322
+ elsif value.respond_to? :to_hash
323
+ value.to_hash
324
+ else
325
+ value
326
+ end
327
+ end
328
+ end
329
+ end
@@ -0,0 +1,318 @@
1
+ =begin
2
+ #Yapstone Staged On-Boarding Services
3
+
4
+ #Set of API's that allow clients to onboard with Yapstone.
5
+
6
+ The version of the OpenAPI document: 2.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.1.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Yapstone
16
+ # Represents the consent necessary for onboard an entity.
17
+ class ConsentRequest
18
+ # The version of the consent if there is one.
19
+ attr_accessor :version
20
+
21
+ # Indicates the acceptance of the T&Cs.
22
+ attr_accessor :accepted
23
+
24
+ # The ipAddress origin of the incoming call.
25
+ attr_accessor :ip_address
26
+
27
+ # The device fingerprint identifier.
28
+ attr_accessor :device_fingerprint_id
29
+
30
+ attr_accessor :type
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+ :'version' => :'version',
36
+ :'accepted' => :'accepted',
37
+ :'ip_address' => :'ipAddress',
38
+ :'device_fingerprint_id' => :'deviceFingerprintId',
39
+ :'type' => :'type'
40
+ }
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ def self.openapi_types
45
+ {
46
+ :'version' => :'Integer',
47
+ :'accepted' => :'Boolean',
48
+ :'ip_address' => :'String',
49
+ :'device_fingerprint_id' => :'String',
50
+ :'type' => :'ConsentType'
51
+ }
52
+ end
53
+
54
+ # Initializes the object
55
+ # @param [Hash] attributes Model attributes in the form of hash
56
+ def initialize(attributes = {})
57
+ if (!attributes.is_a?(Hash))
58
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Yapstone::ConsentRequest` initialize method"
59
+ end
60
+
61
+ # check to see if the attribute exists and convert string to symbol for hash key
62
+ attributes = attributes.each_with_object({}) { |(k, v), h|
63
+ if (!self.class.attribute_map.key?(k.to_sym))
64
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Yapstone::ConsentRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
65
+ end
66
+ h[k.to_sym] = v
67
+ }
68
+
69
+ if attributes.key?(:'version')
70
+ self.version = attributes[:'version']
71
+ end
72
+
73
+ if attributes.key?(:'accepted')
74
+ self.accepted = attributes[:'accepted']
75
+ end
76
+
77
+ if attributes.key?(:'ip_address')
78
+ self.ip_address = attributes[:'ip_address']
79
+ end
80
+
81
+ if attributes.key?(:'device_fingerprint_id')
82
+ self.device_fingerprint_id = attributes[:'device_fingerprint_id']
83
+ end
84
+
85
+ if attributes.key?(:'type')
86
+ self.type = attributes[:'type']
87
+ end
88
+ end
89
+
90
+ # Show invalid properties with the reasons. Usually used together with valid?
91
+ # @return Array for valid properties with the reasons
92
+ def list_invalid_properties
93
+ invalid_properties = Array.new
94
+ if @version.nil?
95
+ invalid_properties.push('invalid value for "version", version cannot be nil.')
96
+ end
97
+
98
+ if @accepted.nil?
99
+ invalid_properties.push('invalid value for "accepted", accepted cannot be nil.')
100
+ end
101
+
102
+ if @ip_address.nil?
103
+ invalid_properties.push('invalid value for "ip_address", ip_address cannot be nil.')
104
+ end
105
+
106
+ if @ip_address.to_s.length > 64
107
+ invalid_properties.push('invalid value for "ip_address", the character length must be smaller than or equal to 64.')
108
+ end
109
+
110
+ if @ip_address.to_s.length < 1
111
+ invalid_properties.push('invalid value for "ip_address", the character length must be great than or equal to 1.')
112
+ end
113
+
114
+ if @device_fingerprint_id.nil?
115
+ invalid_properties.push('invalid value for "device_fingerprint_id", device_fingerprint_id cannot be nil.')
116
+ end
117
+
118
+ if @device_fingerprint_id.to_s.length > 32
119
+ invalid_properties.push('invalid value for "device_fingerprint_id", the character length must be smaller than or equal to 32.')
120
+ end
121
+
122
+ if @device_fingerprint_id.to_s.length < 1
123
+ invalid_properties.push('invalid value for "device_fingerprint_id", the character length must be great than or equal to 1.')
124
+ end
125
+
126
+ if @type.nil?
127
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
128
+ end
129
+
130
+ invalid_properties
131
+ end
132
+
133
+ # Check to see if the all the properties in the model are valid
134
+ # @return true if the model is valid
135
+ def valid?
136
+ return false if @version.nil?
137
+ return false if @accepted.nil?
138
+ return false if @ip_address.nil?
139
+ return false if @ip_address.to_s.length > 64
140
+ return false if @ip_address.to_s.length < 1
141
+ return false if @device_fingerprint_id.nil?
142
+ return false if @device_fingerprint_id.to_s.length > 32
143
+ return false if @device_fingerprint_id.to_s.length < 1
144
+ return false if @type.nil?
145
+ true
146
+ end
147
+
148
+ # Custom attribute writer method with validation
149
+ # @param [Object] ip_address Value to be assigned
150
+ def ip_address=(ip_address)
151
+ if ip_address.nil?
152
+ fail ArgumentError, 'ip_address cannot be nil'
153
+ end
154
+
155
+ if ip_address.to_s.length > 64
156
+ fail ArgumentError, 'invalid value for "ip_address", the character length must be smaller than or equal to 64.'
157
+ end
158
+
159
+ if ip_address.to_s.length < 1
160
+ fail ArgumentError, 'invalid value for "ip_address", the character length must be great than or equal to 1.'
161
+ end
162
+
163
+ @ip_address = ip_address
164
+ end
165
+
166
+ # Custom attribute writer method with validation
167
+ # @param [Object] device_fingerprint_id Value to be assigned
168
+ def device_fingerprint_id=(device_fingerprint_id)
169
+ if device_fingerprint_id.nil?
170
+ fail ArgumentError, 'device_fingerprint_id cannot be nil'
171
+ end
172
+
173
+ if device_fingerprint_id.to_s.length > 32
174
+ fail ArgumentError, 'invalid value for "device_fingerprint_id", the character length must be smaller than or equal to 32.'
175
+ end
176
+
177
+ if device_fingerprint_id.to_s.length < 1
178
+ fail ArgumentError, 'invalid value for "device_fingerprint_id", the character length must be great than or equal to 1.'
179
+ end
180
+
181
+ @device_fingerprint_id = device_fingerprint_id
182
+ end
183
+
184
+ # Checks equality by comparing each attribute.
185
+ # @param [Object] Object to be compared
186
+ def ==(o)
187
+ return true if self.equal?(o)
188
+ self.class == o.class &&
189
+ version == o.version &&
190
+ accepted == o.accepted &&
191
+ ip_address == o.ip_address &&
192
+ device_fingerprint_id == o.device_fingerprint_id &&
193
+ type == o.type
194
+ end
195
+
196
+ # @see the `==` method
197
+ # @param [Object] Object to be compared
198
+ def eql?(o)
199
+ self == o
200
+ end
201
+
202
+ # Calculates hash code according to all attributes.
203
+ # @return [Integer] Hash code
204
+ def hash
205
+ [version, accepted, ip_address, device_fingerprint_id, type].hash
206
+ end
207
+
208
+ # Builds the object from hash
209
+ # @param [Hash] attributes Model attributes in the form of hash
210
+ # @return [Object] Returns the model itself
211
+ def self.build_from_hash(attributes)
212
+ new.build_from_hash(attributes)
213
+ end
214
+
215
+ # Builds the object from hash
216
+ # @param [Hash] attributes Model attributes in the form of hash
217
+ # @return [Object] Returns the model itself
218
+ def build_from_hash(attributes)
219
+ return nil unless attributes.is_a?(Hash)
220
+ self.class.openapi_types.each_pair do |key, type|
221
+ if type =~ /\AArray<(.*)>/i
222
+ # check to ensure the input is an array given that the attribute
223
+ # is documented as an array but the input is not
224
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
225
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
226
+ end
227
+ elsif !attributes[self.class.attribute_map[key]].nil?
228
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
229
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
230
+ end
231
+
232
+ self
233
+ end
234
+
235
+ # Deserializes the data based on type
236
+ # @param string type Data type
237
+ # @param string value Value to be deserialized
238
+ # @return [Object] Deserialized data
239
+ def _deserialize(type, value)
240
+ case type.to_sym
241
+ when :DateTime
242
+ DateTime.parse(value)
243
+ when :Date
244
+ Date.parse(value)
245
+ when :String
246
+ value.to_s
247
+ when :Integer
248
+ value.to_i
249
+ when :Float
250
+ value.to_f
251
+ when :Boolean
252
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
253
+ true
254
+ else
255
+ false
256
+ end
257
+ when :Object
258
+ # generic object (usually a Hash), return directly
259
+ value
260
+ when /\AArray<(?<inner_type>.+)>\z/
261
+ inner_type = Regexp.last_match[:inner_type]
262
+ value.map { |v| _deserialize(inner_type, v) }
263
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
264
+ k_type = Regexp.last_match[:k_type]
265
+ v_type = Regexp.last_match[:v_type]
266
+ {}.tap do |hash|
267
+ value.each do |k, v|
268
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
269
+ end
270
+ end
271
+ else # model
272
+ Yapstone.const_get(type).build_from_hash(value)
273
+ end
274
+ end
275
+
276
+ # Returns the string representation of the object
277
+ # @return [String] String presentation of the object
278
+ def to_s
279
+ to_hash.to_s
280
+ end
281
+
282
+ # to_body is an alias to to_hash (backward compatibility)
283
+ # @return [Hash] Returns the object in the form of hash
284
+ def to_body
285
+ to_hash
286
+ end
287
+
288
+ # Returns the object in the form of hash
289
+ # @return [Hash] Returns the object in the form of hash
290
+ def to_hash
291
+ hash = {}
292
+ self.class.attribute_map.each_pair do |attr, param|
293
+ value = self.send(attr)
294
+ next if value.nil?
295
+ hash[param] = _to_hash(value)
296
+ end
297
+ hash
298
+ end
299
+
300
+ # Outputs non-array value in the form of hash
301
+ # For object, use to_hash. Otherwise, just return the value
302
+ # @param [Object] value Any valid value
303
+ # @return [Hash] Returns the value in the form of hash
304
+ def _to_hash(value)
305
+ if value.is_a?(Array)
306
+ value.compact.map { |v| _to_hash(v) }
307
+ elsif value.is_a?(Hash)
308
+ {}.tap do |hash|
309
+ value.each { |k, v| hash[k] = _to_hash(v) }
310
+ end
311
+ elsif value.respond_to? :to_hash
312
+ value.to_hash
313
+ else
314
+ value
315
+ end
316
+ end
317
+ end
318
+ end