repull 0.2.24 → 0.2.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/lib/repull/api/connect_api.rb +617 -0
  3. data/lib/repull/api/connections_api.rb +312 -0
  4. data/lib/repull/api/conversations_api.rb +151 -18
  5. data/lib/repull/api/health_api.rb +5 -5
  6. data/lib/repull/api/listings_api.rb +67 -4
  7. data/lib/repull/api/reviews_api.rb +2 -2
  8. data/lib/repull/models/apply_connection_mappings200_response.rb +167 -0
  9. data/lib/repull/models/apply_connection_mappings200_response_results_inner.rb +184 -0
  10. data/lib/repull/models/apply_connection_mappings_request.rb +175 -0
  11. data/lib/repull/models/apply_connection_mappings_request_mappings_inner.rb +193 -0
  12. data/lib/repull/models/auto_map_connection_units200_response.rb +176 -0
  13. data/lib/repull/models/auto_map_connection_units_request.rb +156 -0
  14. data/lib/repull/models/channel_market_state_item.rb +15 -4
  15. data/lib/repull/models/connect_status.rb +25 -5
  16. data/lib/repull/models/connect_status_accounts_inner.rb +71 -4
  17. data/lib/repull/models/conversation_capabilities.rb +260 -0
  18. data/lib/repull/models/conversation_detail.rb +14 -5
  19. data/lib/repull/models/create_connect_session_request.rb +23 -1
  20. data/lib/repull/models/create_conversation_special_offer201_response.rb +127 -4
  21. data/lib/repull/models/create_conversation_special_offer201_response_fees_inner.rb +166 -0
  22. data/lib/repull/models/create_conversation_special_offer201_response_lines_inner.rb +157 -0
  23. data/lib/repull/models/create_conversation_special_offer_request.rb +91 -52
  24. data/lib/repull/models/create_conversation_special_offer_request_fees_inner.rb +199 -0
  25. data/lib/repull/models/get_booking_extranet_login_config200_response.rb +147 -0
  26. data/lib/repull/models/get_booking_extranet_login_status200_response.rb +192 -0
  27. data/lib/repull/models/get_channel_health200_response.rb +190 -0
  28. data/lib/repull/models/get_channel_health200_response_vrbo.rb +197 -0
  29. data/lib/repull/models/get_connect_write_policy200_response.rb +166 -0
  30. data/lib/repull/models/get_listing_calendar_sync200_response.rb +192 -0
  31. data/lib/repull/models/get_listing_calendar_sync200_response_channels_inner.rb +331 -0
  32. data/lib/repull/models/get_listing_calendar_sync200_response_channels_inner_problems_inner.rb +157 -0
  33. data/lib/repull/models/get_listing_calendar_sync200_response_channels_inner_queue.rb +212 -0
  34. data/lib/repull/models/get_listing_calendar_sync200_response_channels_inner_queue_last_push.rb +268 -0
  35. data/lib/repull/models/invite_booking_extranet_user200_response.rb +174 -0
  36. data/lib/repull/models/invite_booking_extranet_user_request.rb +173 -0
  37. data/lib/repull/models/list_connection_units200_response.rb +242 -0
  38. data/lib/repull/models/list_connection_units200_response_listing_options_inner.rb +165 -0
  39. data/lib/repull/models/list_connection_units200_response_units_inner.rb +194 -0
  40. data/lib/repull/models/listing_publish_status_connection.rb +34 -1
  41. data/lib/repull/models/pms_write_policy.rb +191 -0
  42. data/lib/repull/models/pms_write_policy_calendar.rb +219 -0
  43. data/lib/repull/models/pms_write_policy_reservations.rb +219 -0
  44. data/lib/repull/models/preapprove_conversation201_response.rb +47 -6
  45. data/lib/repull/models/preapprove_conversation_request.rb +34 -5
  46. data/lib/repull/models/preview_conversation_special_offer_request.rb +231 -0
  47. data/lib/repull/models/preview_conversation_special_offer_request_fees_inner.rb +199 -0
  48. data/lib/repull/models/preview_conversation_special_offer_request_guests.rb +250 -0
  49. data/lib/repull/models/reply_to_review_request.rb +33 -4
  50. data/lib/repull/models/search_connect_session_listing_options200_response.rb +158 -0
  51. data/lib/repull/models/search_connect_session_listing_options200_response_data_inner.rb +166 -0
  52. data/lib/repull/models/search_connection_listing_options200_response.rb +159 -0
  53. data/lib/repull/models/send_message_request.rb +1 -1
  54. data/lib/repull/models/start_booking_extranet_login200_response.rb +174 -0
  55. data/lib/repull/models/start_booking_extranet_login_request.rb +225 -0
  56. data/lib/repull/models/submit_cloudbeds_credentials200_response.rb +10 -1
  57. data/lib/repull/models/submit_cloudbeds_credentials_request.rb +11 -1
  58. data/lib/repull/models/submit_mews_credentials200_response.rb +10 -1
  59. data/lib/repull/models/submit_mews_credentials_request.rb +11 -1
  60. data/lib/repull/models/update_connect_write_policy_request.rb +157 -0
  61. data/lib/repull/models/update_connect_write_policy_request_calendar.rb +165 -0
  62. data/lib/repull/models/update_connect_write_policy_request_reservations.rb +165 -0
  63. data/lib/repull/models/vrbo_import_status.rb +249 -0
  64. data/lib/repull/models/vrbo_login200_response.rb +235 -0
  65. data/lib/repull/models/vrbo_login_request.rb +271 -0
  66. data/lib/repull/models/withdraw_conversation_preapproval200_response.rb +226 -0
  67. data/lib/repull/models/withdraw_conversation_special_offer200_response.rb +29 -1
  68. data/lib/repull/version.rb +1 -1
  69. data/lib/repull.rb +44 -0
  70. data/openapi/v1.json +4693 -2114
  71. data/scripts/regen.sh +1 -1
  72. metadata +46 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ef9e3d00b0894f868278b60ac032cd39669bfdfd542e314688b5aa286654c8a
4
- data.tar.gz: 0b219c72979e3474e6ffbf9e484d2a9e06d2706b1d483d5ccf558305d88cdba0
3
+ metadata.gz: 92e78f83c5831c3d0ad17881b8f62d8f28d65b52e60116c16c69163d451d6db1
4
+ data.tar.gz: 76bc43e4dcff04980140d4d840d081f71d34f435bb1f4ad0dfe0b37a3fdfa974
5
5
  SHA512:
6
- metadata.gz: 7b4d6c54fe8c846c208efcc8319b2a5d4288192d53b2746514e718ffb665d669f92d263a62f54c077e817bf8b052c6348217c3265b4a3bbc6179a36fca6d59fc
7
- data.tar.gz: 12edb274453749fda46b30051243ab94c4d1a0b4106ead34953c2ebaf08324eaa3cdcc4a9a7c849d698bfbd7e0169539b5a3d2b63aaab0c1cc2ff694807624e1
6
+ metadata.gz: b43f37aad4c3b9d3f51ff7dc7dda59fc0eb495181d5ef75d294462053eca6cde1e1b242734ec71fb02ded3795423f1b60804a8385fb7b4cecd56e4300c540dbc
7
+ data.tar.gz: 5149a5b14aff60b621bdbaf3af8a1c786b642816ec053487e651ac6e56356c56046adec959e11ddf39c01a034f5c237f0c4c890b95eb90d2f7d60c4aa0f6b911
@@ -291,6 +291,141 @@ module Repull
291
291
  return data, status_code, headers
292
292
  end
293
293
 
294
+ # Booking.com direct-login config
295
+ # Returns the 2FA number the host adds to their Extranet user. Called by the hosted Connect page. No API key — the session ID is the capability token.
296
+ # @param session_id [String] The Connect session ID (capability token).
297
+ # @param [Hash] opts the optional parameters
298
+ # @return [GetBookingExtranetLoginConfig200Response]
299
+ def get_booking_extranet_login_config(session_id, opts = {})
300
+ data, _status_code, _headers = get_booking_extranet_login_config_with_http_info(session_id, opts)
301
+ data
302
+ end
303
+
304
+ # Booking.com direct-login config
305
+ # Returns the 2FA number the host adds to their Extranet user. Called by the hosted Connect page. No API key — the session ID is the capability token.
306
+ # @param session_id [String] The Connect session ID (capability token).
307
+ # @param [Hash] opts the optional parameters
308
+ # @return [Array<(GetBookingExtranetLoginConfig200Response, Integer, Hash)>] GetBookingExtranetLoginConfig200Response data, response status code and response headers
309
+ def get_booking_extranet_login_config_with_http_info(session_id, opts = {})
310
+ if @api_client.config.debugging
311
+ @api_client.config.logger.debug 'Calling API: ConnectApi.get_booking_extranet_login_config ...'
312
+ end
313
+ # verify the required parameter 'session_id' is set
314
+ if @api_client.config.client_side_validation && session_id.nil?
315
+ fail ArgumentError, "Missing the required parameter 'session_id' when calling ConnectApi.get_booking_extranet_login_config"
316
+ end
317
+ # resource path
318
+ local_var_path = '/v1/connect/booking-extranet-login/session'
319
+
320
+ # query parameters
321
+ query_params = opts[:query_params] || {}
322
+ query_params[:'sessionId'] = session_id
323
+
324
+ # header parameters
325
+ header_params = opts[:header_params] || {}
326
+ # HTTP header 'Accept' (if needed)
327
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
328
+
329
+ # form parameters
330
+ form_params = opts[:form_params] || {}
331
+
332
+ # http body (model)
333
+ post_body = opts[:debug_body]
334
+
335
+ # return_type
336
+ return_type = opts[:debug_return_type] || 'GetBookingExtranetLoginConfig200Response'
337
+
338
+ # auth_names
339
+ auth_names = opts[:debug_auth_names] || []
340
+
341
+ new_options = opts.merge(
342
+ :operation => :"ConnectApi.get_booking_extranet_login_config",
343
+ :header_params => header_params,
344
+ :query_params => query_params,
345
+ :form_params => form_params,
346
+ :body => post_body,
347
+ :auth_names => auth_names,
348
+ :return_type => return_type
349
+ )
350
+
351
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
352
+ if @api_client.config.debugging
353
+ @api_client.config.logger.debug "API called: ConnectApi#get_booking_extranet_login_config\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
354
+ end
355
+ return data, status_code, headers
356
+ end
357
+
358
+ # Booking.com direct-login status
359
+ # Live sign-in status, polled by the hosted page. Called by the hosted Connect page. No API key — the session ID is the capability token.
360
+ # @param session_id [String] The Connect session ID (capability token).
361
+ # @param account_id [Integer]
362
+ # @param [Hash] opts the optional parameters
363
+ # @return [GetBookingExtranetLoginStatus200Response]
364
+ def get_booking_extranet_login_status(session_id, account_id, opts = {})
365
+ data, _status_code, _headers = get_booking_extranet_login_status_with_http_info(session_id, account_id, opts)
366
+ data
367
+ end
368
+
369
+ # Booking.com direct-login status
370
+ # Live sign-in status, polled by the hosted page. Called by the hosted Connect page. No API key — the session ID is the capability token.
371
+ # @param session_id [String] The Connect session ID (capability token).
372
+ # @param account_id [Integer]
373
+ # @param [Hash] opts the optional parameters
374
+ # @return [Array<(GetBookingExtranetLoginStatus200Response, Integer, Hash)>] GetBookingExtranetLoginStatus200Response data, response status code and response headers
375
+ def get_booking_extranet_login_status_with_http_info(session_id, account_id, opts = {})
376
+ if @api_client.config.debugging
377
+ @api_client.config.logger.debug 'Calling API: ConnectApi.get_booking_extranet_login_status ...'
378
+ end
379
+ # verify the required parameter 'session_id' is set
380
+ if @api_client.config.client_side_validation && session_id.nil?
381
+ fail ArgumentError, "Missing the required parameter 'session_id' when calling ConnectApi.get_booking_extranet_login_status"
382
+ end
383
+ # verify the required parameter 'account_id' is set
384
+ if @api_client.config.client_side_validation && account_id.nil?
385
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling ConnectApi.get_booking_extranet_login_status"
386
+ end
387
+ # resource path
388
+ local_var_path = '/v1/connect/booking-extranet-login/status'
389
+
390
+ # query parameters
391
+ query_params = opts[:query_params] || {}
392
+ query_params[:'sessionId'] = session_id
393
+ query_params[:'accountId'] = account_id
394
+
395
+ # header parameters
396
+ header_params = opts[:header_params] || {}
397
+ # HTTP header 'Accept' (if needed)
398
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
399
+
400
+ # form parameters
401
+ form_params = opts[:form_params] || {}
402
+
403
+ # http body (model)
404
+ post_body = opts[:debug_body]
405
+
406
+ # return_type
407
+ return_type = opts[:debug_return_type] || 'GetBookingExtranetLoginStatus200Response'
408
+
409
+ # auth_names
410
+ auth_names = opts[:debug_auth_names] || []
411
+
412
+ new_options = opts.merge(
413
+ :operation => :"ConnectApi.get_booking_extranet_login_status",
414
+ :header_params => header_params,
415
+ :query_params => query_params,
416
+ :form_params => form_params,
417
+ :body => post_body,
418
+ :auth_names => auth_names,
419
+ :return_type => return_type
420
+ )
421
+
422
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
423
+ if @api_client.config.debugging
424
+ @api_client.config.logger.debug "API called: ConnectApi#get_booking_extranet_login_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
425
+ end
426
+ return data, status_code, headers
427
+ end
428
+
294
429
  # Get connection status
295
430
  # Returns the current connection status for a provider, including host metadata (display name + avatar) for Airbnb so clients can render an account-level confirmation UI.
296
431
  # @param provider [String] PMS provider slug (e.g., hostaway, guesty, ownerrez)
@@ -354,6 +489,201 @@ module Repull
354
489
  return data, status_code, headers
355
490
  end
356
491
 
492
+ # Get what the app may change in a PMS
493
+ # Returns the connection's write policy: whether the app may open and close nights, change prices and minimum stay in the PMS, and whether bookings may be created or changed there from the booking website, the dashboard or the reservations API. Hotel PMSs (Cloudbeds, Mews) start with every calendar switch off — the PMS owns its room inventory. Every other PMS starts with everything on. PMS connections only.
494
+ # @param provider [String] PMS provider slug (e.g., hostaway, guesty, ownerrez)
495
+ # @param [Hash] opts the optional parameters
496
+ # @return [GetConnectWritePolicy200Response]
497
+ def get_connect_write_policy(provider, opts = {})
498
+ data, _status_code, _headers = get_connect_write_policy_with_http_info(provider, opts)
499
+ data
500
+ end
501
+
502
+ # Get what the app may change in a PMS
503
+ # Returns the connection&#39;s write policy: whether the app may open and close nights, change prices and minimum stay in the PMS, and whether bookings may be created or changed there from the booking website, the dashboard or the reservations API. Hotel PMSs (Cloudbeds, Mews) start with every calendar switch off — the PMS owns its room inventory. Every other PMS starts with everything on. PMS connections only.
504
+ # @param provider [String] PMS provider slug (e.g., hostaway, guesty, ownerrez)
505
+ # @param [Hash] opts the optional parameters
506
+ # @return [Array<(GetConnectWritePolicy200Response, Integer, Hash)>] GetConnectWritePolicy200Response data, response status code and response headers
507
+ def get_connect_write_policy_with_http_info(provider, opts = {})
508
+ if @api_client.config.debugging
509
+ @api_client.config.logger.debug 'Calling API: ConnectApi.get_connect_write_policy ...'
510
+ end
511
+ # verify the required parameter 'provider' is set
512
+ if @api_client.config.client_side_validation && provider.nil?
513
+ fail ArgumentError, "Missing the required parameter 'provider' when calling ConnectApi.get_connect_write_policy"
514
+ end
515
+ # resource path
516
+ local_var_path = '/v1/connect/{provider}/write-policy'.sub('{provider}', CGI.escape(provider.to_s))
517
+
518
+ # query parameters
519
+ query_params = opts[:query_params] || {}
520
+
521
+ # header parameters
522
+ header_params = opts[:header_params] || {}
523
+ # HTTP header 'Accept' (if needed)
524
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
525
+
526
+ # form parameters
527
+ form_params = opts[:form_params] || {}
528
+
529
+ # http body (model)
530
+ post_body = opts[:debug_body]
531
+
532
+ # return_type
533
+ return_type = opts[:debug_return_type] || 'GetConnectWritePolicy200Response'
534
+
535
+ # auth_names
536
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
537
+
538
+ new_options = opts.merge(
539
+ :operation => :"ConnectApi.get_connect_write_policy",
540
+ :header_params => header_params,
541
+ :query_params => query_params,
542
+ :form_params => form_params,
543
+ :body => post_body,
544
+ :auth_names => auth_names,
545
+ :return_type => return_type
546
+ )
547
+
548
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
549
+ if @api_client.config.debugging
550
+ @api_client.config.logger.debug "API called: ConnectApi#get_connect_write_policy\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
551
+ end
552
+ return data, status_code, headers
553
+ end
554
+
555
+ # Import progress of the session's Vrbo account
556
+ # After the mapping is confirmed: `importing` (upcoming bookings and the last 30 days of messages) → `importing_history` (the rest of the account, in the background) → `imported`. Called by the hosted Connect page. No API key — the session ID is the capability token.
557
+ # @param session_id [String]
558
+ # @param [Hash] opts the optional parameters
559
+ # @return [VrboImportStatus]
560
+ def get_vrbo_connect_import(session_id, opts = {})
561
+ data, _status_code, _headers = get_vrbo_connect_import_with_http_info(session_id, opts)
562
+ data
563
+ end
564
+
565
+ # Import progress of the session&#39;s Vrbo account
566
+ # After the mapping is confirmed: &#x60;importing&#x60; (upcoming bookings and the last 30 days of messages) → &#x60;importing_history&#x60; (the rest of the account, in the background) → &#x60;imported&#x60;. Called by the hosted Connect page. No API key — the session ID is the capability token.
567
+ # @param session_id [String]
568
+ # @param [Hash] opts the optional parameters
569
+ # @return [Array<(VrboImportStatus, Integer, Hash)>] VrboImportStatus data, response status code and response headers
570
+ def get_vrbo_connect_import_with_http_info(session_id, opts = {})
571
+ if @api_client.config.debugging
572
+ @api_client.config.logger.debug 'Calling API: ConnectApi.get_vrbo_connect_import ...'
573
+ end
574
+ # verify the required parameter 'session_id' is set
575
+ if @api_client.config.client_side_validation && session_id.nil?
576
+ fail ArgumentError, "Missing the required parameter 'session_id' when calling ConnectApi.get_vrbo_connect_import"
577
+ end
578
+ # resource path
579
+ local_var_path = '/v1/connect/vrbo-login/session'
580
+
581
+ # query parameters
582
+ query_params = opts[:query_params] || {}
583
+ query_params[:'sessionId'] = session_id
584
+
585
+ # header parameters
586
+ header_params = opts[:header_params] || {}
587
+ # HTTP header 'Accept' (if needed)
588
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
589
+
590
+ # form parameters
591
+ form_params = opts[:form_params] || {}
592
+
593
+ # http body (model)
594
+ post_body = opts[:debug_body]
595
+
596
+ # return_type
597
+ return_type = opts[:debug_return_type] || 'VrboImportStatus'
598
+
599
+ # auth_names
600
+ auth_names = opts[:debug_auth_names] || []
601
+
602
+ new_options = opts.merge(
603
+ :operation => :"ConnectApi.get_vrbo_connect_import",
604
+ :header_params => header_params,
605
+ :query_params => query_params,
606
+ :form_params => form_params,
607
+ :body => post_body,
608
+ :auth_names => auth_names,
609
+ :return_type => return_type
610
+ )
611
+
612
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
613
+ if @api_client.config.debugging
614
+ @api_client.config.logger.debug "API called: ConnectApi#get_vrbo_connect_import\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
615
+ end
616
+ return data, status_code, headers
617
+ end
618
+
619
+ # Connect Booking.com by inviting a user
620
+ # Generates the user the host invites in their Extranet; progress is read from the status route. Called by the hosted Connect page. No API key — the session ID is the capability token.
621
+ # @param invite_booking_extranet_user_request [InviteBookingExtranetUserRequest]
622
+ # @param [Hash] opts the optional parameters
623
+ # @return [InviteBookingExtranetUser200Response]
624
+ def invite_booking_extranet_user(invite_booking_extranet_user_request, opts = {})
625
+ data, _status_code, _headers = invite_booking_extranet_user_with_http_info(invite_booking_extranet_user_request, opts)
626
+ data
627
+ end
628
+
629
+ # Connect Booking.com by inviting a user
630
+ # Generates the user the host invites in their Extranet; progress is read from the status route. Called by the hosted Connect page. No API key — the session ID is the capability token.
631
+ # @param invite_booking_extranet_user_request [InviteBookingExtranetUserRequest]
632
+ # @param [Hash] opts the optional parameters
633
+ # @return [Array<(InviteBookingExtranetUser200Response, Integer, Hash)>] InviteBookingExtranetUser200Response data, response status code and response headers
634
+ def invite_booking_extranet_user_with_http_info(invite_booking_extranet_user_request, opts = {})
635
+ if @api_client.config.debugging
636
+ @api_client.config.logger.debug 'Calling API: ConnectApi.invite_booking_extranet_user ...'
637
+ end
638
+ # verify the required parameter 'invite_booking_extranet_user_request' is set
639
+ if @api_client.config.client_side_validation && invite_booking_extranet_user_request.nil?
640
+ fail ArgumentError, "Missing the required parameter 'invite_booking_extranet_user_request' when calling ConnectApi.invite_booking_extranet_user"
641
+ end
642
+ # resource path
643
+ local_var_path = '/v1/connect/booking-extranet-login/invite'
644
+
645
+ # query parameters
646
+ query_params = opts[:query_params] || {}
647
+
648
+ # header parameters
649
+ header_params = opts[:header_params] || {}
650
+ # HTTP header 'Accept' (if needed)
651
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
652
+ # HTTP header 'Content-Type'
653
+ content_type = @api_client.select_header_content_type(['application/json'])
654
+ if !content_type.nil?
655
+ header_params['Content-Type'] = content_type
656
+ end
657
+
658
+ # form parameters
659
+ form_params = opts[:form_params] || {}
660
+
661
+ # http body (model)
662
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(invite_booking_extranet_user_request)
663
+
664
+ # return_type
665
+ return_type = opts[:debug_return_type] || 'InviteBookingExtranetUser200Response'
666
+
667
+ # auth_names
668
+ auth_names = opts[:debug_auth_names] || []
669
+
670
+ new_options = opts.merge(
671
+ :operation => :"ConnectApi.invite_booking_extranet_user",
672
+ :header_params => header_params,
673
+ :query_params => query_params,
674
+ :form_params => form_params,
675
+ :body => post_body,
676
+ :auth_names => auth_names,
677
+ :return_type => return_type
678
+ )
679
+
680
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
681
+ if @api_client.config.debugging
682
+ @api_client.config.logger.debug "API called: ConnectApi#invite_booking_extranet_user\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
683
+ end
684
+ return data, status_code, headers
685
+ end
686
+
357
687
  # List Booking.com rooms imported for a Connect session
358
688
  # Returns the rooms imported from the Booking.com hotel claimed in this Connect session, plus the customer's listing options for the mapping dropdowns. Hosted-picker pages poll this endpoint every ~2s after `verifyBookingHotel` succeeds; once rooms appear the page transitions to the mapping UI. No API key required — the `sessionId` query param is the capability token.
359
689
  # @param session_id [String] The Connect session ID returned by &#x60;createConnectSession&#x60;.
@@ -600,6 +930,83 @@ module Repull
600
930
  return data, status_code, headers
601
931
  end
602
932
 
933
+ # Search listings for a Connect mapping picker
934
+ # The hosted Connect pages' listing search for their mapping pickers: the session workspace's active listings by name, city or id, `limit` at a time. Called by the hosted Connect page. No API key — the session ID is the capability token.
935
+ # @param session_id [String]
936
+ # @param [Hash] opts the optional parameters
937
+ # @option opts [String] :q
938
+ # @option opts [Integer] :limit (default to 20)
939
+ # @return [SearchConnectSessionListingOptions200Response]
940
+ def search_connect_session_listing_options(session_id, opts = {})
941
+ data, _status_code, _headers = search_connect_session_listing_options_with_http_info(session_id, opts)
942
+ data
943
+ end
944
+
945
+ # Search listings for a Connect mapping picker
946
+ # The hosted Connect pages&#39; listing search for their mapping pickers: the session workspace&#39;s active listings by name, city or id, &#x60;limit&#x60; at a time. Called by the hosted Connect page. No API key — the session ID is the capability token.
947
+ # @param session_id [String]
948
+ # @param [Hash] opts the optional parameters
949
+ # @option opts [String] :q
950
+ # @option opts [Integer] :limit (default to 20)
951
+ # @return [Array<(SearchConnectSessionListingOptions200Response, Integer, Hash)>] SearchConnectSessionListingOptions200Response data, response status code and response headers
952
+ def search_connect_session_listing_options_with_http_info(session_id, opts = {})
953
+ if @api_client.config.debugging
954
+ @api_client.config.logger.debug 'Calling API: ConnectApi.search_connect_session_listing_options ...'
955
+ end
956
+ # verify the required parameter 'session_id' is set
957
+ if @api_client.config.client_side_validation && session_id.nil?
958
+ fail ArgumentError, "Missing the required parameter 'session_id' when calling ConnectApi.search_connect_session_listing_options"
959
+ end
960
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 50
961
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling ConnectApi.search_connect_session_listing_options, must be smaller than or equal to 50.'
962
+ end
963
+
964
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
965
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling ConnectApi.search_connect_session_listing_options, must be greater than or equal to 1.'
966
+ end
967
+
968
+ # resource path
969
+ local_var_path = '/v1/connect/sessions/{sessionId}/listing-options'.sub('{sessionId}', CGI.escape(session_id.to_s))
970
+
971
+ # query parameters
972
+ query_params = opts[:query_params] || {}
973
+ query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?
974
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
975
+
976
+ # header parameters
977
+ header_params = opts[:header_params] || {}
978
+ # HTTP header 'Accept' (if needed)
979
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
980
+
981
+ # form parameters
982
+ form_params = opts[:form_params] || {}
983
+
984
+ # http body (model)
985
+ post_body = opts[:debug_body]
986
+
987
+ # return_type
988
+ return_type = opts[:debug_return_type] || 'SearchConnectSessionListingOptions200Response'
989
+
990
+ # auth_names
991
+ auth_names = opts[:debug_auth_names] || []
992
+
993
+ new_options = opts.merge(
994
+ :operation => :"ConnectApi.search_connect_session_listing_options",
995
+ :header_params => header_params,
996
+ :query_params => query_params,
997
+ :form_params => form_params,
998
+ :body => post_body,
999
+ :auth_names => auth_names,
1000
+ :return_type => return_type
1001
+ )
1002
+
1003
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1004
+ if @api_client.config.debugging
1005
+ @api_client.config.logger.debug "API called: ConnectApi#search_connect_session_listing_options\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1006
+ end
1007
+ return data, status_code, headers
1008
+ end
1009
+
603
1010
  # Bind a picker session to a provider
604
1011
  # Called by the hosted picker page once the user clicks a channel card. Validates the provider exists and is permitted by the session's `allowedProviders` whitelist (if any), then returns the next-step URL the picker should navigate to. No API key required — the session ID is the capability token. The session must still be pending and unexpired.
605
1012
  # @param session_id [String] The picker session ID returned by &#x60;createConnectSession&#x60;.
@@ -674,6 +1081,74 @@ module Repull
674
1081
  return data, status_code, headers
675
1082
  end
676
1083
 
1084
+ # Sign in with a Booking.com Extranet user
1085
+ # Starts the sign-in with the host's Extranet credentials. Called by the hosted Connect page. No API key — the session ID is the capability token.
1086
+ # @param start_booking_extranet_login_request [StartBookingExtranetLoginRequest]
1087
+ # @param [Hash] opts the optional parameters
1088
+ # @return [StartBookingExtranetLogin200Response]
1089
+ def start_booking_extranet_login(start_booking_extranet_login_request, opts = {})
1090
+ data, _status_code, _headers = start_booking_extranet_login_with_http_info(start_booking_extranet_login_request, opts)
1091
+ data
1092
+ end
1093
+
1094
+ # Sign in with a Booking.com Extranet user
1095
+ # Starts the sign-in with the host&#39;s Extranet credentials. Called by the hosted Connect page. No API key — the session ID is the capability token.
1096
+ # @param start_booking_extranet_login_request [StartBookingExtranetLoginRequest]
1097
+ # @param [Hash] opts the optional parameters
1098
+ # @return [Array<(StartBookingExtranetLogin200Response, Integer, Hash)>] StartBookingExtranetLogin200Response data, response status code and response headers
1099
+ def start_booking_extranet_login_with_http_info(start_booking_extranet_login_request, opts = {})
1100
+ if @api_client.config.debugging
1101
+ @api_client.config.logger.debug 'Calling API: ConnectApi.start_booking_extranet_login ...'
1102
+ end
1103
+ # verify the required parameter 'start_booking_extranet_login_request' is set
1104
+ if @api_client.config.client_side_validation && start_booking_extranet_login_request.nil?
1105
+ fail ArgumentError, "Missing the required parameter 'start_booking_extranet_login_request' when calling ConnectApi.start_booking_extranet_login"
1106
+ end
1107
+ # resource path
1108
+ local_var_path = '/v1/connect/booking-extranet-login/session'
1109
+
1110
+ # query parameters
1111
+ query_params = opts[:query_params] || {}
1112
+
1113
+ # header parameters
1114
+ header_params = opts[:header_params] || {}
1115
+ # HTTP header 'Accept' (if needed)
1116
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1117
+ # HTTP header 'Content-Type'
1118
+ content_type = @api_client.select_header_content_type(['application/json'])
1119
+ if !content_type.nil?
1120
+ header_params['Content-Type'] = content_type
1121
+ end
1122
+
1123
+ # form parameters
1124
+ form_params = opts[:form_params] || {}
1125
+
1126
+ # http body (model)
1127
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(start_booking_extranet_login_request)
1128
+
1129
+ # return_type
1130
+ return_type = opts[:debug_return_type] || 'StartBookingExtranetLogin200Response'
1131
+
1132
+ # auth_names
1133
+ auth_names = opts[:debug_auth_names] || []
1134
+
1135
+ new_options = opts.merge(
1136
+ :operation => :"ConnectApi.start_booking_extranet_login",
1137
+ :header_params => header_params,
1138
+ :query_params => query_params,
1139
+ :form_params => form_params,
1140
+ :body => post_body,
1141
+ :auth_names => auth_names,
1142
+ :return_type => return_type
1143
+ )
1144
+
1145
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1146
+ if @api_client.config.debugging
1147
+ @api_client.config.logger.debug "API called: ConnectApi#start_booking_extranet_login\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1148
+ end
1149
+ return data, status_code, headers
1150
+ end
1151
+
677
1152
  # Submit Beds24 credentials for a Connect session
678
1153
  # Completes a credentials-pattern connection for Beds24. API key + prop key from Beds24 → Settings → Apps & Integrations. The credentials are validated against Beds24 before anything is persisted, so an invalid pair returns `invalid_credentials` rather than creating a dead connection. On success the `pms_connections` row is written and the Connect session moves to its terminal state. No API key required when called with a `sessionId` — the session is the capability token.
679
1154
  # @param submit_beds24_credentials_request [SubmitBeds24CredentialsRequest]
@@ -1490,6 +1965,80 @@ module Repull
1490
1965
  return data, status_code, headers
1491
1966
  end
1492
1967
 
1968
+ # Change what the app may change in a PMS
1969
+ # Turns individual write switches on or off for the connection. Only the switches you send change. Takes effect on the next write — nothing already sent to the PMS is undone. The policy is kept when the PMS is reconnected. With `reservations.api` off, the reservations API returns `409 pms_writes_off` for bookings on this PMS. With `reservations.website` off, booking sites stop taking bookings for it before the guest is charged.
1970
+ # @param provider [String] PMS provider slug (e.g., hostaway, guesty, ownerrez)
1971
+ # @param update_connect_write_policy_request [UpdateConnectWritePolicyRequest]
1972
+ # @param [Hash] opts the optional parameters
1973
+ # @return [GetConnectWritePolicy200Response]
1974
+ def update_connect_write_policy(provider, update_connect_write_policy_request, opts = {})
1975
+ data, _status_code, _headers = update_connect_write_policy_with_http_info(provider, update_connect_write_policy_request, opts)
1976
+ data
1977
+ end
1978
+
1979
+ # Change what the app may change in a PMS
1980
+ # Turns individual write switches on or off for the connection. Only the switches you send change. Takes effect on the next write — nothing already sent to the PMS is undone. The policy is kept when the PMS is reconnected. With &#x60;reservations.api&#x60; off, the reservations API returns &#x60;409 pms_writes_off&#x60; for bookings on this PMS. With &#x60;reservations.website&#x60; off, booking sites stop taking bookings for it before the guest is charged.
1981
+ # @param provider [String] PMS provider slug (e.g., hostaway, guesty, ownerrez)
1982
+ # @param update_connect_write_policy_request [UpdateConnectWritePolicyRequest]
1983
+ # @param [Hash] opts the optional parameters
1984
+ # @return [Array<(GetConnectWritePolicy200Response, Integer, Hash)>] GetConnectWritePolicy200Response data, response status code and response headers
1985
+ def update_connect_write_policy_with_http_info(provider, update_connect_write_policy_request, opts = {})
1986
+ if @api_client.config.debugging
1987
+ @api_client.config.logger.debug 'Calling API: ConnectApi.update_connect_write_policy ...'
1988
+ end
1989
+ # verify the required parameter 'provider' is set
1990
+ if @api_client.config.client_side_validation && provider.nil?
1991
+ fail ArgumentError, "Missing the required parameter 'provider' when calling ConnectApi.update_connect_write_policy"
1992
+ end
1993
+ # verify the required parameter 'update_connect_write_policy_request' is set
1994
+ if @api_client.config.client_side_validation && update_connect_write_policy_request.nil?
1995
+ fail ArgumentError, "Missing the required parameter 'update_connect_write_policy_request' when calling ConnectApi.update_connect_write_policy"
1996
+ end
1997
+ # resource path
1998
+ local_var_path = '/v1/connect/{provider}/write-policy'.sub('{provider}', CGI.escape(provider.to_s))
1999
+
2000
+ # query parameters
2001
+ query_params = opts[:query_params] || {}
2002
+
2003
+ # header parameters
2004
+ header_params = opts[:header_params] || {}
2005
+ # HTTP header 'Accept' (if needed)
2006
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
2007
+ # HTTP header 'Content-Type'
2008
+ content_type = @api_client.select_header_content_type(['application/json'])
2009
+ if !content_type.nil?
2010
+ header_params['Content-Type'] = content_type
2011
+ end
2012
+
2013
+ # form parameters
2014
+ form_params = opts[:form_params] || {}
2015
+
2016
+ # http body (model)
2017
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_connect_write_policy_request)
2018
+
2019
+ # return_type
2020
+ return_type = opts[:debug_return_type] || 'GetConnectWritePolicy200Response'
2021
+
2022
+ # auth_names
2023
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
2024
+
2025
+ new_options = opts.merge(
2026
+ :operation => :"ConnectApi.update_connect_write_policy",
2027
+ :header_params => header_params,
2028
+ :query_params => query_params,
2029
+ :form_params => form_params,
2030
+ :body => post_body,
2031
+ :auth_names => auth_names,
2032
+ :return_type => return_type
2033
+ )
2034
+
2035
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
2036
+ if @api_client.config.debugging
2037
+ @api_client.config.logger.debug "API called: ConnectApi#update_connect_write_policy\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2038
+ end
2039
+ return data, status_code, headers
2040
+ end
2041
+
1493
2042
  # Verify a Booking.com hotel ID for a Connect session
1494
2043
  # Manual-paste fallback that closes the Booking.com claim flow. Call this after the customer completes Stage 1 designation in their Booking Extranet (ticking FantasticStay/Repull as their connectivity provider) and pastes their Hotel ID into the hosted picker. Validates the hotel against Booking's property API, persists the `pms_connections` row, kicks off the room import, and transitions the Connect session to `awaiting_room_mapping`. No API key required — the `sessionId` is the capability token. Sessions in any terminal state are rejected.
1495
2044
  # @param booking_verify_hotel_request [BookingVerifyHotelRequest]
@@ -1557,5 +2106,73 @@ module Repull
1557
2106
  end
1558
2107
  return data, status_code, headers
1559
2108
  end
2109
+
2110
+ # Sign in with a Vrbo host account
2111
+ # `action: login` checks the email and password and answers in seconds: `connected`, `otp_required` (Vrbo sent a code to `destination`) or `failed` with a `reason` (`bad_credentials`, `blocked`, …). `action: otp` submits the code; a refused code comes back as `otp_required` with `reason: bad_code`. Signing in imports nothing. `accessType` (`full_access` or `messaging`, when the session did not lock it) is the host's choice of whether mapped listings push the calendar. The import starts when the mapping is confirmed. Called by the hosted Connect page. No API key — the session ID is the capability token.
2112
+ # @param vrbo_login_request [VrboLoginRequest]
2113
+ # @param [Hash] opts the optional parameters
2114
+ # @return [VrboLogin200Response]
2115
+ def vrbo_login(vrbo_login_request, opts = {})
2116
+ data, _status_code, _headers = vrbo_login_with_http_info(vrbo_login_request, opts)
2117
+ data
2118
+ end
2119
+
2120
+ # Sign in with a Vrbo host account
2121
+ # &#x60;action: login&#x60; checks the email and password and answers in seconds: &#x60;connected&#x60;, &#x60;otp_required&#x60; (Vrbo sent a code to &#x60;destination&#x60;) or &#x60;failed&#x60; with a &#x60;reason&#x60; (&#x60;bad_credentials&#x60;, &#x60;blocked&#x60;, …). &#x60;action: otp&#x60; submits the code; a refused code comes back as &#x60;otp_required&#x60; with &#x60;reason: bad_code&#x60;. Signing in imports nothing. &#x60;accessType&#x60; (&#x60;full_access&#x60; or &#x60;messaging&#x60;, when the session did not lock it) is the host&#39;s choice of whether mapped listings push the calendar. The import starts when the mapping is confirmed. Called by the hosted Connect page. No API key — the session ID is the capability token.
2122
+ # @param vrbo_login_request [VrboLoginRequest]
2123
+ # @param [Hash] opts the optional parameters
2124
+ # @return [Array<(VrboLogin200Response, Integer, Hash)>] VrboLogin200Response data, response status code and response headers
2125
+ def vrbo_login_with_http_info(vrbo_login_request, opts = {})
2126
+ if @api_client.config.debugging
2127
+ @api_client.config.logger.debug 'Calling API: ConnectApi.vrbo_login ...'
2128
+ end
2129
+ # verify the required parameter 'vrbo_login_request' is set
2130
+ if @api_client.config.client_side_validation && vrbo_login_request.nil?
2131
+ fail ArgumentError, "Missing the required parameter 'vrbo_login_request' when calling ConnectApi.vrbo_login"
2132
+ end
2133
+ # resource path
2134
+ local_var_path = '/v1/connect/vrbo-login/session'
2135
+
2136
+ # query parameters
2137
+ query_params = opts[:query_params] || {}
2138
+
2139
+ # header parameters
2140
+ header_params = opts[:header_params] || {}
2141
+ # HTTP header 'Accept' (if needed)
2142
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
2143
+ # HTTP header 'Content-Type'
2144
+ content_type = @api_client.select_header_content_type(['application/json'])
2145
+ if !content_type.nil?
2146
+ header_params['Content-Type'] = content_type
2147
+ end
2148
+
2149
+ # form parameters
2150
+ form_params = opts[:form_params] || {}
2151
+
2152
+ # http body (model)
2153
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(vrbo_login_request)
2154
+
2155
+ # return_type
2156
+ return_type = opts[:debug_return_type] || 'VrboLogin200Response'
2157
+
2158
+ # auth_names
2159
+ auth_names = opts[:debug_auth_names] || []
2160
+
2161
+ new_options = opts.merge(
2162
+ :operation => :"ConnectApi.vrbo_login",
2163
+ :header_params => header_params,
2164
+ :query_params => query_params,
2165
+ :form_params => form_params,
2166
+ :body => post_body,
2167
+ :auth_names => auth_names,
2168
+ :return_type => return_type
2169
+ )
2170
+
2171
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
2172
+ if @api_client.config.debugging
2173
+ @api_client.config.logger.debug "API called: ConnectApi#vrbo_login\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2174
+ end
2175
+ return data, status_code, headers
2176
+ end
1560
2177
  end
1561
2178
  end