repull 0.2.10 → 0.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/repull/api/airbnb_api.rb +332 -99
- data/lib/repull/api/atlas_api.rb +5 -5
- data/lib/repull/api/availability_api.rb +145 -3
- data/lib/repull/api/billing_api.rb +7 -7
- data/lib/repull/api/booking_com_api.rb +210 -54
- data/lib/repull/api/connect_api.rb +761 -8
- data/lib/repull/api/conversations_api.rb +92 -11
- data/lib/repull/api/guests_api.rb +82 -7
- data/lib/repull/api/health_api.rb +318 -0
- data/lib/repull/api/kv_api.rb +1 -1
- data/lib/repull/api/listings_api.rb +303 -24
- data/lib/repull/api/markets_api.rb +3 -3
- data/lib/repull/api/plumguide_api.rb +19 -11
- data/lib/repull/api/pricing_api.rb +15 -15
- data/lib/repull/api/properties_api.rb +12 -9
- data/lib/repull/api/quotes_api.rb +109 -0
- data/lib/repull/api/reservations_api.rb +166 -7
- data/lib/repull/api/reviews_api.rb +81 -7
- data/lib/repull/api/schema_api.rb +1 -1
- data/lib/repull/api/system_api.rb +1 -1
- data/lib/repull/api/vrbo_api.rb +10 -10
- data/lib/repull/api/webhooks_api.rb +11 -9
- data/lib/repull/api_client.rb +1 -1
- data/lib/repull/api_error.rb +1 -1
- data/lib/repull/api_model_base.rb +1 -1
- data/lib/repull/configuration.rb +1 -1
- data/lib/repull/models/account_created_event.rb +1 -1
- data/lib/repull/models/account_created_payload.rb +1 -1
- data/lib/repull/models/account_disconnected_event.rb +1 -1
- data/lib/repull/models/account_disconnected_payload.rb +1 -1
- data/lib/repull/models/acknowledge_booking_reservations_request.rb +1 -1
- data/lib/repull/models/ai_operation.rb +1 -1
- data/lib/repull/models/ai_operation_completed_event.rb +1 -1
- data/lib/repull/models/ai_operation_completed_payload.rb +1 -1
- data/lib/repull/models/ai_operation_failed_event.rb +1 -1
- data/lib/repull/models/ai_operation_failed_payload.rb +1 -1
- data/lib/repull/models/ai_operation_failed_payload_error.rb +1 -1
- data/lib/repull/models/airbnb_alteration.rb +154 -10
- data/lib/repull/models/airbnb_amenity.rb +1 -1
- data/lib/repull/models/airbnb_availability_write_request.rb +20 -1
- data/lib/repull/models/airbnb_calendar_operation.rb +97 -8
- data/lib/repull/models/airbnb_connection.rb +4 -4
- data/lib/repull/models/airbnb_connection_accessibility_amenities_inner.rb +1 -1
- data/lib/repull/models/airbnb_connection_amenities_inner.rb +1 -1
- data/lib/repull/models/airbnb_connection_host.rb +1 -1
- data/lib/repull/models/airbnb_connection_response.rb +1 -1
- data/lib/repull/models/airbnb_connection_summary.rb +1 -1
- data/lib/repull/models/airbnb_data_freshness.rb +3 -3
- data/lib/repull/models/airbnb_listing.rb +2 -2
- data/lib/repull/models/airbnb_listing_action_request.rb +1 -1
- data/lib/repull/models/airbnb_listing_list_response.rb +2 -2
- data/lib/repull/models/airbnb_pricing_write_request.rb +54 -3
- data/lib/repull/models/airbnb_pricing_write_request_records_inner.rb +236 -0
- data/lib/repull/models/airbnb_reservation.rb +1 -1
- data/lib/repull/models/airbnb_reservation_list_response.rb +2 -2
- data/lib/repull/models/airbnb_review.rb +1 -1
- data/lib/repull/models/airbnb_review_list_response.rb +1 -1
- data/lib/repull/models/airbnb_thread.rb +1 -1
- data/lib/repull/models/airbnb_thread_list_response.rb +1 -1
- data/lib/repull/models/airbnb_transaction.rb +502 -0
- data/lib/repull/models/airbnb_transaction_guest_breakdown.rb +171 -0
- data/lib/repull/models/airbnb_transaction_host_breakdown.rb +246 -0
- data/lib/repull/models/airbnb_transaction_payout.rb +175 -0
- data/lib/repull/models/{booking_conversation_list_response.rb → alteration_change.rb} +22 -19
- data/lib/repull/models/alteration_webhook_object.rb +296 -0
- data/lib/repull/models/availability_batch_write_request.rb +296 -0
- data/lib/repull/models/availability_write_request.rb +259 -0
- data/lib/repull/models/availability_write_result.rb +178 -0
- data/lib/repull/models/availability_write_result_synced.rb +176 -0
- data/lib/repull/models/availability_write_settings.rb +215 -0
- data/lib/repull/models/booking_availability_state_response.rb +149 -0
- data/lib/repull/models/booking_availability_update.rb +1 -1
- data/lib/repull/models/booking_availability_update_request.rb +1 -1
- data/lib/repull/models/booking_availability_update_request_property_id.rb +1 -1
- data/lib/repull/models/booking_availability_update_request_updates_inner.rb +1 -1
- data/lib/repull/models/booking_connect_listing_option.rb +1 -1
- data/lib/repull/models/booking_connect_room.rb +1 -1
- data/lib/repull/models/booking_connect_rooms_response.rb +39 -5
- data/lib/repull/models/booking_conversation.rb +1 -1
- data/lib/repull/models/booking_pricing_rate_update.rb +1 -1
- data/lib/repull/models/booking_pricing_rate_update_date_range.rb +1 -1
- data/lib/repull/models/booking_pricing_rate_update_restrictions.rb +1 -1
- data/lib/repull/models/booking_pricing_response.rb +1 -1
- data/lib/repull/models/booking_pricing_update_request.rb +1 -1
- data/lib/repull/models/booking_pricing_update_response.rb +1 -1
- data/lib/repull/models/booking_property.rb +1 -1
- data/lib/repull/models/booking_reservation.rb +277 -0
- data/lib/repull/models/booking_reservation_room.rb +271 -0
- data/lib/repull/models/booking_room_mapping.rb +18 -8
- data/lib/repull/models/booking_rooms_rates_response.rb +170 -0
- data/lib/repull/models/booking_rooms_rates_response_rooms_inner.rb +170 -0
- data/lib/repull/models/booking_rooms_rates_response_rooms_inner_rates_inner.rb +212 -0
- data/lib/repull/models/booking_setup_request.rb +1 -1
- data/lib/repull/models/booking_verify_hotel_request.rb +1 -1
- data/lib/repull/models/booking_verify_hotel_response.rb +40 -6
- data/lib/repull/models/bulk_pricing_failure.rb +1 -1
- data/lib/repull/models/bulk_pricing_item.rb +1 -1
- data/lib/repull/models/bulk_pricing_request.rb +1 -1
- data/lib/repull/models/bulk_pricing_response.rb +1 -1
- data/lib/repull/models/calendar_day.rb +1 -1
- data/lib/repull/models/calendar_response.rb +1 -1
- data/lib/repull/models/calendar_updated_event.rb +1 -1
- data/lib/repull/models/calendar_updated_payload.rb +1 -1
- data/lib/repull/models/calendar_updated_payload_range.rb +1 -1
- data/lib/repull/models/clear_kv200_response.rb +1 -1
- data/lib/repull/models/connect_host.rb +1 -1
- data/lib/repull/models/connect_provider.rb +1 -1
- data/lib/repull/models/connect_provider_list_response.rb +1 -1
- data/lib/repull/models/connect_session.rb +1 -1
- data/lib/repull/models/connect_status.rb +18 -6
- data/lib/repull/models/connect_status_accounts_inner.rb +188 -0
- data/lib/repull/models/connection.rb +1 -1
- data/lib/repull/models/connection_list_response.rb +1 -1
- data/lib/repull/models/conversation.rb +13 -2
- data/lib/repull/models/conversation_detail.rb +13 -2
- data/lib/repull/models/conversation_guest.rb +1 -1
- data/lib/repull/models/conversation_guest_contact.rb +1 -1
- data/lib/repull/models/conversation_host.rb +1 -1
- data/lib/repull/models/conversation_list_response.rb +1 -1
- data/lib/repull/models/conversation_message_attachment.rb +1 -1
- data/lib/repull/models/create_airbnb_alteration_request.rb +1 -1
- data/lib/repull/models/create_airbnb_offer_request.rb +1 -1
- data/lib/repull/models/create_billing_checkout_request.rb +1 -1
- data/lib/repull/models/create_booking_webhook_request.rb +1 -1
- data/lib/repull/models/create_connect_session_request.rb +1 -1
- data/lib/repull/models/create_connection_request.rb +2 -2
- data/lib/repull/models/create_webhook_request.rb +1 -1
- data/lib/repull/models/custom_schema.rb +1 -1
- data/lib/repull/models/custom_schema_create.rb +1 -1
- data/lib/repull/models/custom_schema_create_response.rb +1 -1
- data/lib/repull/models/custom_schema_delete_response.rb +1 -1
- data/lib/repull/models/custom_schema_list_response.rb +1 -1
- data/lib/repull/models/custom_schema_summary.rb +1 -1
- data/lib/repull/models/custom_schema_update.rb +1 -1
- data/lib/repull/models/delete_airbnb_listing_photo200_response.rb +1 -1
- data/lib/repull/models/delete_connection200_response.rb +234 -0
- data/lib/repull/models/delete_kv200_response.rb +1 -1
- data/lib/repull/models/error.rb +1 -1
- data/lib/repull/models/error_error.rb +14 -2
- data/lib/repull/models/error_error_support.rb +1 -1
- data/lib/repull/models/get_airbnb_alteration200_response.rb +2 -2
- data/lib/repull/models/get_airbnb_checkin_guide200_response.rb +192 -0
- data/lib/repull/models/get_airbnb_listing_quality200_response.rb +2 -2
- data/lib/repull/models/get_airbnb_listing_settings200_response.rb +2 -2
- data/lib/repull/models/get_airbnb_thread200_response.rb +2 -2
- data/lib/repull/models/get_health200_response.rb +1 -1
- data/lib/repull/models/get_usage_logs200_response.rb +1 -1
- data/lib/repull/models/get_usage_logs200_response_data_inner.rb +1 -1
- data/lib/repull/models/get_usage_logs200_response_pagination.rb +3 -3
- data/lib/repull/models/get_usage_summary200_response.rb +2 -2
- data/lib/repull/models/get_usage_summary200_response_breakdown_inner.rb +1 -1
- data/lib/repull/models/get_usage_summary200_response_limits.rb +3 -3
- data/lib/repull/models/get_usage_summary200_response_remaining.rb +2 -2
- data/lib/repull/models/get_usage_summary200_response_status_distribution.rb +1 -1
- data/lib/repull/models/get_usage_summary200_response_timeline_inner.rb +1 -1
- data/lib/repull/models/get_usage_summary200_response_totals.rb +1 -1
- data/lib/repull/models/get_usage_summary200_response_used.rb +2 -2
- data/lib/repull/models/get_usage_tier200_response.rb +2 -2
- data/lib/repull/models/get_usage_tier200_response_limits.rb +4 -4
- data/lib/repull/models/get_usage_tier200_response_remaining.rb +3 -3
- data/lib/repull/models/get_usage_tier200_response_used.rb +3 -3
- data/lib/repull/models/guest.rb +1 -1
- data/lib/repull/models/guest_contact.rb +1 -1
- data/lib/repull/models/guest_create_request.rb +250 -0
- data/lib/repull/models/guest_create_response.rb +227 -0
- data/lib/repull/models/guest_create_response_contacts_inner.rb +199 -0
- data/lib/repull/models/guest_flag.rb +1 -1
- data/lib/repull/models/guest_list_response.rb +1 -1
- data/lib/repull/models/guest_note.rb +1 -1
- data/lib/repull/models/guest_profile.rb +1 -1
- data/lib/repull/models/guest_reservations_summary.rb +1 -1
- data/lib/repull/models/list_airbnb_alterations200_response.rb +2 -2
- data/lib/repull/models/list_airbnb_listing_amenities200_response.rb +2 -2
- data/lib/repull/models/list_airbnb_listing_amenities200_response_data.rb +1 -1
- data/lib/repull/models/list_airbnb_transactions200_response.rb +3 -3
- data/lib/repull/models/list_booking_reservations200_response.rb +104 -0
- data/lib/repull/models/list_kv200_response.rb +1 -1
- data/lib/repull/models/list_kv200_response_data_inner.rb +1 -1
- data/lib/repull/models/list_kv200_response_pagination.rb +2 -2
- data/lib/repull/models/listing.rb +2 -2
- data/lib/repull/models/listing_active_request.rb +2 -2
- data/lib/repull/models/listing_active_response.rb +1 -1
- data/lib/repull/models/listing_address.rb +1 -1
- data/lib/repull/models/listing_amenity.rb +1 -1
- data/lib/repull/models/listing_channel.rb +1 -1
- data/lib/repull/models/listing_comp.rb +1 -1
- data/lib/repull/models/listing_comp_nightly.rb +1 -1
- data/lib/repull/models/listing_comp_ratings.rb +1 -1
- data/lib/repull/models/listing_comps_response.rb +1 -1
- data/lib/repull/models/listing_content.rb +1 -1
- data/lib/repull/models/listing_content_update_request.rb +1 -1
- data/lib/repull/models/listing_content_update_request_address.rb +1 -1
- data/lib/repull/models/listing_content_update_request_amenities.rb +1 -1
- data/lib/repull/models/listing_content_update_request_amenities_one_of_inner.rb +1 -1
- data/lib/repull/models/listing_content_update_request_occupancy.rb +1 -1
- data/lib/repull/models/listing_content_update_request_photos_inner.rb +1 -1
- data/lib/repull/models/listing_content_update_request_photos_inner_one_of.rb +1 -1
- data/lib/repull/models/listing_content_update_request_policies.rb +1 -1
- data/lib/repull/models/listing_content_update_response.rb +1 -1
- data/lib/repull/models/listing_create_request.rb +1 -1
- data/lib/repull/models/listing_create_response.rb +1 -1
- data/lib/repull/models/listing_created_event.rb +1 -1
- data/lib/repull/models/listing_created_payload.rb +1 -1
- data/lib/repull/models/listing_created_payload_address.rb +1 -1
- data/lib/repull/models/listing_deleted_event.rb +1 -1
- data/lib/repull/models/listing_deleted_payload.rb +1 -1
- data/lib/repull/models/listing_details.rb +1 -1
- data/lib/repull/models/listing_generate_content_request.rb +1 -1
- data/lib/repull/models/listing_generate_content_response.rb +1 -1
- data/lib/repull/models/listing_list_response.rb +1 -1
- data/lib/repull/models/{studio_file.rb → listing_photo.rb} +23 -34
- data/lib/repull/models/listing_photo_delete_request.rb +165 -0
- data/lib/repull/models/{studio_error.rb → listing_photo_delete_response.rb} +20 -12
- data/lib/repull/models/listing_photo_upload_url_request.rb +203 -0
- data/lib/repull/models/listing_photo_upload_url_response.rb +198 -0
- data/lib/repull/models/{vrbo_listing_list_response.rb → listing_photos_response.rb} +19 -19
- data/lib/repull/models/listing_pricing_apply_request.rb +1 -1
- data/lib/repull/models/listing_pricing_apply_response.rb +1 -1
- data/lib/repull/models/listing_pricing_history_entry.rb +2 -2
- data/lib/repull/models/listing_pricing_history_response.rb +1 -1
- data/lib/repull/models/listing_pricing_recommendation.rb +1 -1
- data/lib/repull/models/listing_pricing_response.rb +1 -1
- data/lib/repull/models/listing_pricing_response_comp_summary.rb +1 -1
- data/lib/repull/models/listing_pricing_response_date_range.rb +1 -1
- data/lib/repull/models/listing_pricing_response_listing.rb +1 -1
- data/lib/repull/models/listing_pricing_strategy.rb +1 -1
- data/lib/repull/models/listing_pricing_strategy_input.rb +1 -1
- data/lib/repull/models/listing_publish_airbnb_request.rb +1 -1
- data/lib/repull/models/listing_publish_response.rb +1 -1
- data/lib/repull/models/listing_publish_status_channel.rb +1 -1
- data/lib/repull/models/listing_publish_status_connection.rb +1 -1
- data/lib/repull/models/listing_publish_status_response.rb +1 -1
- data/lib/repull/models/listing_quality_tier.rb +1 -1
- data/lib/repull/models/listing_segment.rb +1 -1
- data/lib/repull/models/listing_segment_recommendation.rb +1 -1
- data/lib/repull/models/listing_segments_response.rb +1 -1
- data/lib/repull/models/listing_segments_response_scope.rb +1 -1
- data/lib/repull/models/listing_status_batch_request.rb +212 -0
- data/lib/repull/models/listing_status_batch_response.rb +223 -0
- data/lib/repull/models/listing_updated_event.rb +1 -1
- data/lib/repull/models/listing_updated_payload.rb +1 -1
- data/lib/repull/models/map_airbnb_listing_request.rb +1 -1
- data/lib/repull/models/map_airbnb_listing_response.rb +1 -1
- data/lib/repull/models/map_connect_booking_rooms_request.rb +1 -1
- data/lib/repull/models/map_connect_booking_rooms_response.rb +16 -5
- data/lib/repull/models/market_browse_category.rb +1 -1
- data/lib/repull/models/market_browse_entry.rb +1 -1
- data/lib/repull/models/market_browse_featured.rb +1 -1
- data/lib/repull/models/market_browse_response.rb +1 -1
- data/lib/repull/models/market_calendar_day.rb +1 -1
- data/lib/repull/models/market_calendar_day_events_inner.rb +1 -1
- data/lib/repull/models/market_calendar_response.rb +1 -1
- data/lib/repull/models/market_detail_response.rb +1 -1
- data/lib/repull/models/market_detail_response_price_distribution_inner.rb +1 -1
- data/lib/repull/models/market_detail_response_property_type_mix_inner.rb +1 -1
- data/lib/repull/models/market_detail_response_supply_trend_inner.rb +1 -1
- data/lib/repull/models/market_detail_response_top_comps.rb +1 -1
- data/lib/repull/models/market_event.rb +1 -1
- data/lib/repull/models/market_my_listing.rb +1 -1
- data/lib/repull/models/market_summary.rb +1 -1
- data/lib/repull/models/market_top_comp.rb +1 -1
- data/lib/repull/models/markets_overview_response.rb +1 -1
- data/lib/repull/models/markets_overview_response_browse.rb +1 -1
- data/lib/repull/models/markets_overview_response_subscriptions.rb +1 -1
- data/lib/repull/models/markets_overview_response_totals.rb +1 -1
- data/lib/repull/models/message.rb +1 -1
- data/lib/repull/models/message_list_response.rb +1 -1
- data/lib/repull/models/pagination.rb +1 -1
- data/lib/repull/models/payment_completed_event.rb +1 -1
- data/lib/repull/models/payment_completed_payload.rb +1 -1
- data/lib/repull/models/payment_refunded_event.rb +1 -1
- data/lib/repull/models/payment_refunded_payload.rb +1 -1
- data/lib/repull/models/plumguide_listing.rb +1 -1
- data/lib/repull/models/plumguide_listing_list_response.rb +1 -1
- data/lib/repull/models/property.rb +17 -7
- data/lib/repull/models/property_availability.rb +33 -7
- data/lib/repull/models/property_availability_coverage.rb +222 -0
- data/lib/repull/models/property_availability_day.rb +4 -4
- data/lib/repull/models/property_list_response.rb +1 -1
- data/lib/repull/models/quote.rb +240 -0
- data/lib/repull/models/quote_pricing.rb +218 -0
- data/lib/repull/models/reply_booking_review200_response.rb +1 -1
- data/lib/repull/models/reply_booking_review_request.rb +1 -1
- data/lib/repull/models/reply_to_review201_response.rb +165 -0
- data/lib/repull/models/reply_to_review_request.rb +165 -0
- data/lib/repull/models/repull_ping_event.rb +1 -1
- data/lib/repull/models/repull_ping_payload.rb +1 -1
- data/lib/repull/models/reservation.rb +1 -1
- data/lib/repull/models/{studio_deployment.rb → reservation_alteration_created_event.rb} +67 -57
- data/lib/repull/models/reservation_alteration_created_payload.rb +177 -0
- data/lib/repull/models/reservation_alteration_responded_event.rb +217 -0
- data/lib/repull/models/reservation_alteration_responded_payload.rb +175 -0
- data/lib/repull/models/reservation_cancelled_event.rb +1 -1
- data/lib/repull/models/reservation_cancelled_payload.rb +1 -1
- data/lib/repull/models/reservation_create_request.rb +403 -0
- data/lib/repull/models/reservation_create_response.rb +233 -0
- data/lib/repull/models/reservation_created_event.rb +1 -1
- data/lib/repull/models/reservation_created_payload.rb +1 -1
- data/lib/repull/models/reservation_financials.rb +36 -8
- data/lib/repull/models/reservation_guest_financials.rb +173 -0
- data/lib/repull/models/reservation_guest_input.rb +193 -0
- data/lib/repull/models/reservation_host_financials.rb +207 -0
- data/lib/repull/models/reservation_list_response.rb +1 -1
- data/lib/repull/models/reservation_message_received_event.rb +1 -1
- data/lib/repull/models/reservation_message_received_payload.rb +1 -1
- data/lib/repull/models/reservation_message_received_payload_from.rb +1 -1
- data/lib/repull/models/reservation_money_line.rb +216 -0
- data/lib/repull/models/reservation_occupancy.rb +1 -1
- data/lib/repull/models/reservation_primary_guest.rb +1 -1
- data/lib/repull/models/reservation_update_request.rb +255 -0
- data/lib/repull/models/reservation_update_response.rb +240 -0
- data/lib/repull/models/reservation_updated_event.rb +1 -1
- data/lib/repull/models/reservation_updated_payload.rb +1 -1
- data/lib/repull/models/reservation_webhook_object.rb +1 -1
- data/lib/repull/models/respond_airbnb_review_request.rb +1 -1
- data/lib/repull/models/review.rb +14 -3
- data/lib/repull/models/review_category.rb +1 -1
- data/lib/repull/models/{sandbox_reset_result.rb → review_created_event.rb} +59 -59
- data/lib/repull/models/review_created_payload.rb +165 -0
- data/lib/repull/models/review_list_response.rb +1 -1
- data/lib/repull/models/review_responded_event.rb +217 -0
- data/lib/repull/models/review_responded_payload.rb +175 -0
- data/lib/repull/models/review_response.rb +1 -1
- data/lib/repull/models/review_webhook_object.rb +277 -0
- data/lib/repull/models/rotate_webhook_secret200_response.rb +1 -1
- data/lib/repull/models/select_connect_provider_request.rb +1 -1
- data/lib/repull/models/select_provider_response.rb +1 -1
- data/lib/repull/models/send_airbnb_message_request.rb +187 -0
- data/lib/repull/models/{sandbox_reset_result_deleted.rb → send_booking_message_request.rb} +53 -50
- data/lib/repull/models/{studio_error_error.rb → send_message_request.rb} +31 -50
- data/lib/repull/models/send_message_response.rb +241 -0
- data/lib/repull/models/set_kv_request.rb +1 -1
- data/lib/repull/models/{booking_property_list_response.rb → submit_beds24_credentials200_response.rb} +19 -19
- data/lib/repull/models/submit_beds24_credentials_request.rb +177 -0
- data/lib/repull/models/submit_bookingsync_credentials_request.rb +177 -0
- data/lib/repull/models/submit_guesty_credentials_request.rb +177 -0
- data/lib/repull/models/submit_hospitable_credentials_request.rb +177 -0
- data/lib/repull/models/submit_hostaway_credentials_request.rb +177 -0
- data/lib/repull/models/submit_igms_credentials_request.rb +177 -0
- data/lib/repull/models/submit_lodgify_credentials_request.rb +177 -0
- data/lib/repull/models/submit_ownerrez_credentials_request.rb +177 -0
- data/lib/repull/models/submit_smoobu_credentials_request.rb +177 -0
- data/lib/repull/models/submit_vrbo_credentials_request.rb +177 -0
- data/lib/repull/models/{sandbox_fixture_ref.rb → sync_airbnb_transactions200_response.rb} +36 -38
- data/lib/repull/models/sync_airbnb_transactions_request.rb +201 -0
- data/lib/repull/models/test_webhook_request.rb +1 -1
- data/lib/repull/models/update_airbnb_message_request.rb +1 -1
- data/lib/repull/models/update_booking_charges_request.rb +1 -1
- data/lib/repull/models/update_listing_pricing_strategy200_response.rb +1 -1
- data/lib/repull/models/update_webhook_request.rb +1 -1
- data/lib/repull/models/vrbo_listing.rb +1 -1
- data/lib/repull/models/vrbo_reservation.rb +1 -1
- data/lib/repull/models/vrbo_reservation_list_response.rb +1 -1
- data/lib/repull/models/webhook_delivery.rb +1 -1
- data/lib/repull/models/webhook_delivery_detail.rb +1 -1
- data/lib/repull/models/webhook_delivery_list_response.rb +1 -1
- data/lib/repull/models/webhook_event.rb +12 -4
- data/lib/repull/models/webhook_event_catalog.rb +1 -1
- data/lib/repull/models/webhook_event_catalog_domains_inner.rb +1 -1
- data/lib/repull/models/webhook_event_catalog_entry.rb +1 -1
- data/lib/repull/models/webhook_event_type.rb +6 -2
- data/lib/repull/models/webhook_list_response.rb +1 -1
- data/lib/repull/models/webhook_subscription.rb +1 -1
- data/lib/repull/version.rb +2 -2
- data/lib/repull.rb +75 -15
- data/openapi/v1.json +6119 -2021
- data/scripts/check-spec-freshness.py +399 -0
- data/scripts/regen.sh +32 -3
- metadata +77 -18
- data/lib/repull/api/sandbox_api.rb +0 -136
- data/lib/repull/models/sandbox_seed_result.rb +0 -278
- data/lib/repull/models/studio_generation.rb +0 -215
- data/lib/repull/models/studio_project.rb +0 -241
- data/spec/api/ai_api_spec.rb +0 -47
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#Repull API
|
|
3
3
|
|
|
4
|
-
#The unified API for vacation rental tech. Connect to 50+ PMS platforms and 4 OTA channels through one REST API. Built-in AI operations for guest communication, pricing, and listing optimization. ## Designed for AI agents Every error response on this API includes machine-parseable fields so an LLM (Claude in MCP, Cursor, Cline, GPT, etc.) can self-recover without escalating to a human: - `error.code` — stable string identifier (e.g. `invalid_params`, `rate_limit_exceeded`) - `error.message` — human-readable cause - `error.fix` — exact recovery steps (e.g. \"Pass `check_in_after` as ISO 8601: `?check_in_after=2026-01-15`\") - `error.docs_url` — link to the canonical write-up at `https://repull.dev/docs/errors/{code}` - `error.request_id` — id to correlate with server-side logs - `error.field` / `error.value_received` / `error.valid_values` / `error.did_you_mean` — when the error is parameter-specific - `error.retry_after` — seconds to wait before retrying (rate-limit + transient upstream) `Access-Control-Expose-Headers` lists `x-request-id` and the `X-RateLimit-*` family so browsers can read them on cross-origin responses. ## Quick Start 1. Get an API key at https://repull.dev/dashboard 2. Connect a PMS: `POST /v1/connect/{provider}` 3. List properties: `GET /v1/properties` 4. Get reservations: `GET /v1/reservations` ## Authentication All requests require a Bearer token: ``` Authorization: Bearer
|
|
4
|
+
#The unified API for vacation rental tech. Connect to 50+ PMS platforms and 4 OTA channels through one REST API. Built-in AI operations for guest communication, pricing, and listing optimization. ## Designed for AI agents Every error response on this API includes machine-parseable fields so an LLM (Claude in MCP, Cursor, Cline, GPT, etc.) can self-recover without escalating to a human: - `error.code` — stable string identifier (e.g. `invalid_params`, `rate_limit_exceeded`) - `error.message` — human-readable cause - `error.fix` — exact recovery steps (e.g. \"Pass `check_in_after` as ISO 8601: `?check_in_after=2026-01-15`\") - `error.docs_url` — link to the canonical write-up at `https://repull.dev/docs/errors/{code}` - `error.request_id` — id to correlate with server-side logs - `error.field` / `error.value_received` / `error.valid_values` / `error.did_you_mean` — when the error is parameter-specific - `error.retry_after` — seconds to wait before retrying (rate-limit + transient upstream) `Access-Control-Expose-Headers` lists `x-request-id` and the `X-RateLimit-*` family so browsers can read them on cross-origin responses. ## Quick Start 1. Get an API key at https://repull.dev/dashboard 2. Connect a PMS: `POST /v1/connect/{provider}` 3. List properties: `GET /v1/properties` 4. Get reservations: `GET /v1/reservations` ## Authentication All requests require a Bearer token: ``` Authorization: Bearer sk_live_YOUR_API_KEY ``` ## Request Correlation (X-Request-ID) Every response carries an `X-Request-ID` header, e.g. `X-Request-ID: req_01HXY...`. Include this id in support tickets and bug reports — we can trace the full request lifecycle (auth, rate limit, handler, downstream calls, log row) from a single id. You may set the header on the inbound request to forward your own trace id; we will echo it back instead of generating a new one. Accepted format: `^[\\\\w.-]{1,128}$`. The id is also embedded in error envelopes as `request_id` so server-side log diffs work even when the response headers are stripped by an intermediate proxy. ## Rate Limits The public API enforces a per-API-key sliding-window rate limit on top of the per-tier monthly + daily-AI quotas. **Default policy:** 600 requests per 60 seconds, per API key. Sliding window — there is no fixed-minute boundary you can burst across. Every response includes: | Header | Meaning | |---|---| | `X-RateLimit-Limit` | Requests permitted in the current window. | | `X-RateLimit-Remaining` | Requests left in the current window after this call. | | `X-RateLimit-Reset` | Unix epoch (seconds) when the next slot opens. | | `X-RateLimit-Policy` | Machine-readable policy descriptor, e.g. `600;w=60`. | | `Retry-After` | Seconds to wait before retrying. **Only present on 429 responses.** | **On 429 (rate_limit_exceeded):** the response body matches the standard error envelope with `code: \"rate_limit_exceeded\"`, plus `limit`, `window_seconds`, `retry_after`, and `request_id` fields. SDKs MUST honor `Retry-After` and use exponential backoff with jitter on subsequent retries — never a tight loop. Recommended backoff: ``` sleep_ms = (Retry-After * 1000) + random(0..250) ``` Monthly + daily-AI tier quotas (`free`, `starter`, `custom`) are enforced separately and also surface as 429s; they include `tier`, `scope`, and `resetsAt` fields. ## Plan Limits (402 — `listings_limit_exceeded`) The Repull API also enforces a per-tier cap on **active listings**: | Tier | Active listings cap | |---|---| | `free` | 3 | | `starter` | 50 | | `custom` | unlimited | When a customer's active-listing count is above their tier cap, the API returns **`402 Payment Required`** with `error.code = \"listings_limit_exceeded\"` on every route EXCEPT: - `/v1/health` — uptime probes are never gated. - `/v1/usage/*` — so dashboards can render the over-cap state. - Any `DELETE` — so the customer can trim listings to get back under the cap without paying. Unlike 429, 402 is NOT a \"wait and retry\" condition — `Retry-After` is not set. The only paths back to 200 are: 1. `DELETE` enough listings to come back under the cap, or 2. Upgrade at `https://repull.dev/dashboard/billing`. The server-side usage cache is 60s, so the first 200 after an upgrade may take up to a minute. The envelope mirrors `rate_limit_exceeded` for SDK ergonomics: `tier`, `limit`, `active_listings`, `upgrade_url`, plus the standard `code` / `message` / `fix` / `docs_url` / `request_id`.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: ivan@vanio.ai
|
|
@@ -20,7 +20,7 @@ module Repull
|
|
|
20
20
|
@api_client = api_client
|
|
21
21
|
end
|
|
22
22
|
# Acknowledge Booking.com reservations
|
|
23
|
-
# Acknowledge one or more reservations so Booking.com removes them from the `new` queue. The body carries `reservation_ids` (non-empty array). Acknowledge only after you have durably persisted each reservation.
|
|
23
|
+
# Acknowledge one or more reservations so Booking.com removes them from the `new` queue. The body carries `reservation_ids` (non-empty array). Acknowledge only after you have durably persisted each reservation. Only reservations that belong to this workspace can be acknowledged. If any id in `reservation_ids` is not one of this workspace's Booking.com reservations (`confirmationCode` on `GET /v1/reservations?platform=booking`), nothing is acknowledged and the response is `404 not_found` naming those ids in `reservation_ids`.
|
|
24
24
|
# @param acknowledge_booking_reservations_request [AcknowledgeBookingReservationsRequest]
|
|
25
25
|
# @param [Hash] opts the optional parameters
|
|
26
26
|
# @return [nil]
|
|
@@ -30,7 +30,7 @@ module Repull
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
# Acknowledge Booking.com reservations
|
|
33
|
-
# Acknowledge one or more reservations so Booking.com removes them from the `new` queue. The body carries `reservation_ids` (non-empty array). Acknowledge only after you have durably persisted each reservation.
|
|
33
|
+
# Acknowledge one or more reservations so Booking.com removes them from the `new` queue. The body carries `reservation_ids` (non-empty array). Acknowledge only after you have durably persisted each reservation. Only reservations that belong to this workspace can be acknowledged. If any id in `reservation_ids` is not one of this workspace's Booking.com reservations (`confirmationCode` on `GET /v1/reservations?platform=booking`), nothing is acknowledged and the response is `404 not_found` naming those ids in `reservation_ids`.
|
|
34
34
|
# @param acknowledge_booking_reservations_request [AcknowledgeBookingReservationsRequest]
|
|
35
35
|
# @param [Hash] opts the optional parameters
|
|
36
36
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -88,7 +88,7 @@ module Repull
|
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
# Booking.com property setup actions
|
|
91
|
-
# Action-router for onboarding a property onto Booking.com. Select the step with `action`: - `create-legal-entity` — register the legal entity (returns 201). - `check-legal-status` — poll legal-entity status by `leid`. - `check-readiness` — check whether a property is ready to open (`property_id`). - `open-property` — open the property for sale (`property_id`). - `set-contacts` — set property contacts (`property_id`, `contacts`). - `set-policies` — set property policies (`property_id`, plus policy fields). Missing required fields per action return a validation error; upstream failures surface as `booking_error`.
|
|
91
|
+
# Action-router for onboarding a property onto Booking.com. Select the step with `action`: - `create-legal-entity` — register the legal entity (returns 201). - `check-legal-status` — poll legal-entity status by `leid`. - `check-readiness` — check whether a property is ready to open (`property_id`). - `open-property` — open the property for sale (`property_id`). - `set-contacts` — set property contacts (`property_id`, `contacts`). - `set-policies` — set property policies (`property_id`, plus policy fields). Missing required fields per action return a validation error; upstream failures surface as `booking_error`. Every action that takes a `property_id` requires a property connected to this workspace; any other id returns `404 not_found`. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
92
92
|
# @param booking_setup_request [BookingSetupRequest]
|
|
93
93
|
# @param [Hash] opts the optional parameters
|
|
94
94
|
# @return [nil]
|
|
@@ -98,7 +98,7 @@ module Repull
|
|
|
98
98
|
end
|
|
99
99
|
|
|
100
100
|
# Booking.com property setup actions
|
|
101
|
-
# Action-router for onboarding a property onto Booking.com. Select the step with `action`: - `create-legal-entity` — register the legal entity (returns 201). - `check-legal-status` — poll legal-entity status by `leid`. - `check-readiness` — check whether a property is ready to open (`property_id`). - `open-property` — open the property for sale (`property_id`). - `set-contacts` — set property contacts (`property_id`, `contacts`). - `set-policies` — set property policies (`property_id`, plus policy fields). Missing required fields per action return a validation error; upstream failures surface as `booking_error`.
|
|
101
|
+
# Action-router for onboarding a property onto Booking.com. Select the step with `action`: - `create-legal-entity` — register the legal entity (returns 201). - `check-legal-status` — poll legal-entity status by `leid`. - `check-readiness` — check whether a property is ready to open (`property_id`). - `open-property` — open the property for sale (`property_id`). - `set-contacts` — set property contacts (`property_id`, `contacts`). - `set-policies` — set property policies (`property_id`, plus policy fields). Missing required fields per action return a validation error; upstream failures surface as `booking_error`. Every action that takes a `property_id` requires a property connected to this workspace; any other id returns `404 not_found`. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
102
102
|
# @param booking_setup_request [BookingSetupRequest]
|
|
103
103
|
# @param [Hash] opts the optional parameters
|
|
104
104
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -156,7 +156,7 @@ module Repull
|
|
|
156
156
|
end
|
|
157
157
|
|
|
158
158
|
# Subscribe to a Booking.com notification
|
|
159
|
-
#
|
|
159
|
+
# **Not available through the API — always returns `403 forbidden`.** Booking.com notification subscriptions belong to the Repull platform account that every workspace shares: they are per notification type, not per property, so reading or changing them would affect every workspace. Booking.com events for your own properties are delivered through Repull webhooks — subscribe with `POST /v1/webhooks`.
|
|
160
160
|
# @param create_booking_webhook_request [CreateBookingWebhookRequest]
|
|
161
161
|
# @param [Hash] opts the optional parameters
|
|
162
162
|
# @return [nil]
|
|
@@ -166,7 +166,7 @@ module Repull
|
|
|
166
166
|
end
|
|
167
167
|
|
|
168
168
|
# Subscribe to a Booking.com notification
|
|
169
|
-
#
|
|
169
|
+
# **Not available through the API — always returns `403 forbidden`.** Booking.com notification subscriptions belong to the Repull platform account that every workspace shares: they are per notification type, not per property, so reading or changing them would affect every workspace. Booking.com events for your own properties are delivered through Repull webhooks — subscribe with `POST /v1/webhooks`.
|
|
170
170
|
# @param create_booking_webhook_request [CreateBookingWebhookRequest]
|
|
171
171
|
# @param [Hash] opts the optional parameters
|
|
172
172
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -224,7 +224,7 @@ module Repull
|
|
|
224
224
|
end
|
|
225
225
|
|
|
226
226
|
# Unsubscribe from a Booking.com notification
|
|
227
|
-
#
|
|
227
|
+
# **Not available through the API — always returns `403 forbidden`.** Booking.com notification subscriptions belong to the Repull platform account that every workspace shares: they are per notification type, not per property, so reading or changing them would affect every workspace. Booking.com events for your own properties are delivered through Repull webhooks — subscribe with `POST /v1/webhooks`.
|
|
228
228
|
# @param notification_type [String] Booking.com CNS notification type to unsubscribe.
|
|
229
229
|
# @param [Hash] opts the optional parameters
|
|
230
230
|
# @return [nil]
|
|
@@ -234,7 +234,7 @@ module Repull
|
|
|
234
234
|
end
|
|
235
235
|
|
|
236
236
|
# Unsubscribe from a Booking.com notification
|
|
237
|
-
#
|
|
237
|
+
# **Not available through the API — always returns `403 forbidden`.** Booking.com notification subscriptions belong to the Repull platform account that every workspace shares: they are per notification type, not per property, so reading or changing them would affect every workspace. Booking.com events for your own properties are delivered through Repull webhooks — subscribe with `POST /v1/webhooks`.
|
|
238
238
|
# @param notification_type [String] Booking.com CNS notification type to unsubscribe.
|
|
239
239
|
# @param [Hash] opts the optional parameters
|
|
240
240
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -287,8 +287,84 @@ module Repull
|
|
|
287
287
|
return data, status_code, headers
|
|
288
288
|
end
|
|
289
289
|
|
|
290
|
+
# Read current Booking.com rates/availability/restrictions
|
|
291
|
+
# Read the current rate, availability, and restriction state for a Booking.com property so you can reconcile before writing with the PUT on this path. Keyed by `property_id` (the Booking hotel id), symmetric with the PUT. Proxies Booking's `getRoomRateAvailability` — the returned fields (price, rooms-to-sell, min/max stay, closed-to-arrival/departure, stop-sell) are whatever Booking.com emits for the window. A listing-id-keyed equivalent is available at `GET /v1/channels/booking/listings/{id}/pricing`. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
292
|
+
# @param property_id [String] Booking.com hotel/property id.
|
|
293
|
+
# @param [Hash] opts the optional parameters
|
|
294
|
+
# @option opts [Date] :start_date Window start (ISO YYYY-MM-DD).
|
|
295
|
+
# @option opts [Integer] :number_of_days Window length in days.
|
|
296
|
+
# @option opts [String] :room_id Restrict to a single Booking.com room id.
|
|
297
|
+
# @option opts [Boolean] :room_level When true, returns room-level (vs rate-plan-level) state.
|
|
298
|
+
# @return [BookingAvailabilityStateResponse]
|
|
299
|
+
def get_booking_availability(property_id, opts = {})
|
|
300
|
+
data, _status_code, _headers = get_booking_availability_with_http_info(property_id, opts)
|
|
301
|
+
data
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
# Read current Booking.com rates/availability/restrictions
|
|
305
|
+
# Read the current rate, availability, and restriction state for a Booking.com property so you can reconcile before writing with the PUT on this path. Keyed by `property_id` (the Booking hotel id), symmetric with the PUT. Proxies Booking's `getRoomRateAvailability` — the returned fields (price, rooms-to-sell, min/max stay, closed-to-arrival/departure, stop-sell) are whatever Booking.com emits for the window. A listing-id-keyed equivalent is available at `GET /v1/channels/booking/listings/{id}/pricing`. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
306
|
+
# @param property_id [String] Booking.com hotel/property id.
|
|
307
|
+
# @param [Hash] opts the optional parameters
|
|
308
|
+
# @option opts [Date] :start_date Window start (ISO YYYY-MM-DD).
|
|
309
|
+
# @option opts [Integer] :number_of_days Window length in days.
|
|
310
|
+
# @option opts [String] :room_id Restrict to a single Booking.com room id.
|
|
311
|
+
# @option opts [Boolean] :room_level When true, returns room-level (vs rate-plan-level) state.
|
|
312
|
+
# @return [Array<(BookingAvailabilityStateResponse, Integer, Hash)>] BookingAvailabilityStateResponse data, response status code and response headers
|
|
313
|
+
def get_booking_availability_with_http_info(property_id, opts = {})
|
|
314
|
+
if @api_client.config.debugging
|
|
315
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.get_booking_availability ...'
|
|
316
|
+
end
|
|
317
|
+
# verify the required parameter 'property_id' is set
|
|
318
|
+
if @api_client.config.client_side_validation && property_id.nil?
|
|
319
|
+
fail ArgumentError, "Missing the required parameter 'property_id' when calling BookingComApi.get_booking_availability"
|
|
320
|
+
end
|
|
321
|
+
# resource path
|
|
322
|
+
local_var_path = '/v1/channels/booking/availability'
|
|
323
|
+
|
|
324
|
+
# query parameters
|
|
325
|
+
query_params = opts[:query_params] || {}
|
|
326
|
+
query_params[:'property_id'] = property_id
|
|
327
|
+
query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil?
|
|
328
|
+
query_params[:'number_of_days'] = opts[:'number_of_days'] if !opts[:'number_of_days'].nil?
|
|
329
|
+
query_params[:'room_id'] = opts[:'room_id'] if !opts[:'room_id'].nil?
|
|
330
|
+
query_params[:'room_level'] = opts[:'room_level'] if !opts[:'room_level'].nil?
|
|
331
|
+
|
|
332
|
+
# header parameters
|
|
333
|
+
header_params = opts[:header_params] || {}
|
|
334
|
+
# HTTP header 'Accept' (if needed)
|
|
335
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
336
|
+
|
|
337
|
+
# form parameters
|
|
338
|
+
form_params = opts[:form_params] || {}
|
|
339
|
+
|
|
340
|
+
# http body (model)
|
|
341
|
+
post_body = opts[:debug_body]
|
|
342
|
+
|
|
343
|
+
# return_type
|
|
344
|
+
return_type = opts[:debug_return_type] || 'BookingAvailabilityStateResponse'
|
|
345
|
+
|
|
346
|
+
# auth_names
|
|
347
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
348
|
+
|
|
349
|
+
new_options = opts.merge(
|
|
350
|
+
:operation => :"BookingComApi.get_booking_availability",
|
|
351
|
+
:header_params => header_params,
|
|
352
|
+
:query_params => query_params,
|
|
353
|
+
:form_params => form_params,
|
|
354
|
+
:body => post_body,
|
|
355
|
+
:auth_names => auth_names,
|
|
356
|
+
:return_type => return_type
|
|
357
|
+
)
|
|
358
|
+
|
|
359
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
360
|
+
if @api_client.config.debugging
|
|
361
|
+
@api_client.config.logger.debug "API called: BookingComApi#get_booking_availability\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
362
|
+
end
|
|
363
|
+
return data, status_code, headers
|
|
364
|
+
end
|
|
365
|
+
|
|
290
366
|
# Get Booking.com charges
|
|
291
|
-
# Fetch the extra-charge set (cleaning fee, resort fee, city tax, etc.) configured for a Booking.com property. Pass the Booking.com `property_id` as a query param — required.
|
|
367
|
+
# Fetch the extra-charge set (cleaning fee, resort fee, city tax, etc.) configured for a Booking.com property. Pass the Booking.com `property_id` as a query param — required. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
292
368
|
# @param property_id [String] Booking.com hotel/property id.
|
|
293
369
|
# @param [Hash] opts the optional parameters
|
|
294
370
|
# @return [nil]
|
|
@@ -298,7 +374,7 @@ module Repull
|
|
|
298
374
|
end
|
|
299
375
|
|
|
300
376
|
# Get Booking.com charges
|
|
301
|
-
# Fetch the extra-charge set (cleaning fee, resort fee, city tax, etc.) configured for a Booking.com property. Pass the Booking.com `property_id` as a query param — required.
|
|
377
|
+
# Fetch the extra-charge set (cleaning fee, resort fee, city tax, etc.) configured for a Booking.com property. Pass the Booking.com `property_id` as a query param — required. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
302
378
|
# @param property_id [String] Booking.com hotel/property id.
|
|
303
379
|
# @param [Hash] opts the optional parameters
|
|
304
380
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -352,7 +428,7 @@ module Repull
|
|
|
352
428
|
end
|
|
353
429
|
|
|
354
430
|
# Get Booking.com content
|
|
355
|
-
# Fetch the current content (descriptions, amenities, photos) for a Booking.com property. Used to round-trip edits through Repull.
|
|
431
|
+
# Fetch the current content (descriptions, amenities, photos) for a Booking.com property. Used to round-trip edits through Repull. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
356
432
|
# @param [Hash] opts the optional parameters
|
|
357
433
|
# @return [nil]
|
|
358
434
|
def get_booking_content(opts = {})
|
|
@@ -361,7 +437,7 @@ module Repull
|
|
|
361
437
|
end
|
|
362
438
|
|
|
363
439
|
# Get Booking.com content
|
|
364
|
-
# Fetch the current content (descriptions, amenities, photos) for a Booking.com property. Used to round-trip edits through Repull.
|
|
440
|
+
# Fetch the current content (descriptions, amenities, photos) for a Booking.com property. Used to round-trip edits through Repull. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
365
441
|
# @param [Hash] opts the optional parameters
|
|
366
442
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
367
443
|
def get_booking_content_with_http_info(opts = {})
|
|
@@ -376,6 +452,8 @@ module Repull
|
|
|
376
452
|
|
|
377
453
|
# header parameters
|
|
378
454
|
header_params = opts[:header_params] || {}
|
|
455
|
+
# HTTP header 'Accept' (if needed)
|
|
456
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
379
457
|
|
|
380
458
|
# form parameters
|
|
381
459
|
form_params = opts[:form_params] || {}
|
|
@@ -407,7 +485,7 @@ module Repull
|
|
|
407
485
|
end
|
|
408
486
|
|
|
409
487
|
# Get Booking.com pricing for a listing
|
|
410
|
-
# Resolves the Vanio listing ID to its Booking.com `hotel_id` (via the `listings_booking` mapping owned by the authenticated workspace), then proxies Booking's `getRoomRateAvailability` for the requested window. Pricing on Booking is per-room/per-rate-plan, so `room_id` and `room_level` flow through query params unchanged. Mirrors the per-channel `/listings/{id}/pricing` shape used by Airbnb so SDK consumers can carry a Vanio listing ID across channels.
|
|
488
|
+
# Resolves the Vanio listing ID to its Booking.com `hotel_id` (via the `listings_booking` mapping owned by the authenticated workspace), then proxies Booking's `getRoomRateAvailability` for the requested window. Pricing on Booking is per-room/per-rate-plan, so `room_id` and `room_level` flow through query params unchanged. Mirrors the per-channel `/listings/{id}/pricing` shape used by Airbnb so SDK consumers can carry a Vanio listing ID across channels. Returns `403 listing_inactive` when the listing is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
411
489
|
# @param id [Integer] Vanio listing ID — resolved to a Booking.com hotel ID via the workspace mapping.
|
|
412
490
|
# @param [Hash] opts the optional parameters
|
|
413
491
|
# @option opts [Date] :start_date
|
|
@@ -421,7 +499,7 @@ module Repull
|
|
|
421
499
|
end
|
|
422
500
|
|
|
423
501
|
# Get Booking.com pricing for a listing
|
|
424
|
-
# Resolves the Vanio listing ID to its Booking.com `hotel_id` (via the `listings_booking` mapping owned by the authenticated workspace), then proxies Booking's `getRoomRateAvailability` for the requested window. Pricing on Booking is per-room/per-rate-plan, so `room_id` and `room_level` flow through query params unchanged. Mirrors the per-channel `/listings/{id}/pricing` shape used by Airbnb so SDK consumers can carry a Vanio listing ID across channels.
|
|
502
|
+
# Resolves the Vanio listing ID to its Booking.com `hotel_id` (via the `listings_booking` mapping owned by the authenticated workspace), then proxies Booking's `getRoomRateAvailability` for the requested window. Pricing on Booking is per-room/per-rate-plan, so `room_id` and `room_level` flow through query params unchanged. Mirrors the per-channel `/listings/{id}/pricing` shape used by Airbnb so SDK consumers can carry a Vanio listing ID across channels. Returns `403 listing_inactive` when the listing is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
425
503
|
# @param id [Integer] Vanio listing ID — resolved to a Booking.com hotel ID via the workspace mapping.
|
|
426
504
|
# @param [Hash] opts the optional parameters
|
|
427
505
|
# @option opts [Date] :start_date
|
|
@@ -482,7 +560,7 @@ module Repull
|
|
|
482
560
|
end
|
|
483
561
|
|
|
484
562
|
# Get Booking.com connection for a listing
|
|
485
|
-
# Return the Booking.com connection record(s) for a Vanio listing — the linked Booking hotel id, sync flags, markup, sync category, and suspension state. Scoped to the authenticated workspace; a listing with no Booking.com connection returns 404.
|
|
563
|
+
# Return the Booking.com connection record(s) for a Vanio listing — the linked Booking hotel id, sync flags, markup, sync category, and suspension state. Scoped to the authenticated workspace; a listing with no Booking.com connection returns 404. Returns `403 listing_inactive` when the listing is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
486
564
|
# @param id [Integer] Vanio listing ID.
|
|
487
565
|
# @param [Hash] opts the optional parameters
|
|
488
566
|
# @return [nil]
|
|
@@ -492,7 +570,7 @@ module Repull
|
|
|
492
570
|
end
|
|
493
571
|
|
|
494
572
|
# Get Booking.com connection for a listing
|
|
495
|
-
# Return the Booking.com connection record(s) for a Vanio listing — the linked Booking hotel id, sync flags, markup, sync category, and suspension state. Scoped to the authenticated workspace; a listing with no Booking.com connection returns 404.
|
|
573
|
+
# Return the Booking.com connection record(s) for a Vanio listing — the linked Booking hotel id, sync flags, markup, sync category, and suspension state. Scoped to the authenticated workspace; a listing with no Booking.com connection returns 404. Returns `403 listing_inactive` when the listing is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
496
574
|
# @param id [Integer] Vanio listing ID.
|
|
497
575
|
# @param [Hash] opts the optional parameters
|
|
498
576
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -545,18 +623,18 @@ module Repull
|
|
|
545
623
|
end
|
|
546
624
|
|
|
547
625
|
# List Booking.com conversations
|
|
548
|
-
# List Booking.com guest conversations. Cursor-paginated. Use the messaging POST to send a reply.
|
|
626
|
+
# List Booking.com guest conversations. Cursor-paginated. Use the messaging POST to send a reply. Scoped to this workspace. With `property_id`, the property must be connected to this workspace — any other id returns `404 not_found`. Without it, only messages for this workspace's own Booking.com properties are returned. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
549
627
|
# @param [Hash] opts the optional parameters
|
|
550
|
-
# @return [
|
|
628
|
+
# @return [Array<BookingConversation>]
|
|
551
629
|
def list_booking_conversations(opts = {})
|
|
552
630
|
data, _status_code, _headers = list_booking_conversations_with_http_info(opts)
|
|
553
631
|
data
|
|
554
632
|
end
|
|
555
633
|
|
|
556
634
|
# List Booking.com conversations
|
|
557
|
-
# List Booking.com guest conversations. Cursor-paginated. Use the messaging POST to send a reply.
|
|
635
|
+
# List Booking.com guest conversations. Cursor-paginated. Use the messaging POST to send a reply. Scoped to this workspace. With `property_id`, the property must be connected to this workspace — any other id returns `404 not_found`. Without it, only messages for this workspace's own Booking.com properties are returned. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
558
636
|
# @param [Hash] opts the optional parameters
|
|
559
|
-
# @return [Array<(
|
|
637
|
+
# @return [Array<(Array<BookingConversation>, Integer, Hash)>] Array<BookingConversation> data, response status code and response headers
|
|
560
638
|
def list_booking_conversations_with_http_info(opts = {})
|
|
561
639
|
if @api_client.config.debugging
|
|
562
640
|
@api_client.config.logger.debug 'Calling API: BookingComApi.list_booking_conversations ...'
|
|
@@ -579,7 +657,7 @@ module Repull
|
|
|
579
657
|
post_body = opts[:debug_body]
|
|
580
658
|
|
|
581
659
|
# return_type
|
|
582
|
-
return_type = opts[:debug_return_type] || '
|
|
660
|
+
return_type = opts[:debug_return_type] || 'Array<BookingConversation>'
|
|
583
661
|
|
|
584
662
|
# auth_names
|
|
585
663
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -602,18 +680,18 @@ module Repull
|
|
|
602
680
|
end
|
|
603
681
|
|
|
604
682
|
# List Booking.com properties
|
|
605
|
-
# List Booking.com hotels claimed by this workspace. Each row includes the Booking-side hotel id and the connected room types.
|
|
683
|
+
# List Booking.com hotels claimed by this workspace. Each row includes the Booking-side hotel id and the connected room types. Inactive listings are left out; they keep syncing and reappear once activated. Use `GET /v1/listings?status=inactive` to find them.
|
|
606
684
|
# @param [Hash] opts the optional parameters
|
|
607
|
-
# @return [
|
|
685
|
+
# @return [Array<BookingProperty>]
|
|
608
686
|
def list_booking_properties(opts = {})
|
|
609
687
|
data, _status_code, _headers = list_booking_properties_with_http_info(opts)
|
|
610
688
|
data
|
|
611
689
|
end
|
|
612
690
|
|
|
613
691
|
# List Booking.com properties
|
|
614
|
-
# List Booking.com hotels claimed by this workspace. Each row includes the Booking-side hotel id and the connected room types.
|
|
692
|
+
# List Booking.com hotels claimed by this workspace. Each row includes the Booking-side hotel id and the connected room types. Inactive listings are left out; they keep syncing and reappear once activated. Use `GET /v1/listings?status=inactive` to find them.
|
|
615
693
|
# @param [Hash] opts the optional parameters
|
|
616
|
-
# @return [Array<(
|
|
694
|
+
# @return [Array<(Array<BookingProperty>, Integer, Hash)>] Array<BookingProperty> data, response status code and response headers
|
|
617
695
|
def list_booking_properties_with_http_info(opts = {})
|
|
618
696
|
if @api_client.config.debugging
|
|
619
697
|
@api_client.config.logger.debug 'Calling API: BookingComApi.list_booking_properties ...'
|
|
@@ -636,7 +714,7 @@ module Repull
|
|
|
636
714
|
post_body = opts[:debug_body]
|
|
637
715
|
|
|
638
716
|
# return_type
|
|
639
|
-
return_type = opts[:debug_return_type] || '
|
|
717
|
+
return_type = opts[:debug_return_type] || 'Array<BookingProperty>'
|
|
640
718
|
|
|
641
719
|
# auth_names
|
|
642
720
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -658,25 +736,88 @@ module Repull
|
|
|
658
736
|
return data, status_code, headers
|
|
659
737
|
end
|
|
660
738
|
|
|
739
|
+
# List Booking.com rooms + rate-plan ids for a listing
|
|
740
|
+
# Return every Booking.com room and its rate plans for a listing, each with the `roomId` / `rateId` needed to assemble a restriction write via `PUT /v1/channels/booking/availability`. `id` is a Vanio listing id — resolved to the Booking `hotel_id` via the workspace mapping (a listing with no active Booking.com mapping returns 404). Sourced from Booking's B.XML roomrates feed, which returns rooms and rate plans together (the rooms-unit feed alone omits rate-plan ids). This is the API-key surface for the room/rate ids that were previously only reachable inside the hosted Connect room-mapping flow. Returns `403 listing_inactive` when the listing is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
741
|
+
# @param id [Integer] Vanio listing id — resolved to a Booking.com hotel id via the workspace mapping.
|
|
742
|
+
# @param [Hash] opts the optional parameters
|
|
743
|
+
# @return [BookingRoomsRatesResponse]
|
|
744
|
+
def list_booking_property_rooms(id, opts = {})
|
|
745
|
+
data, _status_code, _headers = list_booking_property_rooms_with_http_info(id, opts)
|
|
746
|
+
data
|
|
747
|
+
end
|
|
748
|
+
|
|
749
|
+
# List Booking.com rooms + rate-plan ids for a listing
|
|
750
|
+
# Return every Booking.com room and its rate plans for a listing, each with the `roomId` / `rateId` needed to assemble a restriction write via `PUT /v1/channels/booking/availability`. `id` is a Vanio listing id — resolved to the Booking `hotel_id` via the workspace mapping (a listing with no active Booking.com mapping returns 404). Sourced from Booking's B.XML roomrates feed, which returns rooms and rate plans together (the rooms-unit feed alone omits rate-plan ids). This is the API-key surface for the room/rate ids that were previously only reachable inside the hosted Connect room-mapping flow. Returns `403 listing_inactive` when the listing is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
751
|
+
# @param id [Integer] Vanio listing id — resolved to a Booking.com hotel id via the workspace mapping.
|
|
752
|
+
# @param [Hash] opts the optional parameters
|
|
753
|
+
# @return [Array<(BookingRoomsRatesResponse, Integer, Hash)>] BookingRoomsRatesResponse data, response status code and response headers
|
|
754
|
+
def list_booking_property_rooms_with_http_info(id, opts = {})
|
|
755
|
+
if @api_client.config.debugging
|
|
756
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.list_booking_property_rooms ...'
|
|
757
|
+
end
|
|
758
|
+
# verify the required parameter 'id' is set
|
|
759
|
+
if @api_client.config.client_side_validation && id.nil?
|
|
760
|
+
fail ArgumentError, "Missing the required parameter 'id' when calling BookingComApi.list_booking_property_rooms"
|
|
761
|
+
end
|
|
762
|
+
# resource path
|
|
763
|
+
local_var_path = '/v1/channels/booking/properties/{id}/rooms'.sub('{id}', CGI.escape(id.to_s))
|
|
764
|
+
|
|
765
|
+
# query parameters
|
|
766
|
+
query_params = opts[:query_params] || {}
|
|
767
|
+
|
|
768
|
+
# header parameters
|
|
769
|
+
header_params = opts[:header_params] || {}
|
|
770
|
+
# HTTP header 'Accept' (if needed)
|
|
771
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
772
|
+
|
|
773
|
+
# form parameters
|
|
774
|
+
form_params = opts[:form_params] || {}
|
|
775
|
+
|
|
776
|
+
# http body (model)
|
|
777
|
+
post_body = opts[:debug_body]
|
|
778
|
+
|
|
779
|
+
# return_type
|
|
780
|
+
return_type = opts[:debug_return_type] || 'BookingRoomsRatesResponse'
|
|
781
|
+
|
|
782
|
+
# auth_names
|
|
783
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
784
|
+
|
|
785
|
+
new_options = opts.merge(
|
|
786
|
+
:operation => :"BookingComApi.list_booking_property_rooms",
|
|
787
|
+
:header_params => header_params,
|
|
788
|
+
:query_params => query_params,
|
|
789
|
+
:form_params => form_params,
|
|
790
|
+
:body => post_body,
|
|
791
|
+
:auth_names => auth_names,
|
|
792
|
+
:return_type => return_type
|
|
793
|
+
)
|
|
794
|
+
|
|
795
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
796
|
+
if @api_client.config.debugging
|
|
797
|
+
@api_client.config.logger.debug "API called: BookingComApi#list_booking_property_rooms\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
798
|
+
end
|
|
799
|
+
return data, status_code, headers
|
|
800
|
+
end
|
|
801
|
+
|
|
661
802
|
# List Booking.com reservations
|
|
662
|
-
# Pull reservations from Booking.com. `type=new` (default) returns un-acknowledged bookings; `type=modified` returns changed bookings. Pass both `reservation_id` and `hotel_id` to fetch a single reservation's full details. Acknowledge processed reservations with the POST so Booking stops re-serving them in the `new` queue.
|
|
803
|
+
# Pull reservations from Booking.com. `type=new` (default) returns un-acknowledged bookings; `type=modified` returns changed bookings. Pass both `reservation_id` and `hotel_id` to fetch a single reservation's full details. Acknowledge processed reservations with the POST so Booking stops re-serving them in the `new` queue. Scoped to this workspace. `hotel_id` (or its alias `property_id`) must be a property connected to this workspace; any other id returns `404 not_found`, the same as an id that does not exist. Without a hotel, `new`/`modified` cover every Booking.com property this workspace holds (and return `404 not_found` if it holds none). A `reservation_id` that belongs to another workspace returns `404 not_found`. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
663
804
|
# @param [Hash] opts the optional parameters
|
|
664
805
|
# @option opts [String] :type Which set to pull. `details` requires `reservation_id` + `hotel_id`. (default to 'new')
|
|
665
806
|
# @option opts [String] :hotel_id Booking.com hotel id — filters `new`/`modified`, and is required with `reservation_id` for details.
|
|
666
807
|
# @option opts [String] :reservation_id Booking.com reservation id — with `hotel_id`, returns that reservation's details.
|
|
667
|
-
# @return [
|
|
808
|
+
# @return [ListBookingReservations200Response]
|
|
668
809
|
def list_booking_reservations(opts = {})
|
|
669
|
-
list_booking_reservations_with_http_info(opts)
|
|
670
|
-
|
|
810
|
+
data, _status_code, _headers = list_booking_reservations_with_http_info(opts)
|
|
811
|
+
data
|
|
671
812
|
end
|
|
672
813
|
|
|
673
814
|
# List Booking.com reservations
|
|
674
|
-
# Pull reservations from Booking.com. `type=new` (default) returns un-acknowledged bookings; `type=modified` returns changed bookings. Pass both `reservation_id` and `hotel_id` to fetch a single reservation's full details. Acknowledge processed reservations with the POST so Booking stops re-serving them in the `new` queue.
|
|
815
|
+
# Pull reservations from Booking.com. `type=new` (default) returns un-acknowledged bookings; `type=modified` returns changed bookings. Pass both `reservation_id` and `hotel_id` to fetch a single reservation's full details. Acknowledge processed reservations with the POST so Booking stops re-serving them in the `new` queue. Scoped to this workspace. `hotel_id` (or its alias `property_id`) must be a property connected to this workspace; any other id returns `404 not_found`, the same as an id that does not exist. Without a hotel, `new`/`modified` cover every Booking.com property this workspace holds (and return `404 not_found` if it holds none). A `reservation_id` that belongs to another workspace returns `404 not_found`. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
675
816
|
# @param [Hash] opts the optional parameters
|
|
676
817
|
# @option opts [String] :type Which set to pull. `details` requires `reservation_id` + `hotel_id`. (default to 'new')
|
|
677
818
|
# @option opts [String] :hotel_id Booking.com hotel id — filters `new`/`modified`, and is required with `reservation_id` for details.
|
|
678
819
|
# @option opts [String] :reservation_id Booking.com reservation id — with `hotel_id`, returns that reservation's details.
|
|
679
|
-
# @return [Array<(
|
|
820
|
+
# @return [Array<(ListBookingReservations200Response, Integer, Hash)>] ListBookingReservations200Response data, response status code and response headers
|
|
680
821
|
def list_booking_reservations_with_http_info(opts = {})
|
|
681
822
|
if @api_client.config.debugging
|
|
682
823
|
@api_client.config.logger.debug 'Calling API: BookingComApi.list_booking_reservations ...'
|
|
@@ -706,7 +847,7 @@ module Repull
|
|
|
706
847
|
post_body = opts[:debug_body]
|
|
707
848
|
|
|
708
849
|
# return_type
|
|
709
|
-
return_type = opts[:debug_return_type]
|
|
850
|
+
return_type = opts[:debug_return_type] || 'ListBookingReservations200Response'
|
|
710
851
|
|
|
711
852
|
# auth_names
|
|
712
853
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -729,7 +870,7 @@ module Repull
|
|
|
729
870
|
end
|
|
730
871
|
|
|
731
872
|
# List Booking.com reviews
|
|
732
|
-
# List guest reviews for a Booking.com property. Pass `property_id` (the Booking.com hotel id) as a query param — required.
|
|
873
|
+
# List guest reviews for a Booking.com property. Pass `property_id` (the Booking.com hotel id) as a query param — required. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
733
874
|
# @param property_id [String] Booking.com hotel/property id.
|
|
734
875
|
# @param [Hash] opts the optional parameters
|
|
735
876
|
# @return [nil]
|
|
@@ -739,7 +880,7 @@ module Repull
|
|
|
739
880
|
end
|
|
740
881
|
|
|
741
882
|
# List Booking.com reviews
|
|
742
|
-
# List guest reviews for a Booking.com property. Pass `property_id` (the Booking.com hotel id) as a query param — required.
|
|
883
|
+
# List guest reviews for a Booking.com property. Pass `property_id` (the Booking.com hotel id) as a query param — required. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
743
884
|
# @param property_id [String] Booking.com hotel/property id.
|
|
744
885
|
# @param [Hash] opts the optional parameters
|
|
745
886
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -793,7 +934,7 @@ module Repull
|
|
|
793
934
|
end
|
|
794
935
|
|
|
795
936
|
# List Booking.com webhook subscriptions
|
|
796
|
-
#
|
|
937
|
+
# **Not available through the API — always returns `403 forbidden`.** Booking.com notification subscriptions belong to the Repull platform account that every workspace shares: they are per notification type, not per property, so reading or changing them would affect every workspace. Booking.com events for your own properties are delivered through Repull webhooks — subscribe with `POST /v1/webhooks`.
|
|
797
938
|
# @param [Hash] opts the optional parameters
|
|
798
939
|
# @return [nil]
|
|
799
940
|
def list_booking_webhooks(opts = {})
|
|
@@ -802,7 +943,7 @@ module Repull
|
|
|
802
943
|
end
|
|
803
944
|
|
|
804
945
|
# List Booking.com webhook subscriptions
|
|
805
|
-
#
|
|
946
|
+
# **Not available through the API — always returns `403 forbidden`.** Booking.com notification subscriptions belong to the Repull platform account that every workspace shares: they are per notification type, not per property, so reading or changing them would affect every workspace. Booking.com events for your own properties are delivered through Repull webhooks — subscribe with `POST /v1/webhooks`.
|
|
806
947
|
# @param [Hash] opts the optional parameters
|
|
807
948
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
808
949
|
def list_booking_webhooks_with_http_info(opts = {})
|
|
@@ -850,7 +991,7 @@ module Repull
|
|
|
850
991
|
end
|
|
851
992
|
|
|
852
993
|
# Reply to Booking.com review
|
|
853
|
-
# Post a public host reply to a guest review on Booking.com. Booking allows one host reply per review — repeated POSTs are rejected by upstream. Booking.com does NOT support host-authored reviews of guests via the API (platform-level limitation), so this endpoint is reply-only.
|
|
994
|
+
# Post a public host reply to a guest review on Booking.com. Booking allows one host reply per review — repeated POSTs are rejected by upstream. Booking.com does NOT support host-authored reviews of guests via the API (platform-level limitation), so this endpoint is reply-only. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
854
995
|
# @param reply_booking_review_request [ReplyBookingReviewRequest]
|
|
855
996
|
# @param [Hash] opts the optional parameters
|
|
856
997
|
# @return [ReplyBookingReview200Response]
|
|
@@ -860,7 +1001,7 @@ module Repull
|
|
|
860
1001
|
end
|
|
861
1002
|
|
|
862
1003
|
# Reply to Booking.com review
|
|
863
|
-
# Post a public host reply to a guest review on Booking.com. Booking allows one host reply per review — repeated POSTs are rejected by upstream. Booking.com does NOT support host-authored reviews of guests via the API (platform-level limitation), so this endpoint is reply-only.
|
|
1004
|
+
# Post a public host reply to a guest review on Booking.com. Booking allows one host reply per review — repeated POSTs are rejected by upstream. Booking.com does NOT support host-authored reviews of guests via the API (platform-level limitation), so this endpoint is reply-only. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
864
1005
|
# @param reply_booking_review_request [ReplyBookingReviewRequest]
|
|
865
1006
|
# @param [Hash] opts the optional parameters
|
|
866
1007
|
# @return [Array<(ReplyBookingReview200Response, Integer, Hash)>] ReplyBookingReview200Response data, response status code and response headers
|
|
@@ -918,22 +1059,28 @@ module Repull
|
|
|
918
1059
|
end
|
|
919
1060
|
|
|
920
1061
|
# Send Booking.com message
|
|
921
|
-
# Send a message in a Booking.com conversation as the host. Booking enforces content rules similar to Airbnb.
|
|
1062
|
+
# Send a message in a Booking.com conversation as the host. Booking enforces content rules similar to Airbnb. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
1063
|
+
# @param send_booking_message_request [SendBookingMessageRequest]
|
|
922
1064
|
# @param [Hash] opts the optional parameters
|
|
923
1065
|
# @return [nil]
|
|
924
|
-
def send_booking_message(opts = {})
|
|
925
|
-
send_booking_message_with_http_info(opts)
|
|
1066
|
+
def send_booking_message(send_booking_message_request, opts = {})
|
|
1067
|
+
send_booking_message_with_http_info(send_booking_message_request, opts)
|
|
926
1068
|
nil
|
|
927
1069
|
end
|
|
928
1070
|
|
|
929
1071
|
# Send Booking.com message
|
|
930
|
-
# Send a message in a Booking.com conversation as the host. Booking enforces content rules similar to Airbnb.
|
|
1072
|
+
# Send a message in a Booking.com conversation as the host. Booking enforces content rules similar to Airbnb. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
1073
|
+
# @param send_booking_message_request [SendBookingMessageRequest]
|
|
931
1074
|
# @param [Hash] opts the optional parameters
|
|
932
1075
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
933
|
-
def send_booking_message_with_http_info(opts = {})
|
|
1076
|
+
def send_booking_message_with_http_info(send_booking_message_request, opts = {})
|
|
934
1077
|
if @api_client.config.debugging
|
|
935
1078
|
@api_client.config.logger.debug 'Calling API: BookingComApi.send_booking_message ...'
|
|
936
1079
|
end
|
|
1080
|
+
# verify the required parameter 'send_booking_message_request' is set
|
|
1081
|
+
if @api_client.config.client_side_validation && send_booking_message_request.nil?
|
|
1082
|
+
fail ArgumentError, "Missing the required parameter 'send_booking_message_request' when calling BookingComApi.send_booking_message"
|
|
1083
|
+
end
|
|
937
1084
|
# resource path
|
|
938
1085
|
local_var_path = '/v1/channels/booking/messaging'
|
|
939
1086
|
|
|
@@ -942,12 +1089,19 @@ module Repull
|
|
|
942
1089
|
|
|
943
1090
|
# header parameters
|
|
944
1091
|
header_params = opts[:header_params] || {}
|
|
1092
|
+
# HTTP header 'Accept' (if needed)
|
|
1093
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
1094
|
+
# HTTP header 'Content-Type'
|
|
1095
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
1096
|
+
if !content_type.nil?
|
|
1097
|
+
header_params['Content-Type'] = content_type
|
|
1098
|
+
end
|
|
945
1099
|
|
|
946
1100
|
# form parameters
|
|
947
1101
|
form_params = opts[:form_params] || {}
|
|
948
1102
|
|
|
949
1103
|
# http body (model)
|
|
950
|
-
post_body = opts[:debug_body]
|
|
1104
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(send_booking_message_request)
|
|
951
1105
|
|
|
952
1106
|
# return_type
|
|
953
1107
|
return_type = opts[:debug_return_type]
|
|
@@ -973,7 +1127,7 @@ module Repull
|
|
|
973
1127
|
end
|
|
974
1128
|
|
|
975
1129
|
# Update Booking.com rates/availability
|
|
976
|
-
# Push availability, rates, and the full restriction set to Booking.com. `type` selects the write path: - `rates` — nightly price + length-of-stay / arrival restrictions (min/max stay, closed-to-arrival, closed-to-departure, advance-reservation window). - `availability` — inventory (`availableRooms`), the dedicated stop-sell flag (`closed`), and the same restriction set. - `derived-pricing` — occupancy-derived pricing rules. Restrictions never leak across channels — this endpoint writes only to Booking.com. Errors from upstream surface as `booking_error`.
|
|
1130
|
+
# Push availability, rates, and the full restriction set to Booking.com. `type` selects the write path: - `rates` — nightly price + length-of-stay / arrival restrictions (min/max stay, closed-to-arrival, closed-to-departure, advance-reservation window). - `availability` — inventory (`availableRooms`), the dedicated stop-sell flag (`closed`), and the same restriction set. - `derived-pricing` — occupancy-derived pricing rules. Restrictions never leak across channels — this endpoint writes only to Booking.com. Errors from upstream surface as `booking_error`. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
977
1131
|
# @param booking_availability_update_request [BookingAvailabilityUpdateRequest]
|
|
978
1132
|
# @param [Hash] opts the optional parameters
|
|
979
1133
|
# @return [nil]
|
|
@@ -983,7 +1137,7 @@ module Repull
|
|
|
983
1137
|
end
|
|
984
1138
|
|
|
985
1139
|
# Update Booking.com rates/availability
|
|
986
|
-
# Push availability, rates, and the full restriction set to Booking.com. `type` selects the write path: - `rates` — nightly price + length-of-stay / arrival restrictions (min/max stay, closed-to-arrival, closed-to-departure, advance-reservation window). - `availability` — inventory (`availableRooms`), the dedicated stop-sell flag (`closed`), and the same restriction set. - `derived-pricing` — occupancy-derived pricing rules. Restrictions never leak across channels — this endpoint writes only to Booking.com. Errors from upstream surface as `booking_error`.
|
|
1140
|
+
# Push availability, rates, and the full restriction set to Booking.com. `type` selects the write path: - `rates` — nightly price + length-of-stay / arrival restrictions (min/max stay, closed-to-arrival, closed-to-departure, advance-reservation window). - `availability` — inventory (`availableRooms`), the dedicated stop-sell flag (`closed`), and the same restriction set. - `derived-pricing` — occupancy-derived pricing rules. Restrictions never leak across channels — this endpoint writes only to Booking.com. Errors from upstream surface as `booking_error`. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
987
1141
|
# @param booking_availability_update_request [BookingAvailabilityUpdateRequest]
|
|
988
1142
|
# @param [Hash] opts the optional parameters
|
|
989
1143
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -1041,7 +1195,7 @@ module Repull
|
|
|
1041
1195
|
end
|
|
1042
1196
|
|
|
1043
1197
|
# Set Booking.com charges
|
|
1044
|
-
# Replace the extra-charge set for a Booking.com property. The body carries the target `property_id` and the full `charges` array — Booking treats the write as a full replacement, so include every charge you want to keep.
|
|
1198
|
+
# Replace the extra-charge set for a Booking.com property. The body carries the target `property_id` and the full `charges` array — Booking treats the write as a full replacement, so include every charge you want to keep. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
1045
1199
|
# @param update_booking_charges_request [UpdateBookingChargesRequest]
|
|
1046
1200
|
# @param [Hash] opts the optional parameters
|
|
1047
1201
|
# @return [nil]
|
|
@@ -1051,7 +1205,7 @@ module Repull
|
|
|
1051
1205
|
end
|
|
1052
1206
|
|
|
1053
1207
|
# Set Booking.com charges
|
|
1054
|
-
# Replace the extra-charge set for a Booking.com property. The body carries the target `property_id` and the full `charges` array — Booking treats the write as a full replacement, so include every charge you want to keep.
|
|
1208
|
+
# Replace the extra-charge set for a Booking.com property. The body carries the target `property_id` and the full `charges` array — Booking treats the write as a full replacement, so include every charge you want to keep. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
1055
1209
|
# @param update_booking_charges_request [UpdateBookingChargesRequest]
|
|
1056
1210
|
# @param [Hash] opts the optional parameters
|
|
1057
1211
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -1109,7 +1263,7 @@ module Repull
|
|
|
1109
1263
|
end
|
|
1110
1264
|
|
|
1111
1265
|
# Update Booking.com content
|
|
1112
|
-
# Push content changes (descriptions, amenities, photos) to Booking.com. Booking enforces editorial review on text fields — changes appear after their content moderation queue clears.
|
|
1266
|
+
# Push content changes (descriptions, amenities, photos) to Booking.com. Booking enforces editorial review on text fields — changes appear after their content moderation queue clears. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
1113
1267
|
# @param [Hash] opts the optional parameters
|
|
1114
1268
|
# @return [nil]
|
|
1115
1269
|
def update_booking_content(opts = {})
|
|
@@ -1118,7 +1272,7 @@ module Repull
|
|
|
1118
1272
|
end
|
|
1119
1273
|
|
|
1120
1274
|
# Update Booking.com content
|
|
1121
|
-
# Push content changes (descriptions, amenities, photos) to Booking.com. Booking enforces editorial review on text fields — changes appear after their content moderation queue clears.
|
|
1275
|
+
# Push content changes (descriptions, amenities, photos) to Booking.com. Booking enforces editorial review on text fields — changes appear after their content moderation queue clears. `property_id` must be a Booking.com property connected to this workspace (`GET /v1/channels/booking/properties` lists them). Any other id — including one connected to a different workspace — returns `404 not_found`, the same answer as an id that does not exist. Returns `403 listing_inactive` when any listing mapped to the Booking.com property is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
1122
1276
|
# @param [Hash] opts the optional parameters
|
|
1123
1277
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
1124
1278
|
def update_booking_content_with_http_info(opts = {})
|
|
@@ -1133,6 +1287,8 @@ module Repull
|
|
|
1133
1287
|
|
|
1134
1288
|
# header parameters
|
|
1135
1289
|
header_params = opts[:header_params] || {}
|
|
1290
|
+
# HTTP header 'Accept' (if needed)
|
|
1291
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
1136
1292
|
|
|
1137
1293
|
# form parameters
|
|
1138
1294
|
form_params = opts[:form_params] || {}
|
|
@@ -1164,7 +1320,7 @@ module Repull
|
|
|
1164
1320
|
end
|
|
1165
1321
|
|
|
1166
1322
|
# Update Booking.com pricing for a listing
|
|
1167
|
-
# Pushes one or more rate updates to Booking.com via `updateRates`. Each update needs `roomId` + `rateId` + `dateRange` + `price` + `currency`. Field-level validation runs up front so callers don't have to parse Booking's XML error envelope to discover a missing `roomId`.
|
|
1323
|
+
# Pushes one or more rate updates to Booking.com via `updateRates`. Each update needs `roomId` + `rateId` + `dateRange` + `price` + `currency`. Field-level validation runs up front so callers don't have to parse Booking's XML error envelope to discover a missing `roomId`. Returns `403 listing_inactive` when the listing is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
1168
1324
|
# @param id [Integer]
|
|
1169
1325
|
# @param booking_pricing_update_request [BookingPricingUpdateRequest]
|
|
1170
1326
|
# @param [Hash] opts the optional parameters
|
|
@@ -1175,7 +1331,7 @@ module Repull
|
|
|
1175
1331
|
end
|
|
1176
1332
|
|
|
1177
1333
|
# Update Booking.com pricing for a listing
|
|
1178
|
-
# Pushes one or more rate updates to Booking.com via `updateRates`. Each update needs `roomId` + `rateId` + `dateRange` + `price` + `currency`. Field-level validation runs up front so callers don't have to parse Booking's XML error envelope to discover a missing `roomId`.
|
|
1334
|
+
# Pushes one or more rate updates to Booking.com via `updateRates`. Each update needs `roomId` + `rateId` + `dateRange` + `price` + `currency`. Field-level validation runs up front so callers don't have to parse Booking's XML error envelope to discover a missing `roomId`. Returns `403 listing_inactive` when the listing is inactive. An inactive listing keeps syncing, but cannot be read or changed through the API until it is activated.
|
|
1179
1335
|
# @param id [Integer]
|
|
1180
1336
|
# @param booking_pricing_update_request [BookingPricingUpdateRequest]
|
|
1181
1337
|
# @param [Hash] opts the optional parameters
|