repull 0.2.8 → 0.2.10

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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/lib/repull/api/airbnb_api.rb +1443 -182
  3. data/lib/repull/api/availability_api.rb +24 -92
  4. data/lib/repull/api/billing_api.rb +186 -15
  5. data/lib/repull/api/booking_com_api.rb +532 -41
  6. data/lib/repull/api/listings_api.rb +74 -0
  7. data/lib/repull/api/plumguide_api.rb +245 -0
  8. data/lib/repull/api/reservations_api.rb +0 -197
  9. data/lib/repull/api/sandbox_api.rb +136 -0
  10. data/lib/repull/api/vrbo_api.rb +0 -126
  11. data/lib/repull/models/acknowledge_booking_reservations_request.rb +176 -0
  12. data/lib/repull/models/{create_studio_project201_response_data.rb → airbnb_alteration.rb} +44 -52
  13. data/lib/repull/models/airbnb_amenity.rb +171 -0
  14. data/lib/repull/models/{get_studio_deployment200_response.rb → airbnb_availability_write_request.rb} +52 -10
  15. data/lib/repull/models/airbnb_calendar_operation.rb +250 -0
  16. data/lib/repull/models/airbnb_listing_action_request.rb +198 -0
  17. data/lib/repull/models/{update_availability_request.rb → airbnb_pricing_write_request.rb} +100 -11
  18. data/lib/repull/models/booking_availability_update.rb +276 -0
  19. data/lib/repull/models/booking_availability_update_request.rb +230 -0
  20. data/lib/repull/models/{generate_studio_completion_request_project_id.rb → booking_availability_update_request_property_id.rb} +2 -2
  21. data/lib/repull/models/booking_availability_update_request_updates_inner.rb +104 -0
  22. data/lib/repull/models/booking_pricing_rate_update.rb +1 -0
  23. data/lib/repull/models/booking_pricing_rate_update_restrictions.rb +65 -6
  24. data/lib/repull/models/booking_setup_request.rb +220 -0
  25. data/lib/repull/models/create_airbnb_alteration_request.rb +195 -0
  26. data/lib/repull/models/{create_studio_deployment201_response_data.rb → create_airbnb_offer_request.rb} +42 -30
  27. data/lib/repull/models/{create_studio_project_request.rb → create_booking_webhook_request.rb} +36 -47
  28. data/lib/repull/models/{generate_studio_completion200_response.rb → delete_airbnb_listing_photo200_response.rb} +10 -10
  29. data/lib/repull/models/{delete_studio_project200_response.rb → get_airbnb_alteration200_response.rb} +50 -7
  30. data/lib/repull/models/{delete_studio_project_file200_response.rb → get_airbnb_listing_quality200_response.rb} +37 -7
  31. data/lib/repull/models/{create_studio_project_generation201_response.rb → get_airbnb_listing_settings200_response.rb} +37 -7
  32. data/lib/repull/models/{delete_studio_deployment200_response.rb → get_airbnb_thread200_response.rb} +50 -7
  33. data/lib/repull/models/{list_studio_deployments200_response.rb → get_usage_logs200_response.rb} +17 -8
  34. data/lib/repull/models/get_usage_logs200_response_data_inner.rb +264 -0
  35. data/lib/repull/models/{create_studio_deployment201_response.rb → get_usage_logs200_response_pagination.rb} +29 -10
  36. data/lib/repull/models/get_usage_summary200_response.rb +232 -0
  37. data/lib/repull/models/get_usage_summary200_response_breakdown_inner.rb +183 -0
  38. data/lib/repull/models/{delete_studio_deployment200_response_data.rb → get_usage_summary200_response_limits.rb} +18 -16
  39. data/lib/repull/models/{delete_studio_project200_response_data.rb → get_usage_summary200_response_remaining.rb} +18 -16
  40. data/lib/repull/models/{create_studio_project_generation201_response_data.rb → get_usage_summary200_response_status_distribution.rb} +31 -22
  41. data/lib/repull/models/{upsert_studio_project_file_request.rb → get_usage_summary200_response_timeline_inner.rb} +28 -28
  42. data/lib/repull/models/{create_studio_project_generation_request.rb → get_usage_summary200_response_totals.rb} +28 -28
  43. data/lib/repull/models/{create_studio_project201_response.rb → get_usage_summary200_response_used.rb} +19 -10
  44. data/lib/repull/models/get_usage_tier200_response.rb +183 -0
  45. data/lib/repull/models/{list_studio_projects200_response.rb → get_usage_tier200_response_limits.rb} +31 -12
  46. data/lib/repull/models/{update_reservation_request.rb → get_usage_tier200_response_remaining.rb} +25 -31
  47. data/lib/repull/models/{get_studio_project200_response.rb → get_usage_tier200_response_used.rb} +28 -10
  48. data/lib/repull/models/list_airbnb_alterations200_response.rb +192 -0
  49. data/lib/repull/models/list_airbnb_listing_amenities200_response.rb +190 -0
  50. data/lib/repull/models/{create_studio_deployment_request.rb → list_airbnb_listing_amenities200_response_data.rb} +23 -28
  51. data/lib/repull/models/{list_studio_project_files200_response.rb → list_airbnb_transactions200_response.rb} +50 -7
  52. data/lib/repull/models/listing_content_update_request.rb +243 -0
  53. data/lib/repull/models/{upsert_studio_project_file200_response.rb → listing_content_update_request_address.rb} +53 -10
  54. data/lib/repull/models/listing_content_update_request_amenities.rb +105 -0
  55. data/lib/repull/models/listing_content_update_request_amenities_one_of_inner.rb +196 -0
  56. data/lib/repull/models/listing_content_update_request_occupancy.rb +179 -0
  57. data/lib/repull/{api/ai_api.rb → models/listing_content_update_request_photos_inner.rb} +77 -59
  58. data/lib/repull/models/{generate_studio_completion200_response_data.rb → listing_content_update_request_photos_inner_one_of.rb} +81 -66
  59. data/lib/repull/models/listing_content_update_request_policies.rb +253 -0
  60. data/lib/repull/models/{create_ai_operation200_response.rb → listing_content_update_response.rb} +32 -16
  61. data/lib/repull/models/map_airbnb_listing_request.rb +215 -0
  62. data/lib/repull/models/{create_reservation_request.rb → map_airbnb_listing_response.rb} +137 -116
  63. data/lib/repull/models/property.rb +42 -69
  64. data/lib/repull/models/property_availability.rb +222 -0
  65. data/lib/repull/models/property_availability_day.rb +247 -0
  66. data/lib/repull/models/reservation.rb +28 -1
  67. data/lib/repull/models/sandbox_fixture_ref.rb +193 -0
  68. data/lib/repull/models/{delete_studio_project_file200_response_data.rb → sandbox_reset_result.rb} +72 -11
  69. data/lib/repull/models/sandbox_reset_result_deleted.rb +216 -0
  70. data/lib/repull/models/sandbox_seed_result.rb +278 -0
  71. data/lib/repull/models/{update_studio_project_request.rb → update_airbnb_message_request.rb} +43 -24
  72. data/lib/repull/models/update_booking_charges_request.rb +194 -0
  73. data/lib/repull/version.rb +1 -1
  74. data/lib/repull.rb +59 -34
  75. data/openapi/v1.json +3956 -2522
  76. metadata +61 -36
  77. data/lib/repull/api/studio_api.rb +0 -1094
  78. data/lib/repull/models/generate_studio_completion_request.rb +0 -305
  79. data/lib/repull/models/upsert_studio_project_file200_response_data.rb +0 -147
@@ -14,40 +14,39 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Repull
17
- class CreateReservationRequest < ApiModelBase
18
- attr_accessor :property_id
17
+ # Id fields are strings (API-wide convention — bigint ids are stringified to avoid 53-bit JS-number precision loss).
18
+ class MapAirbnbListingResponse < ApiModelBase
19
+ attr_accessor :success
19
20
 
20
- attr_accessor :check_in
21
+ # True when the Airbnb listing was already mapped to this listing (no-op).
22
+ attr_accessor :already_mapped
21
23
 
22
- attr_accessor :check_out
24
+ attr_accessor :airbnb_id
23
25
 
24
- attr_accessor :guest_first_name
26
+ attr_accessor :listing_id
25
27
 
26
- attr_accessor :guest_last_name
28
+ # The listing the Airbnb record pointed at before this call. Omitted on a no-op.
29
+ attr_accessor :previous_listing_id
27
30
 
28
- attr_accessor :guest_email
31
+ attr_accessor :host_id
29
32
 
30
- attr_accessor :guest_phone
33
+ # Internal id of the `listings_airbnb` record.
34
+ attr_accessor :listing_airbnb_id
31
35
 
32
- attr_accessor :guest_count
33
-
34
- attr_accessor :total_price
35
-
36
- attr_accessor :currency
36
+ # Internal id of the resulting `listing_platform_links` row.
37
+ attr_accessor :platform_link_id
37
38
 
38
39
  # Attribute mapping from ruby-style variable name to JSON key.
39
40
  def self.attribute_map
40
41
  {
41
- :'property_id' => :'propertyId',
42
- :'check_in' => :'checkIn',
43
- :'check_out' => :'checkOut',
44
- :'guest_first_name' => :'guestFirstName',
45
- :'guest_last_name' => :'guestLastName',
46
- :'guest_email' => :'guestEmail',
47
- :'guest_phone' => :'guestPhone',
48
- :'guest_count' => :'guestCount',
49
- :'total_price' => :'totalPrice',
50
- :'currency' => :'currency'
42
+ :'success' => :'success',
43
+ :'already_mapped' => :'alreadyMapped',
44
+ :'airbnb_id' => :'airbnbId',
45
+ :'listing_id' => :'listingId',
46
+ :'previous_listing_id' => :'previousListingId',
47
+ :'host_id' => :'hostId',
48
+ :'listing_airbnb_id' => :'listingAirbnbId',
49
+ :'platform_link_id' => :'platformLinkId'
51
50
  }
52
51
  end
53
52
 
@@ -64,16 +63,14 @@ module Repull
64
63
  # Attribute type mapping.
65
64
  def self.openapi_types
66
65
  {
67
- :'property_id' => :'String',
68
- :'check_in' => :'Date',
69
- :'check_out' => :'Date',
70
- :'guest_first_name' => :'String',
71
- :'guest_last_name' => :'String',
72
- :'guest_email' => :'String',
73
- :'guest_phone' => :'String',
74
- :'guest_count' => :'Integer',
75
- :'total_price' => :'Float',
76
- :'currency' => :'String'
66
+ :'success' => :'Boolean',
67
+ :'already_mapped' => :'Boolean',
68
+ :'airbnb_id' => :'String',
69
+ :'listing_id' => :'String',
70
+ :'previous_listing_id' => :'String',
71
+ :'host_id' => :'String',
72
+ :'listing_airbnb_id' => :'String',
73
+ :'platform_link_id' => :'String'
77
74
  }
78
75
  end
79
76
 
@@ -87,66 +84,62 @@ module Repull
87
84
  # @param [Hash] attributes Model attributes in the form of hash
88
85
  def initialize(attributes = {})
89
86
  if (!attributes.is_a?(Hash))
90
- fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::CreateReservationRequest` initialize method"
87
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::MapAirbnbListingResponse` initialize method"
91
88
  end
92
89
 
93
90
  # check to see if the attribute exists and convert string to symbol for hash key
94
91
  acceptable_attribute_map = self.class.acceptable_attribute_map
95
92
  attributes = attributes.each_with_object({}) { |(k, v), h|
96
93
  if (!acceptable_attribute_map.key?(k.to_sym))
97
- fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::CreateReservationRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
94
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::MapAirbnbListingResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
98
95
  end
99
96
  h[k.to_sym] = v
100
97
  }
101
98
 
102
- if attributes.key?(:'property_id')
103
- self.property_id = attributes[:'property_id']
104
- else
105
- self.property_id = nil
106
- end
107
-
108
- if attributes.key?(:'check_in')
109
- self.check_in = attributes[:'check_in']
99
+ if attributes.key?(:'success')
100
+ self.success = attributes[:'success']
110
101
  else
111
- self.check_in = nil
102
+ self.success = nil
112
103
  end
113
104
 
114
- if attributes.key?(:'check_out')
115
- self.check_out = attributes[:'check_out']
105
+ if attributes.key?(:'already_mapped')
106
+ self.already_mapped = attributes[:'already_mapped']
116
107
  else
117
- self.check_out = nil
108
+ self.already_mapped = nil
118
109
  end
119
110
 
120
- if attributes.key?(:'guest_first_name')
121
- self.guest_first_name = attributes[:'guest_first_name']
111
+ if attributes.key?(:'airbnb_id')
112
+ self.airbnb_id = attributes[:'airbnb_id']
122
113
  else
123
- self.guest_first_name = nil
114
+ self.airbnb_id = nil
124
115
  end
125
116
 
126
- if attributes.key?(:'guest_last_name')
127
- self.guest_last_name = attributes[:'guest_last_name']
117
+ if attributes.key?(:'listing_id')
118
+ self.listing_id = attributes[:'listing_id']
128
119
  else
129
- self.guest_last_name = nil
130
- end
131
-
132
- if attributes.key?(:'guest_email')
133
- self.guest_email = attributes[:'guest_email']
120
+ self.listing_id = nil
134
121
  end
135
122
 
136
- if attributes.key?(:'guest_phone')
137
- self.guest_phone = attributes[:'guest_phone']
123
+ if attributes.key?(:'previous_listing_id')
124
+ self.previous_listing_id = attributes[:'previous_listing_id']
138
125
  end
139
126
 
140
- if attributes.key?(:'guest_count')
141
- self.guest_count = attributes[:'guest_count']
127
+ if attributes.key?(:'host_id')
128
+ self.host_id = attributes[:'host_id']
129
+ else
130
+ self.host_id = nil
142
131
  end
143
132
 
144
- if attributes.key?(:'total_price')
145
- self.total_price = attributes[:'total_price']
133
+ if attributes.key?(:'listing_airbnb_id')
134
+ self.listing_airbnb_id = attributes[:'listing_airbnb_id']
135
+ else
136
+ self.listing_airbnb_id = nil
146
137
  end
147
138
 
148
- if attributes.key?(:'currency')
149
- self.currency = attributes[:'currency']
139
+ if attributes.key?(:'platform_link_id')
140
+ self.platform_link_id = attributes[:'platform_link_id']
141
+ else
142
+ self.platform_link_id = nil
150
143
  end
151
144
  end
152
145
 
@@ -155,24 +148,32 @@ module Repull
155
148
  def list_invalid_properties
156
149
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
157
150
  invalid_properties = Array.new
158
- if @property_id.nil?
159
- invalid_properties.push('invalid value for "property_id", property_id cannot be nil.')
151
+ if @success.nil?
152
+ invalid_properties.push('invalid value for "success", success cannot be nil.')
153
+ end
154
+
155
+ if @already_mapped.nil?
156
+ invalid_properties.push('invalid value for "already_mapped", already_mapped cannot be nil.')
160
157
  end
161
158
 
162
- if @check_in.nil?
163
- invalid_properties.push('invalid value for "check_in", check_in cannot be nil.')
159
+ if @airbnb_id.nil?
160
+ invalid_properties.push('invalid value for "airbnb_id", airbnb_id cannot be nil.')
164
161
  end
165
162
 
166
- if @check_out.nil?
167
- invalid_properties.push('invalid value for "check_out", check_out cannot be nil.')
163
+ if @listing_id.nil?
164
+ invalid_properties.push('invalid value for "listing_id", listing_id cannot be nil.')
168
165
  end
169
166
 
170
- if @guest_first_name.nil?
171
- invalid_properties.push('invalid value for "guest_first_name", guest_first_name cannot be nil.')
167
+ if @host_id.nil?
168
+ invalid_properties.push('invalid value for "host_id", host_id cannot be nil.')
172
169
  end
173
170
 
174
- if @guest_last_name.nil?
175
- invalid_properties.push('invalid value for "guest_last_name", guest_last_name cannot be nil.')
171
+ if @listing_airbnb_id.nil?
172
+ invalid_properties.push('invalid value for "listing_airbnb_id", listing_airbnb_id cannot be nil.')
173
+ end
174
+
175
+ if @platform_link_id.nil?
176
+ invalid_properties.push('invalid value for "platform_link_id", platform_link_id cannot be nil.')
176
177
  end
177
178
 
178
179
  invalid_properties
@@ -182,62 +183,84 @@ module Repull
182
183
  # @return true if the model is valid
183
184
  def valid?
184
185
  warn '[DEPRECATED] the `valid?` method is obsolete'
185
- return false if @property_id.nil?
186
- return false if @check_in.nil?
187
- return false if @check_out.nil?
188
- return false if @guest_first_name.nil?
189
- return false if @guest_last_name.nil?
186
+ return false if @success.nil?
187
+ return false if @already_mapped.nil?
188
+ return false if @airbnb_id.nil?
189
+ return false if @listing_id.nil?
190
+ return false if @host_id.nil?
191
+ return false if @listing_airbnb_id.nil?
192
+ return false if @platform_link_id.nil?
190
193
  true
191
194
  end
192
195
 
193
196
  # Custom attribute writer method with validation
194
- # @param [Object] property_id Value to be assigned
195
- def property_id=(property_id)
196
- if property_id.nil?
197
- fail ArgumentError, 'property_id cannot be nil'
197
+ # @param [Object] success Value to be assigned
198
+ def success=(success)
199
+ if success.nil?
200
+ fail ArgumentError, 'success cannot be nil'
201
+ end
202
+
203
+ @success = success
204
+ end
205
+
206
+ # Custom attribute writer method with validation
207
+ # @param [Object] already_mapped Value to be assigned
208
+ def already_mapped=(already_mapped)
209
+ if already_mapped.nil?
210
+ fail ArgumentError, 'already_mapped cannot be nil'
211
+ end
212
+
213
+ @already_mapped = already_mapped
214
+ end
215
+
216
+ # Custom attribute writer method with validation
217
+ # @param [Object] airbnb_id Value to be assigned
218
+ def airbnb_id=(airbnb_id)
219
+ if airbnb_id.nil?
220
+ fail ArgumentError, 'airbnb_id cannot be nil'
198
221
  end
199
222
 
200
- @property_id = property_id
223
+ @airbnb_id = airbnb_id
201
224
  end
202
225
 
203
226
  # Custom attribute writer method with validation
204
- # @param [Object] check_in Value to be assigned
205
- def check_in=(check_in)
206
- if check_in.nil?
207
- fail ArgumentError, 'check_in cannot be nil'
227
+ # @param [Object] listing_id Value to be assigned
228
+ def listing_id=(listing_id)
229
+ if listing_id.nil?
230
+ fail ArgumentError, 'listing_id cannot be nil'
208
231
  end
209
232
 
210
- @check_in = check_in
233
+ @listing_id = listing_id
211
234
  end
212
235
 
213
236
  # Custom attribute writer method with validation
214
- # @param [Object] check_out Value to be assigned
215
- def check_out=(check_out)
216
- if check_out.nil?
217
- fail ArgumentError, 'check_out cannot be nil'
237
+ # @param [Object] host_id Value to be assigned
238
+ def host_id=(host_id)
239
+ if host_id.nil?
240
+ fail ArgumentError, 'host_id cannot be nil'
218
241
  end
219
242
 
220
- @check_out = check_out
243
+ @host_id = host_id
221
244
  end
222
245
 
223
246
  # Custom attribute writer method with validation
224
- # @param [Object] guest_first_name Value to be assigned
225
- def guest_first_name=(guest_first_name)
226
- if guest_first_name.nil?
227
- fail ArgumentError, 'guest_first_name cannot be nil'
247
+ # @param [Object] listing_airbnb_id Value to be assigned
248
+ def listing_airbnb_id=(listing_airbnb_id)
249
+ if listing_airbnb_id.nil?
250
+ fail ArgumentError, 'listing_airbnb_id cannot be nil'
228
251
  end
229
252
 
230
- @guest_first_name = guest_first_name
253
+ @listing_airbnb_id = listing_airbnb_id
231
254
  end
232
255
 
233
256
  # Custom attribute writer method with validation
234
- # @param [Object] guest_last_name Value to be assigned
235
- def guest_last_name=(guest_last_name)
236
- if guest_last_name.nil?
237
- fail ArgumentError, 'guest_last_name cannot be nil'
257
+ # @param [Object] platform_link_id Value to be assigned
258
+ def platform_link_id=(platform_link_id)
259
+ if platform_link_id.nil?
260
+ fail ArgumentError, 'platform_link_id cannot be nil'
238
261
  end
239
262
 
240
- @guest_last_name = guest_last_name
263
+ @platform_link_id = platform_link_id
241
264
  end
242
265
 
243
266
  # Checks equality by comparing each attribute.
@@ -245,16 +268,14 @@ module Repull
245
268
  def ==(o)
246
269
  return true if self.equal?(o)
247
270
  self.class == o.class &&
248
- property_id == o.property_id &&
249
- check_in == o.check_in &&
250
- check_out == o.check_out &&
251
- guest_first_name == o.guest_first_name &&
252
- guest_last_name == o.guest_last_name &&
253
- guest_email == o.guest_email &&
254
- guest_phone == o.guest_phone &&
255
- guest_count == o.guest_count &&
256
- total_price == o.total_price &&
257
- currency == o.currency
271
+ success == o.success &&
272
+ already_mapped == o.already_mapped &&
273
+ airbnb_id == o.airbnb_id &&
274
+ listing_id == o.listing_id &&
275
+ previous_listing_id == o.previous_listing_id &&
276
+ host_id == o.host_id &&
277
+ listing_airbnb_id == o.listing_airbnb_id &&
278
+ platform_link_id == o.platform_link_id
258
279
  end
259
280
 
260
281
  # @see the `==` method
@@ -266,7 +287,7 @@ module Repull
266
287
  # Calculates hash code according to all attributes.
267
288
  # @return [Integer] Hash code
268
289
  def hash
269
- [property_id, check_in, check_out, guest_first_name, guest_last_name, guest_email, guest_phone, guest_count, total_price, currency].hash
290
+ [success, already_mapped, airbnb_id, listing_id, previous_listing_id, host_id, listing_airbnb_id, platform_link_id].hash
270
291
  end
271
292
 
272
293
  # Builds the object from hash
@@ -14,65 +14,56 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Repull
17
- # A vacation rental property from a connected PMS
17
+ # A vacation rental property in your Repull workspace. Backed by the core `listings` row — enriched per-PMS fields (bedrooms, property type, provider id, etc.) live in provider-specific detail tables and are NOT returned here. Field availability differs by endpoint: - `channels` is returned by the list endpoint (`GET /v1/properties`) only. - `latitude`, `longitude`, `createdAt`, and `amenities` are returned by the detail endpoint (`GET /v1/properties/{id}`) only. `amenities` requires `?include=amenities`.
18
18
  class Property < ApiModelBase
19
- # Internal Repull property ID
19
+ # Internal Repull property ID. Equal to the listing id (`listings.id`); the same integer is used as `listingId` on reservations and `propertyId` on availability.
20
20
  attr_accessor :id
21
21
 
22
- # ID in the source PMS
23
- attr_accessor :external_id
24
-
25
22
  # Property name
26
23
  attr_accessor :name
27
24
 
28
- # Full address
25
+ # Street address (from the listing's `street` field).
29
26
  attr_accessor :address
30
27
 
31
28
  attr_accessor :city
32
29
 
33
- attr_accessor :state
34
-
35
- attr_accessor :country
36
-
30
+ # Detail endpoint only.
37
31
  attr_accessor :latitude
38
32
 
33
+ # Detail endpoint only.
39
34
  attr_accessor :longitude
40
35
 
41
- attr_accessor :bedrooms
36
+ # ISO 4217 currency code for this property's pricing.
37
+ attr_accessor :currency
42
38
 
43
- attr_accessor :bathrooms
39
+ # Derived from `listings.active`.
40
+ attr_accessor :status
44
41
 
45
- attr_accessor :max_guests
42
+ # The listing's lifecycle state (e.g. `live`, `draft`, `archived`).
43
+ attr_accessor :lifecycle_status
46
44
 
47
- # Primary photo URL
48
- attr_accessor :thumbnail
45
+ # When the property was created. Detail endpoint only.
46
+ attr_accessor :created_at
49
47
 
50
- # Source PMS
51
- attr_accessor :provider
52
-
53
- # OTAs/channels this property is actively published on (e.g. `airbnb`, `booking`, `vrbo`). Empty array when the property has no active channel links.
48
+ # OTAs/channels this property is actively published on, as channel-name strings (e.g. `airbnb`, `booking`, `vrbo`). Empty array when the property has no active channel links. List endpoint (`GET /v1/properties`) only.
54
49
  attr_accessor :channels
55
50
 
56
- # Amenity rows for the property. **Only present when the caller passes `?include=amenities`.** Empty array (`[]`) when the property has no amenity rows.
51
+ # Amenity rows for the property. Detail endpoint only, and **only present when the caller passes `?include=amenities`.** Empty array (`[]`) when the property has no amenity rows.
57
52
  attr_accessor :amenities
58
53
 
59
54
  # Attribute mapping from ruby-style variable name to JSON key.
60
55
  def self.attribute_map
61
56
  {
62
57
  :'id' => :'id',
63
- :'external_id' => :'externalId',
64
58
  :'name' => :'name',
65
59
  :'address' => :'address',
66
60
  :'city' => :'city',
67
- :'state' => :'state',
68
- :'country' => :'country',
69
61
  :'latitude' => :'latitude',
70
62
  :'longitude' => :'longitude',
71
- :'bedrooms' => :'bedrooms',
72
- :'bathrooms' => :'bathrooms',
73
- :'max_guests' => :'maxGuests',
74
- :'thumbnail' => :'thumbnail',
75
- :'provider' => :'provider',
63
+ :'currency' => :'currency',
64
+ :'status' => :'status',
65
+ :'lifecycle_status' => :'lifecycleStatus',
66
+ :'created_at' => :'createdAt',
76
67
  :'channels' => :'channels',
77
68
  :'amenities' => :'amenities'
78
69
  }
@@ -92,19 +83,15 @@ module Repull
92
83
  def self.openapi_types
93
84
  {
94
85
  :'id' => :'String',
95
- :'external_id' => :'String',
96
86
  :'name' => :'String',
97
87
  :'address' => :'String',
98
88
  :'city' => :'String',
99
- :'state' => :'String',
100
- :'country' => :'String',
101
89
  :'latitude' => :'Float',
102
90
  :'longitude' => :'Float',
103
- :'bedrooms' => :'Integer',
104
- :'bathrooms' => :'Float',
105
- :'max_guests' => :'Integer',
106
- :'thumbnail' => :'String',
107
- :'provider' => :'String',
91
+ :'currency' => :'String',
92
+ :'status' => :'String',
93
+ :'lifecycle_status' => :'String',
94
+ :'created_at' => :'Time',
108
95
  :'channels' => :'Array<String>',
109
96
  :'amenities' => :'Array<ListingAmenity>'
110
97
  }
@@ -113,6 +100,12 @@ module Repull
113
100
  # List of attributes with nullable: true
114
101
  def self.openapi_nullable
115
102
  Set.new([
103
+ :'address',
104
+ :'city',
105
+ :'latitude',
106
+ :'longitude',
107
+ :'currency',
108
+ :'lifecycle_status',
116
109
  ])
117
110
  end
118
111
 
@@ -136,10 +129,6 @@ module Repull
136
129
  self.id = attributes[:'id']
137
130
  end
138
131
 
139
- if attributes.key?(:'external_id')
140
- self.external_id = attributes[:'external_id']
141
- end
142
-
143
132
  if attributes.key?(:'name')
144
133
  self.name = attributes[:'name']
145
134
  end
@@ -152,14 +141,6 @@ module Repull
152
141
  self.city = attributes[:'city']
153
142
  end
154
143
 
155
- if attributes.key?(:'state')
156
- self.state = attributes[:'state']
157
- end
158
-
159
- if attributes.key?(:'country')
160
- self.country = attributes[:'country']
161
- end
162
-
163
144
  if attributes.key?(:'latitude')
164
145
  self.latitude = attributes[:'latitude']
165
146
  end
@@ -168,24 +149,20 @@ module Repull
168
149
  self.longitude = attributes[:'longitude']
169
150
  end
170
151
 
171
- if attributes.key?(:'bedrooms')
172
- self.bedrooms = attributes[:'bedrooms']
173
- end
174
-
175
- if attributes.key?(:'bathrooms')
176
- self.bathrooms = attributes[:'bathrooms']
152
+ if attributes.key?(:'currency')
153
+ self.currency = attributes[:'currency']
177
154
  end
178
155
 
179
- if attributes.key?(:'max_guests')
180
- self.max_guests = attributes[:'max_guests']
156
+ if attributes.key?(:'status')
157
+ self.status = attributes[:'status']
181
158
  end
182
159
 
183
- if attributes.key?(:'thumbnail')
184
- self.thumbnail = attributes[:'thumbnail']
160
+ if attributes.key?(:'lifecycle_status')
161
+ self.lifecycle_status = attributes[:'lifecycle_status']
185
162
  end
186
163
 
187
- if attributes.key?(:'provider')
188
- self.provider = attributes[:'provider']
164
+ if attributes.key?(:'created_at')
165
+ self.created_at = attributes[:'created_at']
189
166
  end
190
167
 
191
168
  if attributes.key?(:'channels')
@@ -222,19 +199,15 @@ module Repull
222
199
  return true if self.equal?(o)
223
200
  self.class == o.class &&
224
201
  id == o.id &&
225
- external_id == o.external_id &&
226
202
  name == o.name &&
227
203
  address == o.address &&
228
204
  city == o.city &&
229
- state == o.state &&
230
- country == o.country &&
231
205
  latitude == o.latitude &&
232
206
  longitude == o.longitude &&
233
- bedrooms == o.bedrooms &&
234
- bathrooms == o.bathrooms &&
235
- max_guests == o.max_guests &&
236
- thumbnail == o.thumbnail &&
237
- provider == o.provider &&
207
+ currency == o.currency &&
208
+ status == o.status &&
209
+ lifecycle_status == o.lifecycle_status &&
210
+ created_at == o.created_at &&
238
211
  channels == o.channels &&
239
212
  amenities == o.amenities
240
213
  end
@@ -248,7 +221,7 @@ module Repull
248
221
  # Calculates hash code according to all attributes.
249
222
  # @return [Integer] Hash code
250
223
  def hash
251
- [id, external_id, name, address, city, state, country, latitude, longitude, bedrooms, bathrooms, max_guests, thumbnail, provider, channels, amenities].hash
224
+ [id, name, address, city, latitude, longitude, currency, status, lifecycle_status, created_at, channels, amenities].hash
252
225
  end
253
226
 
254
227
  # Builds the object from hash