repull 0.2.9 → 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 +1703 -196
- data/lib/repull/api/atlas_api.rb +5 -5
- data/lib/repull/api/availability_api.rb +241 -0
- data/lib/repull/api/billing_api.rb +227 -1
- data/lib/repull/api/booking_com_api.rb +777 -31
- 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 +262 -9
- 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 +176 -0
- 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 +335 -0
- data/lib/repull/models/airbnb_amenity.rb +171 -0
- 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/alteration_change.rb +161 -0
- 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 +220 -0
- 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 +195 -0
- data/lib/repull/models/create_airbnb_offer_request.rb +211 -0
- data/lib/repull/models/create_billing_checkout_request.rb +1 -1
- data/lib/repull/models/create_booking_webhook_request.rb +192 -0
- 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/{studio_error.rb → delete_airbnb_listing_photo200_response.rb} +11 -12
- 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 +190 -0
- data/lib/repull/models/get_airbnb_checkin_guide200_response.rb +192 -0
- data/lib/repull/models/get_airbnb_listing_quality200_response.rb +177 -0
- data/lib/repull/models/get_airbnb_listing_settings200_response.rb +177 -0
- data/lib/repull/models/{sandbox_fixture_ref.rb → get_airbnb_thread200_response.rb} +35 -38
- data/lib/repull/models/get_health200_response.rb +1 -1
- data/lib/repull/models/{vrbo_listing_list_response.rb → get_usage_logs200_response.rb} +18 -9
- data/lib/repull/models/get_usage_logs200_response_data_inner.rb +264 -0
- data/lib/repull/models/get_usage_logs200_response_pagination.rb +166 -0
- data/lib/repull/models/get_usage_summary200_response.rb +232 -0
- data/lib/repull/models/get_usage_summary200_response_breakdown_inner.rb +183 -0
- data/lib/repull/models/get_usage_summary200_response_limits.rb +158 -0
- data/lib/repull/models/get_usage_summary200_response_remaining.rb +158 -0
- data/lib/repull/models/get_usage_summary200_response_status_distribution.rb +174 -0
- data/lib/repull/models/get_usage_summary200_response_timeline_inner.rb +165 -0
- data/lib/repull/models/get_usage_summary200_response_totals.rb +165 -0
- data/lib/repull/models/get_usage_summary200_response_used.rb +156 -0
- data/lib/repull/models/get_usage_tier200_response.rb +183 -0
- data/lib/repull/models/get_usage_tier200_response_limits.rb +168 -0
- data/lib/repull/models/get_usage_tier200_response_remaining.rb +168 -0
- data/lib/repull/models/get_usage_tier200_response_used.rb +165 -0
- 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 +192 -0
- data/lib/repull/models/list_airbnb_listing_amenities200_response.rb +190 -0
- data/lib/repull/models/list_airbnb_listing_amenities200_response_data.rb +160 -0
- data/lib/repull/models/list_airbnb_transactions200_response.rb +192 -0
- 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/listing_photo_delete_response.rb +156 -0
- 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/{booking_property_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 +248 -0
- data/lib/repull/models/property_availability_coverage.rb +222 -0
- data/lib/repull/models/property_availability_day.rb +247 -0
- 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_conversation_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/sync_airbnb_transactions200_response.rb +191 -0
- 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 +209 -0
- data/lib/repull/models/update_booking_charges_request.rb +194 -0
- 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 +111 -15
- data/openapi/v1.json +9877 -3482
- data/scripts/check-spec-freshness.py +399 -0
- data/scripts/regen.sh +32 -3
- metadata +113 -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
|
|
@@ -19,8 +19,416 @@ module Repull
|
|
|
19
19
|
def initialize(api_client = ApiClient.default)
|
|
20
20
|
@api_client = api_client
|
|
21
21
|
end
|
|
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. 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
|
+
# @param acknowledge_booking_reservations_request [AcknowledgeBookingReservationsRequest]
|
|
25
|
+
# @param [Hash] opts the optional parameters
|
|
26
|
+
# @return [nil]
|
|
27
|
+
def acknowledge_booking_reservations(acknowledge_booking_reservations_request, opts = {})
|
|
28
|
+
acknowledge_booking_reservations_with_http_info(acknowledge_booking_reservations_request, opts)
|
|
29
|
+
nil
|
|
30
|
+
end
|
|
31
|
+
|
|
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. 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
|
+
# @param acknowledge_booking_reservations_request [AcknowledgeBookingReservationsRequest]
|
|
35
|
+
# @param [Hash] opts the optional parameters
|
|
36
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
37
|
+
def acknowledge_booking_reservations_with_http_info(acknowledge_booking_reservations_request, opts = {})
|
|
38
|
+
if @api_client.config.debugging
|
|
39
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.acknowledge_booking_reservations ...'
|
|
40
|
+
end
|
|
41
|
+
# verify the required parameter 'acknowledge_booking_reservations_request' is set
|
|
42
|
+
if @api_client.config.client_side_validation && acknowledge_booking_reservations_request.nil?
|
|
43
|
+
fail ArgumentError, "Missing the required parameter 'acknowledge_booking_reservations_request' when calling BookingComApi.acknowledge_booking_reservations"
|
|
44
|
+
end
|
|
45
|
+
# resource path
|
|
46
|
+
local_var_path = '/v1/channels/booking/reservations'
|
|
47
|
+
|
|
48
|
+
# query parameters
|
|
49
|
+
query_params = opts[:query_params] || {}
|
|
50
|
+
|
|
51
|
+
# header parameters
|
|
52
|
+
header_params = opts[:header_params] || {}
|
|
53
|
+
# HTTP header 'Accept' (if needed)
|
|
54
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
55
|
+
# HTTP header 'Content-Type'
|
|
56
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
57
|
+
if !content_type.nil?
|
|
58
|
+
header_params['Content-Type'] = content_type
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# form parameters
|
|
62
|
+
form_params = opts[:form_params] || {}
|
|
63
|
+
|
|
64
|
+
# http body (model)
|
|
65
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(acknowledge_booking_reservations_request)
|
|
66
|
+
|
|
67
|
+
# return_type
|
|
68
|
+
return_type = opts[:debug_return_type]
|
|
69
|
+
|
|
70
|
+
# auth_names
|
|
71
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
72
|
+
|
|
73
|
+
new_options = opts.merge(
|
|
74
|
+
:operation => :"BookingComApi.acknowledge_booking_reservations",
|
|
75
|
+
:header_params => header_params,
|
|
76
|
+
:query_params => query_params,
|
|
77
|
+
:form_params => form_params,
|
|
78
|
+
:body => post_body,
|
|
79
|
+
:auth_names => auth_names,
|
|
80
|
+
:return_type => return_type
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
84
|
+
if @api_client.config.debugging
|
|
85
|
+
@api_client.config.logger.debug "API called: BookingComApi#acknowledge_booking_reservations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
86
|
+
end
|
|
87
|
+
return data, status_code, headers
|
|
88
|
+
end
|
|
89
|
+
|
|
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`. 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
|
+
# @param booking_setup_request [BookingSetupRequest]
|
|
93
|
+
# @param [Hash] opts the optional parameters
|
|
94
|
+
# @return [nil]
|
|
95
|
+
def booking_setup(booking_setup_request, opts = {})
|
|
96
|
+
booking_setup_with_http_info(booking_setup_request, opts)
|
|
97
|
+
nil
|
|
98
|
+
end
|
|
99
|
+
|
|
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`. 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
|
+
# @param booking_setup_request [BookingSetupRequest]
|
|
103
|
+
# @param [Hash] opts the optional parameters
|
|
104
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
105
|
+
def booking_setup_with_http_info(booking_setup_request, opts = {})
|
|
106
|
+
if @api_client.config.debugging
|
|
107
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.booking_setup ...'
|
|
108
|
+
end
|
|
109
|
+
# verify the required parameter 'booking_setup_request' is set
|
|
110
|
+
if @api_client.config.client_side_validation && booking_setup_request.nil?
|
|
111
|
+
fail ArgumentError, "Missing the required parameter 'booking_setup_request' when calling BookingComApi.booking_setup"
|
|
112
|
+
end
|
|
113
|
+
# resource path
|
|
114
|
+
local_var_path = '/v1/channels/booking/setup'
|
|
115
|
+
|
|
116
|
+
# query parameters
|
|
117
|
+
query_params = opts[:query_params] || {}
|
|
118
|
+
|
|
119
|
+
# header parameters
|
|
120
|
+
header_params = opts[:header_params] || {}
|
|
121
|
+
# HTTP header 'Accept' (if needed)
|
|
122
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
123
|
+
# HTTP header 'Content-Type'
|
|
124
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
125
|
+
if !content_type.nil?
|
|
126
|
+
header_params['Content-Type'] = content_type
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# form parameters
|
|
130
|
+
form_params = opts[:form_params] || {}
|
|
131
|
+
|
|
132
|
+
# http body (model)
|
|
133
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(booking_setup_request)
|
|
134
|
+
|
|
135
|
+
# return_type
|
|
136
|
+
return_type = opts[:debug_return_type]
|
|
137
|
+
|
|
138
|
+
# auth_names
|
|
139
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
140
|
+
|
|
141
|
+
new_options = opts.merge(
|
|
142
|
+
:operation => :"BookingComApi.booking_setup",
|
|
143
|
+
:header_params => header_params,
|
|
144
|
+
:query_params => query_params,
|
|
145
|
+
:form_params => form_params,
|
|
146
|
+
:body => post_body,
|
|
147
|
+
:auth_names => auth_names,
|
|
148
|
+
:return_type => return_type
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
152
|
+
if @api_client.config.debugging
|
|
153
|
+
@api_client.config.logger.debug "API called: BookingComApi#booking_setup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
154
|
+
end
|
|
155
|
+
return data, status_code, headers
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# Subscribe to a Booking.com notification
|
|
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
|
+
# @param create_booking_webhook_request [CreateBookingWebhookRequest]
|
|
161
|
+
# @param [Hash] opts the optional parameters
|
|
162
|
+
# @return [nil]
|
|
163
|
+
def create_booking_webhook(create_booking_webhook_request, opts = {})
|
|
164
|
+
create_booking_webhook_with_http_info(create_booking_webhook_request, opts)
|
|
165
|
+
nil
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# Subscribe to a Booking.com notification
|
|
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
|
+
# @param create_booking_webhook_request [CreateBookingWebhookRequest]
|
|
171
|
+
# @param [Hash] opts the optional parameters
|
|
172
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
173
|
+
def create_booking_webhook_with_http_info(create_booking_webhook_request, opts = {})
|
|
174
|
+
if @api_client.config.debugging
|
|
175
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.create_booking_webhook ...'
|
|
176
|
+
end
|
|
177
|
+
# verify the required parameter 'create_booking_webhook_request' is set
|
|
178
|
+
if @api_client.config.client_side_validation && create_booking_webhook_request.nil?
|
|
179
|
+
fail ArgumentError, "Missing the required parameter 'create_booking_webhook_request' when calling BookingComApi.create_booking_webhook"
|
|
180
|
+
end
|
|
181
|
+
# resource path
|
|
182
|
+
local_var_path = '/v1/channels/booking/webhooks'
|
|
183
|
+
|
|
184
|
+
# query parameters
|
|
185
|
+
query_params = opts[:query_params] || {}
|
|
186
|
+
|
|
187
|
+
# header parameters
|
|
188
|
+
header_params = opts[:header_params] || {}
|
|
189
|
+
# HTTP header 'Accept' (if needed)
|
|
190
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
191
|
+
# HTTP header 'Content-Type'
|
|
192
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
193
|
+
if !content_type.nil?
|
|
194
|
+
header_params['Content-Type'] = content_type
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
# form parameters
|
|
198
|
+
form_params = opts[:form_params] || {}
|
|
199
|
+
|
|
200
|
+
# http body (model)
|
|
201
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(create_booking_webhook_request)
|
|
202
|
+
|
|
203
|
+
# return_type
|
|
204
|
+
return_type = opts[:debug_return_type]
|
|
205
|
+
|
|
206
|
+
# auth_names
|
|
207
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
208
|
+
|
|
209
|
+
new_options = opts.merge(
|
|
210
|
+
:operation => :"BookingComApi.create_booking_webhook",
|
|
211
|
+
:header_params => header_params,
|
|
212
|
+
:query_params => query_params,
|
|
213
|
+
:form_params => form_params,
|
|
214
|
+
:body => post_body,
|
|
215
|
+
:auth_names => auth_names,
|
|
216
|
+
:return_type => return_type
|
|
217
|
+
)
|
|
218
|
+
|
|
219
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
220
|
+
if @api_client.config.debugging
|
|
221
|
+
@api_client.config.logger.debug "API called: BookingComApi#create_booking_webhook\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
222
|
+
end
|
|
223
|
+
return data, status_code, headers
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# Unsubscribe from a Booking.com notification
|
|
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
|
+
# @param notification_type [String] Booking.com CNS notification type to unsubscribe.
|
|
229
|
+
# @param [Hash] opts the optional parameters
|
|
230
|
+
# @return [nil]
|
|
231
|
+
def delete_booking_webhook(notification_type, opts = {})
|
|
232
|
+
delete_booking_webhook_with_http_info(notification_type, opts)
|
|
233
|
+
nil
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
# Unsubscribe from a Booking.com notification
|
|
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
|
+
# @param notification_type [String] Booking.com CNS notification type to unsubscribe.
|
|
239
|
+
# @param [Hash] opts the optional parameters
|
|
240
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
241
|
+
def delete_booking_webhook_with_http_info(notification_type, opts = {})
|
|
242
|
+
if @api_client.config.debugging
|
|
243
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.delete_booking_webhook ...'
|
|
244
|
+
end
|
|
245
|
+
# verify the required parameter 'notification_type' is set
|
|
246
|
+
if @api_client.config.client_side_validation && notification_type.nil?
|
|
247
|
+
fail ArgumentError, "Missing the required parameter 'notification_type' when calling BookingComApi.delete_booking_webhook"
|
|
248
|
+
end
|
|
249
|
+
# resource path
|
|
250
|
+
local_var_path = '/v1/channels/booking/webhooks'
|
|
251
|
+
|
|
252
|
+
# query parameters
|
|
253
|
+
query_params = opts[:query_params] || {}
|
|
254
|
+
query_params[:'notification_type'] = notification_type
|
|
255
|
+
|
|
256
|
+
# header parameters
|
|
257
|
+
header_params = opts[:header_params] || {}
|
|
258
|
+
# HTTP header 'Accept' (if needed)
|
|
259
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
260
|
+
|
|
261
|
+
# form parameters
|
|
262
|
+
form_params = opts[:form_params] || {}
|
|
263
|
+
|
|
264
|
+
# http body (model)
|
|
265
|
+
post_body = opts[:debug_body]
|
|
266
|
+
|
|
267
|
+
# return_type
|
|
268
|
+
return_type = opts[:debug_return_type]
|
|
269
|
+
|
|
270
|
+
# auth_names
|
|
271
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
272
|
+
|
|
273
|
+
new_options = opts.merge(
|
|
274
|
+
:operation => :"BookingComApi.delete_booking_webhook",
|
|
275
|
+
:header_params => header_params,
|
|
276
|
+
:query_params => query_params,
|
|
277
|
+
:form_params => form_params,
|
|
278
|
+
:body => post_body,
|
|
279
|
+
:auth_names => auth_names,
|
|
280
|
+
:return_type => return_type
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
|
|
284
|
+
if @api_client.config.debugging
|
|
285
|
+
@api_client.config.logger.debug "API called: BookingComApi#delete_booking_webhook\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
286
|
+
end
|
|
287
|
+
return data, status_code, headers
|
|
288
|
+
end
|
|
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
|
+
|
|
366
|
+
# Get Booking.com charges
|
|
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.
|
|
368
|
+
# @param property_id [String] Booking.com hotel/property id.
|
|
369
|
+
# @param [Hash] opts the optional parameters
|
|
370
|
+
# @return [nil]
|
|
371
|
+
def get_booking_charges(property_id, opts = {})
|
|
372
|
+
get_booking_charges_with_http_info(property_id, opts)
|
|
373
|
+
nil
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
# Get Booking.com charges
|
|
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.
|
|
378
|
+
# @param property_id [String] Booking.com hotel/property id.
|
|
379
|
+
# @param [Hash] opts the optional parameters
|
|
380
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
381
|
+
def get_booking_charges_with_http_info(property_id, opts = {})
|
|
382
|
+
if @api_client.config.debugging
|
|
383
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.get_booking_charges ...'
|
|
384
|
+
end
|
|
385
|
+
# verify the required parameter 'property_id' is set
|
|
386
|
+
if @api_client.config.client_side_validation && property_id.nil?
|
|
387
|
+
fail ArgumentError, "Missing the required parameter 'property_id' when calling BookingComApi.get_booking_charges"
|
|
388
|
+
end
|
|
389
|
+
# resource path
|
|
390
|
+
local_var_path = '/v1/channels/booking/charges'
|
|
391
|
+
|
|
392
|
+
# query parameters
|
|
393
|
+
query_params = opts[:query_params] || {}
|
|
394
|
+
query_params[:'property_id'] = property_id
|
|
395
|
+
|
|
396
|
+
# header parameters
|
|
397
|
+
header_params = opts[:header_params] || {}
|
|
398
|
+
# HTTP header 'Accept' (if needed)
|
|
399
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
400
|
+
|
|
401
|
+
# form parameters
|
|
402
|
+
form_params = opts[:form_params] || {}
|
|
403
|
+
|
|
404
|
+
# http body (model)
|
|
405
|
+
post_body = opts[:debug_body]
|
|
406
|
+
|
|
407
|
+
# return_type
|
|
408
|
+
return_type = opts[:debug_return_type]
|
|
409
|
+
|
|
410
|
+
# auth_names
|
|
411
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
412
|
+
|
|
413
|
+
new_options = opts.merge(
|
|
414
|
+
:operation => :"BookingComApi.get_booking_charges",
|
|
415
|
+
:header_params => header_params,
|
|
416
|
+
:query_params => query_params,
|
|
417
|
+
:form_params => form_params,
|
|
418
|
+
:body => post_body,
|
|
419
|
+
:auth_names => auth_names,
|
|
420
|
+
:return_type => return_type
|
|
421
|
+
)
|
|
422
|
+
|
|
423
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
424
|
+
if @api_client.config.debugging
|
|
425
|
+
@api_client.config.logger.debug "API called: BookingComApi#get_booking_charges\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
426
|
+
end
|
|
427
|
+
return data, status_code, headers
|
|
428
|
+
end
|
|
429
|
+
|
|
22
430
|
# Get Booking.com content
|
|
23
|
-
# 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.
|
|
24
432
|
# @param [Hash] opts the optional parameters
|
|
25
433
|
# @return [nil]
|
|
26
434
|
def get_booking_content(opts = {})
|
|
@@ -29,7 +437,7 @@ module Repull
|
|
|
29
437
|
end
|
|
30
438
|
|
|
31
439
|
# Get Booking.com content
|
|
32
|
-
# 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.
|
|
33
441
|
# @param [Hash] opts the optional parameters
|
|
34
442
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
35
443
|
def get_booking_content_with_http_info(opts = {})
|
|
@@ -44,6 +452,8 @@ module Repull
|
|
|
44
452
|
|
|
45
453
|
# header parameters
|
|
46
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']
|
|
47
457
|
|
|
48
458
|
# form parameters
|
|
49
459
|
form_params = opts[:form_params] || {}
|
|
@@ -75,7 +485,7 @@ module Repull
|
|
|
75
485
|
end
|
|
76
486
|
|
|
77
487
|
# Get Booking.com pricing for a listing
|
|
78
|
-
# 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.
|
|
79
489
|
# @param id [Integer] Vanio listing ID — resolved to a Booking.com hotel ID via the workspace mapping.
|
|
80
490
|
# @param [Hash] opts the optional parameters
|
|
81
491
|
# @option opts [Date] :start_date
|
|
@@ -89,7 +499,7 @@ module Repull
|
|
|
89
499
|
end
|
|
90
500
|
|
|
91
501
|
# Get Booking.com pricing for a listing
|
|
92
|
-
# 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.
|
|
93
503
|
# @param id [Integer] Vanio listing ID — resolved to a Booking.com hotel ID via the workspace mapping.
|
|
94
504
|
# @param [Hash] opts the optional parameters
|
|
95
505
|
# @option opts [Date] :start_date
|
|
@@ -149,19 +559,82 @@ module Repull
|
|
|
149
559
|
return data, status_code, headers
|
|
150
560
|
end
|
|
151
561
|
|
|
562
|
+
# Get Booking.com connection for a listing
|
|
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.
|
|
564
|
+
# @param id [Integer] Vanio listing ID.
|
|
565
|
+
# @param [Hash] opts the optional parameters
|
|
566
|
+
# @return [nil]
|
|
567
|
+
def get_booking_property(id, opts = {})
|
|
568
|
+
get_booking_property_with_http_info(id, opts)
|
|
569
|
+
nil
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
# Get Booking.com connection for a listing
|
|
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.
|
|
574
|
+
# @param id [Integer] Vanio listing ID.
|
|
575
|
+
# @param [Hash] opts the optional parameters
|
|
576
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
577
|
+
def get_booking_property_with_http_info(id, opts = {})
|
|
578
|
+
if @api_client.config.debugging
|
|
579
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.get_booking_property ...'
|
|
580
|
+
end
|
|
581
|
+
# verify the required parameter 'id' is set
|
|
582
|
+
if @api_client.config.client_side_validation && id.nil?
|
|
583
|
+
fail ArgumentError, "Missing the required parameter 'id' when calling BookingComApi.get_booking_property"
|
|
584
|
+
end
|
|
585
|
+
# resource path
|
|
586
|
+
local_var_path = '/v1/channels/booking/properties/{id}'.sub('{id}', CGI.escape(id.to_s))
|
|
587
|
+
|
|
588
|
+
# query parameters
|
|
589
|
+
query_params = opts[:query_params] || {}
|
|
590
|
+
|
|
591
|
+
# header parameters
|
|
592
|
+
header_params = opts[:header_params] || {}
|
|
593
|
+
# HTTP header 'Accept' (if needed)
|
|
594
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
595
|
+
|
|
596
|
+
# form parameters
|
|
597
|
+
form_params = opts[:form_params] || {}
|
|
598
|
+
|
|
599
|
+
# http body (model)
|
|
600
|
+
post_body = opts[:debug_body]
|
|
601
|
+
|
|
602
|
+
# return_type
|
|
603
|
+
return_type = opts[:debug_return_type]
|
|
604
|
+
|
|
605
|
+
# auth_names
|
|
606
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
607
|
+
|
|
608
|
+
new_options = opts.merge(
|
|
609
|
+
:operation => :"BookingComApi.get_booking_property",
|
|
610
|
+
:header_params => header_params,
|
|
611
|
+
:query_params => query_params,
|
|
612
|
+
:form_params => form_params,
|
|
613
|
+
:body => post_body,
|
|
614
|
+
:auth_names => auth_names,
|
|
615
|
+
:return_type => return_type
|
|
616
|
+
)
|
|
617
|
+
|
|
618
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
619
|
+
if @api_client.config.debugging
|
|
620
|
+
@api_client.config.logger.debug "API called: BookingComApi#get_booking_property\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
621
|
+
end
|
|
622
|
+
return data, status_code, headers
|
|
623
|
+
end
|
|
624
|
+
|
|
152
625
|
# List Booking.com conversations
|
|
153
|
-
# 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.
|
|
154
627
|
# @param [Hash] opts the optional parameters
|
|
155
|
-
# @return [
|
|
628
|
+
# @return [Array<BookingConversation>]
|
|
156
629
|
def list_booking_conversations(opts = {})
|
|
157
630
|
data, _status_code, _headers = list_booking_conversations_with_http_info(opts)
|
|
158
631
|
data
|
|
159
632
|
end
|
|
160
633
|
|
|
161
634
|
# List Booking.com conversations
|
|
162
|
-
# 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.
|
|
163
636
|
# @param [Hash] opts the optional parameters
|
|
164
|
-
# @return [Array<(
|
|
637
|
+
# @return [Array<(Array<BookingConversation>, Integer, Hash)>] Array<BookingConversation> data, response status code and response headers
|
|
165
638
|
def list_booking_conversations_with_http_info(opts = {})
|
|
166
639
|
if @api_client.config.debugging
|
|
167
640
|
@api_client.config.logger.debug 'Calling API: BookingComApi.list_booking_conversations ...'
|
|
@@ -184,7 +657,7 @@ module Repull
|
|
|
184
657
|
post_body = opts[:debug_body]
|
|
185
658
|
|
|
186
659
|
# return_type
|
|
187
|
-
return_type = opts[:debug_return_type] || '
|
|
660
|
+
return_type = opts[:debug_return_type] || 'Array<BookingConversation>'
|
|
188
661
|
|
|
189
662
|
# auth_names
|
|
190
663
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -207,18 +680,18 @@ module Repull
|
|
|
207
680
|
end
|
|
208
681
|
|
|
209
682
|
# List Booking.com properties
|
|
210
|
-
# 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.
|
|
211
684
|
# @param [Hash] opts the optional parameters
|
|
212
|
-
# @return [
|
|
685
|
+
# @return [Array<BookingProperty>]
|
|
213
686
|
def list_booking_properties(opts = {})
|
|
214
687
|
data, _status_code, _headers = list_booking_properties_with_http_info(opts)
|
|
215
688
|
data
|
|
216
689
|
end
|
|
217
690
|
|
|
218
691
|
# List Booking.com properties
|
|
219
|
-
# 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.
|
|
220
693
|
# @param [Hash] opts the optional parameters
|
|
221
|
-
# @return [Array<(
|
|
694
|
+
# @return [Array<(Array<BookingProperty>, Integer, Hash)>] Array<BookingProperty> data, response status code and response headers
|
|
222
695
|
def list_booking_properties_with_http_info(opts = {})
|
|
223
696
|
if @api_client.config.debugging
|
|
224
697
|
@api_client.config.logger.debug 'Calling API: BookingComApi.list_booking_properties ...'
|
|
@@ -241,7 +714,7 @@ module Repull
|
|
|
241
714
|
post_body = opts[:debug_body]
|
|
242
715
|
|
|
243
716
|
# return_type
|
|
244
|
-
return_type = opts[:debug_return_type] || '
|
|
717
|
+
return_type = opts[:debug_return_type] || 'Array<BookingProperty>'
|
|
245
718
|
|
|
246
719
|
# auth_names
|
|
247
720
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -263,8 +736,141 @@ module Repull
|
|
|
263
736
|
return data, status_code, headers
|
|
264
737
|
end
|
|
265
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
|
+
|
|
802
|
+
# List Booking.com reservations
|
|
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.
|
|
804
|
+
# @param [Hash] opts the optional parameters
|
|
805
|
+
# @option opts [String] :type Which set to pull. `details` requires `reservation_id` + `hotel_id`. (default to 'new')
|
|
806
|
+
# @option opts [String] :hotel_id Booking.com hotel id — filters `new`/`modified`, and is required with `reservation_id` for details.
|
|
807
|
+
# @option opts [String] :reservation_id Booking.com reservation id — with `hotel_id`, returns that reservation's details.
|
|
808
|
+
# @return [ListBookingReservations200Response]
|
|
809
|
+
def list_booking_reservations(opts = {})
|
|
810
|
+
data, _status_code, _headers = list_booking_reservations_with_http_info(opts)
|
|
811
|
+
data
|
|
812
|
+
end
|
|
813
|
+
|
|
814
|
+
# List Booking.com reservations
|
|
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.
|
|
816
|
+
# @param [Hash] opts the optional parameters
|
|
817
|
+
# @option opts [String] :type Which set to pull. `details` requires `reservation_id` + `hotel_id`. (default to 'new')
|
|
818
|
+
# @option opts [String] :hotel_id Booking.com hotel id — filters `new`/`modified`, and is required with `reservation_id` for details.
|
|
819
|
+
# @option opts [String] :reservation_id Booking.com reservation id — with `hotel_id`, returns that reservation's details.
|
|
820
|
+
# @return [Array<(ListBookingReservations200Response, Integer, Hash)>] ListBookingReservations200Response data, response status code and response headers
|
|
821
|
+
def list_booking_reservations_with_http_info(opts = {})
|
|
822
|
+
if @api_client.config.debugging
|
|
823
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.list_booking_reservations ...'
|
|
824
|
+
end
|
|
825
|
+
allowable_values = ["new", "modified", "details"]
|
|
826
|
+
if @api_client.config.client_side_validation && opts[:'type'] && !allowable_values.include?(opts[:'type'])
|
|
827
|
+
fail ArgumentError, "invalid value for \"type\", must be one of #{allowable_values}"
|
|
828
|
+
end
|
|
829
|
+
# resource path
|
|
830
|
+
local_var_path = '/v1/channels/booking/reservations'
|
|
831
|
+
|
|
832
|
+
# query parameters
|
|
833
|
+
query_params = opts[:query_params] || {}
|
|
834
|
+
query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
|
|
835
|
+
query_params[:'hotel_id'] = opts[:'hotel_id'] if !opts[:'hotel_id'].nil?
|
|
836
|
+
query_params[:'reservation_id'] = opts[:'reservation_id'] if !opts[:'reservation_id'].nil?
|
|
837
|
+
|
|
838
|
+
# header parameters
|
|
839
|
+
header_params = opts[:header_params] || {}
|
|
840
|
+
# HTTP header 'Accept' (if needed)
|
|
841
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
842
|
+
|
|
843
|
+
# form parameters
|
|
844
|
+
form_params = opts[:form_params] || {}
|
|
845
|
+
|
|
846
|
+
# http body (model)
|
|
847
|
+
post_body = opts[:debug_body]
|
|
848
|
+
|
|
849
|
+
# return_type
|
|
850
|
+
return_type = opts[:debug_return_type] || 'ListBookingReservations200Response'
|
|
851
|
+
|
|
852
|
+
# auth_names
|
|
853
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
854
|
+
|
|
855
|
+
new_options = opts.merge(
|
|
856
|
+
:operation => :"BookingComApi.list_booking_reservations",
|
|
857
|
+
:header_params => header_params,
|
|
858
|
+
:query_params => query_params,
|
|
859
|
+
:form_params => form_params,
|
|
860
|
+
:body => post_body,
|
|
861
|
+
:auth_names => auth_names,
|
|
862
|
+
:return_type => return_type
|
|
863
|
+
)
|
|
864
|
+
|
|
865
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
866
|
+
if @api_client.config.debugging
|
|
867
|
+
@api_client.config.logger.debug "API called: BookingComApi#list_booking_reservations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
868
|
+
end
|
|
869
|
+
return data, status_code, headers
|
|
870
|
+
end
|
|
871
|
+
|
|
266
872
|
# List Booking.com reviews
|
|
267
|
-
# 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.
|
|
268
874
|
# @param property_id [String] Booking.com hotel/property id.
|
|
269
875
|
# @param [Hash] opts the optional parameters
|
|
270
876
|
# @return [nil]
|
|
@@ -274,7 +880,7 @@ module Repull
|
|
|
274
880
|
end
|
|
275
881
|
|
|
276
882
|
# List Booking.com reviews
|
|
277
|
-
# 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.
|
|
278
884
|
# @param property_id [String] Booking.com hotel/property id.
|
|
279
885
|
# @param [Hash] opts the optional parameters
|
|
280
886
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -327,8 +933,65 @@ module Repull
|
|
|
327
933
|
return data, status_code, headers
|
|
328
934
|
end
|
|
329
935
|
|
|
936
|
+
# List Booking.com webhook subscriptions
|
|
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`.
|
|
938
|
+
# @param [Hash] opts the optional parameters
|
|
939
|
+
# @return [nil]
|
|
940
|
+
def list_booking_webhooks(opts = {})
|
|
941
|
+
list_booking_webhooks_with_http_info(opts)
|
|
942
|
+
nil
|
|
943
|
+
end
|
|
944
|
+
|
|
945
|
+
# List Booking.com webhook subscriptions
|
|
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`.
|
|
947
|
+
# @param [Hash] opts the optional parameters
|
|
948
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
949
|
+
def list_booking_webhooks_with_http_info(opts = {})
|
|
950
|
+
if @api_client.config.debugging
|
|
951
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.list_booking_webhooks ...'
|
|
952
|
+
end
|
|
953
|
+
# resource path
|
|
954
|
+
local_var_path = '/v1/channels/booking/webhooks'
|
|
955
|
+
|
|
956
|
+
# query parameters
|
|
957
|
+
query_params = opts[:query_params] || {}
|
|
958
|
+
|
|
959
|
+
# header parameters
|
|
960
|
+
header_params = opts[:header_params] || {}
|
|
961
|
+
# HTTP header 'Accept' (if needed)
|
|
962
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
963
|
+
|
|
964
|
+
# form parameters
|
|
965
|
+
form_params = opts[:form_params] || {}
|
|
966
|
+
|
|
967
|
+
# http body (model)
|
|
968
|
+
post_body = opts[:debug_body]
|
|
969
|
+
|
|
970
|
+
# return_type
|
|
971
|
+
return_type = opts[:debug_return_type]
|
|
972
|
+
|
|
973
|
+
# auth_names
|
|
974
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
975
|
+
|
|
976
|
+
new_options = opts.merge(
|
|
977
|
+
:operation => :"BookingComApi.list_booking_webhooks",
|
|
978
|
+
:header_params => header_params,
|
|
979
|
+
:query_params => query_params,
|
|
980
|
+
:form_params => form_params,
|
|
981
|
+
:body => post_body,
|
|
982
|
+
:auth_names => auth_names,
|
|
983
|
+
:return_type => return_type
|
|
984
|
+
)
|
|
985
|
+
|
|
986
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
987
|
+
if @api_client.config.debugging
|
|
988
|
+
@api_client.config.logger.debug "API called: BookingComApi#list_booking_webhooks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
989
|
+
end
|
|
990
|
+
return data, status_code, headers
|
|
991
|
+
end
|
|
992
|
+
|
|
330
993
|
# Reply to Booking.com review
|
|
331
|
-
# 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.
|
|
332
995
|
# @param reply_booking_review_request [ReplyBookingReviewRequest]
|
|
333
996
|
# @param [Hash] opts the optional parameters
|
|
334
997
|
# @return [ReplyBookingReview200Response]
|
|
@@ -338,7 +1001,7 @@ module Repull
|
|
|
338
1001
|
end
|
|
339
1002
|
|
|
340
1003
|
# Reply to Booking.com review
|
|
341
|
-
# 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.
|
|
342
1005
|
# @param reply_booking_review_request [ReplyBookingReviewRequest]
|
|
343
1006
|
# @param [Hash] opts the optional parameters
|
|
344
1007
|
# @return [Array<(ReplyBookingReview200Response, Integer, Hash)>] ReplyBookingReview200Response data, response status code and response headers
|
|
@@ -396,22 +1059,28 @@ module Repull
|
|
|
396
1059
|
end
|
|
397
1060
|
|
|
398
1061
|
# Send Booking.com message
|
|
399
|
-
# 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]
|
|
400
1064
|
# @param [Hash] opts the optional parameters
|
|
401
1065
|
# @return [nil]
|
|
402
|
-
def send_booking_message(opts = {})
|
|
403
|
-
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)
|
|
404
1068
|
nil
|
|
405
1069
|
end
|
|
406
1070
|
|
|
407
1071
|
# Send Booking.com message
|
|
408
|
-
# 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]
|
|
409
1074
|
# @param [Hash] opts the optional parameters
|
|
410
1075
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
411
|
-
def send_booking_message_with_http_info(opts = {})
|
|
1076
|
+
def send_booking_message_with_http_info(send_booking_message_request, opts = {})
|
|
412
1077
|
if @api_client.config.debugging
|
|
413
1078
|
@api_client.config.logger.debug 'Calling API: BookingComApi.send_booking_message ...'
|
|
414
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
|
|
415
1084
|
# resource path
|
|
416
1085
|
local_var_path = '/v1/channels/booking/messaging'
|
|
417
1086
|
|
|
@@ -420,12 +1089,19 @@ module Repull
|
|
|
420
1089
|
|
|
421
1090
|
# header parameters
|
|
422
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
|
|
423
1099
|
|
|
424
1100
|
# form parameters
|
|
425
1101
|
form_params = opts[:form_params] || {}
|
|
426
1102
|
|
|
427
1103
|
# http body (model)
|
|
428
|
-
post_body = opts[:debug_body]
|
|
1104
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(send_booking_message_request)
|
|
429
1105
|
|
|
430
1106
|
# return_type
|
|
431
1107
|
return_type = opts[:debug_return_type]
|
|
@@ -451,7 +1127,7 @@ module Repull
|
|
|
451
1127
|
end
|
|
452
1128
|
|
|
453
1129
|
# Update Booking.com rates/availability
|
|
454
|
-
# 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.
|
|
455
1131
|
# @param booking_availability_update_request [BookingAvailabilityUpdateRequest]
|
|
456
1132
|
# @param [Hash] opts the optional parameters
|
|
457
1133
|
# @return [nil]
|
|
@@ -461,7 +1137,7 @@ module Repull
|
|
|
461
1137
|
end
|
|
462
1138
|
|
|
463
1139
|
# Update Booking.com rates/availability
|
|
464
|
-
# 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.
|
|
465
1141
|
# @param booking_availability_update_request [BookingAvailabilityUpdateRequest]
|
|
466
1142
|
# @param [Hash] opts the optional parameters
|
|
467
1143
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
@@ -518,8 +1194,76 @@ module Repull
|
|
|
518
1194
|
return data, status_code, headers
|
|
519
1195
|
end
|
|
520
1196
|
|
|
1197
|
+
# Set Booking.com charges
|
|
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.
|
|
1199
|
+
# @param update_booking_charges_request [UpdateBookingChargesRequest]
|
|
1200
|
+
# @param [Hash] opts the optional parameters
|
|
1201
|
+
# @return [nil]
|
|
1202
|
+
def update_booking_charges(update_booking_charges_request, opts = {})
|
|
1203
|
+
update_booking_charges_with_http_info(update_booking_charges_request, opts)
|
|
1204
|
+
nil
|
|
1205
|
+
end
|
|
1206
|
+
|
|
1207
|
+
# Set Booking.com charges
|
|
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.
|
|
1209
|
+
# @param update_booking_charges_request [UpdateBookingChargesRequest]
|
|
1210
|
+
# @param [Hash] opts the optional parameters
|
|
1211
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
1212
|
+
def update_booking_charges_with_http_info(update_booking_charges_request, opts = {})
|
|
1213
|
+
if @api_client.config.debugging
|
|
1214
|
+
@api_client.config.logger.debug 'Calling API: BookingComApi.update_booking_charges ...'
|
|
1215
|
+
end
|
|
1216
|
+
# verify the required parameter 'update_booking_charges_request' is set
|
|
1217
|
+
if @api_client.config.client_side_validation && update_booking_charges_request.nil?
|
|
1218
|
+
fail ArgumentError, "Missing the required parameter 'update_booking_charges_request' when calling BookingComApi.update_booking_charges"
|
|
1219
|
+
end
|
|
1220
|
+
# resource path
|
|
1221
|
+
local_var_path = '/v1/channels/booking/charges'
|
|
1222
|
+
|
|
1223
|
+
# query parameters
|
|
1224
|
+
query_params = opts[:query_params] || {}
|
|
1225
|
+
|
|
1226
|
+
# header parameters
|
|
1227
|
+
header_params = opts[:header_params] || {}
|
|
1228
|
+
# HTTP header 'Accept' (if needed)
|
|
1229
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
1230
|
+
# HTTP header 'Content-Type'
|
|
1231
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
1232
|
+
if !content_type.nil?
|
|
1233
|
+
header_params['Content-Type'] = content_type
|
|
1234
|
+
end
|
|
1235
|
+
|
|
1236
|
+
# form parameters
|
|
1237
|
+
form_params = opts[:form_params] || {}
|
|
1238
|
+
|
|
1239
|
+
# http body (model)
|
|
1240
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(update_booking_charges_request)
|
|
1241
|
+
|
|
1242
|
+
# return_type
|
|
1243
|
+
return_type = opts[:debug_return_type]
|
|
1244
|
+
|
|
1245
|
+
# auth_names
|
|
1246
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
1247
|
+
|
|
1248
|
+
new_options = opts.merge(
|
|
1249
|
+
:operation => :"BookingComApi.update_booking_charges",
|
|
1250
|
+
:header_params => header_params,
|
|
1251
|
+
:query_params => query_params,
|
|
1252
|
+
:form_params => form_params,
|
|
1253
|
+
:body => post_body,
|
|
1254
|
+
:auth_names => auth_names,
|
|
1255
|
+
:return_type => return_type
|
|
1256
|
+
)
|
|
1257
|
+
|
|
1258
|
+
data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
|
|
1259
|
+
if @api_client.config.debugging
|
|
1260
|
+
@api_client.config.logger.debug "API called: BookingComApi#update_booking_charges\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
1261
|
+
end
|
|
1262
|
+
return data, status_code, headers
|
|
1263
|
+
end
|
|
1264
|
+
|
|
521
1265
|
# Update Booking.com content
|
|
522
|
-
# 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.
|
|
523
1267
|
# @param [Hash] opts the optional parameters
|
|
524
1268
|
# @return [nil]
|
|
525
1269
|
def update_booking_content(opts = {})
|
|
@@ -528,7 +1272,7 @@ module Repull
|
|
|
528
1272
|
end
|
|
529
1273
|
|
|
530
1274
|
# Update Booking.com content
|
|
531
|
-
# 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.
|
|
532
1276
|
# @param [Hash] opts the optional parameters
|
|
533
1277
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
|
534
1278
|
def update_booking_content_with_http_info(opts = {})
|
|
@@ -543,6 +1287,8 @@ module Repull
|
|
|
543
1287
|
|
|
544
1288
|
# header parameters
|
|
545
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']
|
|
546
1292
|
|
|
547
1293
|
# form parameters
|
|
548
1294
|
form_params = opts[:form_params] || {}
|
|
@@ -574,7 +1320,7 @@ module Repull
|
|
|
574
1320
|
end
|
|
575
1321
|
|
|
576
1322
|
# Update Booking.com pricing for a listing
|
|
577
|
-
# 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.
|
|
578
1324
|
# @param id [Integer]
|
|
579
1325
|
# @param booking_pricing_update_request [BookingPricingUpdateRequest]
|
|
580
1326
|
# @param [Hash] opts the optional parameters
|
|
@@ -585,7 +1331,7 @@ module Repull
|
|
|
585
1331
|
end
|
|
586
1332
|
|
|
587
1333
|
# Update Booking.com pricing for a listing
|
|
588
|
-
# 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.
|
|
589
1335
|
# @param id [Integer]
|
|
590
1336
|
# @param booking_pricing_update_request [BookingPricingUpdateRequest]
|
|
591
1337
|
# @param [Hash] opts the optional parameters
|