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.
- checksums.yaml +4 -4
- data/.github/workflows/create-data-model-pr.yaml +82 -0
- data/.github/workflows/release.yaml +39 -0
- data/.github/workflows/tests.yaml +26 -0
- data/.gitignore +3 -0
- data/.rubocop.yml +2 -2
- data/README.md +220 -2
- data/UPDATING.md +49 -0
- data/lib/openactive/base_model.rb +17 -14
- data/lib/openactive/concerns/type_checker.rb +1 -1
- data/lib/openactive/enums/{available_channel_type.rb → booking_channel_type.rb} +3 -3
- data/lib/openactive/enums/open_booking_flow_requirement.rb +0 -1
- data/lib/openactive/enums/order_item_status.rb +2 -2
- data/lib/openactive/enums/property_enumeration.rb +1456 -0
- data/lib/openactive/enums/schema/boarding_policy_type.rb +1 -1
- data/lib/openactive/enums/schema/book_format_type.rb +1 -0
- data/lib/openactive/enums/schema/business_entity_type.rb +1 -10
- data/lib/openactive/enums/schema/business_function.rb +1 -14
- data/lib/openactive/enums/schema/car_usage_type.rb +14 -0
- data/lib/openactive/enums/schema/day_of_week.rb +7 -6
- data/lib/openactive/enums/schema/delivery_method.rb +3 -14
- data/lib/openactive/enums/schema/digital_document_permission_type.rb +1 -1
- data/lib/openactive/enums/schema/energy_efficiency_enumeration.rb +11 -0
- data/lib/openactive/enums/schema/event_attendance_mode_enumeration.rb +14 -0
- data/lib/openactive/enums/schema/event_status_type.rb +1 -2
- data/lib/openactive/enums/schema/game_play_mode.rb +2 -2
- data/lib/openactive/enums/schema/gender_type.rb +1 -1
- data/lib/openactive/enums/schema/government_benefits_type.rb +19 -0
- data/lib/openactive/enums/schema/health_aspect_enumeration.rb +25 -18
- data/lib/openactive/enums/schema/item_availability.rb +7 -6
- data/lib/openactive/enums/schema/item_list_order_type.rb +2 -2
- data/lib/openactive/enums/schema/legal_value_level.rb +2 -2
- data/lib/openactive/enums/schema/map_category_type.rb +2 -2
- data/lib/openactive/enums/schema/measurement_type_enumeration.rb +11 -0
- data/lib/openactive/enums/schema/media_manipulation_rating_enumeration.rb +17 -0
- data/lib/openactive/enums/schema/medical_enumeration.rb +11 -0
- data/lib/openactive/enums/schema/merchant_return_enumeration.rb +15 -0
- data/lib/openactive/enums/schema/music_album_production_type.rb +5 -5
- data/lib/openactive/enums/schema/music_album_release_type.rb +1 -1
- data/lib/openactive/enums/schema/music_release_format_type.rb +2 -2
- data/lib/openactive/enums/schema/nonprofit_type.rb +11 -0
- data/lib/openactive/enums/schema/offer_item_condition.rb +1 -1
- data/lib/openactive/enums/schema/payment_method.rb +1 -15
- data/lib/openactive/enums/schema/physical_activity_category.rb +18 -0
- data/lib/openactive/enums/schema/price_component_type_enumeration.rb +17 -0
- data/lib/openactive/enums/schema/price_type_enumeration.rb +17 -0
- data/lib/openactive/enums/schema/refund_type_enumeration.rb +1 -1
- data/lib/openactive/enums/schema/restricted_diet.rb +6 -6
- data/lib/openactive/enums/schema/return_fees_enumeration.rb +2 -2
- data/lib/openactive/enums/schema/rsvp_response_type.rb +1 -1
- data/lib/openactive/enums/schema/size_group_enumeration.rb +11 -0
- data/lib/openactive/enums/schema/size_system_enumeration.rb +13 -0
- data/lib/openactive/enums/schema/status_enumeration.rb +11 -0
- data/lib/openactive/enums/schema/warranty_scope.rb +1 -9
- data/lib/openactive/enums/test_open_booking_flow_enumeration.rb +12 -0
- data/lib/openactive/enums/test_opportunity_criteria_enumeration.rb +39 -0
- data/lib/openactive/files_index.json +256 -50
- data/lib/openactive/helpers/json_ld.rb +23 -1
- data/lib/openactive/models/access_channel_update_simulate_action.rb +13 -0
- data/lib/openactive/models/access_code_update_simulate_action.rb +13 -0
- data/lib/openactive/models/access_pass_update_simulate_action.rb +13 -0
- data/lib/openactive/models/action.rb +5 -9
- data/lib/openactive/models/audio_object.rb +22 -0
- data/lib/openactive/models/authenticated_person.rb +18 -0
- data/lib/openactive/models/baby_changing.rb +1 -1
- data/lib/openactive/models/bar.rb +2 -2
- data/lib/openactive/models/barcode.rb +6 -1
- data/lib/openactive/models/booking_service.rb +1 -0
- data/lib/openactive/models/boolean_form_field_specification.rb +4 -3
- data/lib/openactive/models/brand.rb +8 -3
- data/lib/openactive/models/cafe.rb +2 -2
- data/lib/openactive/models/cancellation_not_permitted_error.rb +15 -0
- data/lib/openactive/models/certification_level.rb +13 -0
- data/lib/openactive/models/certification_scheme.rb +23 -0
- data/lib/openactive/models/change_of_logistics_location_simulate_action.rb +13 -0
- data/lib/openactive/models/change_of_logistics_name_simulate_action.rb +13 -0
- data/lib/openactive/models/change_of_logistics_time_simulate_action.rb +13 -0
- data/lib/openactive/models/changing_facilities.rb +1 -1
- data/lib/openactive/models/concept.rb +21 -1
- data/lib/openactive/models/concept_collection.rb +2 -1
- data/lib/openactive/models/concept_scheme.rb +1 -1
- data/lib/openactive/models/course.rb +43 -9
- data/lib/openactive/models/course_instance.rb +33 -1
- data/lib/openactive/models/creche.rb +1 -1
- data/lib/openactive/models/customer_notice_simulate_action.rb +13 -0
- data/lib/openactive/models/data_catalog.rb +53 -0
- data/lib/openactive/models/data_download.rb +7 -4
- data/lib/openactive/models/dataset.rb +2 -4
- data/lib/openactive/models/dropdown_form_field_specification.rb +1 -1
- data/lib/openactive/models/dynamic_payment.rb +1 -0
- data/lib/openactive/models/event.rb +98 -35
- data/lib/openactive/models/event_series.rb +15 -1
- data/lib/openactive/models/facility_use.rb +28 -21
- data/lib/openactive/models/geo_coordinates.rb +1 -1
- data/lib/openactive/models/gone_error.rb +15 -0
- data/lib/openactive/models/headline_event.rb +1 -6
- data/lib/openactive/models/image_object.rb +12 -2
- data/lib/openactive/models/incomplete_attendee_details_error.rb +15 -0
- data/lib/openactive/models/incomplete_broker_details_error.rb +15 -0
- data/lib/openactive/models/incomplete_customer_details_error.rb +15 -0
- data/lib/openactive/models/incomplete_intake_form_error.rb +15 -0
- data/lib/openactive/models/incomplete_order_item_error.rb +15 -0
- data/lib/openactive/models/incomplete_payment_details_error.rb +15 -0
- data/lib/openactive/models/indicative_offer.rb +2 -2
- data/lib/openactive/models/individual_facility_use.rb +1 -0
- data/lib/openactive/models/internal_application_error.rb +26 -0
- data/lib/openactive/models/internal_library_configuration_error.rb +26 -0
- data/lib/openactive/models/internal_library_error.rb +26 -0
- data/lib/openactive/models/internal_open_booking_error.rb +26 -0
- data/lib/openactive/models/invalid_apitoken_error.rb +15 -0
- data/lib/openactive/models/invalid_authorization_details_error.rb +15 -0
- data/lib/openactive/models/invalid_intake_form_error.rb +15 -0
- data/lib/openactive/models/invalid_opportunity_or_offer_id_error.rb +26 -0
- data/lib/openactive/models/invalid_payment_details_error.rb +15 -0
- data/lib/openactive/models/lease.rb +1 -0
- data/lib/openactive/models/location_feature_specification.rb +1 -1
- data/lib/openactive/models/lockers.rb +1 -1
- data/lib/openactive/models/media_object.rb +44 -0
- data/lib/openactive/models/method_not_allowed_error.rb +26 -0
- data/lib/openactive/models/missing_payment_details_error.rb +26 -0
- data/lib/openactive/models/no_apitoken_error.rb +15 -0
- data/lib/openactive/models/not_found_error.rb +15 -0
- data/lib/openactive/models/offer.rb +21 -11
- data/lib/openactive/models/offer_override.rb +41 -1
- data/lib/openactive/models/on_demand_event.rb +86 -0
- data/lib/openactive/models/open_booking_error.rb +1 -10
- data/lib/openactive/models/open_booking_simulate_action.rb +13 -0
- data/lib/openactive/models/opening_hours_specification.rb +15 -3
- data/lib/openactive/models/opportunity_attendance_update_simulate_action.rb +13 -0
- data/lib/openactive/models/opportunity_capacity_is_reserved_by_lease_error.rb +15 -0
- data/lib/openactive/models/opportunity_has_insufficient_capacity_error.rb +15 -0
- data/lib/openactive/models/opportunity_intractable_error.rb +26 -0
- data/lib/openactive/models/opportunity_is_full_error.rb +15 -0
- data/lib/openactive/models/opportunity_is_in_conflict_error.rb +15 -0
- data/lib/openactive/models/opportunity_offer_pair_not_bookable_error.rb +26 -0
- data/lib/openactive/models/order.rb +4 -7
- data/lib/openactive/models/order_already_exists_error.rb +15 -0
- data/lib/openactive/models/order_creation_failed_error.rb +15 -0
- data/lib/openactive/models/order_item.rb +20 -17
- data/lib/openactive/models/order_item_id_invalid_error.rb +26 -0
- data/lib/openactive/models/order_item_not_within_order_error.rb +26 -0
- data/lib/openactive/models/order_proposal.rb +7 -1
- data/lib/openactive/models/order_proposal_version_outdated_error.rb +26 -0
- data/lib/openactive/models/order_quote.rb +1 -11
- data/lib/openactive/models/organization.rb +17 -6
- data/lib/openactive/models/paragraph_form_field_specification.rb +1 -1
- data/lib/openactive/models/parking.rb +1 -1
- data/lib/openactive/models/partial_schedule.rb +16 -1
- data/lib/openactive/models/patch_contains_excessive_properties_error.rb +26 -0
- data/lib/openactive/models/patch_not_allowed_on_property_error.rb +26 -0
- data/lib/openactive/models/payment.rb +9 -7
- data/lib/openactive/models/person.rb +12 -1
- data/lib/openactive/models/place.rb +6 -1
- data/lib/openactive/models/postal_address.rb +1 -1
- data/lib/openactive/models/price_specification.rb +7 -1
- data/lib/openactive/models/privacy_policy.rb +1 -0
- data/lib/openactive/models/property_value.rb +3 -3
- data/lib/openactive/models/property_value_specification.rb +4 -3
- data/lib/openactive/models/quantitative_value.rb +1 -1
- data/lib/openactive/models/replacement_simulate_action.rb +13 -0
- data/lib/openactive/models/schedule.rb +10 -5
- data/lib/openactive/models/scheduled_session.rb +13 -6
- data/lib/openactive/models/schema/3dmodel.rb +7 -1
- data/lib/openactive/models/schema/accommodation.rb +55 -20
- data/lib/openactive/models/schema/action.rb +48 -39
- data/lib/openactive/models/schema/action_access_specification.rb +30 -23
- data/lib/openactive/models/schema/action_status_type.rb +13 -0
- data/lib/openactive/models/schema/aggregate_offer.rb +12 -10
- data/lib/openactive/models/schema/aggregate_rating.rb +6 -5
- data/lib/openactive/models/schema/airline.rb +5 -5
- data/lib/openactive/models/schema/alignment_object.rb +8 -8
- data/lib/openactive/models/schema/amp_story.rb +13 -0
- data/lib/openactive/models/schema/anatomical_structure.rb +59 -0
- data/lib/openactive/models/schema/anatomical_system.rb +43 -0
- data/lib/openactive/models/schema/answer.rb +7 -0
- data/lib/openactive/models/schema/apartment.rb +5 -3
- data/lib/openactive/models/schema/apartment_complex.rb +32 -0
- data/lib/openactive/models/schema/apireference.rb +5 -5
- data/lib/openactive/models/schema/approved_indication.rb +13 -0
- data/lib/openactive/models/schema/archive_component.rb +9 -7
- data/lib/openactive/models/schema/archive_organization.rb +2 -1
- data/lib/openactive/models/schema/artery.rb +25 -0
- data/lib/openactive/models/schema/article.rb +22 -21
- data/lib/openactive/models/schema/ask_action.rb +2 -1
- data/lib/openactive/models/schema/{locker_delivery.rb → atlas.rb} +2 -2
- data/lib/openactive/models/schema/audience.rb +2 -1
- data/lib/openactive/models/schema/audio_object.rb +6 -5
- data/lib/openactive/models/schema/audiobook.rb +26 -0
- data/lib/openactive/models/schema/authorize_action.rb +4 -3
- data/lib/openactive/models/schema/bank_account.rb +6 -4
- data/lib/openactive/models/schema/bed_details.rb +3 -2
- data/lib/openactive/models/schema/blog.rb +6 -4
- data/lib/openactive/models/schema/blood_test.rb +13 -0
- data/lib/openactive/models/schema/boat_reservation.rb +13 -0
- data/lib/openactive/models/schema/boat_terminal.rb +13 -0
- data/lib/openactive/models/schema/boat_trip.rb +25 -0
- data/lib/openactive/models/schema/body_measurement_type_enumeration.rb +13 -0
- data/lib/openactive/models/schema/bone.rb +13 -0
- data/lib/openactive/models/schema/book.rb +13 -6
- data/lib/openactive/models/schema/borrow_action.rb +3 -2
- data/lib/openactive/models/schema/brain_structure.rb +13 -0
- data/lib/openactive/models/schema/brand.rb +9 -7
- data/lib/openactive/models/schema/broadcast_channel.rb +19 -16
- data/lib/openactive/models/schema/broadcast_event.rb +9 -7
- data/lib/openactive/models/schema/broadcast_frequency_specification.rb +7 -6
- data/lib/openactive/models/schema/broadcast_service.rb +37 -24
- data/lib/openactive/models/schema/bus_or_coach.rb +24 -0
- data/lib/openactive/models/schema/bus_trip.rb +7 -5
- data/lib/openactive/models/schema/business_audience.rb +6 -3
- data/lib/openactive/models/schema/buy_action.rb +11 -8
- data/lib/openactive/models/schema/campground.rb +1 -1
- data/lib/openactive/models/schema/car.rb +11 -0
- data/lib/openactive/models/schema/category_code.rb +6 -6
- data/lib/openactive/models/schema/category_code_set.rb +2 -1
- data/lib/openactive/models/schema/cdcpmdrecord.rb +115 -0
- data/lib/openactive/models/schema/chapter.rb +32 -0
- data/lib/openactive/models/schema/choose_action.rb +5 -3
- data/lib/openactive/models/schema/claim.rb +6 -4
- data/lib/openactive/models/schema/class.rb +22 -0
- data/lib/openactive/models/schema/clip.rb +42 -30
- data/lib/openactive/models/schema/collection.rb +19 -0
- data/lib/openactive/models/schema/comic_cover_art.rb +13 -0
- data/lib/openactive/models/schema/comic_issue.rb +48 -0
- data/lib/openactive/models/schema/comic_series.rb +13 -0
- data/lib/openactive/models/schema/comic_story.rb +43 -0
- data/lib/openactive/models/schema/comment.rb +6 -5
- data/lib/openactive/models/schema/comment_action.rb +2 -1
- data/lib/openactive/models/schema/communicate_action.rb +16 -12
- data/lib/openactive/models/schema/compound_price_specification.rb +9 -1
- data/lib/openactive/models/schema/consume_action.rb +4 -2
- data/lib/openactive/models/schema/contact_point.rb +29 -24
- data/lib/openactive/models/schema/cook_action.rb +6 -3
- data/lib/openactive/models/schema/course.rb +25 -15
- data/lib/openactive/models/schema/course_instance.rb +7 -6
- data/lib/openactive/models/schema/cover_art.rb +13 -0
- data/lib/openactive/models/schema/covid_testing_facility.rb +13 -0
- data/lib/openactive/models/schema/creative_work.rb +423 -275
- data/lib/openactive/models/schema/creative_work_season.rb +36 -29
- data/lib/openactive/models/schema/credit_card.rb +1 -8
- data/lib/openactive/models/schema/data_catalog.rb +6 -5
- data/lib/openactive/models/schema/data_feed.rb +3 -2
- data/lib/openactive/models/schema/data_feed_item.rb +12 -11
- data/lib/openactive/models/schema/dataset.rb +28 -23
- data/lib/openactive/models/schema/dated_money_specification.rb +12 -11
- data/lib/openactive/models/schema/ddx_element.rb +25 -0
- data/lib/openactive/models/schema/defined_region.rb +41 -0
- data/lib/openactive/models/schema/defined_term.rb +5 -5
- data/lib/openactive/models/schema/defined_term_set.rb +2 -1
- data/lib/openactive/models/schema/delivery_charge_specification.rb +14 -11
- data/lib/openactive/models/schema/delivery_event.rb +6 -6
- data/lib/openactive/models/schema/delivery_time_settings.rb +36 -0
- data/lib/openactive/models/schema/demand.rb +130 -109
- data/lib/openactive/models/schema/dentist.rb +1 -1
- data/lib/openactive/models/schema/deposit_account.rb +1 -1
- data/lib/openactive/models/schema/diagnostic_lab.rb +19 -0
- data/lib/openactive/models/schema/diagnostic_procedure.rb +13 -0
- data/lib/openactive/models/schema/diet.rb +40 -0
- data/lib/openactive/models/schema/dietary_supplement.rb +76 -0
- data/lib/openactive/models/schema/digital_document.rb +2 -1
- data/lib/openactive/models/schema/digital_document_permission.rb +9 -8
- data/lib/openactive/models/schema/donate_action.rb +4 -3
- data/lib/openactive/models/schema/dose_schedule.rb +35 -0
- data/lib/openactive/models/schema/drug.rb +186 -0
- data/lib/openactive/models/schema/drug_class.rb +19 -0
- data/lib/openactive/models/schema/drug_cost.rb +48 -0
- data/lib/openactive/models/schema/drug_cost_category.rb +13 -0
- data/lib/openactive/models/schema/drug_legal_status.rb +19 -0
- data/lib/openactive/models/schema/drug_pregnancy_category.rb +13 -0
- data/lib/openactive/models/schema/drug_prescription_status.rb +13 -0
- data/lib/openactive/models/schema/drug_strength.rb +41 -0
- data/lib/openactive/models/schema/education_event.rb +21 -0
- data/lib/openactive/models/schema/educational_occupational_credential.rb +25 -11
- data/lib/openactive/models/schema/educational_occupational_program.rb +144 -9
- data/lib/openactive/models/schema/educational_organization.rb +2 -1
- data/lib/openactive/models/schema/employee_role.rb +8 -7
- data/lib/openactive/models/schema/endorse_action.rb +3 -2
- data/lib/openactive/models/schema/energy_consumption_details.rb +31 -0
- data/lib/openactive/models/schema/energy_star_energy_efficiency_enumeration.rb +13 -0
- data/lib/openactive/models/schema/engine_specification.rb +27 -1
- data/lib/openactive/models/schema/entry_point.rb +12 -10
- data/lib/openactive/models/schema/enumeration.rb +9 -0
- data/lib/openactive/models/schema/episode.rb +38 -22
- data/lib/openactive/models/schema/euenergy_efficiency_enumeration.rb +13 -0
- data/lib/openactive/models/schema/event.rb +156 -104
- data/lib/openactive/models/schema/event_status_type.rb +13 -0
- data/lib/openactive/models/schema/exchange_rate_specification.rb +10 -3
- data/lib/openactive/models/schema/exercise_action.rb +47 -15
- data/lib/openactive/models/schema/exercise_plan.rb +67 -0
- data/lib/openactive/models/schema/financial_product.rb +11 -9
- data/lib/openactive/models/schema/flight.rb +46 -39
- data/lib/openactive/models/schema/flight_reservation.rb +5 -5
- data/lib/openactive/models/schema/floor_plan.rb +90 -0
- data/lib/openactive/models/schema/follow_action.rb +3 -2
- data/lib/openactive/models/schema/food_establishment.rb +14 -13
- data/lib/openactive/models/schema/food_establishment_reservation.rb +11 -10
- data/lib/openactive/models/schema/game.rb +15 -11
- data/lib/openactive/models/schema/game_server.rb +9 -8
- data/lib/openactive/models/schema/game_server_status.rb +13 -0
- data/lib/openactive/models/schema/geo_circle.rb +6 -4
- data/lib/openactive/models/schema/geo_coordinates.rb +20 -18
- data/lib/openactive/models/schema/geo_shape.rb +17 -15
- data/lib/openactive/models/schema/geospatial_geometry.rb +70 -0
- data/lib/openactive/models/schema/give_action.rb +4 -3
- data/lib/openactive/models/schema/government_service.rb +9 -1
- data/lib/openactive/models/schema/grant.rb +9 -1
- data/lib/openactive/models/schema/guide.rb +18 -0
- data/lib/openactive/models/schema/hackathon.rb +13 -0
- data/lib/openactive/models/schema/health_insurance_plan.rb +23 -15
- data/lib/openactive/models/schema/health_plan_cost_sharing_specification.rb +9 -8
- data/lib/openactive/models/schema/health_plan_formulary.rb +7 -7
- data/lib/openactive/models/schema/health_plan_network.rb +5 -5
- data/lib/openactive/models/schema/hospital.rb +22 -1
- data/lib/openactive/models/schema/hotel_room.rb +5 -3
- data/lib/openactive/models/schema/house.rb +3 -2
- data/lib/openactive/models/schema/how_to.rb +36 -27
- data/lib/openactive/models/schema/how_to_direction.rb +24 -19
- data/lib/openactive/models/schema/how_to_item.rb +3 -2
- data/lib/openactive/models/schema/how_to_section.rb +3 -2
- data/lib/openactive/models/schema/how_to_step.rb +1 -1
- data/lib/openactive/models/schema/how_to_supply.rb +3 -2
- data/lib/openactive/models/schema/hyper_toc.rb +25 -0
- data/lib/openactive/models/schema/hyper_toc_entry.rb +30 -0
- data/lib/openactive/models/schema/image_gallery.rb +1 -1
- data/lib/openactive/models/schema/image_object.rb +15 -12
- data/lib/openactive/models/schema/imaging_test.rb +19 -0
- data/lib/openactive/models/schema/infectious_agent_class.rb +13 -0
- data/lib/openactive/models/schema/infectious_disease.rb +29 -0
- data/lib/openactive/models/schema/inform_action.rb +2 -1
- data/lib/openactive/models/schema/insert_action.rb +2 -1
- data/lib/openactive/models/schema/interaction_counter.rb +8 -6
- data/lib/openactive/models/schema/investment_or_deposit.rb +2 -1
- data/lib/openactive/models/schema/invite_action.rb +2 -1
- data/lib/openactive/models/schema/invoice.rb +61 -51
- data/lib/openactive/models/schema/item_list.rb +8 -7
- data/lib/openactive/models/schema/job_posting.rb +128 -70
- data/lib/openactive/models/schema/join_action.rb +2 -1
- data/lib/openactive/models/schema/joint.rb +30 -0
- data/lib/openactive/models/schema/learning_resource.rb +61 -0
- data/lib/openactive/models/schema/leave_action.rb +2 -1
- data/lib/openactive/models/schema/legal_force_status.rb +13 -0
- data/lib/openactive/models/schema/legislation.rb +51 -36
- data/lib/openactive/models/schema/lend_action.rb +2 -1
- data/lib/openactive/models/schema/lifestyle_modification.rb +13 -0
- data/lib/openactive/models/schema/ligament.rb +13 -0
- data/lib/openactive/models/schema/link_role.rb +7 -0
- data/lib/openactive/models/schema/list_item.rb +10 -7
- data/lib/openactive/models/schema/live_blog_posting.rb +6 -5
- data/lib/openactive/models/schema/loan_or_credit.rb +26 -21
- data/lib/openactive/models/schema/local_business.rb +7 -6
- data/lib/openactive/models/schema/location_feature_specification.rb +9 -8
- data/lib/openactive/models/schema/lodging_business.rb +24 -19
- data/lib/openactive/models/schema/lodging_reservation.rb +15 -13
- data/lib/openactive/models/schema/lose_action.rb +2 -1
- data/lib/openactive/models/schema/lymphatic_vessel.rb +32 -0
- data/lib/openactive/models/schema/math_solver.rb +20 -0
- data/lib/openactive/models/schema/maximum_dose_schedule.rb +13 -0
- data/lib/openactive/models/schema/media_gallery.rb +13 -0
- data/lib/openactive/models/schema/media_object.rb +65 -49
- data/lib/openactive/models/schema/media_review.rb +19 -0
- data/lib/openactive/models/schema/media_subscription.rb +8 -6
- data/lib/openactive/models/schema/medical_audience.rb +13 -0
- data/lib/openactive/models/schema/medical_audience_type.rb +13 -0
- data/lib/openactive/models/schema/medical_business.rb +13 -0
- data/lib/openactive/models/schema/medical_cause.rb +19 -0
- data/lib/openactive/models/schema/medical_clinic.rb +27 -0
- data/lib/openactive/models/schema/medical_code.rb +23 -0
- data/lib/openactive/models/schema/medical_condition.rb +109 -0
- data/lib/openactive/models/schema/medical_condition_stage.rb +24 -0
- data/lib/openactive/models/schema/medical_contraindication.rb +13 -0
- data/lib/openactive/models/schema/medical_device.rb +47 -0
- data/lib/openactive/models/schema/medical_device_purpose.rb +13 -0
- data/lib/openactive/models/schema/medical_entity.rb +58 -0
- data/lib/openactive/models/schema/medical_evidence_level.rb +13 -0
- data/lib/openactive/models/schema/medical_guideline.rb +36 -0
- data/lib/openactive/models/schema/medical_guideline_contraindication.rb +13 -0
- data/lib/openactive/models/schema/medical_guideline_recommendation.rb +18 -0
- data/lib/openactive/models/schema/medical_imaging_technique.rb +13 -0
- data/lib/openactive/models/schema/medical_indication.rb +13 -0
- data/lib/openactive/models/schema/medical_intangible.rb +13 -0
- data/lib/openactive/models/schema/medical_observational_study.rb +19 -0
- data/lib/openactive/models/schema/medical_observational_study_design.rb +13 -0
- data/lib/openactive/models/schema/medical_organization.rb +6 -0
- data/lib/openactive/models/schema/medical_procedure.rb +50 -0
- data/lib/openactive/models/schema/medical_procedure_type.rb +13 -0
- data/lib/openactive/models/schema/medical_risk_calculator.rb +13 -0
- data/lib/openactive/models/schema/medical_risk_estimator.rb +25 -0
- data/lib/openactive/models/schema/medical_risk_factor.rb +19 -0
- data/lib/openactive/models/schema/medical_risk_score.rb +18 -0
- data/lib/openactive/models/schema/medical_scholarly_article.rb +18 -0
- data/lib/openactive/models/schema/medical_sign.rb +25 -0
- data/lib/openactive/models/schema/medical_sign_or_symptom.rb +19 -0
- data/lib/openactive/models/schema/medical_specialty.rb +13 -0
- data/lib/openactive/models/schema/medical_study.rb +47 -0
- data/lib/openactive/models/schema/medical_study_status.rb +13 -0
- data/lib/openactive/models/schema/medical_symptom.rb +13 -0
- data/lib/openactive/models/schema/medical_test.rb +44 -0
- data/lib/openactive/models/schema/medical_test_panel.rb +19 -0
- data/lib/openactive/models/schema/medical_therapy.rb +32 -0
- data/lib/openactive/models/schema/medical_trial.rb +19 -0
- data/lib/openactive/models/schema/medical_trial_design.rb +13 -0
- data/lib/openactive/models/schema/medical_web_page.rb +25 -0
- data/lib/openactive/models/schema/medicine_system.rb +13 -0
- data/lib/openactive/models/schema/menu.rb +8 -6
- data/lib/openactive/models/schema/menu_item.rb +14 -10
- data/lib/openactive/models/schema/menu_section.rb +8 -6
- data/lib/openactive/models/schema/{product_return_policy.rb → merchant_return_policy.rb} +10 -10
- data/lib/openactive/models/schema/message.rb +32 -26
- data/lib/openactive/models/schema/monetary_amount.rb +21 -20
- data/lib/openactive/models/schema/monetary_grant.rb +15 -0
- data/lib/openactive/models/schema/money_transfer.rb +11 -2
- data/lib/openactive/models/schema/mortgage_loan.rb +2 -1
- data/lib/openactive/models/schema/motorcycle.rb +13 -0
- data/lib/openactive/models/schema/motorized_bicycle.rb +13 -0
- data/lib/openactive/models/schema/move_action.rb +4 -2
- data/lib/openactive/models/schema/movie.rb +37 -21
- data/lib/openactive/models/schema/movie_series.rb +24 -17
- data/lib/openactive/models/schema/muscle.rb +42 -0
- data/lib/openactive/models/schema/music_album.rb +11 -9
- data/lib/openactive/models/schema/music_composition.rb +27 -20
- data/lib/openactive/models/schema/music_group.rb +20 -15
- data/lib/openactive/models/schema/music_playlist.rb +9 -7
- data/lib/openactive/models/schema/music_recording.rb +18 -13
- data/lib/openactive/models/schema/music_release.rb +22 -18
- data/lib/openactive/models/schema/nerve.rb +38 -0
- data/lib/openactive/models/schema/news_article.rb +2 -2
- data/lib/openactive/models/schema/news_media_organization.rb +21 -21
- data/lib/openactive/models/schema/newspaper.rb +13 -0
- data/lib/openactive/models/schema/nlnonprofit_type.rb +13 -0
- data/lib/openactive/models/schema/nutrition_information.rb +37 -26
- data/lib/openactive/models/schema/observation.rb +14 -11
- data/lib/openactive/models/schema/occupation.rb +26 -18
- data/lib/openactive/models/schema/occupational_experience_requirements.rb +19 -0
- data/lib/openactive/models/schema/occupational_therapy.rb +13 -0
- data/lib/openactive/models/schema/offer.rb +179 -130
- data/lib/openactive/models/schema/offer_shipping_details.rb +52 -0
- data/lib/openactive/models/schema/opening_hours_specification.rb +12 -12
- data/lib/openactive/models/schema/optician.rb +13 -0
- data/lib/openactive/models/schema/order.rb +72 -63
- data/lib/openactive/models/schema/order_item.rb +15 -13
- data/lib/openactive/models/schema/{parcel_service.rb → order_status.rb} +2 -2
- data/lib/openactive/models/schema/organization.rb +224 -176
- data/lib/openactive/models/schema/ownership_info.rb +9 -7
- data/lib/openactive/models/schema/palliative_procedure.rb +13 -0
- data/lib/openactive/models/schema/parcel_delivery.rb +38 -31
- data/lib/openactive/models/schema/pathology_test.rb +18 -0
- data/lib/openactive/models/schema/patient.rb +31 -0
- data/lib/openactive/models/schema/pay_action.rb +4 -3
- data/lib/openactive/models/schema/payment_card.rb +17 -8
- data/lib/openactive/models/schema/payment_status_type.rb +13 -0
- data/lib/openactive/models/schema/people_audience.rb +27 -7
- data/lib/openactive/models/schema/perform_action.rb +2 -1
- data/lib/openactive/models/schema/permit.rb +19 -14
- data/lib/openactive/models/schema/person.rb +219 -175
- data/lib/openactive/models/schema/physical_activity.rb +40 -0
- data/lib/openactive/models/schema/physical_exam.rb +13 -0
- data/lib/openactive/models/schema/physical_therapy.rb +13 -0
- data/lib/openactive/models/schema/physician.rb +21 -1
- data/lib/openactive/models/schema/place.rb +152 -115
- data/lib/openactive/models/schema/play_action.rb +4 -2
- data/lib/openactive/models/schema/podcast_series.rb +2 -1
- data/lib/openactive/models/schema/postal_address.rb +9 -8
- data/lib/openactive/models/schema/postal_code_range_specification.rb +23 -0
- data/lib/openactive/models/schema/prevention_indication.rb +13 -0
- data/lib/openactive/models/schema/price_specification.rb +30 -28
- data/lib/openactive/models/schema/product.rb +153 -91
- data/lib/openactive/models/schema/product_collection.rb +19 -0
- data/lib/openactive/models/schema/product_group.rb +31 -0
- data/lib/openactive/models/schema/product_model.rb +9 -5
- data/lib/openactive/models/schema/program_membership.rb +17 -13
- data/lib/openactive/models/schema/pronounceable_text.rb +35 -0
- data/lib/openactive/models/schema/property.rb +41 -0
- data/lib/openactive/models/schema/property_value.rb +26 -21
- data/lib/openactive/models/schema/property_value_specification.rb +26 -25
- data/lib/openactive/models/schema/psychological_treatment.rb +13 -0
- data/lib/openactive/models/schema/publication_event.rb +9 -7
- data/lib/openactive/models/schema/publication_issue.rb +7 -7
- data/lib/openactive/models/schema/publication_volume.rb +7 -7
- data/lib/openactive/models/schema/quantitative_value.rb +25 -19
- data/lib/openactive/models/schema/quantitative_value_distribution.rb +10 -9
- data/lib/openactive/models/schema/question.rb +13 -18
- data/lib/openactive/models/schema/quiz.rb +13 -0
- data/lib/openactive/models/schema/quotation.rb +2 -1
- data/lib/openactive/models/schema/radiation_therapy.rb +13 -0
- data/lib/openactive/models/schema/radio_series.rb +49 -37
- data/lib/openactive/models/schema/rating.rb +10 -9
- data/lib/openactive/models/schema/real_estate_listing.rb +10 -2
- data/lib/openactive/models/schema/receive_action.rb +3 -2
- data/lib/openactive/models/schema/recipe.rb +27 -23
- data/lib/openactive/models/schema/recommendation.rb +22 -0
- data/lib/openactive/models/schema/recommended_dose_schedule.rb +13 -0
- data/lib/openactive/models/schema/rent_action.rb +5 -3
- data/lib/openactive/models/schema/rental_car_reservation.rb +8 -6
- data/lib/openactive/models/schema/repayment_specification.rb +14 -11
- data/lib/openactive/models/schema/replace_action.rb +6 -4
- data/lib/openactive/models/schema/reply_action.rb +2 -1
- data/lib/openactive/models/schema/reported_dose_schedule.rb +13 -0
- data/lib/openactive/models/schema/researcher.rb +13 -0
- data/lib/openactive/models/schema/reservation.rb +47 -39
- data/lib/openactive/models/schema/reservation_package.rb +2 -1
- data/lib/openactive/models/schema/reservation_status_type.rb +13 -0
- data/lib/openactive/models/schema/residence.rb +6 -0
- data/lib/openactive/models/schema/return_action.rb +4 -3
- data/lib/openactive/models/schema/review.rb +4 -2
- data/lib/openactive/models/schema/review_action.rb +2 -1
- data/lib/openactive/models/schema/review_news_article.rb +1 -1
- data/lib/openactive/models/schema/role.rb +12 -12
- data/lib/openactive/models/schema/rsvp_action.rb +8 -7
- data/lib/openactive/models/schema/schedule.rb +53 -11
- data/lib/openactive/models/schema/school_district.rb +13 -0
- data/lib/openactive/models/schema/screening_event.rb +8 -6
- data/lib/openactive/models/schema/seat.rb +8 -8
- data/lib/openactive/models/schema/seek_to_action.rb +13 -0
- data/lib/openactive/models/schema/sell_action.rb +8 -6
- data/lib/openactive/models/schema/send_action.rb +4 -3
- data/lib/openactive/models/schema/service.rb +99 -76
- data/lib/openactive/models/schema/service_channel.rb +28 -21
- data/lib/openactive/models/schema/shipping_delivery_time.rb +37 -0
- data/lib/openactive/models/schema/shipping_rate_settings.rb +49 -0
- data/lib/openactive/models/schema/single_family_residence.rb +5 -3
- data/lib/openactive/models/schema/size_specification.rb +52 -0
- data/lib/openactive/models/schema/ski_resort.rb +1 -1
- data/lib/openactive/models/schema/social_media_posting.rb +2 -1
- data/lib/openactive/models/schema/software_application.rb +58 -55
- data/lib/openactive/models/schema/software_source_code.rb +17 -15
- data/lib/openactive/models/schema/solve_math_action.rb +18 -0
- data/lib/openactive/models/schema/some_products.rb +2 -1
- data/lib/openactive/models/schema/special_announcement.rb +98 -0
- data/lib/openactive/models/schema/sports_event.rb +16 -7
- data/lib/openactive/models/schema/sports_team.rb +8 -6
- data/lib/openactive/models/schema/stadium_or_arena.rb +1 -1
- data/lib/openactive/models/schema/statistical_population.rb +8 -6
- data/lib/openactive/models/schema/substance.rb +24 -0
- data/lib/openactive/models/schema/suite.rb +8 -5
- data/lib/openactive/models/schema/superficial_anatomy.rb +42 -0
- data/lib/openactive/models/schema/surgical_procedure.rb +13 -0
- data/lib/openactive/models/schema/taxi_reservation.rb +9 -7
- data/lib/openactive/models/schema/tech_article.rb +2 -2
- data/lib/openactive/models/schema/therapeutic_procedure.rb +31 -0
- data/lib/openactive/models/schema/thesis.rb +18 -0
- data/lib/openactive/models/schema/thing.rb +24 -22
- data/lib/openactive/models/schema/ticket.rb +31 -27
- data/lib/openactive/models/schema/tip_action.rb +4 -3
- data/lib/openactive/models/schema/tourist_attraction.rb +4 -2
- data/lib/openactive/models/schema/tourist_destination.rb +9 -1
- data/lib/openactive/models/schema/tourist_trip.rb +7 -0
- data/lib/openactive/models/schema/trade_action.rb +4 -3
- data/lib/openactive/models/schema/train_trip.rb +15 -13
- data/lib/openactive/models/schema/transfer_action.rb +4 -2
- data/lib/openactive/models/schema/travel_action.rb +2 -1
- data/lib/openactive/models/schema/treatment_indication.rb +13 -0
- data/lib/openactive/models/schema/trip.rb +23 -17
- data/lib/openactive/models/schema/tvclip.rb +2 -1
- data/lib/openactive/models/schema/tvepisode.rb +12 -3
- data/lib/openactive/models/schema/tvseason.rb +4 -2
- data/lib/openactive/models/schema/tvseries.rb +52 -39
- data/lib/openactive/models/schema/type_and_quantity_node.rb +11 -10
- data/lib/openactive/models/schema/uknonprofit_type.rb +13 -0
- data/lib/openactive/models/schema/unit_price_specification.rb +33 -9
- data/lib/openactive/models/schema/update_action.rb +6 -4
- data/lib/openactive/models/schema/user_comments.rb +13 -11
- data/lib/openactive/models/schema/usnonprofit_type.rb +13 -0
- data/lib/openactive/models/schema/vehicle.rb +164 -61
- data/lib/openactive/models/schema/vein.rb +32 -0
- data/lib/openactive/models/schema/vessel.rb +13 -0
- data/lib/openactive/models/schema/veterinary_care.rb +13 -0
- data/lib/openactive/models/schema/video_gallery.rb +1 -1
- data/lib/openactive/models/schema/video_game.rb +39 -30
- data/lib/openactive/models/schema/video_game_series.rb +75 -58
- data/lib/openactive/models/schema/video_object.rb +29 -22
- data/lib/openactive/models/schema/virtual_location.rb +13 -0
- data/lib/openactive/models/schema/visual_artwork.rb +56 -23
- data/lib/openactive/models/schema/vital_sign.rb +13 -0
- data/lib/openactive/models/schema/vote_action.rb +2 -1
- data/lib/openactive/models/schema/warranty_promise.rb +6 -5
- data/lib/openactive/models/schema/wearable_measurement_type_enumeration.rb +13 -0
- data/lib/openactive/models/schema/wearable_size_group_enumeration.rb +13 -0
- data/lib/openactive/models/schema/wearable_size_system_enumeration.rb +13 -0
- data/lib/openactive/models/schema/web_page.rb +32 -28
- data/lib/openactive/models/schema/win_action.rb +2 -1
- data/lib/openactive/models/schema/work_based_program.rb +9 -1
- data/lib/openactive/models/schema/write_action.rb +4 -2
- data/lib/openactive/models/seller_accept_order_proposal_simulate_action.rb +13 -0
- data/lib/openactive/models/seller_amend_order_proposal_simulate_action.rb +13 -0
- data/lib/openactive/models/seller_mismatch_error.rb +26 -0
- data/lib/openactive/models/seller_not_found_error.rb +26 -0
- data/lib/openactive/models/seller_reject_order_proposal_simulate_action.rb +13 -0
- data/lib/openactive/models/seller_requested_cancellation_simulate_action.rb +13 -0
- data/lib/openactive/models/seller_requested_cancellation_with_message_simulate_action.rb +13 -0
- data/lib/openactive/models/session_series.rb +6 -1
- data/lib/openactive/models/short_answer_form_field_specification.rb +1 -1
- data/lib/openactive/models/showers.rb +1 -1
- data/lib/openactive/models/slot.rb +22 -24
- data/lib/openactive/models/tax_charge_specification.rb +7 -1
- data/lib/openactive/models/temporarily_unable_to_create_order_error.rb +15 -0
- data/lib/openactive/models/temporarily_unable_to_delete_order_error.rb +15 -0
- data/lib/openactive/models/temporarily_unable_to_produce_order_quote_error.rb +15 -0
- data/lib/openactive/models/temporarily_unable_to_update_order_error.rb +15 -0
- data/lib/openactive/models/terms.rb +7 -0
- data/lib/openactive/models/terms_of_use.rb +1 -0
- data/lib/openactive/models/toilets.rb +1 -1
- data/lib/openactive/models/too_many_requests_error.rb +15 -0
- data/lib/openactive/models/total_payment_due_mismatch_error.rb +15 -0
- data/lib/openactive/models/towels.rb +1 -1
- data/lib/openactive/models/trust_certification.rb +18 -0
- data/lib/openactive/models/unable_to_process_order_item_error.rb +15 -0
- data/lib/openactive/models/unacceptable_offer_error.rb +15 -0
- data/lib/openactive/models/unauthenticated_error.rb +15 -0
- data/lib/openactive/models/unexpected_order_type_error.rb +26 -0
- data/lib/openactive/models/unknown_offer_error.rb +15 -0
- data/lib/openactive/models/unknown_opportunity_error.rb +26 -0
- data/lib/openactive/models/unknown_or_incorrect_endpoint_error.rb +15 -0
- data/lib/openactive/models/unknown_order_error.rb +15 -0
- data/lib/openactive/models/unnecessary_payment_details_error.rb +26 -0
- data/lib/openactive/models/video_object.rb +22 -0
- data/lib/openactive/models/virtual_location.rb +37 -0
- data/lib/openactive/models/web_api.rb +7 -4
- data/lib/openactive/rpde/rpde_body.rb +6 -0
- data/lib/openactive/rpde/rpde_item.rb +1 -1
- data/lib/openactive/version.rb +1 -1
- data/openactive.gemspec +3 -3
- data/update-models.sh +38 -0
- metadata +244 -32
- data/lib/openactive/enums/schema/action_status_type.rb +0 -15
- data/lib/openactive/enums/schema/game_server_status.rb +0 -15
- data/lib/openactive/enums/schema/legal_force_status.rb +0 -14
- data/lib/openactive/enums/schema/order_status.rb +0 -19
- data/lib/openactive/enums/schema/payment_status_type.rb +0 -16
- data/lib/openactive/enums/schema/product_return_enumeration.rb +0 -15
- data/lib/openactive/enums/schema/reservation_status_type.rb +0 -15
- data/lib/openactive/models/entry_point.rb +0 -27
- data/lib/openactive/models/method_not_allowed.rb +0 -11
- data/lib/openactive/models/patch_contains_excessive_properties.rb +0 -11
- data/lib/openactive/models/patch_not_allowed_on_property.rb +0 -11
- data/lib/openactive/models/reserve_action.rb +0 -12
- data/lib/openactive/models/sports_activity_location.rb +0 -18
- data/lib/openactive/models/unavailable_opportunity_error.rb +0 -11
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9076771a65bdda192786b2aa623817ac2c185f4786215d30c074859b0badff4e
|
4
|
+
data.tar.gz: e91eb80e55b80defc16dcae51a74f42388cfad79cf4452d5619508012a45c6e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
data/.rubocop.yml
CHANGED
@@ -56,12 +56,12 @@ RSpec/NestedGroups:
|
|
56
56
|
Style/AsciiComments:
|
57
57
|
Enabled: false
|
58
58
|
|
59
|
-
Naming/
|
59
|
+
Naming/MethodParameterName:
|
60
60
|
AllowedNames:
|
61
61
|
- as
|
62
62
|
- id
|
63
63
|
|
64
|
-
|
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
|
-
|
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
|
+
```
|