mb-apimatic-sdk 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 (446) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +139 -0
  4. data/bin/console +15 -0
  5. data/lib/mindbody_public_api/api_helper.rb +10 -0
  6. data/lib/mindbody_public_api/client.rb +138 -0
  7. data/lib/mindbody_public_api/configuration.rb +181 -0
  8. data/lib/mindbody_public_api/controllers/appointment_controller.rb +746 -0
  9. data/lib/mindbody_public_api/controllers/base_controller.rb +60 -0
  10. data/lib/mindbody_public_api/controllers/class_controller.rb +826 -0
  11. data/lib/mindbody_public_api/controllers/client_controller.rb +2106 -0
  12. data/lib/mindbody_public_api/controllers/cross_site_controller.rb +43 -0
  13. data/lib/mindbody_public_api/controllers/enrollment_controller.rb +188 -0
  14. data/lib/mindbody_public_api/controllers/payroll_controller.rb +290 -0
  15. data/lib/mindbody_public_api/controllers/pick_a_spot_controller.rb +213 -0
  16. data/lib/mindbody_public_api/controllers/pricing_option_controller.rb +41 -0
  17. data/lib/mindbody_public_api/controllers/sale_controller.rb +1226 -0
  18. data/lib/mindbody_public_api/controllers/site_controller.rb +815 -0
  19. data/lib/mindbody_public_api/controllers/staff_controller.rb +408 -0
  20. data/lib/mindbody_public_api/controllers/user_token_controller.rb +92 -0
  21. data/lib/mindbody_public_api/exceptions/api_exception.rb +21 -0
  22. data/lib/mindbody_public_api/http/auth/custom_header_authentication.rb +52 -0
  23. data/lib/mindbody_public_api/http/http_call_back.rb +10 -0
  24. data/lib/mindbody_public_api/http/http_method_enum.rb +10 -0
  25. data/lib/mindbody_public_api/http/http_request.rb +10 -0
  26. data/lib/mindbody_public_api/http/http_response.rb +10 -0
  27. data/lib/mindbody_public_api/http/proxy_settings.rb +22 -0
  28. data/lib/mindbody_public_api/models/action10_enum.rb +48 -0
  29. data/lib/mindbody_public_api/models/action1_enum.rb +48 -0
  30. data/lib/mindbody_public_api/models/action8_enum.rb +48 -0
  31. data/lib/mindbody_public_api/models/action_enum.rb +48 -0
  32. data/lib/mindbody_public_api/models/add_appointment_add_on_request.rb +108 -0
  33. data/lib/mindbody_public_api/models/add_appointment_add_on_response.rb +74 -0
  34. data/lib/mindbody_public_api/models/add_appointment_outcome.rb +83 -0
  35. data/lib/mindbody_public_api/models/add_appointment_request.rb +319 -0
  36. data/lib/mindbody_public_api/models/add_appointment_response.rb +62 -0
  37. data/lib/mindbody_public_api/models/add_arrival_request.rb +113 -0
  38. data/lib/mindbody_public_api/models/add_arrival_response.rb +72 -0
  39. data/lib/mindbody_public_api/models/add_availabilities_request.rb +187 -0
  40. data/lib/mindbody_public_api/models/add_availabilities_response.rb +89 -0
  41. data/lib/mindbody_public_api/models/add_class_enrollment_schedule_request.rb +351 -0
  42. data/lib/mindbody_public_api/models/add_client_direct_debit_info_request.rb +119 -0
  43. data/lib/mindbody_public_api/models/add_client_direct_debit_info_response.rb +108 -0
  44. data/lib/mindbody_public_api/models/add_client_request.rb +854 -0
  45. data/lib/mindbody_public_api/models/add_client_response.rb +62 -0
  46. data/lib/mindbody_public_api/models/add_client_to_class_request.rb +199 -0
  47. data/lib/mindbody_public_api/models/add_client_to_class_response.rb +62 -0
  48. data/lib/mindbody_public_api/models/add_client_to_class_visit.rb +353 -0
  49. data/lib/mindbody_public_api/models/add_client_to_enrollment_request.rb +165 -0
  50. data/lib/mindbody_public_api/models/add_contact_log_request.rb +175 -0
  51. data/lib/mindbody_public_api/models/add_contact_log_type.rb +71 -0
  52. data/lib/mindbody_public_api/models/add_formula_note_request.rb +80 -0
  53. data/lib/mindbody_public_api/models/add_multiple_appointments_request.rb +71 -0
  54. data/lib/mindbody_public_api/models/add_multiple_appointments_response.rb +71 -0
  55. data/lib/mindbody_public_api/models/add_on_small.rb +90 -0
  56. data/lib/mindbody_public_api/models/add_on_small1.rb +90 -0
  57. data/lib/mindbody_public_api/models/add_promo_code_request.rb +201 -0
  58. data/lib/mindbody_public_api/models/add_promo_code_response.rb +62 -0
  59. data/lib/mindbody_public_api/models/add_site_client_index_request.rb +163 -0
  60. data/lib/mindbody_public_api/models/add_site_client_index_response.rb +175 -0
  61. data/lib/mindbody_public_api/models/add_staff_availability_request.rb +170 -0
  62. data/lib/mindbody_public_api/models/add_staff_request.rb +357 -0
  63. data/lib/mindbody_public_api/models/add_staff_response.rb +62 -0
  64. data/lib/mindbody_public_api/models/allowed_permission_enum.rb +764 -0
  65. data/lib/mindbody_public_api/models/alternative_payment_method.rb +71 -0
  66. data/lib/mindbody_public_api/models/amenity.rb +71 -0
  67. data/lib/mindbody_public_api/models/amenity1.rb +71 -0
  68. data/lib/mindbody_public_api/models/api_error.rb +71 -0
  69. data/lib/mindbody_public_api/models/api_error1.rb +76 -0
  70. data/lib/mindbody_public_api/models/applicable_item.rb +86 -0
  71. data/lib/mindbody_public_api/models/appointment.rb +351 -0
  72. data/lib/mindbody_public_api/models/appointment1.rb +322 -0
  73. data/lib/mindbody_public_api/models/appointment_add_on.rb +103 -0
  74. data/lib/mindbody_public_api/models/appointment_gender_preference1_enum.rb +41 -0
  75. data/lib/mindbody_public_api/models/appointment_gender_preference_enum.rb +44 -0
  76. data/lib/mindbody_public_api/models/appointment_option.rb +91 -0
  77. data/lib/mindbody_public_api/models/appointment_staff.rb +92 -0
  78. data/lib/mindbody_public_api/models/appointment_status_enum.rb +64 -0
  79. data/lib/mindbody_public_api/models/assign_staff_session_type_request.rb +146 -0
  80. data/lib/mindbody_public_api/models/assign_staff_session_type_response.rb +138 -0
  81. data/lib/mindbody_public_api/models/assigned_client_index.rb +71 -0
  82. data/lib/mindbody_public_api/models/autopay_schedule.rb +93 -0
  83. data/lib/mindbody_public_api/models/autopay_status_enum.rb +40 -0
  84. data/lib/mindbody_public_api/models/availability.rb +233 -0
  85. data/lib/mindbody_public_api/models/availability1.rb +228 -0
  86. data/lib/mindbody_public_api/models/base_model.rb +110 -0
  87. data/lib/mindbody_public_api/models/booking_status_enum.rb +40 -0
  88. data/lib/mindbody_public_api/models/booking_window.rb +130 -0
  89. data/lib/mindbody_public_api/models/cancel_single_class_request.rb +98 -0
  90. data/lib/mindbody_public_api/models/cancel_single_class_response.rb +63 -0
  91. data/lib/mindbody_public_api/models/cart_item.rb +147 -0
  92. data/lib/mindbody_public_api/models/category.rb +192 -0
  93. data/lib/mindbody_public_api/models/checkout_alternative_payment_info.rb +72 -0
  94. data/lib/mindbody_public_api/models/checkout_appointment_booking_request.rb +155 -0
  95. data/lib/mindbody_public_api/models/checkout_item.rb +77 -0
  96. data/lib/mindbody_public_api/models/checkout_item_wrapper.rb +183 -0
  97. data/lib/mindbody_public_api/models/checkout_payment_info.rb +101 -0
  98. data/lib/mindbody_public_api/models/checkout_shopping_cart_request.rb +339 -0
  99. data/lib/mindbody_public_api/models/checkout_shopping_cart_response.rb +119 -0
  100. data/lib/mindbody_public_api/models/class_client_detail.rb +68 -0
  101. data/lib/mindbody_public_api/models/class_description.rb +215 -0
  102. data/lib/mindbody_public_api/models/class_schedule.rb +365 -0
  103. data/lib/mindbody_public_api/models/client.rb +832 -0
  104. data/lib/mindbody_public_api/models/client_arrival.rb +95 -0
  105. data/lib/mindbody_public_api/models/client_contract.rb +353 -0
  106. data/lib/mindbody_public_api/models/client_credit_card.rb +153 -0
  107. data/lib/mindbody_public_api/models/client_document.rb +96 -0
  108. data/lib/mindbody_public_api/models/client_duplicate.rb +109 -0
  109. data/lib/mindbody_public_api/models/client_index.rb +127 -0
  110. data/lib/mindbody_public_api/models/client_index_value.rb +82 -0
  111. data/lib/mindbody_public_api/models/client_membership.rb +272 -0
  112. data/lib/mindbody_public_api/models/client_memberships.rb +91 -0
  113. data/lib/mindbody_public_api/models/client_purchase_record.rb +142 -0
  114. data/lib/mindbody_public_api/models/client_relationship.rb +109 -0
  115. data/lib/mindbody_public_api/models/client_reward_transaction.rb +132 -0
  116. data/lib/mindbody_public_api/models/client_service.rb +228 -0
  117. data/lib/mindbody_public_api/models/client_suspension_info.rb +86 -0
  118. data/lib/mindbody_public_api/models/client_with_suspension_info.rb +844 -0
  119. data/lib/mindbody_public_api/models/color.rb +71 -0
  120. data/lib/mindbody_public_api/models/commission_detail.rb +83 -0
  121. data/lib/mindbody_public_api/models/commission_payroll_purchase_event.rb +143 -0
  122. data/lib/mindbody_public_api/models/complete_checkout_shopping_cart_using_alternative_payments_request.rb +86 -0
  123. data/lib/mindbody_public_api/models/contact_log.rb +198 -0
  124. data/lib/mindbody_public_api/models/contact_log_comment.rb +101 -0
  125. data/lib/mindbody_public_api/models/contact_log_sub_type.rb +71 -0
  126. data/lib/mindbody_public_api/models/contact_log_type.rb +91 -0
  127. data/lib/mindbody_public_api/models/content_format_enum.rb +40 -0
  128. data/lib/mindbody_public_api/models/contract.rb +636 -0
  129. data/lib/mindbody_public_api/models/contract_item.rb +121 -0
  130. data/lib/mindbody_public_api/models/copy_credit_card_request.rb +120 -0
  131. data/lib/mindbody_public_api/models/copy_credit_card_response.rb +72 -0
  132. data/lib/mindbody_public_api/models/copy_credit_card_response_client.rb +102 -0
  133. data/lib/mindbody_public_api/models/course.rb +167 -0
  134. data/lib/mindbody_public_api/models/create_reservation_response.rb +73 -0
  135. data/lib/mindbody_public_api/models/credit_card_info.rb +168 -0
  136. data/lib/mindbody_public_api/models/cross_regional_client_association.rb +92 -0
  137. data/lib/mindbody_public_api/models/custom_client_field.rb +81 -0
  138. data/lib/mindbody_public_api/models/custom_client_field_value.rb +90 -0
  139. data/lib/mindbody_public_api/models/custom_payment_method.rb +71 -0
  140. data/lib/mindbody_public_api/models/days_of_week_enum.rb +56 -0
  141. data/lib/mindbody_public_api/models/days_valid_enum.rb +56 -0
  142. data/lib/mindbody_public_api/models/deactivate_promo_code_request.rb +60 -0
  143. data/lib/mindbody_public_api/models/delete_availability_request.rb +75 -0
  144. data/lib/mindbody_public_api/models/delete_client_formula_note_request.rb +90 -0
  145. data/lib/mindbody_public_api/models/delete_contact_log_request.rb +82 -0
  146. data/lib/mindbody_public_api/models/denied_permission_enum.rb +764 -0
  147. data/lib/mindbody_public_api/models/direct_debit_info.rb +97 -0
  148. data/lib/mindbody_public_api/models/discount.rb +71 -0
  149. data/lib/mindbody_public_api/models/formula_note_response.rb +172 -0
  150. data/lib/mindbody_public_api/models/frequency_type_enum.rb +40 -0
  151. data/lib/mindbody_public_api/models/gender_option.rb +93 -0
  152. data/lib/mindbody_public_api/models/gender_preference_enum.rb +41 -0
  153. data/lib/mindbody_public_api/models/get_activation_code_response.rb +76 -0
  154. data/lib/mindbody_public_api/models/get_active_client_memberships_request.rb +163 -0
  155. data/lib/mindbody_public_api/models/get_active_client_memberships_response.rb +83 -0
  156. data/lib/mindbody_public_api/models/get_active_clients_memberships_request.rb +151 -0
  157. data/lib/mindbody_public_api/models/get_active_clients_memberships_response.rb +83 -0
  158. data/lib/mindbody_public_api/models/get_active_session_times_request.rb +136 -0
  159. data/lib/mindbody_public_api/models/get_active_session_times_response.rb +81 -0
  160. data/lib/mindbody_public_api/models/get_add_ons_request.rb +81 -0
  161. data/lib/mindbody_public_api/models/get_add_ons_response.rb +82 -0
  162. data/lib/mindbody_public_api/models/get_alternative_payment_methods_request.rb +72 -0
  163. data/lib/mindbody_public_api/models/get_alternative_payment_methods_response.rb +71 -0
  164. data/lib/mindbody_public_api/models/get_appointment_options_response.rb +71 -0
  165. data/lib/mindbody_public_api/models/get_available_dates_request.rb +121 -0
  166. data/lib/mindbody_public_api/models/get_available_dates_response.rb +77 -0
  167. data/lib/mindbody_public_api/models/get_bookable_items_request.rb +190 -0
  168. data/lib/mindbody_public_api/models/get_bookable_items_response.rb +83 -0
  169. data/lib/mindbody_public_api/models/get_categories_request.rb +118 -0
  170. data/lib/mindbody_public_api/models/get_categories_response.rb +83 -0
  171. data/lib/mindbody_public_api/models/get_class_descriptions_request.rb +168 -0
  172. data/lib/mindbody_public_api/models/get_class_descriptions_response.rb +83 -0
  173. data/lib/mindbody_public_api/models/get_class_schedules_request.rb +172 -0
  174. data/lib/mindbody_public_api/models/get_class_schedules_response.rb +83 -0
  175. data/lib/mindbody_public_api/models/get_class_visits_request.rb +100 -0
  176. data/lib/mindbody_public_api/models/get_class_visits_response.rb +63 -0
  177. data/lib/mindbody_public_api/models/get_classes_request.rb +281 -0
  178. data/lib/mindbody_public_api/models/get_classes_response.rb +82 -0
  179. data/lib/mindbody_public_api/models/get_client_account_balances_request.rb +110 -0
  180. data/lib/mindbody_public_api/models/get_client_account_balances_response.rb +82 -0
  181. data/lib/mindbody_public_api/models/get_client_complete_info_request.rb +239 -0
  182. data/lib/mindbody_public_api/models/get_client_complete_info_response.rb +140 -0
  183. data/lib/mindbody_public_api/models/get_client_contracts_request.rb +127 -0
  184. data/lib/mindbody_public_api/models/get_client_contracts_response.rb +82 -0
  185. data/lib/mindbody_public_api/models/get_client_duplicates_request.rb +101 -0
  186. data/lib/mindbody_public_api/models/get_client_duplicates_response.rb +83 -0
  187. data/lib/mindbody_public_api/models/get_client_formula_notes_request.rb +93 -0
  188. data/lib/mindbody_public_api/models/get_client_formula_notes_response.rb +85 -0
  189. data/lib/mindbody_public_api/models/get_client_indexes_request.rb +64 -0
  190. data/lib/mindbody_public_api/models/get_client_indexes_response.rb +71 -0
  191. data/lib/mindbody_public_api/models/get_client_purchases_request.rb +141 -0
  192. data/lib/mindbody_public_api/models/get_client_purchases_response.rb +82 -0
  193. data/lib/mindbody_public_api/models/get_client_referral_types_request.rb +66 -0
  194. data/lib/mindbody_public_api/models/get_client_referral_types_response.rb +62 -0
  195. data/lib/mindbody_public_api/models/get_client_rewards_request.rb +119 -0
  196. data/lib/mindbody_public_api/models/get_client_rewards_response.rb +94 -0
  197. data/lib/mindbody_public_api/models/get_client_schedule_request.rb +180 -0
  198. data/lib/mindbody_public_api/models/get_client_schedule_response.rb +82 -0
  199. data/lib/mindbody_public_api/models/get_client_services_request.rb +356 -0
  200. data/lib/mindbody_public_api/models/get_client_services_response.rb +83 -0
  201. data/lib/mindbody_public_api/models/get_client_visits_request.rb +180 -0
  202. data/lib/mindbody_public_api/models/get_client_visits_response.rb +82 -0
  203. data/lib/mindbody_public_api/models/get_clients_request.rb +157 -0
  204. data/lib/mindbody_public_api/models/get_clients_response.rb +82 -0
  205. data/lib/mindbody_public_api/models/get_commissions_request.rb +144 -0
  206. data/lib/mindbody_public_api/models/get_commissions_response.rb +84 -0
  207. data/lib/mindbody_public_api/models/get_contact_log_types_request.rb +84 -0
  208. data/lib/mindbody_public_api/models/get_contact_log_types_response.rb +83 -0
  209. data/lib/mindbody_public_api/models/get_contact_logs_request.rb +167 -0
  210. data/lib/mindbody_public_api/models/get_contact_logs_response.rb +83 -0
  211. data/lib/mindbody_public_api/models/get_contracts_request.rb +128 -0
  212. data/lib/mindbody_public_api/models/get_contracts_response.rb +82 -0
  213. data/lib/mindbody_public_api/models/get_courses_reponse.rb +82 -0
  214. data/lib/mindbody_public_api/models/get_courses_request.rb +161 -0
  215. data/lib/mindbody_public_api/models/get_cross_regional_client_associations_request.rb +152 -0
  216. data/lib/mindbody_public_api/models/get_cross_regional_client_associations_response.rb +88 -0
  217. data/lib/mindbody_public_api/models/get_custom_client_fields_request.rb +71 -0
  218. data/lib/mindbody_public_api/models/get_custom_client_fields_response.rb +83 -0
  219. data/lib/mindbody_public_api/models/get_custom_payment_methods_request.rb +71 -0
  220. data/lib/mindbody_public_api/models/get_custom_payment_methods_response.rb +83 -0
  221. data/lib/mindbody_public_api/models/get_enrollments_request.rb +172 -0
  222. data/lib/mindbody_public_api/models/get_enrollments_response.rb +83 -0
  223. data/lib/mindbody_public_api/models/get_genders_response.rb +71 -0
  224. data/lib/mindbody_public_api/models/get_gift_card_balance_response.rb +73 -0
  225. data/lib/mindbody_public_api/models/get_gift_card_response.rb +82 -0
  226. data/lib/mindbody_public_api/models/get_gift_cards_request.rb +119 -0
  227. data/lib/mindbody_public_api/models/get_liability_waiver_response.rb +63 -0
  228. data/lib/mindbody_public_api/models/get_locations_request.rb +71 -0
  229. data/lib/mindbody_public_api/models/get_locations_response.rb +82 -0
  230. data/lib/mindbody_public_api/models/get_memberships_request.rb +63 -0
  231. data/lib/mindbody_public_api/models/get_memberships_response.rb +71 -0
  232. data/lib/mindbody_public_api/models/get_mobile_providers_request.rb +65 -0
  233. data/lib/mindbody_public_api/models/get_mobile_providers_response.rb +71 -0
  234. data/lib/mindbody_public_api/models/get_packages_request.rb +106 -0
  235. data/lib/mindbody_public_api/models/get_packages_response.rb +82 -0
  236. data/lib/mindbody_public_api/models/get_payment_types_request.rb +64 -0
  237. data/lib/mindbody_public_api/models/get_payment_types_response.rb +71 -0
  238. data/lib/mindbody_public_api/models/get_pick_a_spot_class_response.rb +92 -0
  239. data/lib/mindbody_public_api/models/get_products_inventory_request.rb +105 -0
  240. data/lib/mindbody_public_api/models/get_products_inventory_response.rb +83 -0
  241. data/lib/mindbody_public_api/models/get_products_request.rb +153 -0
  242. data/lib/mindbody_public_api/models/get_products_response.rb +82 -0
  243. data/lib/mindbody_public_api/models/get_programs_request.rb +112 -0
  244. data/lib/mindbody_public_api/models/get_programs_response.rb +82 -0
  245. data/lib/mindbody_public_api/models/get_promo_codes_request.rb +152 -0
  246. data/lib/mindbody_public_api/models/get_promo_codes_response.rb +83 -0
  247. data/lib/mindbody_public_api/models/get_prospect_stages_request.rb +65 -0
  248. data/lib/mindbody_public_api/models/get_prospect_stages_response.rb +71 -0
  249. data/lib/mindbody_public_api/models/get_relationships_request.rb +83 -0
  250. data/lib/mindbody_public_api/models/get_relationships_response.rb +83 -0
  251. data/lib/mindbody_public_api/models/get_required_client_fields_response.rb +64 -0
  252. data/lib/mindbody_public_api/models/get_reservation_response.rb +93 -0
  253. data/lib/mindbody_public_api/models/get_resource_availabilities_request.rb +149 -0
  254. data/lib/mindbody_public_api/models/get_resources_request.rb +124 -0
  255. data/lib/mindbody_public_api/models/get_resources_response.rb +71 -0
  256. data/lib/mindbody_public_api/models/get_sales_reps_request.rb +95 -0
  257. data/lib/mindbody_public_api/models/get_sales_reps_response.rb +82 -0
  258. data/lib/mindbody_public_api/models/get_sales_request.rb +134 -0
  259. data/lib/mindbody_public_api/models/get_sales_response.rb +83 -0
  260. data/lib/mindbody_public_api/models/get_schedule_items_request.rb +145 -0
  261. data/lib/mindbody_public_api/models/get_schedule_items_response.rb +83 -0
  262. data/lib/mindbody_public_api/models/get_scheduled_service_earnings_request.rb +172 -0
  263. data/lib/mindbody_public_api/models/get_scheduled_service_earnings_response.rb +87 -0
  264. data/lib/mindbody_public_api/models/get_semesters_request.rb +132 -0
  265. data/lib/mindbody_public_api/models/get_semesters_response.rb +83 -0
  266. data/lib/mindbody_public_api/models/get_services_request.rb +221 -0
  267. data/lib/mindbody_public_api/models/get_services_response.rb +82 -0
  268. data/lib/mindbody_public_api/models/get_session_types_request.rb +95 -0
  269. data/lib/mindbody_public_api/models/get_session_types_response.rb +83 -0
  270. data/lib/mindbody_public_api/models/get_sites_request.rb +111 -0
  271. data/lib/mindbody_public_api/models/get_sites_response.rb +82 -0
  272. data/lib/mindbody_public_api/models/get_staff_appointments_request.rb +173 -0
  273. data/lib/mindbody_public_api/models/get_staff_appointments_response.rb +83 -0
  274. data/lib/mindbody_public_api/models/get_staff_image_url_request.rb +62 -0
  275. data/lib/mindbody_public_api/models/get_staff_image_url_response.rb +73 -0
  276. data/lib/mindbody_public_api/models/get_staff_permissions_request.rb +60 -0
  277. data/lib/mindbody_public_api/models/get_staff_permissions_response.rb +62 -0
  278. data/lib/mindbody_public_api/models/get_staff_request.rb +144 -0
  279. data/lib/mindbody_public_api/models/get_staff_response.rb +84 -0
  280. data/lib/mindbody_public_api/models/get_staff_session_types_request.rb +104 -0
  281. data/lib/mindbody_public_api/models/get_staff_session_types_response.rb +83 -0
  282. data/lib/mindbody_public_api/models/get_time_cards_request.rb +144 -0
  283. data/lib/mindbody_public_api/models/get_time_cards_response.rb +82 -0
  284. data/lib/mindbody_public_api/models/get_tips_request.rb +144 -0
  285. data/lib/mindbody_public_api/models/get_tips_response.rb +83 -0
  286. data/lib/mindbody_public_api/models/get_transactions_request.rb +173 -0
  287. data/lib/mindbody_public_api/models/get_transactions_response.rb +84 -0
  288. data/lib/mindbody_public_api/models/get_unavailabilities_request.rb +120 -0
  289. data/lib/mindbody_public_api/models/get_unavailabilities_response.rb +83 -0
  290. data/lib/mindbody_public_api/models/get_waitlist_entries_request.rb +144 -0
  291. data/lib/mindbody_public_api/models/get_waitlist_entries_response.rb +83 -0
  292. data/lib/mindbody_public_api/models/gift_card.rb +191 -0
  293. data/lib/mindbody_public_api/models/gift_card_layout.rb +82 -0
  294. data/lib/mindbody_public_api/models/http_content.rb +71 -0
  295. data/lib/mindbody_public_api/models/initiate_checkout_shopping_cart_using_alternative_payments_request.rb +265 -0
  296. data/lib/mindbody_public_api/models/initiate_purchase_contract_request.rb +184 -0
  297. data/lib/mindbody_public_api/models/issue_request.rb +71 -0
  298. data/lib/mindbody_public_api/models/issue_response.rb +101 -0
  299. data/lib/mindbody_public_api/models/lead_channel.rb +104 -0
  300. data/lib/mindbody_public_api/models/level.rb +81 -0
  301. data/lib/mindbody_public_api/models/liability.rb +102 -0
  302. data/lib/mindbody_public_api/models/location.rb +331 -0
  303. data/lib/mindbody_public_api/models/location1.rb +639 -0
  304. data/lib/mindbody_public_api/models/m0_culture_neutral_public_key_token_b77a5c561934e089.rb +71 -0
  305. data/lib/mindbody_public_api/models/mclass.rb +430 -0
  306. data/lib/mindbody_public_api/models/membership.rb +255 -0
  307. data/lib/mindbody_public_api/models/membership_type_restriction.rb +71 -0
  308. data/lib/mindbody_public_api/models/merge_clients_request.rb +75 -0
  309. data/lib/mindbody_public_api/models/minimum_commitment_unit_enum.rb +40 -0
  310. data/lib/mindbody_public_api/models/mobile_provider.rb +93 -0
  311. data/lib/mindbody_public_api/models/package.rb +131 -0
  312. data/lib/mindbody_public_api/models/pagination.rb +95 -0
  313. data/lib/mindbody_public_api/models/pagination_response.rb +95 -0
  314. data/lib/mindbody_public_api/models/payment_method_enum.rb +44 -0
  315. data/lib/mindbody_public_api/models/payment_processing_failure.rb +88 -0
  316. data/lib/mindbody_public_api/models/payment_type.rb +93 -0
  317. data/lib/mindbody_public_api/models/pick_a_spot_class.rb +193 -0
  318. data/lib/mindbody_public_api/models/pricing_relationships.rb +71 -0
  319. data/lib/mindbody_public_api/models/product.rb +267 -0
  320. data/lib/mindbody_public_api/models/products_inventory.rb +173 -0
  321. data/lib/mindbody_public_api/models/program.rb +129 -0
  322. data/lib/mindbody_public_api/models/program1.rb +150 -0
  323. data/lib/mindbody_public_api/models/program_membership.rb +71 -0
  324. data/lib/mindbody_public_api/models/promo_code.rb +233 -0
  325. data/lib/mindbody_public_api/models/prospect_stage.rb +84 -0
  326. data/lib/mindbody_public_api/models/public_display1_enum.rb +42 -0
  327. data/lib/mindbody_public_api/models/public_display_enum.rb +41 -0
  328. data/lib/mindbody_public_api/models/purchase_account_credit_request.rb +154 -0
  329. data/lib/mindbody_public_api/models/purchase_account_credit_response.rb +118 -0
  330. data/lib/mindbody_public_api/models/purchase_contract_request.rb +324 -0
  331. data/lib/mindbody_public_api/models/purchase_contract_response.rb +141 -0
  332. data/lib/mindbody_public_api/models/purchase_contract_response_totals.rb +92 -0
  333. data/lib/mindbody_public_api/models/purchase_gift_card_request.rb +273 -0
  334. data/lib/mindbody_public_api/models/purchase_gift_card_response.rb +183 -0
  335. data/lib/mindbody_public_api/models/purchased_item.rb +337 -0
  336. data/lib/mindbody_public_api/models/relationship.rb +85 -0
  337. data/lib/mindbody_public_api/models/remove_client_from_class_request.rb +142 -0
  338. data/lib/mindbody_public_api/models/remove_client_from_class_response.rb +63 -0
  339. data/lib/mindbody_public_api/models/remove_clients_from_classes_request.rb +140 -0
  340. data/lib/mindbody_public_api/models/remove_clients_from_classes_response.rb +102 -0
  341. data/lib/mindbody_public_api/models/remove_from_waitlist_request.rb +61 -0
  342. data/lib/mindbody_public_api/models/request_schedule_type_enum.rb +56 -0
  343. data/lib/mindbody_public_api/models/reservation.rb +158 -0
  344. data/lib/mindbody_public_api/models/resource.rb +71 -0
  345. data/lib/mindbody_public_api/models/resource1.rb +124 -0
  346. data/lib/mindbody_public_api/models/resource_availability.rb +100 -0
  347. data/lib/mindbody_public_api/models/resource_availability1.rb +124 -0
  348. data/lib/mindbody_public_api/models/resource_slim.rb +71 -0
  349. data/lib/mindbody_public_api/models/response_details.rb +82 -0
  350. data/lib/mindbody_public_api/models/return_sale_request.rb +71 -0
  351. data/lib/mindbody_public_api/models/return_sale_response.rb +82 -0
  352. data/lib/mindbody_public_api/models/sale.rb +210 -0
  353. data/lib/mindbody_public_api/models/sale_payment.rb +114 -0
  354. data/lib/mindbody_public_api/models/sales_rep.rb +107 -0
  355. data/lib/mindbody_public_api/models/sales_rep_response.rb +93 -0
  356. data/lib/mindbody_public_api/models/schedule_type1_enum.rb +57 -0
  357. data/lib/mindbody_public_api/models/schedule_type2_enum.rb +56 -0
  358. data/lib/mindbody_public_api/models/schedule_type3_enum.rb +57 -0
  359. data/lib/mindbody_public_api/models/schedule_type4_enum.rb +56 -0
  360. data/lib/mindbody_public_api/models/schedule_type_enum.rb +57 -0
  361. data/lib/mindbody_public_api/models/scheduled_service_earnings_event.rb +117 -0
  362. data/lib/mindbody_public_api/models/scheduled_service_type_enum.rb +44 -0
  363. data/lib/mindbody_public_api/models/semester.rb +167 -0
  364. data/lib/mindbody_public_api/models/send_auto_email_request.rb +71 -0
  365. data/lib/mindbody_public_api/models/send_password_reset_email_request.rb +81 -0
  366. data/lib/mindbody_public_api/models/service.rb +366 -0
  367. data/lib/mindbody_public_api/models/service_tag.rb +72 -0
  368. data/lib/mindbody_public_api/models/session_type.rb +198 -0
  369. data/lib/mindbody_public_api/models/session_type1.rb +204 -0
  370. data/lib/mindbody_public_api/models/shopping_cart.rb +151 -0
  371. data/lib/mindbody_public_api/models/site.rb +347 -0
  372. data/lib/mindbody_public_api/models/size.rb +71 -0
  373. data/lib/mindbody_public_api/models/spot.rb +87 -0
  374. data/lib/mindbody_public_api/models/staff.rb +501 -0
  375. data/lib/mindbody_public_api/models/staff1.rb +588 -0
  376. data/lib/mindbody_public_api/models/staff_permission_group.rb +105 -0
  377. data/lib/mindbody_public_api/models/staff_session_type.rb +205 -0
  378. data/lib/mindbody_public_api/models/staff_setting.rb +84 -0
  379. data/lib/mindbody_public_api/models/status1_enum.rb +56 -0
  380. data/lib/mindbody_public_api/models/status_enum.rb +66 -0
  381. data/lib/mindbody_public_api/models/stored_card_info.rb +62 -0
  382. data/lib/mindbody_public_api/models/sub_category.rb +82 -0
  383. data/lib/mindbody_public_api/models/substitute_class_teacher_request.rb +127 -0
  384. data/lib/mindbody_public_api/models/substitute_class_teacher_response.rb +63 -0
  385. data/lib/mindbody_public_api/models/substitute_teacher_class.rb +318 -0
  386. data/lib/mindbody_public_api/models/suspend_contract_request.rb +162 -0
  387. data/lib/mindbody_public_api/models/suspend_contract_response.rb +62 -0
  388. data/lib/mindbody_public_api/models/terminate_contract_request.rb +113 -0
  389. data/lib/mindbody_public_api/models/terminate_contract_response.rb +62 -0
  390. data/lib/mindbody_public_api/models/time_card_event.rb +139 -0
  391. data/lib/mindbody_public_api/models/tip.rb +101 -0
  392. data/lib/mindbody_public_api/models/transaction.rb +245 -0
  393. data/lib/mindbody_public_api/models/transaction_response.rb +74 -0
  394. data/lib/mindbody_public_api/models/type1_enum.rb +56 -0
  395. data/lib/mindbody_public_api/models/type2_enum.rb +56 -0
  396. data/lib/mindbody_public_api/models/type_enum.rb +57 -0
  397. data/lib/mindbody_public_api/models/unavailability.rb +109 -0
  398. data/lib/mindbody_public_api/models/unavailability1.rb +109 -0
  399. data/lib/mindbody_public_api/models/unavailability_plain.rb +119 -0
  400. data/lib/mindbody_public_api/models/upcoming_autopay_event.rb +133 -0
  401. data/lib/mindbody_public_api/models/update_appointment_request.rb +225 -0
  402. data/lib/mindbody_public_api/models/update_appointment_response.rb +62 -0
  403. data/lib/mindbody_public_api/models/update_availability_request.rb +171 -0
  404. data/lib/mindbody_public_api/models/update_availability_response.rb +89 -0
  405. data/lib/mindbody_public_api/models/update_class_enrollment_schedule_request.rb +343 -0
  406. data/lib/mindbody_public_api/models/update_class_schedule_notes_request.rb +62 -0
  407. data/lib/mindbody_public_api/models/update_client_contract_autopays_request.rb +149 -0
  408. data/lib/mindbody_public_api/models/update_client_request.rb +128 -0
  409. data/lib/mindbody_public_api/models/update_client_response.rb +62 -0
  410. data/lib/mindbody_public_api/models/update_client_rewards_request.rb +143 -0
  411. data/lib/mindbody_public_api/models/update_client_service_request.rb +121 -0
  412. data/lib/mindbody_public_api/models/update_client_service_response.rb +62 -0
  413. data/lib/mindbody_public_api/models/update_client_visit_request.rb +130 -0
  414. data/lib/mindbody_public_api/models/update_client_visit_response.rb +62 -0
  415. data/lib/mindbody_public_api/models/update_contact_log_comment.rb +72 -0
  416. data/lib/mindbody_public_api/models/update_contact_log_request.rb +188 -0
  417. data/lib/mindbody_public_api/models/update_contact_log_type.rb +71 -0
  418. data/lib/mindbody_public_api/models/update_pricing_option_request.rb +252 -0
  419. data/lib/mindbody_public_api/models/update_product_price_request.rb +83 -0
  420. data/lib/mindbody_public_api/models/update_product_price_response.rb +62 -0
  421. data/lib/mindbody_public_api/models/update_product_request.rb +83 -0
  422. data/lib/mindbody_public_api/models/update_reservation_response.rb +73 -0
  423. data/lib/mindbody_public_api/models/update_sale_date_request.rb +81 -0
  424. data/lib/mindbody_public_api/models/update_sale_date_response.rb +62 -0
  425. data/lib/mindbody_public_api/models/update_service_request.rb +82 -0
  426. data/lib/mindbody_public_api/models/update_service_response.rb +71 -0
  427. data/lib/mindbody_public_api/models/update_site_client_index_request.rb +172 -0
  428. data/lib/mindbody_public_api/models/update_site_client_index_response.rb +175 -0
  429. data/lib/mindbody_public_api/models/update_staff_permissions_request.rb +71 -0
  430. data/lib/mindbody_public_api/models/update_staff_permissions_response.rb +62 -0
  431. data/lib/mindbody_public_api/models/update_staff_request.rb +378 -0
  432. data/lib/mindbody_public_api/models/update_staff_response.rb +62 -0
  433. data/lib/mindbody_public_api/models/upload_client_document_request.rb +68 -0
  434. data/lib/mindbody_public_api/models/upload_client_document_response.rb +71 -0
  435. data/lib/mindbody_public_api/models/upload_client_photo_request.rb +68 -0
  436. data/lib/mindbody_public_api/models/upload_client_photo_response.rb +71 -0
  437. data/lib/mindbody_public_api/models/user.rb +95 -0
  438. data/lib/mindbody_public_api/models/visit.rb +399 -0
  439. data/lib/mindbody_public_api/models/visit_waitlist_info.rb +74 -0
  440. data/lib/mindbody_public_api/models/visit_with_waitlist_info.rb +410 -0
  441. data/lib/mindbody_public_api/models/waitlist_entry.rb +173 -0
  442. data/lib/mindbody_public_api/models/written_class_schedules_info.rb +73 -0
  443. data/lib/mindbody_public_api/utilities/date_time_helper.rb +11 -0
  444. data/lib/mindbody_public_api/utilities/file_wrapper.rb +28 -0
  445. data/lib/mindbody_public_api.rb +495 -0
  446. metadata +529 -0
@@ -0,0 +1,351 @@
1
+ # mindbody_public_api
2
+ #
3
+ # This file was automatically generated by APIMATIC
4
+ # v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module MindbodyPublicApi
8
+ # Contains information about an appointment.
9
+ class Appointment < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # The prefered gender of the appointment provider.
14
+ # Possible values are:
15
+ # * None
16
+ # * Female
17
+ # * Male
18
+ # @return [GenderPreferenceEnum]
19
+ attr_accessor :gender_preference
20
+
21
+ # The duration of the appointment.
22
+ # @return [Integer]
23
+ attr_accessor :duration
24
+
25
+ # If a user has Complementary and Alternative Medicine features enabled,
26
+ # this property indicates the provider assigned to the appointment.
27
+ # @return [String]
28
+ attr_accessor :provider_id
29
+
30
+ # The unique ID of the appointment.
31
+ # @return [Integer]
32
+ attr_accessor :id
33
+
34
+ # The status of this appointment.
35
+ # Possible values are:
36
+ # * None
37
+ # * Requested
38
+ # * Booked
39
+ # * Completed
40
+ # * Confirmed
41
+ # * Arrived
42
+ # * NoShow
43
+ # * Cancelled
44
+ # * LateCancelled
45
+ # @return [StatusEnum]
46
+ attr_accessor :status
47
+
48
+ # The date and time the appointment is to start.
49
+ # @return [DateTime]
50
+ attr_accessor :start_date_time
51
+
52
+ # The date and time the appointment is to end.
53
+ # @return [DateTime]
54
+ attr_accessor :end_date_time
55
+
56
+ # Any notes associated with the appointment.
57
+ # @return [String]
58
+ attr_accessor :notes
59
+
60
+ # Optional external key for api partners.
61
+ # @return [String]
62
+ attr_accessor :partner_external_id
63
+
64
+ # When `true`, indicates that the staff member was requested specifically by
65
+ # the client.
66
+ # @return [TrueClass | FalseClass]
67
+ attr_accessor :staff_requested
68
+
69
+ # The ID of the program to which this appointment belongs.
70
+ # @return [Integer]
71
+ attr_accessor :program_id
72
+
73
+ # The ID of the session type of this appointment.
74
+ # @return [Integer]
75
+ attr_accessor :session_type_id
76
+
77
+ # The ID of the location where this appointment is to take place.
78
+ # @return [Integer]
79
+ attr_accessor :location_id
80
+
81
+ # The ID of the staff member providing the service for this appointment.
82
+ # @return [Integer]
83
+ attr_accessor :staff_id
84
+
85
+ # The ID of the staff member providing the service for this appointment.
86
+ # @return [AppointmentStaff]
87
+ attr_accessor :staff
88
+
89
+ # The RSSID of the client who is booked for this appointment.
90
+ # @return [String]
91
+ attr_accessor :client_id
92
+
93
+ # When `true`, indicates that this is the client’s first appointment at this
94
+ # site.
95
+ # @return [TrueClass | FalseClass]
96
+ attr_accessor :first_appointment
97
+
98
+ # When `true`, indicates that the client should be added to a specific
99
+ # appointment waiting list.
100
+ # When `false`, the client should not be added to the waiting list.
101
+ # Default: *false*
102
+ # @return [TrueClass | FalseClass]
103
+ attr_accessor :is_waitlist
104
+
105
+ # The unique ID of the appointment waitlist.
106
+ # @return [Integer]
107
+ attr_accessor :waitlist_entry_id
108
+
109
+ # The ID of the pass on the client’s account that is to pay for this
110
+ # appointment.
111
+ # @return [Integer]
112
+ attr_accessor :client_service_id
113
+
114
+ # The resources this appointment is to use.
115
+ # @return [Array[ResourceSlim]]
116
+ attr_accessor :resources
117
+
118
+ # Any AddOns associated with the appointment
119
+ # @return [Array[AddOnSmall]]
120
+ attr_accessor :add_ons
121
+
122
+ # Online Description associated with the appointment
123
+ # @return [String]
124
+ attr_accessor :online_description
125
+
126
+ # A mapping from model property names to API property names.
127
+ def self.names
128
+ @_hash = {} if @_hash.nil?
129
+ @_hash['gender_preference'] = 'GenderPreference'
130
+ @_hash['duration'] = 'Duration'
131
+ @_hash['provider_id'] = 'ProviderId'
132
+ @_hash['id'] = 'Id'
133
+ @_hash['status'] = 'Status'
134
+ @_hash['start_date_time'] = 'StartDateTime'
135
+ @_hash['end_date_time'] = 'EndDateTime'
136
+ @_hash['notes'] = 'Notes'
137
+ @_hash['partner_external_id'] = 'PartnerExternalId'
138
+ @_hash['staff_requested'] = 'StaffRequested'
139
+ @_hash['program_id'] = 'ProgramId'
140
+ @_hash['session_type_id'] = 'SessionTypeId'
141
+ @_hash['location_id'] = 'LocationId'
142
+ @_hash['staff_id'] = 'StaffId'
143
+ @_hash['staff'] = 'Staff'
144
+ @_hash['client_id'] = 'ClientId'
145
+ @_hash['first_appointment'] = 'FirstAppointment'
146
+ @_hash['is_waitlist'] = 'IsWaitlist'
147
+ @_hash['waitlist_entry_id'] = 'WaitlistEntryId'
148
+ @_hash['client_service_id'] = 'ClientServiceId'
149
+ @_hash['resources'] = 'Resources'
150
+ @_hash['add_ons'] = 'AddOns'
151
+ @_hash['online_description'] = 'OnlineDescription'
152
+ @_hash
153
+ end
154
+
155
+ # An array for optional fields
156
+ def self.optionals
157
+ %w[
158
+ gender_preference
159
+ duration
160
+ provider_id
161
+ id
162
+ status
163
+ start_date_time
164
+ end_date_time
165
+ notes
166
+ partner_external_id
167
+ staff_requested
168
+ program_id
169
+ session_type_id
170
+ location_id
171
+ staff_id
172
+ staff
173
+ client_id
174
+ first_appointment
175
+ is_waitlist
176
+ waitlist_entry_id
177
+ client_service_id
178
+ resources
179
+ add_ons
180
+ online_description
181
+ ]
182
+ end
183
+
184
+ # An array for nullable fields
185
+ def self.nullables
186
+ []
187
+ end
188
+
189
+ def initialize(gender_preference = SKIP, duration = SKIP,
190
+ provider_id = SKIP, id = SKIP, status = SKIP,
191
+ start_date_time = SKIP, end_date_time = SKIP, notes = SKIP,
192
+ partner_external_id = SKIP, staff_requested = SKIP,
193
+ program_id = SKIP, session_type_id = SKIP,
194
+ location_id = SKIP, staff_id = SKIP, staff = SKIP,
195
+ client_id = SKIP, first_appointment = SKIP,
196
+ is_waitlist = SKIP, waitlist_entry_id = SKIP,
197
+ client_service_id = SKIP, resources = SKIP, add_ons = SKIP,
198
+ online_description = SKIP)
199
+ @gender_preference = gender_preference unless gender_preference == SKIP
200
+ @duration = duration unless duration == SKIP
201
+ @provider_id = provider_id unless provider_id == SKIP
202
+ @id = id unless id == SKIP
203
+ @status = status unless status == SKIP
204
+ @start_date_time = start_date_time unless start_date_time == SKIP
205
+ @end_date_time = end_date_time unless end_date_time == SKIP
206
+ @notes = notes unless notes == SKIP
207
+ @partner_external_id = partner_external_id unless partner_external_id == SKIP
208
+ @staff_requested = staff_requested unless staff_requested == SKIP
209
+ @program_id = program_id unless program_id == SKIP
210
+ @session_type_id = session_type_id unless session_type_id == SKIP
211
+ @location_id = location_id unless location_id == SKIP
212
+ @staff_id = staff_id unless staff_id == SKIP
213
+ @staff = staff unless staff == SKIP
214
+ @client_id = client_id unless client_id == SKIP
215
+ @first_appointment = first_appointment unless first_appointment == SKIP
216
+ @is_waitlist = is_waitlist unless is_waitlist == SKIP
217
+ @waitlist_entry_id = waitlist_entry_id unless waitlist_entry_id == SKIP
218
+ @client_service_id = client_service_id unless client_service_id == SKIP
219
+ @resources = resources unless resources == SKIP
220
+ @add_ons = add_ons unless add_ons == SKIP
221
+ @online_description = online_description unless online_description == SKIP
222
+ end
223
+
224
+ # Creates an instance of the object from a hash.
225
+ def self.from_hash(hash)
226
+ return nil unless hash
227
+
228
+ # Extract variables from the hash.
229
+ gender_preference =
230
+ hash.key?('GenderPreference') ? hash['GenderPreference'] : SKIP
231
+ duration = hash.key?('Duration') ? hash['Duration'] : SKIP
232
+ provider_id = hash.key?('ProviderId') ? hash['ProviderId'] : SKIP
233
+ id = hash.key?('Id') ? hash['Id'] : SKIP
234
+ status = hash.key?('Status') ? hash['Status'] : SKIP
235
+ start_date_time = if hash.key?('StartDateTime')
236
+ (DateTimeHelper.from_rfc3339(hash['StartDateTime']) if hash['StartDateTime'])
237
+ else
238
+ SKIP
239
+ end
240
+ end_date_time = if hash.key?('EndDateTime')
241
+ (DateTimeHelper.from_rfc3339(hash['EndDateTime']) if hash['EndDateTime'])
242
+ else
243
+ SKIP
244
+ end
245
+ notes = hash.key?('Notes') ? hash['Notes'] : SKIP
246
+ partner_external_id =
247
+ hash.key?('PartnerExternalId') ? hash['PartnerExternalId'] : SKIP
248
+ staff_requested =
249
+ hash.key?('StaffRequested') ? hash['StaffRequested'] : SKIP
250
+ program_id = hash.key?('ProgramId') ? hash['ProgramId'] : SKIP
251
+ session_type_id =
252
+ hash.key?('SessionTypeId') ? hash['SessionTypeId'] : SKIP
253
+ location_id = hash.key?('LocationId') ? hash['LocationId'] : SKIP
254
+ staff_id = hash.key?('StaffId') ? hash['StaffId'] : SKIP
255
+ staff = AppointmentStaff.from_hash(hash['Staff']) if hash['Staff']
256
+ client_id = hash.key?('ClientId') ? hash['ClientId'] : SKIP
257
+ first_appointment =
258
+ hash.key?('FirstAppointment') ? hash['FirstAppointment'] : SKIP
259
+ is_waitlist = hash.key?('IsWaitlist') ? hash['IsWaitlist'] : SKIP
260
+ waitlist_entry_id =
261
+ hash.key?('WaitlistEntryId') ? hash['WaitlistEntryId'] : SKIP
262
+ client_service_id =
263
+ hash.key?('ClientServiceId') ? hash['ClientServiceId'] : SKIP
264
+ # Parameter is an array, so we need to iterate through it
265
+ resources = nil
266
+ unless hash['Resources'].nil?
267
+ resources = []
268
+ hash['Resources'].each do |structure|
269
+ resources << (ResourceSlim.from_hash(structure) if structure)
270
+ end
271
+ end
272
+
273
+ resources = SKIP unless hash.key?('Resources')
274
+ # Parameter is an array, so we need to iterate through it
275
+ add_ons = nil
276
+ unless hash['AddOns'].nil?
277
+ add_ons = []
278
+ hash['AddOns'].each do |structure|
279
+ add_ons << (AddOnSmall.from_hash(structure) if structure)
280
+ end
281
+ end
282
+
283
+ add_ons = SKIP unless hash.key?('AddOns')
284
+ online_description =
285
+ hash.key?('OnlineDescription') ? hash['OnlineDescription'] : SKIP
286
+
287
+ # Create object from extracted values.
288
+ Appointment.new(gender_preference,
289
+ duration,
290
+ provider_id,
291
+ id,
292
+ status,
293
+ start_date_time,
294
+ end_date_time,
295
+ notes,
296
+ partner_external_id,
297
+ staff_requested,
298
+ program_id,
299
+ session_type_id,
300
+ location_id,
301
+ staff_id,
302
+ staff,
303
+ client_id,
304
+ first_appointment,
305
+ is_waitlist,
306
+ waitlist_entry_id,
307
+ client_service_id,
308
+ resources,
309
+ add_ons,
310
+ online_description)
311
+ end
312
+
313
+ def to_custom_start_date_time
314
+ DateTimeHelper.to_rfc3339(start_date_time)
315
+ end
316
+
317
+ def to_custom_end_date_time
318
+ DateTimeHelper.to_rfc3339(end_date_time)
319
+ end
320
+
321
+ # Provides a human-readable string representation of the object.
322
+ def to_s
323
+ class_name = self.class.name.split('::').last
324
+ "<#{class_name} gender_preference: #{@gender_preference}, duration: #{@duration},"\
325
+ " provider_id: #{@provider_id}, id: #{@id}, status: #{@status}, start_date_time:"\
326
+ " #{@start_date_time}, end_date_time: #{@end_date_time}, notes: #{@notes},"\
327
+ " partner_external_id: #{@partner_external_id}, staff_requested: #{@staff_requested},"\
328
+ " program_id: #{@program_id}, session_type_id: #{@session_type_id}, location_id:"\
329
+ " #{@location_id}, staff_id: #{@staff_id}, staff: #{@staff}, client_id: #{@client_id},"\
330
+ " first_appointment: #{@first_appointment}, is_waitlist: #{@is_waitlist}, waitlist_entry_id:"\
331
+ " #{@waitlist_entry_id}, client_service_id: #{@client_service_id}, resources: #{@resources},"\
332
+ " add_ons: #{@add_ons}, online_description: #{@online_description}>"
333
+ end
334
+
335
+ # Provides a debugging-friendly string with detailed object information.
336
+ def inspect
337
+ class_name = self.class.name.split('::').last
338
+ "<#{class_name} gender_preference: #{@gender_preference.inspect}, duration:"\
339
+ " #{@duration.inspect}, provider_id: #{@provider_id.inspect}, id: #{@id.inspect}, status:"\
340
+ " #{@status.inspect}, start_date_time: #{@start_date_time.inspect}, end_date_time:"\
341
+ " #{@end_date_time.inspect}, notes: #{@notes.inspect}, partner_external_id:"\
342
+ " #{@partner_external_id.inspect}, staff_requested: #{@staff_requested.inspect}, program_id:"\
343
+ " #{@program_id.inspect}, session_type_id: #{@session_type_id.inspect}, location_id:"\
344
+ " #{@location_id.inspect}, staff_id: #{@staff_id.inspect}, staff: #{@staff.inspect},"\
345
+ " client_id: #{@client_id.inspect}, first_appointment: #{@first_appointment.inspect},"\
346
+ " is_waitlist: #{@is_waitlist.inspect}, waitlist_entry_id: #{@waitlist_entry_id.inspect},"\
347
+ " client_service_id: #{@client_service_id.inspect}, resources: #{@resources.inspect},"\
348
+ " add_ons: #{@add_ons.inspect}, online_description: #{@online_description.inspect}>"
349
+ end
350
+ end
351
+ end
@@ -0,0 +1,322 @@
1
+ # mindbody_public_api
2
+ #
3
+ # This file was automatically generated by APIMATIC
4
+ # v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module MindbodyPublicApi
8
+ # An appointment
9
+ class Appointment1 < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Prefered gender of appointment.
14
+ # @return [String]
15
+ attr_accessor :gender_preference
16
+
17
+ # Duration of appointment.
18
+ # @return [Integer]
19
+ attr_accessor :duration
20
+
21
+ # If a user has Complementary and Alternative Medicine features enabled,
22
+ # this will allow a Provider ID to be assigned to an appointment.
23
+ # @return [String]
24
+ attr_accessor :provider_id
25
+
26
+ # The unique ID of the appointment.
27
+ # @return [Integer]
28
+ attr_accessor :id
29
+
30
+ # The status of this appointment.
31
+ # @return [Status1Enum]
32
+ attr_accessor :status
33
+
34
+ # The date and time the appointment will start.
35
+ # @return [DateTime]
36
+ attr_accessor :start_date_time
37
+
38
+ # The date and time the appointment will end.
39
+ # @return [DateTime]
40
+ attr_accessor :end_date_time
41
+
42
+ # The appointment notes.
43
+ # @return [String]
44
+ attr_accessor :notes
45
+
46
+ # Optional external key for api partners.
47
+ # @return [String]
48
+ attr_accessor :partner_external_id
49
+
50
+ # Whether the staff member was requested specifically by the client.
51
+ # @return [TrueClass | FalseClass]
52
+ attr_accessor :staff_requested
53
+
54
+ # The ID of the program this appointment belongs to.
55
+ # @return [Integer]
56
+ attr_accessor :program_id
57
+
58
+ # The ID of the appointment waitlist.
59
+ # @return [Integer]
60
+ attr_accessor :waitlist_entry_id
61
+
62
+ # The ID of the session type of this appointment.
63
+ # @return [Integer]
64
+ attr_accessor :session_type_id
65
+
66
+ # The ID of the location where this appointment will take place.
67
+ # @return [Integer]
68
+ attr_accessor :location_id
69
+
70
+ # The ID of the staff member instructing this appointment.
71
+ # @return [Integer]
72
+ attr_accessor :staff_id
73
+
74
+ # The RSSID of the client booked for this appointment.
75
+ # @return [String]
76
+ attr_accessor :client_id
77
+
78
+ # Whether this is the client's first appointment at the site.
79
+ # @return [TrueClass | FalseClass]
80
+ attr_accessor :first_appointment
81
+
82
+ # The ID of the pass on the client's account that is paying for this
83
+ # appointment.
84
+ # @return [Integer]
85
+ attr_accessor :client_service_id
86
+
87
+ # The resources this appointment is using.
88
+ # @return [Array[Resource]]
89
+ attr_accessor :resources
90
+
91
+ # The Add-Ons Associated with this appointment
92
+ # @return [Array[AddOnSmall1]]
93
+ attr_accessor :add_ons
94
+
95
+ # Whether to add appointment to waitlist.
96
+ # @return [TrueClass | FalseClass]
97
+ attr_accessor :is_waitlist
98
+
99
+ # Online Description associated with the appointment
100
+ # @return [String]
101
+ attr_accessor :online_description
102
+
103
+ # A mapping from model property names to API property names.
104
+ def self.names
105
+ @_hash = {} if @_hash.nil?
106
+ @_hash['gender_preference'] = 'GenderPreference'
107
+ @_hash['duration'] = 'Duration'
108
+ @_hash['provider_id'] = 'ProviderId'
109
+ @_hash['id'] = 'Id'
110
+ @_hash['status'] = 'Status'
111
+ @_hash['start_date_time'] = 'StartDateTime'
112
+ @_hash['end_date_time'] = 'EndDateTime'
113
+ @_hash['notes'] = 'Notes'
114
+ @_hash['partner_external_id'] = 'PartnerExternalId'
115
+ @_hash['staff_requested'] = 'StaffRequested'
116
+ @_hash['program_id'] = 'ProgramId'
117
+ @_hash['waitlist_entry_id'] = 'WaitlistEntryId'
118
+ @_hash['session_type_id'] = 'SessionTypeId'
119
+ @_hash['location_id'] = 'LocationId'
120
+ @_hash['staff_id'] = 'StaffId'
121
+ @_hash['client_id'] = 'ClientId'
122
+ @_hash['first_appointment'] = 'FirstAppointment'
123
+ @_hash['client_service_id'] = 'ClientServiceId'
124
+ @_hash['resources'] = 'Resources'
125
+ @_hash['add_ons'] = 'AddOns'
126
+ @_hash['is_waitlist'] = 'IsWaitlist'
127
+ @_hash['online_description'] = 'OnlineDescription'
128
+ @_hash
129
+ end
130
+
131
+ # An array for optional fields
132
+ def self.optionals
133
+ %w[
134
+ gender_preference
135
+ duration
136
+ provider_id
137
+ id
138
+ status
139
+ start_date_time
140
+ end_date_time
141
+ notes
142
+ partner_external_id
143
+ staff_requested
144
+ program_id
145
+ waitlist_entry_id
146
+ session_type_id
147
+ location_id
148
+ staff_id
149
+ client_id
150
+ first_appointment
151
+ client_service_id
152
+ resources
153
+ add_ons
154
+ is_waitlist
155
+ online_description
156
+ ]
157
+ end
158
+
159
+ # An array for nullable fields
160
+ def self.nullables
161
+ []
162
+ end
163
+
164
+ def initialize(gender_preference = SKIP, duration = SKIP,
165
+ provider_id = SKIP, id = SKIP, status = SKIP,
166
+ start_date_time = SKIP, end_date_time = SKIP, notes = SKIP,
167
+ partner_external_id = SKIP, staff_requested = SKIP,
168
+ program_id = SKIP, waitlist_entry_id = SKIP,
169
+ session_type_id = SKIP, location_id = SKIP, staff_id = SKIP,
170
+ client_id = SKIP, first_appointment = SKIP,
171
+ client_service_id = SKIP, resources = SKIP, add_ons = SKIP,
172
+ is_waitlist = SKIP, online_description = SKIP)
173
+ @gender_preference = gender_preference unless gender_preference == SKIP
174
+ @duration = duration unless duration == SKIP
175
+ @provider_id = provider_id unless provider_id == SKIP
176
+ @id = id unless id == SKIP
177
+ @status = status unless status == SKIP
178
+ @start_date_time = start_date_time unless start_date_time == SKIP
179
+ @end_date_time = end_date_time unless end_date_time == SKIP
180
+ @notes = notes unless notes == SKIP
181
+ @partner_external_id = partner_external_id unless partner_external_id == SKIP
182
+ @staff_requested = staff_requested unless staff_requested == SKIP
183
+ @program_id = program_id unless program_id == SKIP
184
+ @waitlist_entry_id = waitlist_entry_id unless waitlist_entry_id == SKIP
185
+ @session_type_id = session_type_id unless session_type_id == SKIP
186
+ @location_id = location_id unless location_id == SKIP
187
+ @staff_id = staff_id unless staff_id == SKIP
188
+ @client_id = client_id unless client_id == SKIP
189
+ @first_appointment = first_appointment unless first_appointment == SKIP
190
+ @client_service_id = client_service_id unless client_service_id == SKIP
191
+ @resources = resources unless resources == SKIP
192
+ @add_ons = add_ons unless add_ons == SKIP
193
+ @is_waitlist = is_waitlist unless is_waitlist == SKIP
194
+ @online_description = online_description unless online_description == SKIP
195
+ end
196
+
197
+ # Creates an instance of the object from a hash.
198
+ def self.from_hash(hash)
199
+ return nil unless hash
200
+
201
+ # Extract variables from the hash.
202
+ gender_preference =
203
+ hash.key?('GenderPreference') ? hash['GenderPreference'] : SKIP
204
+ duration = hash.key?('Duration') ? hash['Duration'] : SKIP
205
+ provider_id = hash.key?('ProviderId') ? hash['ProviderId'] : SKIP
206
+ id = hash.key?('Id') ? hash['Id'] : SKIP
207
+ status = hash.key?('Status') ? hash['Status'] : SKIP
208
+ start_date_time = if hash.key?('StartDateTime')
209
+ (DateTimeHelper.from_rfc3339(hash['StartDateTime']) if hash['StartDateTime'])
210
+ else
211
+ SKIP
212
+ end
213
+ end_date_time = if hash.key?('EndDateTime')
214
+ (DateTimeHelper.from_rfc3339(hash['EndDateTime']) if hash['EndDateTime'])
215
+ else
216
+ SKIP
217
+ end
218
+ notes = hash.key?('Notes') ? hash['Notes'] : SKIP
219
+ partner_external_id =
220
+ hash.key?('PartnerExternalId') ? hash['PartnerExternalId'] : SKIP
221
+ staff_requested =
222
+ hash.key?('StaffRequested') ? hash['StaffRequested'] : SKIP
223
+ program_id = hash.key?('ProgramId') ? hash['ProgramId'] : SKIP
224
+ waitlist_entry_id =
225
+ hash.key?('WaitlistEntryId') ? hash['WaitlistEntryId'] : SKIP
226
+ session_type_id =
227
+ hash.key?('SessionTypeId') ? hash['SessionTypeId'] : SKIP
228
+ location_id = hash.key?('LocationId') ? hash['LocationId'] : SKIP
229
+ staff_id = hash.key?('StaffId') ? hash['StaffId'] : SKIP
230
+ client_id = hash.key?('ClientId') ? hash['ClientId'] : SKIP
231
+ first_appointment =
232
+ hash.key?('FirstAppointment') ? hash['FirstAppointment'] : SKIP
233
+ client_service_id =
234
+ hash.key?('ClientServiceId') ? hash['ClientServiceId'] : SKIP
235
+ # Parameter is an array, so we need to iterate through it
236
+ resources = nil
237
+ unless hash['Resources'].nil?
238
+ resources = []
239
+ hash['Resources'].each do |structure|
240
+ resources << (Resource.from_hash(structure) if structure)
241
+ end
242
+ end
243
+
244
+ resources = SKIP unless hash.key?('Resources')
245
+ # Parameter is an array, so we need to iterate through it
246
+ add_ons = nil
247
+ unless hash['AddOns'].nil?
248
+ add_ons = []
249
+ hash['AddOns'].each do |structure|
250
+ add_ons << (AddOnSmall1.from_hash(structure) if structure)
251
+ end
252
+ end
253
+
254
+ add_ons = SKIP unless hash.key?('AddOns')
255
+ is_waitlist = hash.key?('IsWaitlist') ? hash['IsWaitlist'] : SKIP
256
+ online_description =
257
+ hash.key?('OnlineDescription') ? hash['OnlineDescription'] : SKIP
258
+
259
+ # Create object from extracted values.
260
+ Appointment1.new(gender_preference,
261
+ duration,
262
+ provider_id,
263
+ id,
264
+ status,
265
+ start_date_time,
266
+ end_date_time,
267
+ notes,
268
+ partner_external_id,
269
+ staff_requested,
270
+ program_id,
271
+ waitlist_entry_id,
272
+ session_type_id,
273
+ location_id,
274
+ staff_id,
275
+ client_id,
276
+ first_appointment,
277
+ client_service_id,
278
+ resources,
279
+ add_ons,
280
+ is_waitlist,
281
+ online_description)
282
+ end
283
+
284
+ def to_custom_start_date_time
285
+ DateTimeHelper.to_rfc3339(start_date_time)
286
+ end
287
+
288
+ def to_custom_end_date_time
289
+ DateTimeHelper.to_rfc3339(end_date_time)
290
+ end
291
+
292
+ # Provides a human-readable string representation of the object.
293
+ def to_s
294
+ class_name = self.class.name.split('::').last
295
+ "<#{class_name} gender_preference: #{@gender_preference}, duration: #{@duration},"\
296
+ " provider_id: #{@provider_id}, id: #{@id}, status: #{@status}, start_date_time:"\
297
+ " #{@start_date_time}, end_date_time: #{@end_date_time}, notes: #{@notes},"\
298
+ " partner_external_id: #{@partner_external_id}, staff_requested: #{@staff_requested},"\
299
+ " program_id: #{@program_id}, waitlist_entry_id: #{@waitlist_entry_id}, session_type_id:"\
300
+ " #{@session_type_id}, location_id: #{@location_id}, staff_id: #{@staff_id}, client_id:"\
301
+ " #{@client_id}, first_appointment: #{@first_appointment}, client_service_id:"\
302
+ " #{@client_service_id}, resources: #{@resources}, add_ons: #{@add_ons}, is_waitlist:"\
303
+ " #{@is_waitlist}, online_description: #{@online_description}>"
304
+ end
305
+
306
+ # Provides a debugging-friendly string with detailed object information.
307
+ def inspect
308
+ class_name = self.class.name.split('::').last
309
+ "<#{class_name} gender_preference: #{@gender_preference.inspect}, duration:"\
310
+ " #{@duration.inspect}, provider_id: #{@provider_id.inspect}, id: #{@id.inspect}, status:"\
311
+ " #{@status.inspect}, start_date_time: #{@start_date_time.inspect}, end_date_time:"\
312
+ " #{@end_date_time.inspect}, notes: #{@notes.inspect}, partner_external_id:"\
313
+ " #{@partner_external_id.inspect}, staff_requested: #{@staff_requested.inspect}, program_id:"\
314
+ " #{@program_id.inspect}, waitlist_entry_id: #{@waitlist_entry_id.inspect}, session_type_id:"\
315
+ " #{@session_type_id.inspect}, location_id: #{@location_id.inspect}, staff_id:"\
316
+ " #{@staff_id.inspect}, client_id: #{@client_id.inspect}, first_appointment:"\
317
+ " #{@first_appointment.inspect}, client_service_id: #{@client_service_id.inspect},"\
318
+ " resources: #{@resources.inspect}, add_ons: #{@add_ons.inspect}, is_waitlist:"\
319
+ " #{@is_waitlist.inspect}, online_description: #{@online_description.inspect}>"
320
+ end
321
+ end
322
+ end