openactive 0.1.0.rc1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (637) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/create-data-model-pr.yaml +82 -0
  3. data/.github/workflows/release.yaml +39 -0
  4. data/.github/workflows/tests.yaml +26 -0
  5. data/.gitignore +3 -0
  6. data/.rubocop.yml +2 -2
  7. data/README.md +220 -2
  8. data/UPDATING.md +49 -0
  9. data/lib/openactive/base_model.rb +17 -14
  10. data/lib/openactive/concerns/type_checker.rb +1 -1
  11. data/lib/openactive/enums/{available_channel_type.rb → booking_channel_type.rb} +3 -3
  12. data/lib/openactive/enums/open_booking_flow_requirement.rb +0 -1
  13. data/lib/openactive/enums/order_item_status.rb +2 -2
  14. data/lib/openactive/enums/property_enumeration.rb +1456 -0
  15. data/lib/openactive/enums/schema/boarding_policy_type.rb +1 -1
  16. data/lib/openactive/enums/schema/book_format_type.rb +1 -0
  17. data/lib/openactive/enums/schema/business_entity_type.rb +1 -10
  18. data/lib/openactive/enums/schema/business_function.rb +1 -14
  19. data/lib/openactive/enums/schema/car_usage_type.rb +14 -0
  20. data/lib/openactive/enums/schema/day_of_week.rb +7 -6
  21. data/lib/openactive/enums/schema/delivery_method.rb +3 -14
  22. data/lib/openactive/enums/schema/digital_document_permission_type.rb +1 -1
  23. data/lib/openactive/enums/schema/energy_efficiency_enumeration.rb +11 -0
  24. data/lib/openactive/enums/schema/event_attendance_mode_enumeration.rb +14 -0
  25. data/lib/openactive/enums/schema/event_status_type.rb +1 -2
  26. data/lib/openactive/enums/schema/game_play_mode.rb +2 -2
  27. data/lib/openactive/enums/schema/gender_type.rb +1 -1
  28. data/lib/openactive/enums/schema/government_benefits_type.rb +19 -0
  29. data/lib/openactive/enums/schema/health_aspect_enumeration.rb +25 -18
  30. data/lib/openactive/enums/schema/item_availability.rb +7 -6
  31. data/lib/openactive/enums/schema/item_list_order_type.rb +2 -2
  32. data/lib/openactive/enums/schema/legal_value_level.rb +2 -2
  33. data/lib/openactive/enums/schema/map_category_type.rb +2 -2
  34. data/lib/openactive/enums/schema/measurement_type_enumeration.rb +11 -0
  35. data/lib/openactive/enums/schema/media_manipulation_rating_enumeration.rb +17 -0
  36. data/lib/openactive/enums/schema/medical_enumeration.rb +11 -0
  37. data/lib/openactive/enums/schema/merchant_return_enumeration.rb +15 -0
  38. data/lib/openactive/enums/schema/music_album_production_type.rb +5 -5
  39. data/lib/openactive/enums/schema/music_album_release_type.rb +1 -1
  40. data/lib/openactive/enums/schema/music_release_format_type.rb +2 -2
  41. data/lib/openactive/enums/schema/nonprofit_type.rb +11 -0
  42. data/lib/openactive/enums/schema/offer_item_condition.rb +1 -1
  43. data/lib/openactive/enums/schema/payment_method.rb +1 -15
  44. data/lib/openactive/enums/schema/physical_activity_category.rb +18 -0
  45. data/lib/openactive/enums/schema/price_component_type_enumeration.rb +17 -0
  46. data/lib/openactive/enums/schema/price_type_enumeration.rb +17 -0
  47. data/lib/openactive/enums/schema/refund_type_enumeration.rb +1 -1
  48. data/lib/openactive/enums/schema/restricted_diet.rb +6 -6
  49. data/lib/openactive/enums/schema/return_fees_enumeration.rb +2 -2
  50. data/lib/openactive/enums/schema/rsvp_response_type.rb +1 -1
  51. data/lib/openactive/enums/schema/size_group_enumeration.rb +11 -0
  52. data/lib/openactive/enums/schema/size_system_enumeration.rb +13 -0
  53. data/lib/openactive/enums/schema/status_enumeration.rb +11 -0
  54. data/lib/openactive/enums/schema/warranty_scope.rb +1 -9
  55. data/lib/openactive/enums/test_open_booking_flow_enumeration.rb +12 -0
  56. data/lib/openactive/enums/test_opportunity_criteria_enumeration.rb +39 -0
  57. data/lib/openactive/files_index.json +256 -50
  58. data/lib/openactive/helpers/json_ld.rb +23 -1
  59. data/lib/openactive/models/access_channel_update_simulate_action.rb +13 -0
  60. data/lib/openactive/models/access_code_update_simulate_action.rb +13 -0
  61. data/lib/openactive/models/access_pass_update_simulate_action.rb +13 -0
  62. data/lib/openactive/models/action.rb +5 -9
  63. data/lib/openactive/models/audio_object.rb +22 -0
  64. data/lib/openactive/models/authenticated_person.rb +18 -0
  65. data/lib/openactive/models/baby_changing.rb +1 -1
  66. data/lib/openactive/models/bar.rb +2 -2
  67. data/lib/openactive/models/barcode.rb +6 -1
  68. data/lib/openactive/models/booking_service.rb +1 -0
  69. data/lib/openactive/models/boolean_form_field_specification.rb +4 -3
  70. data/lib/openactive/models/brand.rb +8 -3
  71. data/lib/openactive/models/cafe.rb +2 -2
  72. data/lib/openactive/models/cancellation_not_permitted_error.rb +15 -0
  73. data/lib/openactive/models/certification_level.rb +13 -0
  74. data/lib/openactive/models/certification_scheme.rb +23 -0
  75. data/lib/openactive/models/change_of_logistics_location_simulate_action.rb +13 -0
  76. data/lib/openactive/models/change_of_logistics_name_simulate_action.rb +13 -0
  77. data/lib/openactive/models/change_of_logistics_time_simulate_action.rb +13 -0
  78. data/lib/openactive/models/changing_facilities.rb +1 -1
  79. data/lib/openactive/models/concept.rb +21 -1
  80. data/lib/openactive/models/concept_collection.rb +2 -1
  81. data/lib/openactive/models/concept_scheme.rb +1 -1
  82. data/lib/openactive/models/course.rb +43 -9
  83. data/lib/openactive/models/course_instance.rb +33 -1
  84. data/lib/openactive/models/creche.rb +1 -1
  85. data/lib/openactive/models/customer_notice_simulate_action.rb +13 -0
  86. data/lib/openactive/models/data_catalog.rb +53 -0
  87. data/lib/openactive/models/data_download.rb +7 -4
  88. data/lib/openactive/models/dataset.rb +2 -4
  89. data/lib/openactive/models/dropdown_form_field_specification.rb +1 -1
  90. data/lib/openactive/models/dynamic_payment.rb +1 -0
  91. data/lib/openactive/models/event.rb +98 -35
  92. data/lib/openactive/models/event_series.rb +15 -1
  93. data/lib/openactive/models/facility_use.rb +28 -21
  94. data/lib/openactive/models/geo_coordinates.rb +1 -1
  95. data/lib/openactive/models/gone_error.rb +15 -0
  96. data/lib/openactive/models/headline_event.rb +1 -6
  97. data/lib/openactive/models/image_object.rb +12 -2
  98. data/lib/openactive/models/incomplete_attendee_details_error.rb +15 -0
  99. data/lib/openactive/models/incomplete_broker_details_error.rb +15 -0
  100. data/lib/openactive/models/incomplete_customer_details_error.rb +15 -0
  101. data/lib/openactive/models/incomplete_intake_form_error.rb +15 -0
  102. data/lib/openactive/models/incomplete_order_item_error.rb +15 -0
  103. data/lib/openactive/models/incomplete_payment_details_error.rb +15 -0
  104. data/lib/openactive/models/indicative_offer.rb +2 -2
  105. data/lib/openactive/models/individual_facility_use.rb +1 -0
  106. data/lib/openactive/models/internal_application_error.rb +26 -0
  107. data/lib/openactive/models/internal_library_configuration_error.rb +26 -0
  108. data/lib/openactive/models/internal_library_error.rb +26 -0
  109. data/lib/openactive/models/internal_open_booking_error.rb +26 -0
  110. data/lib/openactive/models/invalid_apitoken_error.rb +15 -0
  111. data/lib/openactive/models/invalid_authorization_details_error.rb +15 -0
  112. data/lib/openactive/models/invalid_intake_form_error.rb +15 -0
  113. data/lib/openactive/models/invalid_opportunity_or_offer_id_error.rb +26 -0
  114. data/lib/openactive/models/invalid_payment_details_error.rb +15 -0
  115. data/lib/openactive/models/lease.rb +1 -0
  116. data/lib/openactive/models/location_feature_specification.rb +1 -1
  117. data/lib/openactive/models/lockers.rb +1 -1
  118. data/lib/openactive/models/media_object.rb +44 -0
  119. data/lib/openactive/models/method_not_allowed_error.rb +26 -0
  120. data/lib/openactive/models/missing_payment_details_error.rb +26 -0
  121. data/lib/openactive/models/no_apitoken_error.rb +15 -0
  122. data/lib/openactive/models/not_found_error.rb +15 -0
  123. data/lib/openactive/models/offer.rb +21 -11
  124. data/lib/openactive/models/offer_override.rb +41 -1
  125. data/lib/openactive/models/on_demand_event.rb +86 -0
  126. data/lib/openactive/models/open_booking_error.rb +1 -10
  127. data/lib/openactive/models/open_booking_simulate_action.rb +13 -0
  128. data/lib/openactive/models/opening_hours_specification.rb +15 -3
  129. data/lib/openactive/models/opportunity_attendance_update_simulate_action.rb +13 -0
  130. data/lib/openactive/models/opportunity_capacity_is_reserved_by_lease_error.rb +15 -0
  131. data/lib/openactive/models/opportunity_has_insufficient_capacity_error.rb +15 -0
  132. data/lib/openactive/models/opportunity_intractable_error.rb +26 -0
  133. data/lib/openactive/models/opportunity_is_full_error.rb +15 -0
  134. data/lib/openactive/models/opportunity_is_in_conflict_error.rb +15 -0
  135. data/lib/openactive/models/opportunity_offer_pair_not_bookable_error.rb +26 -0
  136. data/lib/openactive/models/order.rb +4 -7
  137. data/lib/openactive/models/order_already_exists_error.rb +15 -0
  138. data/lib/openactive/models/order_creation_failed_error.rb +15 -0
  139. data/lib/openactive/models/order_item.rb +20 -17
  140. data/lib/openactive/models/order_item_id_invalid_error.rb +26 -0
  141. data/lib/openactive/models/order_item_not_within_order_error.rb +26 -0
  142. data/lib/openactive/models/order_proposal.rb +7 -1
  143. data/lib/openactive/models/order_proposal_version_outdated_error.rb +26 -0
  144. data/lib/openactive/models/order_quote.rb +1 -11
  145. data/lib/openactive/models/organization.rb +17 -6
  146. data/lib/openactive/models/paragraph_form_field_specification.rb +1 -1
  147. data/lib/openactive/models/parking.rb +1 -1
  148. data/lib/openactive/models/partial_schedule.rb +16 -1
  149. data/lib/openactive/models/patch_contains_excessive_properties_error.rb +26 -0
  150. data/lib/openactive/models/patch_not_allowed_on_property_error.rb +26 -0
  151. data/lib/openactive/models/payment.rb +9 -7
  152. data/lib/openactive/models/person.rb +12 -1
  153. data/lib/openactive/models/place.rb +6 -1
  154. data/lib/openactive/models/postal_address.rb +1 -1
  155. data/lib/openactive/models/price_specification.rb +7 -1
  156. data/lib/openactive/models/privacy_policy.rb +1 -0
  157. data/lib/openactive/models/property_value.rb +3 -3
  158. data/lib/openactive/models/property_value_specification.rb +4 -3
  159. data/lib/openactive/models/quantitative_value.rb +1 -1
  160. data/lib/openactive/models/replacement_simulate_action.rb +13 -0
  161. data/lib/openactive/models/schedule.rb +10 -5
  162. data/lib/openactive/models/scheduled_session.rb +13 -6
  163. data/lib/openactive/models/schema/3dmodel.rb +7 -1
  164. data/lib/openactive/models/schema/accommodation.rb +55 -20
  165. data/lib/openactive/models/schema/action.rb +48 -39
  166. data/lib/openactive/models/schema/action_access_specification.rb +30 -23
  167. data/lib/openactive/models/schema/action_status_type.rb +13 -0
  168. data/lib/openactive/models/schema/aggregate_offer.rb +12 -10
  169. data/lib/openactive/models/schema/aggregate_rating.rb +6 -5
  170. data/lib/openactive/models/schema/airline.rb +5 -5
  171. data/lib/openactive/models/schema/alignment_object.rb +8 -8
  172. data/lib/openactive/models/schema/amp_story.rb +13 -0
  173. data/lib/openactive/models/schema/anatomical_structure.rb +59 -0
  174. data/lib/openactive/models/schema/anatomical_system.rb +43 -0
  175. data/lib/openactive/models/schema/answer.rb +7 -0
  176. data/lib/openactive/models/schema/apartment.rb +5 -3
  177. data/lib/openactive/models/schema/apartment_complex.rb +32 -0
  178. data/lib/openactive/models/schema/apireference.rb +5 -5
  179. data/lib/openactive/models/schema/approved_indication.rb +13 -0
  180. data/lib/openactive/models/schema/archive_component.rb +9 -7
  181. data/lib/openactive/models/schema/archive_organization.rb +2 -1
  182. data/lib/openactive/models/schema/artery.rb +25 -0
  183. data/lib/openactive/models/schema/article.rb +22 -21
  184. data/lib/openactive/models/schema/ask_action.rb +2 -1
  185. data/lib/openactive/models/schema/{locker_delivery.rb → atlas.rb} +2 -2
  186. data/lib/openactive/models/schema/audience.rb +2 -1
  187. data/lib/openactive/models/schema/audio_object.rb +6 -5
  188. data/lib/openactive/models/schema/audiobook.rb +26 -0
  189. data/lib/openactive/models/schema/authorize_action.rb +4 -3
  190. data/lib/openactive/models/schema/bank_account.rb +6 -4
  191. data/lib/openactive/models/schema/bed_details.rb +3 -2
  192. data/lib/openactive/models/schema/blog.rb +6 -4
  193. data/lib/openactive/models/schema/blood_test.rb +13 -0
  194. data/lib/openactive/models/schema/boat_reservation.rb +13 -0
  195. data/lib/openactive/models/schema/boat_terminal.rb +13 -0
  196. data/lib/openactive/models/schema/boat_trip.rb +25 -0
  197. data/lib/openactive/models/schema/body_measurement_type_enumeration.rb +13 -0
  198. data/lib/openactive/models/schema/bone.rb +13 -0
  199. data/lib/openactive/models/schema/book.rb +13 -6
  200. data/lib/openactive/models/schema/borrow_action.rb +3 -2
  201. data/lib/openactive/models/schema/brain_structure.rb +13 -0
  202. data/lib/openactive/models/schema/brand.rb +9 -7
  203. data/lib/openactive/models/schema/broadcast_channel.rb +19 -16
  204. data/lib/openactive/models/schema/broadcast_event.rb +9 -7
  205. data/lib/openactive/models/schema/broadcast_frequency_specification.rb +7 -6
  206. data/lib/openactive/models/schema/broadcast_service.rb +37 -24
  207. data/lib/openactive/models/schema/bus_or_coach.rb +24 -0
  208. data/lib/openactive/models/schema/bus_trip.rb +7 -5
  209. data/lib/openactive/models/schema/business_audience.rb +6 -3
  210. data/lib/openactive/models/schema/buy_action.rb +11 -8
  211. data/lib/openactive/models/schema/campground.rb +1 -1
  212. data/lib/openactive/models/schema/car.rb +11 -0
  213. data/lib/openactive/models/schema/category_code.rb +6 -6
  214. data/lib/openactive/models/schema/category_code_set.rb +2 -1
  215. data/lib/openactive/models/schema/cdcpmdrecord.rb +115 -0
  216. data/lib/openactive/models/schema/chapter.rb +32 -0
  217. data/lib/openactive/models/schema/choose_action.rb +5 -3
  218. data/lib/openactive/models/schema/claim.rb +6 -4
  219. data/lib/openactive/models/schema/class.rb +22 -0
  220. data/lib/openactive/models/schema/clip.rb +42 -30
  221. data/lib/openactive/models/schema/collection.rb +19 -0
  222. data/lib/openactive/models/schema/comic_cover_art.rb +13 -0
  223. data/lib/openactive/models/schema/comic_issue.rb +48 -0
  224. data/lib/openactive/models/schema/comic_series.rb +13 -0
  225. data/lib/openactive/models/schema/comic_story.rb +43 -0
  226. data/lib/openactive/models/schema/comment.rb +6 -5
  227. data/lib/openactive/models/schema/comment_action.rb +2 -1
  228. data/lib/openactive/models/schema/communicate_action.rb +16 -12
  229. data/lib/openactive/models/schema/compound_price_specification.rb +9 -1
  230. data/lib/openactive/models/schema/consume_action.rb +4 -2
  231. data/lib/openactive/models/schema/contact_point.rb +29 -24
  232. data/lib/openactive/models/schema/cook_action.rb +6 -3
  233. data/lib/openactive/models/schema/course.rb +25 -15
  234. data/lib/openactive/models/schema/course_instance.rb +7 -6
  235. data/lib/openactive/models/schema/cover_art.rb +13 -0
  236. data/lib/openactive/models/schema/covid_testing_facility.rb +13 -0
  237. data/lib/openactive/models/schema/creative_work.rb +423 -275
  238. data/lib/openactive/models/schema/creative_work_season.rb +36 -29
  239. data/lib/openactive/models/schema/credit_card.rb +1 -8
  240. data/lib/openactive/models/schema/data_catalog.rb +6 -5
  241. data/lib/openactive/models/schema/data_feed.rb +3 -2
  242. data/lib/openactive/models/schema/data_feed_item.rb +12 -11
  243. data/lib/openactive/models/schema/dataset.rb +28 -23
  244. data/lib/openactive/models/schema/dated_money_specification.rb +12 -11
  245. data/lib/openactive/models/schema/ddx_element.rb +25 -0
  246. data/lib/openactive/models/schema/defined_region.rb +41 -0
  247. data/lib/openactive/models/schema/defined_term.rb +5 -5
  248. data/lib/openactive/models/schema/defined_term_set.rb +2 -1
  249. data/lib/openactive/models/schema/delivery_charge_specification.rb +14 -11
  250. data/lib/openactive/models/schema/delivery_event.rb +6 -6
  251. data/lib/openactive/models/schema/delivery_time_settings.rb +36 -0
  252. data/lib/openactive/models/schema/demand.rb +130 -109
  253. data/lib/openactive/models/schema/dentist.rb +1 -1
  254. data/lib/openactive/models/schema/deposit_account.rb +1 -1
  255. data/lib/openactive/models/schema/diagnostic_lab.rb +19 -0
  256. data/lib/openactive/models/schema/diagnostic_procedure.rb +13 -0
  257. data/lib/openactive/models/schema/diet.rb +40 -0
  258. data/lib/openactive/models/schema/dietary_supplement.rb +76 -0
  259. data/lib/openactive/models/schema/digital_document.rb +2 -1
  260. data/lib/openactive/models/schema/digital_document_permission.rb +9 -8
  261. data/lib/openactive/models/schema/donate_action.rb +4 -3
  262. data/lib/openactive/models/schema/dose_schedule.rb +35 -0
  263. data/lib/openactive/models/schema/drug.rb +186 -0
  264. data/lib/openactive/models/schema/drug_class.rb +19 -0
  265. data/lib/openactive/models/schema/drug_cost.rb +48 -0
  266. data/lib/openactive/models/schema/drug_cost_category.rb +13 -0
  267. data/lib/openactive/models/schema/drug_legal_status.rb +19 -0
  268. data/lib/openactive/models/schema/drug_pregnancy_category.rb +13 -0
  269. data/lib/openactive/models/schema/drug_prescription_status.rb +13 -0
  270. data/lib/openactive/models/schema/drug_strength.rb +41 -0
  271. data/lib/openactive/models/schema/education_event.rb +21 -0
  272. data/lib/openactive/models/schema/educational_occupational_credential.rb +25 -11
  273. data/lib/openactive/models/schema/educational_occupational_program.rb +144 -9
  274. data/lib/openactive/models/schema/educational_organization.rb +2 -1
  275. data/lib/openactive/models/schema/employee_role.rb +8 -7
  276. data/lib/openactive/models/schema/endorse_action.rb +3 -2
  277. data/lib/openactive/models/schema/energy_consumption_details.rb +31 -0
  278. data/lib/openactive/models/schema/energy_star_energy_efficiency_enumeration.rb +13 -0
  279. data/lib/openactive/models/schema/engine_specification.rb +27 -1
  280. data/lib/openactive/models/schema/entry_point.rb +12 -10
  281. data/lib/openactive/models/schema/enumeration.rb +9 -0
  282. data/lib/openactive/models/schema/episode.rb +38 -22
  283. data/lib/openactive/models/schema/euenergy_efficiency_enumeration.rb +13 -0
  284. data/lib/openactive/models/schema/event.rb +156 -104
  285. data/lib/openactive/models/schema/event_status_type.rb +13 -0
  286. data/lib/openactive/models/schema/exchange_rate_specification.rb +10 -3
  287. data/lib/openactive/models/schema/exercise_action.rb +47 -15
  288. data/lib/openactive/models/schema/exercise_plan.rb +67 -0
  289. data/lib/openactive/models/schema/financial_product.rb +11 -9
  290. data/lib/openactive/models/schema/flight.rb +46 -39
  291. data/lib/openactive/models/schema/flight_reservation.rb +5 -5
  292. data/lib/openactive/models/schema/floor_plan.rb +90 -0
  293. data/lib/openactive/models/schema/follow_action.rb +3 -2
  294. data/lib/openactive/models/schema/food_establishment.rb +14 -13
  295. data/lib/openactive/models/schema/food_establishment_reservation.rb +11 -10
  296. data/lib/openactive/models/schema/game.rb +15 -11
  297. data/lib/openactive/models/schema/game_server.rb +9 -8
  298. data/lib/openactive/models/schema/game_server_status.rb +13 -0
  299. data/lib/openactive/models/schema/geo_circle.rb +6 -4
  300. data/lib/openactive/models/schema/geo_coordinates.rb +20 -18
  301. data/lib/openactive/models/schema/geo_shape.rb +17 -15
  302. data/lib/openactive/models/schema/geospatial_geometry.rb +70 -0
  303. data/lib/openactive/models/schema/give_action.rb +4 -3
  304. data/lib/openactive/models/schema/government_service.rb +9 -1
  305. data/lib/openactive/models/schema/grant.rb +9 -1
  306. data/lib/openactive/models/schema/guide.rb +18 -0
  307. data/lib/openactive/models/schema/hackathon.rb +13 -0
  308. data/lib/openactive/models/schema/health_insurance_plan.rb +23 -15
  309. data/lib/openactive/models/schema/health_plan_cost_sharing_specification.rb +9 -8
  310. data/lib/openactive/models/schema/health_plan_formulary.rb +7 -7
  311. data/lib/openactive/models/schema/health_plan_network.rb +5 -5
  312. data/lib/openactive/models/schema/hospital.rb +22 -1
  313. data/lib/openactive/models/schema/hotel_room.rb +5 -3
  314. data/lib/openactive/models/schema/house.rb +3 -2
  315. data/lib/openactive/models/schema/how_to.rb +36 -27
  316. data/lib/openactive/models/schema/how_to_direction.rb +24 -19
  317. data/lib/openactive/models/schema/how_to_item.rb +3 -2
  318. data/lib/openactive/models/schema/how_to_section.rb +3 -2
  319. data/lib/openactive/models/schema/how_to_step.rb +1 -1
  320. data/lib/openactive/models/schema/how_to_supply.rb +3 -2
  321. data/lib/openactive/models/schema/hyper_toc.rb +25 -0
  322. data/lib/openactive/models/schema/hyper_toc_entry.rb +30 -0
  323. data/lib/openactive/models/schema/image_gallery.rb +1 -1
  324. data/lib/openactive/models/schema/image_object.rb +15 -12
  325. data/lib/openactive/models/schema/imaging_test.rb +19 -0
  326. data/lib/openactive/models/schema/infectious_agent_class.rb +13 -0
  327. data/lib/openactive/models/schema/infectious_disease.rb +29 -0
  328. data/lib/openactive/models/schema/inform_action.rb +2 -1
  329. data/lib/openactive/models/schema/insert_action.rb +2 -1
  330. data/lib/openactive/models/schema/interaction_counter.rb +8 -6
  331. data/lib/openactive/models/schema/investment_or_deposit.rb +2 -1
  332. data/lib/openactive/models/schema/invite_action.rb +2 -1
  333. data/lib/openactive/models/schema/invoice.rb +61 -51
  334. data/lib/openactive/models/schema/item_list.rb +8 -7
  335. data/lib/openactive/models/schema/job_posting.rb +128 -70
  336. data/lib/openactive/models/schema/join_action.rb +2 -1
  337. data/lib/openactive/models/schema/joint.rb +30 -0
  338. data/lib/openactive/models/schema/learning_resource.rb +61 -0
  339. data/lib/openactive/models/schema/leave_action.rb +2 -1
  340. data/lib/openactive/models/schema/legal_force_status.rb +13 -0
  341. data/lib/openactive/models/schema/legislation.rb +51 -36
  342. data/lib/openactive/models/schema/lend_action.rb +2 -1
  343. data/lib/openactive/models/schema/lifestyle_modification.rb +13 -0
  344. data/lib/openactive/models/schema/ligament.rb +13 -0
  345. data/lib/openactive/models/schema/link_role.rb +7 -0
  346. data/lib/openactive/models/schema/list_item.rb +10 -7
  347. data/lib/openactive/models/schema/live_blog_posting.rb +6 -5
  348. data/lib/openactive/models/schema/loan_or_credit.rb +26 -21
  349. data/lib/openactive/models/schema/local_business.rb +7 -6
  350. data/lib/openactive/models/schema/location_feature_specification.rb +9 -8
  351. data/lib/openactive/models/schema/lodging_business.rb +24 -19
  352. data/lib/openactive/models/schema/lodging_reservation.rb +15 -13
  353. data/lib/openactive/models/schema/lose_action.rb +2 -1
  354. data/lib/openactive/models/schema/lymphatic_vessel.rb +32 -0
  355. data/lib/openactive/models/schema/math_solver.rb +20 -0
  356. data/lib/openactive/models/schema/maximum_dose_schedule.rb +13 -0
  357. data/lib/openactive/models/schema/media_gallery.rb +13 -0
  358. data/lib/openactive/models/schema/media_object.rb +65 -49
  359. data/lib/openactive/models/schema/media_review.rb +19 -0
  360. data/lib/openactive/models/schema/media_subscription.rb +8 -6
  361. data/lib/openactive/models/schema/medical_audience.rb +13 -0
  362. data/lib/openactive/models/schema/medical_audience_type.rb +13 -0
  363. data/lib/openactive/models/schema/medical_business.rb +13 -0
  364. data/lib/openactive/models/schema/medical_cause.rb +19 -0
  365. data/lib/openactive/models/schema/medical_clinic.rb +27 -0
  366. data/lib/openactive/models/schema/medical_code.rb +23 -0
  367. data/lib/openactive/models/schema/medical_condition.rb +109 -0
  368. data/lib/openactive/models/schema/medical_condition_stage.rb +24 -0
  369. data/lib/openactive/models/schema/medical_contraindication.rb +13 -0
  370. data/lib/openactive/models/schema/medical_device.rb +47 -0
  371. data/lib/openactive/models/schema/medical_device_purpose.rb +13 -0
  372. data/lib/openactive/models/schema/medical_entity.rb +58 -0
  373. data/lib/openactive/models/schema/medical_evidence_level.rb +13 -0
  374. data/lib/openactive/models/schema/medical_guideline.rb +36 -0
  375. data/lib/openactive/models/schema/medical_guideline_contraindication.rb +13 -0
  376. data/lib/openactive/models/schema/medical_guideline_recommendation.rb +18 -0
  377. data/lib/openactive/models/schema/medical_imaging_technique.rb +13 -0
  378. data/lib/openactive/models/schema/medical_indication.rb +13 -0
  379. data/lib/openactive/models/schema/medical_intangible.rb +13 -0
  380. data/lib/openactive/models/schema/medical_observational_study.rb +19 -0
  381. data/lib/openactive/models/schema/medical_observational_study_design.rb +13 -0
  382. data/lib/openactive/models/schema/medical_organization.rb +6 -0
  383. data/lib/openactive/models/schema/medical_procedure.rb +50 -0
  384. data/lib/openactive/models/schema/medical_procedure_type.rb +13 -0
  385. data/lib/openactive/models/schema/medical_risk_calculator.rb +13 -0
  386. data/lib/openactive/models/schema/medical_risk_estimator.rb +25 -0
  387. data/lib/openactive/models/schema/medical_risk_factor.rb +19 -0
  388. data/lib/openactive/models/schema/medical_risk_score.rb +18 -0
  389. data/lib/openactive/models/schema/medical_scholarly_article.rb +18 -0
  390. data/lib/openactive/models/schema/medical_sign.rb +25 -0
  391. data/lib/openactive/models/schema/medical_sign_or_symptom.rb +19 -0
  392. data/lib/openactive/models/schema/medical_specialty.rb +13 -0
  393. data/lib/openactive/models/schema/medical_study.rb +47 -0
  394. data/lib/openactive/models/schema/medical_study_status.rb +13 -0
  395. data/lib/openactive/models/schema/medical_symptom.rb +13 -0
  396. data/lib/openactive/models/schema/medical_test.rb +44 -0
  397. data/lib/openactive/models/schema/medical_test_panel.rb +19 -0
  398. data/lib/openactive/models/schema/medical_therapy.rb +32 -0
  399. data/lib/openactive/models/schema/medical_trial.rb +19 -0
  400. data/lib/openactive/models/schema/medical_trial_design.rb +13 -0
  401. data/lib/openactive/models/schema/medical_web_page.rb +25 -0
  402. data/lib/openactive/models/schema/medicine_system.rb +13 -0
  403. data/lib/openactive/models/schema/menu.rb +8 -6
  404. data/lib/openactive/models/schema/menu_item.rb +14 -10
  405. data/lib/openactive/models/schema/menu_section.rb +8 -6
  406. data/lib/openactive/models/schema/{product_return_policy.rb → merchant_return_policy.rb} +10 -10
  407. data/lib/openactive/models/schema/message.rb +32 -26
  408. data/lib/openactive/models/schema/monetary_amount.rb +21 -20
  409. data/lib/openactive/models/schema/monetary_grant.rb +15 -0
  410. data/lib/openactive/models/schema/money_transfer.rb +11 -2
  411. data/lib/openactive/models/schema/mortgage_loan.rb +2 -1
  412. data/lib/openactive/models/schema/motorcycle.rb +13 -0
  413. data/lib/openactive/models/schema/motorized_bicycle.rb +13 -0
  414. data/lib/openactive/models/schema/move_action.rb +4 -2
  415. data/lib/openactive/models/schema/movie.rb +37 -21
  416. data/lib/openactive/models/schema/movie_series.rb +24 -17
  417. data/lib/openactive/models/schema/muscle.rb +42 -0
  418. data/lib/openactive/models/schema/music_album.rb +11 -9
  419. data/lib/openactive/models/schema/music_composition.rb +27 -20
  420. data/lib/openactive/models/schema/music_group.rb +20 -15
  421. data/lib/openactive/models/schema/music_playlist.rb +9 -7
  422. data/lib/openactive/models/schema/music_recording.rb +18 -13
  423. data/lib/openactive/models/schema/music_release.rb +22 -18
  424. data/lib/openactive/models/schema/nerve.rb +38 -0
  425. data/lib/openactive/models/schema/news_article.rb +2 -2
  426. data/lib/openactive/models/schema/news_media_organization.rb +21 -21
  427. data/lib/openactive/models/schema/newspaper.rb +13 -0
  428. data/lib/openactive/models/schema/nlnonprofit_type.rb +13 -0
  429. data/lib/openactive/models/schema/nutrition_information.rb +37 -26
  430. data/lib/openactive/models/schema/observation.rb +14 -11
  431. data/lib/openactive/models/schema/occupation.rb +26 -18
  432. data/lib/openactive/models/schema/occupational_experience_requirements.rb +19 -0
  433. data/lib/openactive/models/schema/occupational_therapy.rb +13 -0
  434. data/lib/openactive/models/schema/offer.rb +179 -130
  435. data/lib/openactive/models/schema/offer_shipping_details.rb +52 -0
  436. data/lib/openactive/models/schema/opening_hours_specification.rb +12 -12
  437. data/lib/openactive/models/schema/optician.rb +13 -0
  438. data/lib/openactive/models/schema/order.rb +72 -63
  439. data/lib/openactive/models/schema/order_item.rb +15 -13
  440. data/lib/openactive/models/schema/{parcel_service.rb → order_status.rb} +2 -2
  441. data/lib/openactive/models/schema/organization.rb +224 -176
  442. data/lib/openactive/models/schema/ownership_info.rb +9 -7
  443. data/lib/openactive/models/schema/palliative_procedure.rb +13 -0
  444. data/lib/openactive/models/schema/parcel_delivery.rb +38 -31
  445. data/lib/openactive/models/schema/pathology_test.rb +18 -0
  446. data/lib/openactive/models/schema/patient.rb +31 -0
  447. data/lib/openactive/models/schema/pay_action.rb +4 -3
  448. data/lib/openactive/models/schema/payment_card.rb +17 -8
  449. data/lib/openactive/models/schema/payment_status_type.rb +13 -0
  450. data/lib/openactive/models/schema/people_audience.rb +27 -7
  451. data/lib/openactive/models/schema/perform_action.rb +2 -1
  452. data/lib/openactive/models/schema/permit.rb +19 -14
  453. data/lib/openactive/models/schema/person.rb +219 -175
  454. data/lib/openactive/models/schema/physical_activity.rb +40 -0
  455. data/lib/openactive/models/schema/physical_exam.rb +13 -0
  456. data/lib/openactive/models/schema/physical_therapy.rb +13 -0
  457. data/lib/openactive/models/schema/physician.rb +21 -1
  458. data/lib/openactive/models/schema/place.rb +152 -115
  459. data/lib/openactive/models/schema/play_action.rb +4 -2
  460. data/lib/openactive/models/schema/podcast_series.rb +2 -1
  461. data/lib/openactive/models/schema/postal_address.rb +9 -8
  462. data/lib/openactive/models/schema/postal_code_range_specification.rb +23 -0
  463. data/lib/openactive/models/schema/prevention_indication.rb +13 -0
  464. data/lib/openactive/models/schema/price_specification.rb +30 -28
  465. data/lib/openactive/models/schema/product.rb +153 -91
  466. data/lib/openactive/models/schema/product_collection.rb +19 -0
  467. data/lib/openactive/models/schema/product_group.rb +31 -0
  468. data/lib/openactive/models/schema/product_model.rb +9 -5
  469. data/lib/openactive/models/schema/program_membership.rb +17 -13
  470. data/lib/openactive/models/schema/pronounceable_text.rb +35 -0
  471. data/lib/openactive/models/schema/property.rb +41 -0
  472. data/lib/openactive/models/schema/property_value.rb +26 -21
  473. data/lib/openactive/models/schema/property_value_specification.rb +26 -25
  474. data/lib/openactive/models/schema/psychological_treatment.rb +13 -0
  475. data/lib/openactive/models/schema/publication_event.rb +9 -7
  476. data/lib/openactive/models/schema/publication_issue.rb +7 -7
  477. data/lib/openactive/models/schema/publication_volume.rb +7 -7
  478. data/lib/openactive/models/schema/quantitative_value.rb +25 -19
  479. data/lib/openactive/models/schema/quantitative_value_distribution.rb +10 -9
  480. data/lib/openactive/models/schema/question.rb +13 -18
  481. data/lib/openactive/models/schema/quiz.rb +13 -0
  482. data/lib/openactive/models/schema/quotation.rb +2 -1
  483. data/lib/openactive/models/schema/radiation_therapy.rb +13 -0
  484. data/lib/openactive/models/schema/radio_series.rb +49 -37
  485. data/lib/openactive/models/schema/rating.rb +10 -9
  486. data/lib/openactive/models/schema/real_estate_listing.rb +10 -2
  487. data/lib/openactive/models/schema/receive_action.rb +3 -2
  488. data/lib/openactive/models/schema/recipe.rb +27 -23
  489. data/lib/openactive/models/schema/recommendation.rb +22 -0
  490. data/lib/openactive/models/schema/recommended_dose_schedule.rb +13 -0
  491. data/lib/openactive/models/schema/rent_action.rb +5 -3
  492. data/lib/openactive/models/schema/rental_car_reservation.rb +8 -6
  493. data/lib/openactive/models/schema/repayment_specification.rb +14 -11
  494. data/lib/openactive/models/schema/replace_action.rb +6 -4
  495. data/lib/openactive/models/schema/reply_action.rb +2 -1
  496. data/lib/openactive/models/schema/reported_dose_schedule.rb +13 -0
  497. data/lib/openactive/models/schema/researcher.rb +13 -0
  498. data/lib/openactive/models/schema/reservation.rb +47 -39
  499. data/lib/openactive/models/schema/reservation_package.rb +2 -1
  500. data/lib/openactive/models/schema/reservation_status_type.rb +13 -0
  501. data/lib/openactive/models/schema/residence.rb +6 -0
  502. data/lib/openactive/models/schema/return_action.rb +4 -3
  503. data/lib/openactive/models/schema/review.rb +4 -2
  504. data/lib/openactive/models/schema/review_action.rb +2 -1
  505. data/lib/openactive/models/schema/review_news_article.rb +1 -1
  506. data/lib/openactive/models/schema/role.rb +12 -12
  507. data/lib/openactive/models/schema/rsvp_action.rb +8 -7
  508. data/lib/openactive/models/schema/schedule.rb +53 -11
  509. data/lib/openactive/models/schema/school_district.rb +13 -0
  510. data/lib/openactive/models/schema/screening_event.rb +8 -6
  511. data/lib/openactive/models/schema/seat.rb +8 -8
  512. data/lib/openactive/models/schema/seek_to_action.rb +13 -0
  513. data/lib/openactive/models/schema/sell_action.rb +8 -6
  514. data/lib/openactive/models/schema/send_action.rb +4 -3
  515. data/lib/openactive/models/schema/service.rb +99 -76
  516. data/lib/openactive/models/schema/service_channel.rb +28 -21
  517. data/lib/openactive/models/schema/shipping_delivery_time.rb +37 -0
  518. data/lib/openactive/models/schema/shipping_rate_settings.rb +49 -0
  519. data/lib/openactive/models/schema/single_family_residence.rb +5 -3
  520. data/lib/openactive/models/schema/size_specification.rb +52 -0
  521. data/lib/openactive/models/schema/ski_resort.rb +1 -1
  522. data/lib/openactive/models/schema/social_media_posting.rb +2 -1
  523. data/lib/openactive/models/schema/software_application.rb +58 -55
  524. data/lib/openactive/models/schema/software_source_code.rb +17 -15
  525. data/lib/openactive/models/schema/solve_math_action.rb +18 -0
  526. data/lib/openactive/models/schema/some_products.rb +2 -1
  527. data/lib/openactive/models/schema/special_announcement.rb +98 -0
  528. data/lib/openactive/models/schema/sports_event.rb +16 -7
  529. data/lib/openactive/models/schema/sports_team.rb +8 -6
  530. data/lib/openactive/models/schema/stadium_or_arena.rb +1 -1
  531. data/lib/openactive/models/schema/statistical_population.rb +8 -6
  532. data/lib/openactive/models/schema/substance.rb +24 -0
  533. data/lib/openactive/models/schema/suite.rb +8 -5
  534. data/lib/openactive/models/schema/superficial_anatomy.rb +42 -0
  535. data/lib/openactive/models/schema/surgical_procedure.rb +13 -0
  536. data/lib/openactive/models/schema/taxi_reservation.rb +9 -7
  537. data/lib/openactive/models/schema/tech_article.rb +2 -2
  538. data/lib/openactive/models/schema/therapeutic_procedure.rb +31 -0
  539. data/lib/openactive/models/schema/thesis.rb +18 -0
  540. data/lib/openactive/models/schema/thing.rb +24 -22
  541. data/lib/openactive/models/schema/ticket.rb +31 -27
  542. data/lib/openactive/models/schema/tip_action.rb +4 -3
  543. data/lib/openactive/models/schema/tourist_attraction.rb +4 -2
  544. data/lib/openactive/models/schema/tourist_destination.rb +9 -1
  545. data/lib/openactive/models/schema/tourist_trip.rb +7 -0
  546. data/lib/openactive/models/schema/trade_action.rb +4 -3
  547. data/lib/openactive/models/schema/train_trip.rb +15 -13
  548. data/lib/openactive/models/schema/transfer_action.rb +4 -2
  549. data/lib/openactive/models/schema/travel_action.rb +2 -1
  550. data/lib/openactive/models/schema/treatment_indication.rb +13 -0
  551. data/lib/openactive/models/schema/trip.rb +23 -17
  552. data/lib/openactive/models/schema/tvclip.rb +2 -1
  553. data/lib/openactive/models/schema/tvepisode.rb +12 -3
  554. data/lib/openactive/models/schema/tvseason.rb +4 -2
  555. data/lib/openactive/models/schema/tvseries.rb +52 -39
  556. data/lib/openactive/models/schema/type_and_quantity_node.rb +11 -10
  557. data/lib/openactive/models/schema/uknonprofit_type.rb +13 -0
  558. data/lib/openactive/models/schema/unit_price_specification.rb +33 -9
  559. data/lib/openactive/models/schema/update_action.rb +6 -4
  560. data/lib/openactive/models/schema/user_comments.rb +13 -11
  561. data/lib/openactive/models/schema/usnonprofit_type.rb +13 -0
  562. data/lib/openactive/models/schema/vehicle.rb +164 -61
  563. data/lib/openactive/models/schema/vein.rb +32 -0
  564. data/lib/openactive/models/schema/vessel.rb +13 -0
  565. data/lib/openactive/models/schema/veterinary_care.rb +13 -0
  566. data/lib/openactive/models/schema/video_gallery.rb +1 -1
  567. data/lib/openactive/models/schema/video_game.rb +39 -30
  568. data/lib/openactive/models/schema/video_game_series.rb +75 -58
  569. data/lib/openactive/models/schema/video_object.rb +29 -22
  570. data/lib/openactive/models/schema/virtual_location.rb +13 -0
  571. data/lib/openactive/models/schema/visual_artwork.rb +56 -23
  572. data/lib/openactive/models/schema/vital_sign.rb +13 -0
  573. data/lib/openactive/models/schema/vote_action.rb +2 -1
  574. data/lib/openactive/models/schema/warranty_promise.rb +6 -5
  575. data/lib/openactive/models/schema/wearable_measurement_type_enumeration.rb +13 -0
  576. data/lib/openactive/models/schema/wearable_size_group_enumeration.rb +13 -0
  577. data/lib/openactive/models/schema/wearable_size_system_enumeration.rb +13 -0
  578. data/lib/openactive/models/schema/web_page.rb +32 -28
  579. data/lib/openactive/models/schema/win_action.rb +2 -1
  580. data/lib/openactive/models/schema/work_based_program.rb +9 -1
  581. data/lib/openactive/models/schema/write_action.rb +4 -2
  582. data/lib/openactive/models/seller_accept_order_proposal_simulate_action.rb +13 -0
  583. data/lib/openactive/models/seller_amend_order_proposal_simulate_action.rb +13 -0
  584. data/lib/openactive/models/seller_mismatch_error.rb +26 -0
  585. data/lib/openactive/models/seller_not_found_error.rb +26 -0
  586. data/lib/openactive/models/seller_reject_order_proposal_simulate_action.rb +13 -0
  587. data/lib/openactive/models/seller_requested_cancellation_simulate_action.rb +13 -0
  588. data/lib/openactive/models/seller_requested_cancellation_with_message_simulate_action.rb +13 -0
  589. data/lib/openactive/models/session_series.rb +6 -1
  590. data/lib/openactive/models/short_answer_form_field_specification.rb +1 -1
  591. data/lib/openactive/models/showers.rb +1 -1
  592. data/lib/openactive/models/slot.rb +22 -24
  593. data/lib/openactive/models/tax_charge_specification.rb +7 -1
  594. data/lib/openactive/models/temporarily_unable_to_create_order_error.rb +15 -0
  595. data/lib/openactive/models/temporarily_unable_to_delete_order_error.rb +15 -0
  596. data/lib/openactive/models/temporarily_unable_to_produce_order_quote_error.rb +15 -0
  597. data/lib/openactive/models/temporarily_unable_to_update_order_error.rb +15 -0
  598. data/lib/openactive/models/terms.rb +7 -0
  599. data/lib/openactive/models/terms_of_use.rb +1 -0
  600. data/lib/openactive/models/toilets.rb +1 -1
  601. data/lib/openactive/models/too_many_requests_error.rb +15 -0
  602. data/lib/openactive/models/total_payment_due_mismatch_error.rb +15 -0
  603. data/lib/openactive/models/towels.rb +1 -1
  604. data/lib/openactive/models/trust_certification.rb +18 -0
  605. data/lib/openactive/models/unable_to_process_order_item_error.rb +15 -0
  606. data/lib/openactive/models/unacceptable_offer_error.rb +15 -0
  607. data/lib/openactive/models/unauthenticated_error.rb +15 -0
  608. data/lib/openactive/models/unexpected_order_type_error.rb +26 -0
  609. data/lib/openactive/models/unknown_offer_error.rb +15 -0
  610. data/lib/openactive/models/unknown_opportunity_error.rb +26 -0
  611. data/lib/openactive/models/unknown_or_incorrect_endpoint_error.rb +15 -0
  612. data/lib/openactive/models/unknown_order_error.rb +15 -0
  613. data/lib/openactive/models/unnecessary_payment_details_error.rb +26 -0
  614. data/lib/openactive/models/video_object.rb +22 -0
  615. data/lib/openactive/models/virtual_location.rb +37 -0
  616. data/lib/openactive/models/web_api.rb +7 -4
  617. data/lib/openactive/rpde/rpde_body.rb +6 -0
  618. data/lib/openactive/rpde/rpde_item.rb +1 -1
  619. data/lib/openactive/version.rb +1 -1
  620. data/openactive.gemspec +3 -3
  621. data/update-models.sh +38 -0
  622. metadata +244 -32
  623. data/lib/openactive/enums/schema/action_status_type.rb +0 -15
  624. data/lib/openactive/enums/schema/game_server_status.rb +0 -15
  625. data/lib/openactive/enums/schema/legal_force_status.rb +0 -14
  626. data/lib/openactive/enums/schema/order_status.rb +0 -19
  627. data/lib/openactive/enums/schema/payment_status_type.rb +0 -16
  628. data/lib/openactive/enums/schema/product_return_enumeration.rb +0 -15
  629. data/lib/openactive/enums/schema/reservation_status_type.rb +0 -15
  630. data/lib/openactive/models/entry_point.rb +0 -27
  631. data/lib/openactive/models/method_not_allowed.rb +0 -11
  632. data/lib/openactive/models/patch_contains_excessive_properties.rb +0 -11
  633. data/lib/openactive/models/patch_not_allowed_on_property.rb +0 -11
  634. data/lib/openactive/models/reserve_action.rb +0 -12
  635. data/lib/openactive/models/sports_activity_location.rb +0 -18
  636. data/lib/openactive/models/unavailable_opportunity_error.rb +0 -11
  637. data/lib/openactive/models/unknown_opportunity_details_error.rb +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93c227814f9139f11ffc43555c7d667fdc100e04110de9d70612811c6fb22aaa
4
- data.tar.gz: 2ec12d6038256e74a7f01ba2ac38139fec37dd0dd0d61bdaa72b5b191eb1dd8a
3
+ metadata.gz: 9076771a65bdda192786b2aa623817ac2c185f4786215d30c074859b0badff4e
4
+ data.tar.gz: e91eb80e55b80defc16dcae51a74f42388cfad79cf4452d5619508012a45c6e4
5
5
  SHA512:
6
- metadata.gz: e8ed3a7f93fca01494ed42d8e9acfe256a6297f9e273f42b5bcd7bfd1fcafeeeb4820248104fbfeecb68f0ea59413360d19e88404ceadb94dd4f94c1e19146e0
7
- data.tar.gz: c48c618544c7be88f31adec42443ab9067acd440842bc07b0b045b875a7184b32d34a016d26a5ce0ebca40aea9159091b846d556cf59c457f4e4bd4332c16992
6
+ metadata.gz: da906871a5055f4e34d957866a6ce9afe1abdaa1c44dad3f584a5422f4c2cfc092496bc469b5d7c103583a7c5b396f5b4b78283b1f31649840f52d0bc80b42c7
7
+ data.tar.gz: 48dd6d4fc20c5c34ba504e13211e6c6fee0eb2d4d2e3e29703602f02256ad803e1e1225ce6437e50ba49fe52d3fe1507e3de307b077e68e15021f3f05aa5dc48
@@ -0,0 +1,82 @@
1
+ name: Update Data Model
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ repository_dispatch:
6
+ types: [data-models-update]
7
+
8
+ jobs:
9
+ generate:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout models-ruby
14
+ uses: actions/checkout@v2
15
+ with:
16
+ ref: master
17
+ path: models-ruby
18
+
19
+ - name: Checkout models-lib
20
+ uses: actions/checkout@v2
21
+ with:
22
+ repository: openactive/models-lib
23
+ path: models-lib
24
+
25
+ - name: Setup Node.js 14.x
26
+ uses: actions/setup-node@v1
27
+ with:
28
+ node-version: 14.x
29
+
30
+ - name: Install models-lib
31
+ run: npm install
32
+ working-directory: ./models-lib/
33
+
34
+ - name: Update models-lib with latest data-models
35
+ run: npm update @openactive/data-models
36
+ working-directory: ./models-lib/
37
+
38
+ - name: Remove existing model files
39
+ run: rm -rf lib/openactive/models lib/openactive/enums
40
+ working-directory: ./models-lib/
41
+
42
+ - name: Run Ruby models generator
43
+ run: npm start -- generate Ruby --destination ../models-ruby/lib/openactive/
44
+ working-directory: ./models-lib/
45
+
46
+ - name: Set up Ruby
47
+ uses: ruby/setup-ruby@v1
48
+ with:
49
+ ruby-version: 3.0
50
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
51
+ working-directory: ./models-ruby/
52
+
53
+ - name: Fix syntax / linting
54
+ run: bundle exec rubocop -a lib/openactive/models lib/openactive/enums
55
+ working-directory: ./models-ruby/
56
+
57
+ - name: Create Pull Request
58
+ id: cpr
59
+ uses: peter-evans/create-pull-request@v3
60
+ with:
61
+ path: ./models-ruby/
62
+ token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}
63
+ commit-message: Update data models
64
+ committer: openactive-bot <openactive-bot@users.noreply.github.com>
65
+ author: openactive-bot <openactive-bot@users.noreply.github.com>
66
+ signoff: false
67
+ branch: ci/update-data-models
68
+ delete-branch: true
69
+ title: 'Update data models'
70
+ body: |
71
+ Update Ruby data models to the latest version based on the [OpenActive Vocabulary](https://openactive.io/ns/) (codified by the [Data Models](https://github.com/openactive/data-models)), [Test Interface](https://openactive.io/test-interface/) and [Beta Namespace](https://openactive.io/ns-beta/).
72
+ labels: |
73
+ automated pr
74
+ team-reviewers: |
75
+ owners
76
+ maintainers
77
+ draft: false
78
+
79
+ - name: Check outputs
80
+ run: |
81
+ echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
82
+ echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
@@ -0,0 +1,39 @@
1
+ name: Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ release:
8
+
9
+ runs-on: ubuntu-latest
10
+
11
+ steps:
12
+ - name: Checkout
13
+ uses: actions/checkout@v2
14
+ with:
15
+ token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}
16
+
17
+ - name: Identify
18
+ run: |
19
+ git config user.name OpenActive Bot
20
+ git config user.email hello@openactive.io
21
+
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: 2.7
26
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
27
+
28
+ - name: Run tests
29
+ run: bundle exec rspec
30
+
31
+ - name: Publish to RubyGems
32
+ run: |
33
+ mkdir -p $HOME/.gem
34
+ touch $HOME/.gem/credentials
35
+ chmod 0600 $HOME/.gem/credentials
36
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
37
+ bundle exec rake release
38
+ env:
39
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_API_KEY}}"
@@ -0,0 +1,26 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ ruby-version: ['2.6', '2.7']
16
+
17
+ steps:
18
+ - uses: actions/checkout@v2
19
+ - name: Set up Ruby
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby-version }}
23
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
24
+
25
+ - name: Run tests
26
+ run: bundle exec rspec
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
+ /vendor
2
+
1
3
  ### Ruby template
2
4
  *.gem
3
5
  *.rbc
@@ -11,6 +13,7 @@
11
13
  /test/version_tmp/
12
14
  /tmp/
13
15
  Gemfile.lock
16
+ .rspec_status
14
17
 
15
18
  # Used by dotenv library to load environment variables.
16
19
  # .env
data/.rubocop.yml CHANGED
@@ -56,12 +56,12 @@ RSpec/NestedGroups:
56
56
  Style/AsciiComments:
57
57
  Enabled: false
58
58
 
59
- Naming/UncommunicativeMethodParamName:
59
+ Naming/MethodParameterName:
60
60
  AllowedNames:
61
61
  - as
62
62
  - id
63
63
 
64
- Metrics/LineLength:
64
+ Layout/LineLength:
65
65
  Enabled: true
66
66
  Max: 120
67
67
  Exclude:
data/README.md CHANGED
@@ -1,9 +1,11 @@
1
- # openactive gem - Ruby implementation of OpenActive's data model
1
+ # openactive gem - Ruby implementation of OpenActive's data model [![Tests](https://github.com/openactive/models-ruby/actions/workflows/tests.yaml/badge.svg?branch=master)](https://github.com/openactive/models-ruby/actions/workflows/tests.yaml)
2
2
 
3
3
  Ruby Models for the OpenActive Opportunity and Booking Specifications
4
4
 
5
5
  OpenActive aims to provide model files for all classes defined in its Opportunity and Booking specifications across the PHP, Ruby, and .NET languages. This repository is intended for the Ruby files; see also the [PHP](https://github.com/openactive/models-php) and [.NET](https://github.com/openactive/OpenActive.NET) implementations.
6
6
 
7
+ Additional documentation can be found at https://www.rubydoc.info/gems/openactive/.
8
+
7
9
  ## Installation
8
10
 
9
11
  Add this line to your application's Gemfile:
@@ -22,8 +24,221 @@ Or install it yourself as:
22
24
 
23
25
  ## Usage
24
26
 
25
- TODO: Write usage instructions here
27
+ This package provides Ruby models for the OpenActive specifications.
28
+
29
+ It also provide a set of models for the [schema.org](https://schema.org) specifications.
30
+
31
+ Finally it provides a set of classes to handle OpenActive's [RPDE](https://developer.openactive.io/publishing-data/data-feeds/how-a-data-feed-works) data feeds.
32
+
33
+ ### Models
34
+ OpenActive includes OpenActive.io objects as objects for use in Ruby. All classes can be serialized into JSON-LD, to provide easy conformance with the [Modelling Specification](https://www.openactive.io/modelling-opportunity-data/) and [Open Booking API Specification](https://www.openactive.io/open-booking-api/).
35
+
36
+
37
+ Please note that type enforcement is in place for both class construction and attribute assignment, providing an invalid type will result in a OpenActive::Exception::InvalidArgumentException being thrown.
38
+
39
+ ### OpenActive
40
+ Classes for all OpenActive classes are available in the `OpenActive::Models` and `OpenActive::Enums` namespaces, and can be easily serialized to JSON-LD, as follows. Enumerations are available as `enum`s for properties that require their use.
41
+
42
+ ```ruby
43
+ event = OpenActive::Models::Event.new(
44
+ name: "Virtual BODYPUMP",
45
+ event_status: OpenActive::Enums::Schema::EventStatusType::EventScheduled
46
+ )
47
+ json_ld = event.to_json
48
+ ```
49
+
50
+ Value of `jsonLd`:
51
+ ```JSON
52
+ {
53
+ "@context": "https://openactive.io/",
54
+ "@type": "Event",
55
+ "name": "Virtual BODYPUMP",
56
+ "eventStatus": "https://schema.org/EventScheduled"
57
+ }
58
+ ```
59
+
60
+ ### Schema
61
+ The OpenActive data model builds on top of Schema.org, which means that you are free to use additional schema.org properties within OpenActive published data.
62
+
63
+ To reflect this, OpenActive uses inheritance to build ontop of a copy of Schema.org, these are available within the OpenActive::Models::Schema and OpenActive::Enums::Schema namespaces. And so makes it easy to use additional properties from schema.org on any given type.
64
+
65
+ ### Full Models Example
66
+ ```ruby
67
+ session_series = OpenActive::Models::SessionSeries.new(
68
+ name: "Virtual BODYPUMP",
69
+ description: "This is the virtual version of the original barbell class, which will help you get lean, toned and fit - fast",
70
+ start_date: "2017-04-24T19:30:00-08:00",
71
+ end_date: "2017-04-24T23:00:00-08:00",
72
+ location: OpenActive::Models::Place.new(
73
+ name: "Raynes Park High School, 46A West Barnes Lane",
74
+ geo: OpenActive::Models::GeoCoordinates.new(
75
+ latitude: 51.4034423828125,
76
+ longitude: -0.2369088977575302,
77
+ )
78
+ ),
79
+ activity: OpenActive::Models::Concept.new(
80
+ id: "https://openactive.io/activity-list#5e78bcbe-36db-425a-9064-bf96d09cc351",
81
+ pref_label: "Bodypump™",
82
+ in_scheme: "https://openactive.io/activity-list"
83
+ ),
84
+ organizer: OpenActive::Models::Organization.new(
85
+ name: "Central Speedball Association",
86
+ url: "http://www.speedball-world.com"
87
+ ),
88
+ offers: [OpenActive::Models::Offer.new(
89
+ identifier: "OX-AD",
90
+ name: "Adult",
91
+ price: 3.30,
92
+ price_currency: "GBP",
93
+ url: "https://profile.everyoneactive.com/booking?Site=0140&Activities=1402CBP20150217&Culture=en-GB"
94
+ )]
95
+ )
96
+
97
+ session_series.to_json
98
+ ```
99
+ This results in
100
+
101
+ ```json
102
+ {
103
+ "@context": ["https://openactive.io/", "https://openactive.io/ns-beta"],
104
+ "@type": "SessionSeries",
105
+ "description": "This is the virtual version of the original barbell class, which will help you get lean, toned and fit - fast",
106
+ "offers": [{
107
+ "@type": "Offer",
108
+ "name": "Adult",
109
+ "url": "https://profile.everyoneactive.com/booking?Site=0140&Activities=1402CBP20150217&Culture=en-GB",
110
+ "price": "3.33",
111
+ "priceCurrency": "GBP",
112
+ "identifier": "OX-AD"
113
+ }],
114
+ "startDate": "2017-04-24T19:30:00-08:00",
115
+ "endDate": "2017-04-24T23:00:00-08:00",
116
+ "location": {
117
+ "@type": "Place",
118
+ "name": "Raynes Park High School, 46A West Barnes Lane",
119
+ "geo": {
120
+ "@type": "GeoCoordinates",
121
+ "longitude": "-0.2369088977575302e0",
122
+ "latitude": "0.514034423828125e2"
123
+ }
124
+ },
125
+ "organizer": {
126
+ "@type": "Organization",
127
+ "name": "Central Speedball Association",
128
+ "url": "http://www.speedball-world.com"
129
+ },
130
+ "activity": {
131
+ "@type": "Concept",
132
+ "@id": "https://openactive.io/activity-list#5e78bcbe-36db-425a-9064-bf96d09cc351",
133
+ "inScheme": "https://openactive.io/activity-list",
134
+ "prefLabel": "Bodypump™"
135
+ },
136
+ "name": "Virtual BODYPUMP"
137
+ }
138
+ ```
139
+
140
+ ## RPDE Feed Publishing
141
+
142
+ To publish an OpenActive data feed (see this [video explainer](https://developer.openactive.io/publishing-data/data-feeds/how-a-data-feed-works)), The OpenActive gem provides a drop-in solution to render the feed pages. This also includes validation for the underlying feed query.
143
+
144
+ ### Modified Timestamp and ID Ordering Strategy
145
+
146
+ `OpenActive::Rpde::RpdeBody.create_from_modified_id(feedBaseUrl, afterTimestamp, afterId, items)`
147
+
148
+ Creates a new RPDE Page based on the RPDE Items provided using the [Modified Timestamp and ID Ordering Strategy](https://www.w3.org/2017/08/realtime-paged-data-exchange/#modified-timestamp-and-id), given the `afterTimestamp` and `afterId` parameters of the current query. Also validates that the items are in the correct order, throwing a `SerializationException` if this is not the case.
149
+
150
+ ```ruby
151
+ items = [
152
+ OpenActive::Rpde::RpdeItem.new(
153
+ Id: "1",
154
+ Modified: 3,
155
+ State: OpenActive::Rpde::RpdeState::Updated,
156
+ Kind: OpenActive::Rpde::RpdeKind::SessionSeries,
157
+ Data: @event
158
+ ),
159
+ OpenActive::Rpde::RpdeItem.new(
160
+ Id: "2",
161
+ Modified: 4,
162
+ State: OpenActive::Rpde::RpdeState::Deleted,
163
+ Kind: OpenActive::Rpde::RpdeKind::SessionSeries,
164
+ Data: nil
165
+ )
166
+ ]
167
+
168
+ json_ld = OpenActive::Rpde::RpdeBody.new("https://www.example.com/feed", 1, "1", items).to_json
169
+ ```
170
+
171
+
172
+ ### Incrementing Unique Change Number Ordering Strategy
173
+
174
+ `OpenActive::Rpde::RpdeBody.create_from_next_change_number(feedBaseUrl, afterChangeNumber, items)`
175
+
176
+ Creates a new RPDE Page based on the RPDE Items provided using the [Incrementing Unique Change Number Ordering Strategy](https://www.w3.org/2017/08/realtime-paged-data-exchange/#incrementing-unique-change-number), given the `afterChangeNumber` parameter of the current query. Also validates that the items are in the correct order, throwing a `SerializationException` if this is not the case.
177
+
178
+ ```ruby
179
+ items = [
180
+ OpenActive::Rpde::RpdeItem.new(
181
+ Id: "1",
182
+ Modified: 3,
183
+ State: OpenActive::Rpde::RpdeState::Updated,
184
+ Kind: OpenActive::Rpde::RpdeKind::SessionSeries,
185
+ Data: @event
186
+ ),
187
+ OpenActive::Rpde::RpdeItem.new(
188
+ Id: "2",
189
+ Modified: 4,
190
+ State: OpenActive::Rpde::RpdeState::Deleted,
191
+ Kind: OpenActive::Rpde::RpdeKind::SessionSeries,
192
+ Data: nil
193
+ )
194
+ ]
195
+
196
+ json_ld = OpenActive::Rpde::RpdeBody.create_from_next_change_number("https://www.example.com/feed", 2, items).to_json
197
+ ```
198
+
199
+ ## Serialization
200
+
201
+ ### `obj.serialize`
202
+ Returns the serialized object in hash form complying to json-ld structure (unlike .to_h this serializes everything all the way down.)
203
+ ```
204
+ event.serialize
205
+ ```
206
+ ```
207
+ {"@type"=>"Event", "name"=>"Virtual BODYPUMP", "eventStatus"=>"https://schema.org/EventScheduled", "@context"=>["https://openactive.io/", "https://openactive.io/ns-beta"]}
208
+ ```
209
+ ### `obj.to_json`
210
+ Serializes down to a json-ld string.
211
+ ```ruby
212
+ event.to_json
213
+ ```
214
+ returns
215
+ ```ruby
216
+ "{\"@type\":\"Event\",\"name\":\"Virtual BODYPUMP\",\"eventStatus\":\"https://schema.org/EventScheduled\",\"@context\":[\"https://openactive.io/\",\"https://openactive.io/ns-beta\"]}"
217
+ ```
218
+
219
+ ## Deserialization
220
+ ```ruby
221
+
222
+ data = JSON.parse('{"@context": ["https:\/\/openactive.io\/","https:\/\/openactive.io\/ns-beta"],"type": "Action","name": "Book","target": {"type": "EntryPoint","encodingType": "application\/vnd.openactive.v1.0+json","httpMethod": "POST","type": "EntryPoint","url": "https:\/\/example.com\/orders"}}')
26
223
 
224
+ deserialized = OpenActive::BaseModel.deserialize(data)
225
+
226
+ pp deserialized
227
+ ```
228
+
229
+ will result in
230
+ ```ruby
231
+ #<OpenActive::Models::Action:0x00007ff6fd0966d0
232
+ @name="Book",
233
+ @target=
234
+ #<OpenActive::Models::EntryPoint:0x00007ff6fd095fa0
235
+ @encoding_type="application/vnd.openactive.v1.0+json",
236
+ @http_method="POST",
237
+ @url=#<URI::HTTPS https://example.com/orders>>>
238
+ => #<OpenActive::Models::Action:0x00007ff6fd0966d0
239
+ @name="Book",
240
+ @target=#<OpenActive::Models::EntryPoint:0x00007ff6fd095fa0 @encoding_type="application/vnd.openactive.v1.0+json", @http_method="POST", @url=#<URI::HTTPS https://example.com/orders>>>
241
+ ```
27
242
  ## Development
28
243
 
29
244
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -33,3 +248,6 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
33
248
  ## Contributing
34
249
 
35
250
  Bug reports and pull requests are welcome on GitHub at https://github.com/openactive/models-ruby.
251
+
252
+ ### Updating models
253
+ A guide is provided in [UPDATING.md](UPDATING.md)
data/UPDATING.md ADDED
@@ -0,0 +1,49 @@
1
+ # Updating models
2
+
3
+ A convenience script has been provided, `./update-models.sh`.
4
+
5
+ The process that's been automated here is roughly as follows:
6
+
7
+ ```bash
8
+ # install and get the generator into place
9
+ git clone https://github.com/openactive/models-lib vendor/models-lib
10
+ mkdir -p vendor/models-lib
11
+ cd vendor/models-lib
12
+ npm install
13
+
14
+ # generate models
15
+ npm run app-dev -- generate Ruby --destination ../../lib/openactive/
16
+
17
+ cd ../..
18
+ # fix syntax / linting
19
+ rubocop exec rubocop -a lib/openactive/models lib/openactive/enums
20
+
21
+ # run tests
22
+ rubocop exec rubocop -a rspec
23
+
24
+ # add the newly generated models
25
+ git add lib/openactive/models lib/openactive/enums lib/openactive/files-index.json
26
+ ```
27
+
28
+ The next step is to commit it.
29
+
30
+ ```bash
31
+ git commit -m 'Model update'
32
+ git push # push up new branch
33
+ ```
34
+
35
+ ## Releasing
36
+
37
+ Bump the version number in lib/openactive/version.rb, commit this and tag the repository with the matching version number.
38
+
39
+ ```bash
40
+ git tag v0.0.0 # tag the matching version number
41
+ git push origin v0.0.0 # push up new tag
42
+ ```
43
+
44
+ then it's a case of building and pushing the gem.
45
+ ```bash
46
+ gem build openactive
47
+ gem push openactive-0.0.0.gem # substitute version with the build ver
48
+
49
+ ```