repull 0.2.0

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 (222) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +10 -0
  3. data/LICENSE +21 -0
  4. data/README.md +121 -0
  5. data/Rakefile +10 -0
  6. data/examples/connect_airbnb.rb +33 -0
  7. data/examples/quickstart.rb +22 -0
  8. data/lib/repull/api/ai_api.rb +86 -0
  9. data/lib/repull/api/airbnb_api.rb +1155 -0
  10. data/lib/repull/api/atlas_api.rb +194 -0
  11. data/lib/repull/api/availability_api.rb +167 -0
  12. data/lib/repull/api/billing_api.rb +139 -0
  13. data/lib/repull/api/booking_com_api.rb +617 -0
  14. data/lib/repull/api/connect_api.rb +672 -0
  15. data/lib/repull/api/conversations_api.rb +263 -0
  16. data/lib/repull/api/guests_api.rb +171 -0
  17. data/lib/repull/api/listings_api.rb +509 -0
  18. data/lib/repull/api/markets_api.rb +320 -0
  19. data/lib/repull/api/plumguide_api.rb +299 -0
  20. data/lib/repull/api/pricing_api.rb +453 -0
  21. data/lib/repull/api/properties_api.rb +166 -0
  22. data/lib/repull/api/reservations_api.rb +387 -0
  23. data/lib/repull/api/reviews_api.rb +208 -0
  24. data/lib/repull/api/schema_api.rb +347 -0
  25. data/lib/repull/api/system_api.rb +79 -0
  26. data/lib/repull/api/vrbo_api.rb +262 -0
  27. data/lib/repull/api/webhooks_api.rb +867 -0
  28. data/lib/repull/api_client.rb +397 -0
  29. data/lib/repull/api_error.rb +58 -0
  30. data/lib/repull/api_model_base.rb +88 -0
  31. data/lib/repull/configuration.rb +313 -0
  32. data/lib/repull/models/ai_operation.rb +158 -0
  33. data/lib/repull/models/airbnb_listing.rb +229 -0
  34. data/lib/repull/models/airbnb_listing_list_response.rb +158 -0
  35. data/lib/repull/models/airbnb_reservation.rb +224 -0
  36. data/lib/repull/models/airbnb_reservation_list_response.rb +158 -0
  37. data/lib/repull/models/airbnb_review.rb +222 -0
  38. data/lib/repull/models/airbnb_review_list_response.rb +158 -0
  39. data/lib/repull/models/airbnb_thread.rb +188 -0
  40. data/lib/repull/models/airbnb_thread_list_response.rb +158 -0
  41. data/lib/repull/models/booking_connect_listing_option.rb +201 -0
  42. data/lib/repull/models/booking_connect_room.rb +251 -0
  43. data/lib/repull/models/booking_connect_rooms_response.rb +274 -0
  44. data/lib/repull/models/booking_conversation.rb +178 -0
  45. data/lib/repull/models/booking_conversation_list_response.rb +158 -0
  46. data/lib/repull/models/booking_pricing_rate_update.rb +310 -0
  47. data/lib/repull/models/booking_pricing_rate_update_date_range.rb +190 -0
  48. data/lib/repull/models/booking_pricing_rate_update_restrictions.rb +179 -0
  49. data/lib/repull/models/booking_pricing_response.rb +157 -0
  50. data/lib/repull/models/booking_pricing_update_request.rb +176 -0
  51. data/lib/repull/models/booking_pricing_update_response.rb +199 -0
  52. data/lib/repull/models/booking_property.rb +188 -0
  53. data/lib/repull/models/booking_property_list_response.rb +158 -0
  54. data/lib/repull/models/booking_room_mapping.rb +177 -0
  55. data/lib/repull/models/booking_verify_hotel_request.rb +193 -0
  56. data/lib/repull/models/booking_verify_hotel_response.rb +285 -0
  57. data/lib/repull/models/bulk_pricing_failure.rb +177 -0
  58. data/lib/repull/models/bulk_pricing_item.rb +202 -0
  59. data/lib/repull/models/bulk_pricing_request.rb +212 -0
  60. data/lib/repull/models/bulk_pricing_response.rb +170 -0
  61. data/lib/repull/models/calendar_day.rb +174 -0
  62. data/lib/repull/models/calendar_response.rb +149 -0
  63. data/lib/repull/models/connect_host.rb +194 -0
  64. data/lib/repull/models/connect_provider.rb +365 -0
  65. data/lib/repull/models/connect_provider_list_response.rb +149 -0
  66. data/lib/repull/models/connect_session.rb +228 -0
  67. data/lib/repull/models/connect_status.rb +207 -0
  68. data/lib/repull/models/connection.rb +195 -0
  69. data/lib/repull/models/connection_list_response.rb +158 -0
  70. data/lib/repull/models/conversation.rb +257 -0
  71. data/lib/repull/models/conversation_detail.rb +284 -0
  72. data/lib/repull/models/conversation_guest.rb +178 -0
  73. data/lib/repull/models/conversation_guest_contact.rb +174 -0
  74. data/lib/repull/models/conversation_host.rb +186 -0
  75. data/lib/repull/models/conversation_list_response.rb +159 -0
  76. data/lib/repull/models/conversation_message_attachment.rb +174 -0
  77. data/lib/repull/models/create_ai_operation200_response.rb +156 -0
  78. data/lib/repull/models/create_billing_checkout_request.rb +181 -0
  79. data/lib/repull/models/create_connect_session_request.rb +189 -0
  80. data/lib/repull/models/create_connection_request.rb +225 -0
  81. data/lib/repull/models/create_reservation_request.rb +313 -0
  82. data/lib/repull/models/create_webhook_request.rb +211 -0
  83. data/lib/repull/models/custom_schema.rb +303 -0
  84. data/lib/repull/models/custom_schema_create.rb +253 -0
  85. data/lib/repull/models/custom_schema_create_response.rb +300 -0
  86. data/lib/repull/models/custom_schema_delete_response.rb +164 -0
  87. data/lib/repull/models/custom_schema_list_response.rb +159 -0
  88. data/lib/repull/models/custom_schema_summary.rb +300 -0
  89. data/lib/repull/models/custom_schema_update.rb +199 -0
  90. data/lib/repull/models/error.rb +165 -0
  91. data/lib/repull/models/error_error.rb +357 -0
  92. data/lib/repull/models/error_error_support.rb +167 -0
  93. data/lib/repull/models/get_health200_response.rb +156 -0
  94. data/lib/repull/models/guest.rb +271 -0
  95. data/lib/repull/models/guest_contact.rb +186 -0
  96. data/lib/repull/models/guest_flag.rb +179 -0
  97. data/lib/repull/models/guest_list_response.rb +159 -0
  98. data/lib/repull/models/guest_note.rb +187 -0
  99. data/lib/repull/models/guest_profile.rb +337 -0
  100. data/lib/repull/models/guest_reservations_summary.rb +175 -0
  101. data/lib/repull/models/listing.rb +216 -0
  102. data/lib/repull/models/listing_address.rb +158 -0
  103. data/lib/repull/models/listing_channel.rb +176 -0
  104. data/lib/repull/models/listing_comp.rb +272 -0
  105. data/lib/repull/models/listing_comp_nightly.rb +166 -0
  106. data/lib/repull/models/listing_comp_ratings.rb +157 -0
  107. data/lib/repull/models/listing_comps_response.rb +197 -0
  108. data/lib/repull/models/listing_content.rb +249 -0
  109. data/lib/repull/models/listing_create_request.rb +364 -0
  110. data/lib/repull/models/listing_create_response.rb +148 -0
  111. data/lib/repull/models/listing_generate_content_request.rb +192 -0
  112. data/lib/repull/models/listing_generate_content_response.rb +165 -0
  113. data/lib/repull/models/listing_list_response.rb +158 -0
  114. data/lib/repull/models/listing_pricing_apply_request.rb +193 -0
  115. data/lib/repull/models/listing_pricing_apply_response.rb +169 -0
  116. data/lib/repull/models/listing_pricing_history_entry.rb +212 -0
  117. data/lib/repull/models/listing_pricing_history_response.rb +159 -0
  118. data/lib/repull/models/listing_pricing_recommendation.rb +269 -0
  119. data/lib/repull/models/listing_pricing_response.rb +187 -0
  120. data/lib/repull/models/listing_pricing_response_comp_summary.rb +178 -0
  121. data/lib/repull/models/listing_pricing_response_date_range.rb +156 -0
  122. data/lib/repull/models/listing_pricing_response_listing.rb +191 -0
  123. data/lib/repull/models/listing_pricing_strategy.rb +317 -0
  124. data/lib/repull/models/listing_pricing_strategy_input.rb +264 -0
  125. data/lib/repull/models/listing_publish_airbnb_request.rb +171 -0
  126. data/lib/repull/models/listing_publish_response.rb +166 -0
  127. data/lib/repull/models/listing_publish_status_channel.rb +197 -0
  128. data/lib/repull/models/listing_publish_status_response.rb +158 -0
  129. data/lib/repull/models/listing_quality_tier.rb +175 -0
  130. data/lib/repull/models/listing_segment.rb +229 -0
  131. data/lib/repull/models/listing_segment_recommendation.rb +170 -0
  132. data/lib/repull/models/listing_segments_response.rb +230 -0
  133. data/lib/repull/models/listing_segments_response_scope.rb +159 -0
  134. data/lib/repull/models/map_connect_booking_rooms_request.rb +202 -0
  135. data/lib/repull/models/map_connect_booking_rooms_response.rb +243 -0
  136. data/lib/repull/models/market_browse_category.rb +158 -0
  137. data/lib/repull/models/market_browse_entry.rb +197 -0
  138. data/lib/repull/models/market_browse_featured.rb +188 -0
  139. data/lib/repull/models/market_browse_response.rb +158 -0
  140. data/lib/repull/models/market_calendar_day.rb +257 -0
  141. data/lib/repull/models/market_calendar_day_events_inner.rb +177 -0
  142. data/lib/repull/models/market_calendar_response.rb +178 -0
  143. data/lib/repull/models/market_detail_response.rb +269 -0
  144. data/lib/repull/models/market_detail_response_price_distribution_inner.rb +186 -0
  145. data/lib/repull/models/market_detail_response_property_type_mix_inner.rb +166 -0
  146. data/lib/repull/models/market_detail_response_supply_trend_inner.rb +156 -0
  147. data/lib/repull/models/market_detail_response_top_comps.rb +187 -0
  148. data/lib/repull/models/market_event.rb +257 -0
  149. data/lib/repull/models/market_my_listing.rb +242 -0
  150. data/lib/repull/models/market_summary.rb +259 -0
  151. data/lib/repull/models/market_top_comp.rb +275 -0
  152. data/lib/repull/models/markets_overview_response.rb +219 -0
  153. data/lib/repull/models/markets_overview_response_browse.rb +173 -0
  154. data/lib/repull/models/markets_overview_response_subscriptions.rb +157 -0
  155. data/lib/repull/models/markets_overview_response_totals.rb +165 -0
  156. data/lib/repull/models/message.rb +289 -0
  157. data/lib/repull/models/message_list_response.rb +159 -0
  158. data/lib/repull/models/pagination.rb +188 -0
  159. data/lib/repull/models/plumguide_listing.rb +167 -0
  160. data/lib/repull/models/plumguide_listing_list_response.rb +158 -0
  161. data/lib/repull/models/property.rb +271 -0
  162. data/lib/repull/models/property_list_response.rb +158 -0
  163. data/lib/repull/models/reservation.rb +457 -0
  164. data/lib/repull/models/reservation_list_response.rb +159 -0
  165. data/lib/repull/models/review.rb +357 -0
  166. data/lib/repull/models/review_category.rb +169 -0
  167. data/lib/repull/models/review_list_response.rb +159 -0
  168. data/lib/repull/models/review_response.rb +158 -0
  169. data/lib/repull/models/rotate_webhook_secret200_response.rb +165 -0
  170. data/lib/repull/models/select_connect_provider_request.rb +165 -0
  171. data/lib/repull/models/select_provider_response.rb +176 -0
  172. data/lib/repull/models/test_webhook_request.rb +165 -0
  173. data/lib/repull/models/update_availability_request.rb +149 -0
  174. data/lib/repull/models/update_listing_pricing_strategy200_response.rb +147 -0
  175. data/lib/repull/models/update_reservation_request.rb +174 -0
  176. data/lib/repull/models/update_webhook_request.rb +211 -0
  177. data/lib/repull/models/vrbo_listing.rb +167 -0
  178. data/lib/repull/models/vrbo_listing_list_response.rb +158 -0
  179. data/lib/repull/models/vrbo_reservation.rb +185 -0
  180. data/lib/repull/models/vrbo_reservation_list_response.rb +158 -0
  181. data/lib/repull/models/webhook_delivery.rb +243 -0
  182. data/lib/repull/models/webhook_delivery_detail.rb +261 -0
  183. data/lib/repull/models/webhook_delivery_list_response.rb +158 -0
  184. data/lib/repull/models/webhook_event_catalog.rb +149 -0
  185. data/lib/repull/models/webhook_event_catalog_domains_inner.rb +167 -0
  186. data/lib/repull/models/webhook_event_catalog_domains_inner_events_inner.rb +183 -0
  187. data/lib/repull/models/webhook_list_response.rb +158 -0
  188. data/lib/repull/models/webhook_subscription.rb +294 -0
  189. data/lib/repull/version.rb +15 -0
  190. data/lib/repull.rb +217 -0
  191. data/openapi/v1.json +8923 -0
  192. data/repull.gemspec +43 -0
  193. data/scripts/regen.sh +55 -0
  194. data/spec/api/ai_api_spec.rb +47 -0
  195. data/spec/api/airbnb_api_spec.rb +238 -0
  196. data/spec/api/availability_api_spec.rb +62 -0
  197. data/spec/api/billing_api_spec.rb +57 -0
  198. data/spec/api/booking_com_api_spec.rb +115 -0
  199. data/spec/api/connect_api_spec.rb +82 -0
  200. data/spec/api/conversations_api_spec.rb +68 -0
  201. data/spec/api/guests_api_spec.rb +59 -0
  202. data/spec/api/plumguide_api_spec.rb +85 -0
  203. data/spec/api/properties_api_spec.rb +60 -0
  204. data/spec/api/reservations_api_spec.rb +97 -0
  205. data/spec/api/system_api_spec.rb +45 -0
  206. data/spec/api/vrbo_api_spec.rb +55 -0
  207. data/spec/api/webhooks_api_spec.rb +69 -0
  208. data/spec/models/ai_operation_spec.rb +46 -0
  209. data/spec/models/calendar_day_spec.rb +54 -0
  210. data/spec/models/connect_host_spec.rb +60 -0
  211. data/spec/models/connect_status_spec.rb +76 -0
  212. data/spec/models/connection_spec.rb +70 -0
  213. data/spec/models/conversation_spec.rb +66 -0
  214. data/spec/models/error_error_spec.rb +54 -0
  215. data/spec/models/error_spec.rb +36 -0
  216. data/spec/models/guest_spec.rb +72 -0
  217. data/spec/models/message_spec.rb +70 -0
  218. data/spec/models/property_spec.rb +114 -0
  219. data/spec/models/reservation_spec.rb +128 -0
  220. data/spec/models/webhook_subscription_spec.rb +60 -0
  221. data/spec/spec_helper.rb +111 -0
  222. metadata +337 -0
data/repull.gemspec ADDED
@@ -0,0 +1,43 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
4
+ $:.push File.expand_path('../lib', __FILE__)
5
+ require 'repull/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'repull'
9
+ s.version = Repull::VERSION
10
+ s.platform = Gem::Platform::RUBY
11
+ s.authors = ['Ivan Nikolov']
12
+ s.email = ['hello@repull.dev']
13
+ s.homepage = 'https://github.com/ivannikolovbg/repull-ruby'
14
+ s.summary = 'Ruby SDK for Repull'
15
+ s.description = 'Ruby SDK for the Repull API — the unified API for vacation-rental tech. Connect to 50+ PMS platforms and OTA channels (Airbnb, Booking.com, VRBO, Plumguide) through one REST API. Generated from OpenAPI.'
16
+ s.license = 'MIT'
17
+ s.required_ruby_version = '>= 2.7'
18
+ s.metadata = {
19
+ 'homepage_uri' => 'https://github.com/ivannikolovbg/repull-ruby',
20
+ 'source_code_uri' => 'https://github.com/ivannikolovbg/repull-ruby',
21
+ 'bug_tracker_uri' => 'https://github.com/ivannikolovbg/repull-ruby/issues',
22
+ 'documentation_uri' => 'https://repull.dev/docs'
23
+ }
24
+
25
+ s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
26
+
27
+ s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
28
+
29
+ s.files = Dir[
30
+ 'lib/**/*.rb',
31
+ 'openapi/**/*',
32
+ 'examples/**/*',
33
+ 'scripts/**/*',
34
+ 'README.md',
35
+ 'LICENSE',
36
+ 'repull.gemspec',
37
+ 'Gemfile',
38
+ 'Rakefile'
39
+ ]
40
+ s.test_files = Dir['spec/**/*']
41
+ s.executables = []
42
+ s.require_paths = ['lib']
43
+ end
data/scripts/regen.sh ADDED
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env bash
2
+ # Regenerate the Ruby SDK from the live OpenAPI spec.
3
+ #
4
+ # 1. Snapshots https://api.repull.dev/openapi.json -> openapi/v1.json
5
+ # 2. Normalizes the snapshot — strips overly narrow string enums that the live
6
+ # API is known to violate (e.g. Reservation.platform = "test-flows",
7
+ # Reservation.status = "accept"). The Ruby generator emits unconditional
8
+ # enum-validating setters, so any out-of-list value crashes deserialization.
9
+ # We accept all string values and let consumers compare against constants
10
+ # of their own choosing.
11
+ # 3. Regenerates lib/repull/ via openapi-generator-cli (Ruby template).
12
+ #
13
+ # Requires: bash, curl, python3, npx (Node.js), Java (openapi-generator runtime).
14
+
15
+ set -euo pipefail
16
+
17
+ ROOT="$(cd "$(dirname "$0")/.." && pwd)"
18
+ SPEC_URL="${REPULL_SPEC_URL:-https://api.repull.dev/openapi.json}"
19
+ SPEC_PATH="$ROOT/openapi/v1.json"
20
+ GEN_OUT="$(mktemp -d)"
21
+
22
+ trap 'rm -rf "$GEN_OUT"' EXIT
23
+
24
+ echo "==> snapshotting spec from $SPEC_URL"
25
+ curl --fail --silent --show-error -o "$SPEC_PATH" "$SPEC_URL"
26
+
27
+ echo "==> normalizing spec (drop narrow string enums)"
28
+ python3 - "$SPEC_PATH" <<'PY'
29
+ import json, sys
30
+ path = sys.argv[1]
31
+ spec = json.load(open(path))
32
+ removed = 0
33
+ for name, schema in spec.get('components', {}).get('schemas', {}).items():
34
+ for prop_name, prop in (schema.get('properties') or {}).items():
35
+ if isinstance(prop, dict) and 'enum' in prop and prop.get('type') == 'string':
36
+ prop.pop('enum')
37
+ removed += 1
38
+ json.dump(spec, open(path, 'w'), indent=2)
39
+ print(f'dropped {removed} string enums')
40
+ PY
41
+
42
+ echo "==> generating ruby client into $GEN_OUT"
43
+ npx --yes @openapitools/openapi-generator-cli@latest generate \
44
+ -i "$SPEC_PATH" \
45
+ -g ruby \
46
+ -o "$GEN_OUT" \
47
+ --additional-properties=gemName=repull,moduleName=Repull,gemVersion=0.1.0
48
+
49
+ echo "==> syncing lib/ + docs/"
50
+ rm -rf "$ROOT/lib/repull" "$ROOT/lib/repull.rb" "$ROOT/docs"
51
+ cp -R "$GEN_OUT/lib/repull" "$ROOT/lib/repull"
52
+ cp "$GEN_OUT/lib/repull.rb" "$ROOT/lib/repull.rb"
53
+ cp -R "$GEN_OUT/docs" "$ROOT/docs"
54
+
55
+ echo "==> done. review with: git diff -- lib/ docs/ openapi/"
@@ -0,0 +1,47 @@
1
+ =begin
2
+ #Repull API
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. ## 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_test_YOUR_API_KEY ``` Sandbox keys start with `sk_test_`, production with `sk_live_`.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: hello@repull.dev
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.22.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for Repull::AIApi
17
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
18
+ # Please update as you see appropriate
19
+ describe 'AIApi' do
20
+ before do
21
+ # run before each test
22
+ @api_instance = Repull::AIApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of AIApi' do
30
+ it 'should create an instance of AIApi' do
31
+ expect(@api_instance).to be_instance_of(Repull::AIApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for v1_ai_post
36
+ # AI operation
37
+ # Perform an AI-powered operation. Operations: - &#x60;respond-to-guest&#x60; — Generate a contextual guest response - &#x60;classify-intent&#x60; — Classify the intent of a guest message - &#x60;generate-listing&#x60; — Generate optimized listing description - &#x60;review-response&#x60; — Generate a review response - &#x60;price-suggestion&#x60; — Get AI pricing suggestions
38
+ # @param [Hash] opts the optional parameters
39
+ # @option opts [AIOperation] :ai_operation
40
+ # @return [V1AiPost200Response]
41
+ describe 'v1_ai_post test' do
42
+ it 'should work' do
43
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
44
+ end
45
+ end
46
+
47
+ end
@@ -0,0 +1,238 @@
1
+ =begin
2
+ #Repull API
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. ## 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_test_YOUR_API_KEY ``` Sandbox keys start with `sk_test_`, production with `sk_live_`.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: hello@repull.dev
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.22.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for Repull::AirbnbApi
17
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
18
+ # Please update as you see appropriate
19
+ describe 'AirbnbApi' do
20
+ before do
21
+ # run before each test
22
+ @api_instance = Repull::AirbnbApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of AirbnbApi' do
30
+ it 'should create an instance of AirbnbApi' do
31
+ expect(@api_instance).to be_instance_of(Repull::AirbnbApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for v1_channels_airbnb_listings_get
36
+ # List Airbnb listings
37
+ # @param [Hash] opts the optional parameters
38
+ # @return [nil]
39
+ describe 'v1_channels_airbnb_listings_get test' do
40
+ it 'should work' do
41
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
42
+ end
43
+ end
44
+
45
+ # unit tests for v1_channels_airbnb_listings_id_availability_get
46
+ # Get Airbnb availability
47
+ # @param id
48
+ # @param [Hash] opts the optional parameters
49
+ # @return [nil]
50
+ describe 'v1_channels_airbnb_listings_id_availability_get test' do
51
+ it 'should work' do
52
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
53
+ end
54
+ end
55
+
56
+ # unit tests for v1_channels_airbnb_listings_id_availability_put
57
+ # Update Airbnb availability
58
+ # @param id
59
+ # @param [Hash] opts the optional parameters
60
+ # @return [nil]
61
+ describe 'v1_channels_airbnb_listings_id_availability_put test' do
62
+ it 'should work' do
63
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
64
+ end
65
+ end
66
+
67
+ # unit tests for v1_channels_airbnb_listings_id_get
68
+ # Get Airbnb listing
69
+ # @param id
70
+ # @param [Hash] opts the optional parameters
71
+ # @return [nil]
72
+ describe 'v1_channels_airbnb_listings_id_get test' do
73
+ it 'should work' do
74
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
75
+ end
76
+ end
77
+
78
+ # unit tests for v1_channels_airbnb_listings_id_photos_get
79
+ # List Airbnb photos
80
+ # @param id
81
+ # @param [Hash] opts the optional parameters
82
+ # @return [nil]
83
+ describe 'v1_channels_airbnb_listings_id_photos_get test' do
84
+ it 'should work' do
85
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
86
+ end
87
+ end
88
+
89
+ # unit tests for v1_channels_airbnb_listings_id_photos_post
90
+ # Upload photos to Airbnb
91
+ # @param id
92
+ # @param [Hash] opts the optional parameters
93
+ # @return [nil]
94
+ describe 'v1_channels_airbnb_listings_id_photos_post test' do
95
+ it 'should work' do
96
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
97
+ end
98
+ end
99
+
100
+ # unit tests for v1_channels_airbnb_listings_id_post
101
+ # Listing action (push/publish/unlist/delete)
102
+ # @param id
103
+ # @param [Hash] opts the optional parameters
104
+ # @return [nil]
105
+ describe 'v1_channels_airbnb_listings_id_post test' do
106
+ it 'should work' do
107
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
108
+ end
109
+ end
110
+
111
+ # unit tests for v1_channels_airbnb_listings_id_pricing_get
112
+ # Get Airbnb pricing
113
+ # @param id
114
+ # @param [Hash] opts the optional parameters
115
+ # @return [nil]
116
+ describe 'v1_channels_airbnb_listings_id_pricing_get test' do
117
+ it 'should work' do
118
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
119
+ end
120
+ end
121
+
122
+ # unit tests for v1_channels_airbnb_listings_id_pricing_put
123
+ # Update Airbnb pricing
124
+ # @param id
125
+ # @param [Hash] opts the optional parameters
126
+ # @return [nil]
127
+ describe 'v1_channels_airbnb_listings_id_pricing_put test' do
128
+ it 'should work' do
129
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
130
+ end
131
+ end
132
+
133
+ # unit tests for v1_channels_airbnb_listings_post
134
+ # Create/push Airbnb listing
135
+ # @param [Hash] opts the optional parameters
136
+ # @return [nil]
137
+ describe 'v1_channels_airbnb_listings_post test' do
138
+ it 'should work' do
139
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
140
+ end
141
+ end
142
+
143
+ # unit tests for v1_channels_airbnb_messaging_get
144
+ # List Airbnb message threads
145
+ # @param [Hash] opts the optional parameters
146
+ # @return [nil]
147
+ describe 'v1_channels_airbnb_messaging_get test' do
148
+ it 'should work' do
149
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
150
+ end
151
+ end
152
+
153
+ # unit tests for v1_channels_airbnb_messaging_thread_id_messages_get
154
+ # Get Airbnb messages
155
+ # @param thread_id
156
+ # @param [Hash] opts the optional parameters
157
+ # @return [nil]
158
+ describe 'v1_channels_airbnb_messaging_thread_id_messages_get test' do
159
+ it 'should work' do
160
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
161
+ end
162
+ end
163
+
164
+ # unit tests for v1_channels_airbnb_messaging_thread_id_messages_post
165
+ # Send Airbnb message
166
+ # @param thread_id
167
+ # @param [Hash] opts the optional parameters
168
+ # @return [nil]
169
+ describe 'v1_channels_airbnb_messaging_thread_id_messages_post test' do
170
+ it 'should work' do
171
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
172
+ end
173
+ end
174
+
175
+ # unit tests for v1_channels_airbnb_reservations_code_get
176
+ # Get Airbnb reservation
177
+ # @param code
178
+ # @param [Hash] opts the optional parameters
179
+ # @return [nil]
180
+ describe 'v1_channels_airbnb_reservations_code_get test' do
181
+ it 'should work' do
182
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
183
+ end
184
+ end
185
+
186
+ # unit tests for v1_channels_airbnb_reservations_code_post
187
+ # Accept/decline/cancel Airbnb reservation
188
+ # @param code
189
+ # @param [Hash] opts the optional parameters
190
+ # @return [nil]
191
+ describe 'v1_channels_airbnb_reservations_code_post test' do
192
+ it 'should work' do
193
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
194
+ end
195
+ end
196
+
197
+ # unit tests for v1_channels_airbnb_reservations_get
198
+ # List Airbnb reservations
199
+ # @param [Hash] opts the optional parameters
200
+ # @return [nil]
201
+ describe 'v1_channels_airbnb_reservations_get test' do
202
+ it 'should work' do
203
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
204
+ end
205
+ end
206
+
207
+ # unit tests for v1_channels_airbnb_reviews_get
208
+ # List Airbnb reviews
209
+ # @param [Hash] opts the optional parameters
210
+ # @return [nil]
211
+ describe 'v1_channels_airbnb_reviews_get test' do
212
+ it 'should work' do
213
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
214
+ end
215
+ end
216
+
217
+ # unit tests for v1_channels_airbnb_reviews_post
218
+ # Respond to Airbnb review
219
+ # @param [Hash] opts the optional parameters
220
+ # @return [nil]
221
+ describe 'v1_channels_airbnb_reviews_post test' do
222
+ it 'should work' do
223
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
224
+ end
225
+ end
226
+
227
+ # unit tests for v1_channels_airbnb_sync_post
228
+ # Bulk sync to Airbnb
229
+ # Push all property data to Airbnb in one call.
230
+ # @param [Hash] opts the optional parameters
231
+ # @return [nil]
232
+ describe 'v1_channels_airbnb_sync_post test' do
233
+ it 'should work' do
234
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
235
+ end
236
+ end
237
+
238
+ end
@@ -0,0 +1,62 @@
1
+ =begin
2
+ #Repull API
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. ## 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_test_YOUR_API_KEY ``` Sandbox keys start with `sk_test_`, production with `sk_live_`.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: hello@repull.dev
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.22.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for Repull::AvailabilityApi
17
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
18
+ # Please update as you see appropriate
19
+ describe 'AvailabilityApi' do
20
+ before do
21
+ # run before each test
22
+ @api_instance = Repull::AvailabilityApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of AvailabilityApi' do
30
+ it 'should create an instance of AvailabilityApi' do
31
+ expect(@api_instance).to be_instance_of(Repull::AvailabilityApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for v1_availability_property_id_get
36
+ # Get availability calendar
37
+ # Returns day-by-day availability, pricing, and minimum stay for a property.
38
+ # @param property_id
39
+ # @param start_date
40
+ # @param end_date
41
+ # @param [Hash] opts the optional parameters
42
+ # @return [V1AvailabilityPropertyIdGet200Response]
43
+ describe 'v1_availability_property_id_get test' do
44
+ it 'should work' do
45
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
46
+ end
47
+ end
48
+
49
+ # unit tests for v1_availability_property_id_put
50
+ # Update availability
51
+ # Update pricing, availability, and minimum stay for specific dates.
52
+ # @param property_id
53
+ # @param [Hash] opts the optional parameters
54
+ # @option opts [V1AvailabilityPropertyIdPutRequest] :v1_availability_property_id_put_request
55
+ # @return [nil]
56
+ describe 'v1_availability_property_id_put test' do
57
+ it 'should work' do
58
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
59
+ end
60
+ end
61
+
62
+ end
@@ -0,0 +1,57 @@
1
+ =begin
2
+ #Repull API
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. ## 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_test_YOUR_API_KEY ``` Sandbox keys start with `sk_test_`, production with `sk_live_`.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: hello@repull.dev
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.22.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for Repull::BillingApi
17
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
18
+ # Please update as you see appropriate
19
+ describe 'BillingApi' do
20
+ before do
21
+ # run before each test
22
+ @api_instance = Repull::BillingApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of BillingApi' do
30
+ it 'should create an instance of BillingApi' do
31
+ expect(@api_instance).to be_instance_of(Repull::BillingApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for v1_billing_get
36
+ # Get plan and usage
37
+ # @param [Hash] opts the optional parameters
38
+ # @return [nil]
39
+ describe 'v1_billing_get test' do
40
+ it 'should work' do
41
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
42
+ end
43
+ end
44
+
45
+ # unit tests for v1_billing_post
46
+ # Create checkout session
47
+ # Redirect user to Stripe checkout.
48
+ # @param [Hash] opts the optional parameters
49
+ # @option opts [V1BillingPostRequest] :v1_billing_post_request
50
+ # @return [nil]
51
+ describe 'v1_billing_post test' do
52
+ it 'should work' do
53
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
54
+ end
55
+ end
56
+
57
+ end
@@ -0,0 +1,115 @@
1
+ =begin
2
+ #Repull API
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. ## 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_test_YOUR_API_KEY ``` Sandbox keys start with `sk_test_`, production with `sk_live_`.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: hello@repull.dev
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.22.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for Repull::BookingComApi
17
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
18
+ # Please update as you see appropriate
19
+ describe 'BookingComApi' do
20
+ before do
21
+ # run before each test
22
+ @api_instance = Repull::BookingComApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of BookingComApi' do
30
+ it 'should create an instance of BookingComApi' do
31
+ expect(@api_instance).to be_instance_of(Repull::BookingComApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for v1_channels_booking_availability_put
36
+ # Update Booking.com rates/availability
37
+ # @param [Hash] opts the optional parameters
38
+ # @return [nil]
39
+ describe 'v1_channels_booking_availability_put test' do
40
+ it 'should work' do
41
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
42
+ end
43
+ end
44
+
45
+ # unit tests for v1_channels_booking_content_get
46
+ # Get Booking.com content
47
+ # @param [Hash] opts the optional parameters
48
+ # @return [nil]
49
+ describe 'v1_channels_booking_content_get test' do
50
+ it 'should work' do
51
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
52
+ end
53
+ end
54
+
55
+ # unit tests for v1_channels_booking_content_post
56
+ # Update Booking.com content
57
+ # @param [Hash] opts the optional parameters
58
+ # @return [nil]
59
+ describe 'v1_channels_booking_content_post test' do
60
+ it 'should work' do
61
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
62
+ end
63
+ end
64
+
65
+ # unit tests for v1_channels_booking_messaging_get
66
+ # List Booking.com conversations
67
+ # @param [Hash] opts the optional parameters
68
+ # @return [nil]
69
+ describe 'v1_channels_booking_messaging_get test' do
70
+ it 'should work' do
71
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
72
+ end
73
+ end
74
+
75
+ # unit tests for v1_channels_booking_messaging_post
76
+ # Send Booking.com message
77
+ # @param [Hash] opts the optional parameters
78
+ # @return [nil]
79
+ describe 'v1_channels_booking_messaging_post test' do
80
+ it 'should work' do
81
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
82
+ end
83
+ end
84
+
85
+ # unit tests for v1_channels_booking_properties_get
86
+ # List Booking.com properties
87
+ # @param [Hash] opts the optional parameters
88
+ # @return [nil]
89
+ describe 'v1_channels_booking_properties_get test' do
90
+ it 'should work' do
91
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
92
+ end
93
+ end
94
+
95
+ # unit tests for v1_channels_booking_properties_post
96
+ # Create Booking.com property
97
+ # @param [Hash] opts the optional parameters
98
+ # @return [nil]
99
+ describe 'v1_channels_booking_properties_post test' do
100
+ it 'should work' do
101
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
102
+ end
103
+ end
104
+
105
+ # unit tests for v1_channels_booking_sync_post
106
+ # Bulk sync to Booking.com
107
+ # @param [Hash] opts the optional parameters
108
+ # @return [nil]
109
+ describe 'v1_channels_booking_sync_post test' do
110
+ it 'should work' do
111
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
112
+ end
113
+ end
114
+
115
+ end