repull 0.2.8 → 0.2.9

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/lib/repull/api/airbnb_api.rb +116 -129
  3. data/lib/repull/api/billing_api.rb +0 -55
  4. data/lib/repull/api/booking_com_api.rb +19 -118
  5. data/lib/repull/api/listings_api.rb +74 -0
  6. data/lib/repull/api/reservations_api.rb +0 -197
  7. data/lib/repull/api/{availability_api.rb → sandbox_api.rb} +35 -66
  8. data/lib/repull/api/vrbo_api.rb +0 -126
  9. data/lib/repull/models/{create_studio_project_request.rb → airbnb_availability_write_request.rb} +38 -52
  10. data/lib/repull/models/{create_studio_deployment201_response_data.rb → airbnb_calendar_operation.rb} +108 -57
  11. data/lib/repull/models/{update_studio_project_request.rb → airbnb_listing_action_request.rb} +55 -47
  12. data/lib/repull/models/{update_availability_request.rb → airbnb_pricing_write_request.rb} +100 -11
  13. data/lib/repull/models/{update_reservation_request.rb → booking_availability_update.rb} +124 -22
  14. data/lib/repull/models/{list_studio_deployments200_response.rb → booking_availability_update_request.rb} +90 -18
  15. data/lib/repull/models/{generate_studio_completion_request_project_id.rb → booking_availability_update_request_property_id.rb} +2 -2
  16. data/lib/repull/models/{get_studio_deployment200_response.rb → booking_availability_update_request_updates_inner.rb} +74 -117
  17. data/lib/repull/models/booking_pricing_rate_update.rb +1 -0
  18. data/lib/repull/models/booking_pricing_rate_update_restrictions.rb +65 -6
  19. data/lib/repull/models/{get_studio_project200_response.rb → listing_content_update_request.rb} +106 -10
  20. data/lib/repull/models/{upsert_studio_project_file200_response.rb → listing_content_update_request_address.rb} +53 -10
  21. data/lib/repull/models/listing_content_update_request_amenities.rb +105 -0
  22. data/lib/repull/models/{create_studio_deployment_request.rb → listing_content_update_request_amenities_one_of_inner.rb} +51 -20
  23. data/lib/repull/models/{create_studio_project_generation_request.rb → listing_content_update_request_occupancy.rb} +42 -28
  24. data/lib/repull/{api/ai_api.rb → models/listing_content_update_request_photos_inner.rb} +77 -59
  25. data/lib/repull/models/{generate_studio_completion200_response_data.rb → listing_content_update_request_photos_inner_one_of.rb} +81 -66
  26. data/lib/repull/models/{generate_studio_completion200_response.rb → listing_content_update_request_policies.rb} +116 -10
  27. data/lib/repull/models/{delete_studio_project200_response_data.rb → listing_content_update_response.rb} +26 -10
  28. data/lib/repull/models/map_airbnb_listing_request.rb +215 -0
  29. data/lib/repull/models/{create_reservation_request.rb → map_airbnb_listing_response.rb} +137 -116
  30. data/lib/repull/models/property.rb +42 -69
  31. data/lib/repull/models/reservation.rb +28 -1
  32. data/lib/repull/models/{upsert_studio_project_file_request.rb → sandbox_fixture_ref.rb} +48 -20
  33. data/lib/repull/models/{delete_studio_deployment200_response_data.rb → sandbox_reset_result.rb} +72 -11
  34. data/lib/repull/models/sandbox_reset_result_deleted.rb +216 -0
  35. data/lib/repull/models/sandbox_seed_result.rb +278 -0
  36. data/lib/repull/version.rb +1 -1
  37. data/lib/repull.rb +24 -35
  38. data/openapi/v1.json +1167 -2030
  39. metadata +26 -37
  40. data/lib/repull/api/studio_api.rb +0 -1094
  41. data/lib/repull/models/create_ai_operation200_response.rb +0 -156
  42. data/lib/repull/models/create_studio_deployment201_response.rb +0 -147
  43. data/lib/repull/models/create_studio_project201_response.rb +0 -147
  44. data/lib/repull/models/create_studio_project201_response_data.rb +0 -199
  45. data/lib/repull/models/create_studio_project_generation201_response.rb +0 -147
  46. data/lib/repull/models/create_studio_project_generation201_response_data.rb +0 -165
  47. data/lib/repull/models/delete_studio_deployment200_response.rb +0 -147
  48. data/lib/repull/models/delete_studio_project200_response.rb +0 -147
  49. data/lib/repull/models/delete_studio_project_file200_response.rb +0 -147
  50. data/lib/repull/models/delete_studio_project_file200_response_data.rb +0 -156
  51. data/lib/repull/models/generate_studio_completion_request.rb +0 -305
  52. data/lib/repull/models/list_studio_project_files200_response.rb +0 -149
  53. data/lib/repull/models/list_studio_projects200_response.rb +0 -149
  54. data/lib/repull/models/upsert_studio_project_file200_response_data.rb +0 -147
@@ -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
@@ -62,6 +62,9 @@ module Repull
62
62
  # When the reservation row was created in Repull (not the booking-on-channel timestamp).
63
63
  attr_accessor :created_at
64
64
 
65
+ # Last time this reservation was modified (dates, status, price, or guest details). Advances on every amendment or cancellation — poll or compare this value to reconcile changes instead of fingerprinting individual fields.
66
+ attr_accessor :updated_at
67
+
65
68
  # When the booking was made on the source channel (when reported by the channel).
66
69
  attr_accessor :booked_at
67
70
 
@@ -87,6 +90,7 @@ module Repull
87
90
  :'currency' => :'currency',
88
91
  :'guest_details' => :'guestDetails',
89
92
  :'created_at' => :'createdAt',
93
+ :'updated_at' => :'updatedAt',
90
94
  :'booked_at' => :'bookedAt',
91
95
  :'guest_name' => :'guestName'
92
96
  }
@@ -121,6 +125,7 @@ module Repull
121
125
  :'currency' => :'String',
122
126
  :'guest_details' => :'Hash<String, Object>',
123
127
  :'created_at' => :'Time',
128
+ :'updated_at' => :'Time',
124
129
  :'booked_at' => :'Time',
125
130
  :'guest_name' => :'String'
126
131
  }
@@ -232,6 +237,12 @@ module Repull
232
237
  self.created_at = nil
233
238
  end
234
239
 
240
+ if attributes.key?(:'updated_at')
241
+ self.updated_at = attributes[:'updated_at']
242
+ else
243
+ self.updated_at = nil
244
+ end
245
+
235
246
  if attributes.key?(:'booked_at')
236
247
  self.booked_at = attributes[:'booked_at']
237
248
  end
@@ -274,6 +285,10 @@ module Repull
274
285
  invalid_properties.push('invalid value for "created_at", created_at cannot be nil.')
275
286
  end
276
287
 
288
+ if @updated_at.nil?
289
+ invalid_properties.push('invalid value for "updated_at", updated_at cannot be nil.')
290
+ end
291
+
277
292
  invalid_properties
278
293
  end
279
294
 
@@ -288,6 +303,7 @@ module Repull
288
303
  return false if @status.nil?
289
304
  return false if @confirmation_code.nil?
290
305
  return false if @created_at.nil?
306
+ return false if @updated_at.nil?
291
307
  true
292
308
  end
293
309
 
@@ -361,6 +377,16 @@ module Repull
361
377
  @created_at = created_at
362
378
  end
363
379
 
380
+ # Custom attribute writer method with validation
381
+ # @param [Object] updated_at Value to be assigned
382
+ def updated_at=(updated_at)
383
+ if updated_at.nil?
384
+ fail ArgumentError, 'updated_at cannot be nil'
385
+ end
386
+
387
+ @updated_at = updated_at
388
+ end
389
+
364
390
  # Checks equality by comparing each attribute.
365
391
  # @param [Object] Object to be compared
366
392
  def ==(o)
@@ -382,6 +408,7 @@ module Repull
382
408
  currency == o.currency &&
383
409
  guest_details == o.guest_details &&
384
410
  created_at == o.created_at &&
411
+ updated_at == o.updated_at &&
385
412
  booked_at == o.booked_at &&
386
413
  guest_name == o.guest_name
387
414
  end
@@ -395,7 +422,7 @@ module Repull
395
422
  # Calculates hash code according to all attributes.
396
423
  # @return [Integer] Hash code
397
424
  def hash
398
- [id, listing_id, guest_id, check_in, check_out, status, source, platform, confirmation_code, primary_guest, occupancy, financials, total_price, currency, guest_details, created_at, booked_at, guest_name].hash
425
+ [id, listing_id, guest_id, check_in, check_out, status, source, platform, confirmation_code, primary_guest, occupancy, financials, total_price, currency, guest_details, created_at, updated_at, booked_at, guest_name].hash
399
426
  end
400
427
 
401
428
  # Builds the object from hash
@@ -14,14 +14,19 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Repull
17
- class UpsertStudioProjectFileRequest < ApiModelBase
18
- # Full UTF-8 file contents — partial updates are not supported.
19
- attr_accessor :content
17
+ # A seeded fixture: its stable reference key plus the synthetic id the read endpoints return for it.
18
+ class SandboxFixtureRef < ApiModelBase
19
+ # Stable reference key — constant across re-seeds.
20
+ attr_accessor :ref
21
+
22
+ # Synthetic id (>= 900,000,000). Reference it against GET /v1/listings, /v1/reservations, /v1/connect.
23
+ attr_accessor :id
20
24
 
21
25
  # Attribute mapping from ruby-style variable name to JSON key.
22
26
  def self.attribute_map
23
27
  {
24
- :'content' => :'content'
28
+ :'ref' => :'ref',
29
+ :'id' => :'id'
25
30
  }
26
31
  end
27
32
 
@@ -38,7 +43,8 @@ module Repull
38
43
  # Attribute type mapping.
39
44
  def self.openapi_types
40
45
  {
41
- :'content' => :'String'
46
+ :'ref' => :'String',
47
+ :'id' => :'String'
42
48
  }
43
49
  end
44
50
 
@@ -52,22 +58,28 @@ module Repull
52
58
  # @param [Hash] attributes Model attributes in the form of hash
53
59
  def initialize(attributes = {})
54
60
  if (!attributes.is_a?(Hash))
55
- fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::UpsertStudioProjectFileRequest` initialize method"
61
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::SandboxFixtureRef` initialize method"
56
62
  end
57
63
 
58
64
  # check to see if the attribute exists and convert string to symbol for hash key
59
65
  acceptable_attribute_map = self.class.acceptable_attribute_map
60
66
  attributes = attributes.each_with_object({}) { |(k, v), h|
61
67
  if (!acceptable_attribute_map.key?(k.to_sym))
62
- fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::UpsertStudioProjectFileRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
68
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::SandboxFixtureRef`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
63
69
  end
64
70
  h[k.to_sym] = v
65
71
  }
66
72
 
67
- if attributes.key?(:'content')
68
- self.content = attributes[:'content']
73
+ if attributes.key?(:'ref')
74
+ self.ref = attributes[:'ref']
75
+ else
76
+ self.ref = nil
77
+ end
78
+
79
+ if attributes.key?(:'id')
80
+ self.id = attributes[:'id']
69
81
  else
70
- self.content = nil
82
+ self.id = nil
71
83
  end
72
84
  end
73
85
 
@@ -76,8 +88,12 @@ module Repull
76
88
  def list_invalid_properties
77
89
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
78
90
  invalid_properties = Array.new
79
- if @content.nil?
80
- invalid_properties.push('invalid value for "content", content cannot be nil.')
91
+ if @ref.nil?
92
+ invalid_properties.push('invalid value for "ref", ref cannot be nil.')
93
+ end
94
+
95
+ if @id.nil?
96
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
81
97
  end
82
98
 
83
99
  invalid_properties
@@ -87,18 +103,29 @@ module Repull
87
103
  # @return true if the model is valid
88
104
  def valid?
89
105
  warn '[DEPRECATED] the `valid?` method is obsolete'
90
- return false if @content.nil?
106
+ return false if @ref.nil?
107
+ return false if @id.nil?
91
108
  true
92
109
  end
93
110
 
94
111
  # Custom attribute writer method with validation
95
- # @param [Object] content Value to be assigned
96
- def content=(content)
97
- if content.nil?
98
- fail ArgumentError, 'content cannot be nil'
112
+ # @param [Object] ref Value to be assigned
113
+ def ref=(ref)
114
+ if ref.nil?
115
+ fail ArgumentError, 'ref cannot be nil'
116
+ end
117
+
118
+ @ref = ref
119
+ end
120
+
121
+ # Custom attribute writer method with validation
122
+ # @param [Object] id Value to be assigned
123
+ def id=(id)
124
+ if id.nil?
125
+ fail ArgumentError, 'id cannot be nil'
99
126
  end
100
127
 
101
- @content = content
128
+ @id = id
102
129
  end
103
130
 
104
131
  # Checks equality by comparing each attribute.
@@ -106,7 +133,8 @@ module Repull
106
133
  def ==(o)
107
134
  return true if self.equal?(o)
108
135
  self.class == o.class &&
109
- content == o.content
136
+ ref == o.ref &&
137
+ id == o.id
110
138
  end
111
139
 
112
140
  # @see the `==` method
@@ -118,7 +146,7 @@ module Repull
118
146
  # Calculates hash code according to all attributes.
119
147
  # @return [Integer] Hash code
120
148
  def hash
121
- [content].hash
149
+ [ref, id].hash
122
150
  end
123
151
 
124
152
  # Builds the object from hash
@@ -14,15 +14,19 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Repull
17
- class DeleteStudioDeployment200ResponseData < ApiModelBase
18
- attr_accessor :deployment_id
17
+ # Result of clearing the sandbox fixture set. Only ever deletes rows in the isolated sandbox data space.
18
+ class SandboxResetResult < ApiModelBase
19
+ attr_accessor :customer_id
20
+
21
+ attr_accessor :reset_at
19
22
 
20
23
  attr_accessor :deleted
21
24
 
22
25
  # Attribute mapping from ruby-style variable name to JSON key.
23
26
  def self.attribute_map
24
27
  {
25
- :'deployment_id' => :'deployment_id',
28
+ :'customer_id' => :'customerId',
29
+ :'reset_at' => :'resetAt',
26
30
  :'deleted' => :'deleted'
27
31
  }
28
32
  end
@@ -40,8 +44,9 @@ module Repull
40
44
  # Attribute type mapping.
41
45
  def self.openapi_types
42
46
  {
43
- :'deployment_id' => :'String',
44
- :'deleted' => :'Boolean'
47
+ :'customer_id' => :'String',
48
+ :'reset_at' => :'Time',
49
+ :'deleted' => :'SandboxResetResultDeleted'
45
50
  }
46
51
  end
47
52
 
@@ -55,24 +60,34 @@ module Repull
55
60
  # @param [Hash] attributes Model attributes in the form of hash
56
61
  def initialize(attributes = {})
57
62
  if (!attributes.is_a?(Hash))
58
- fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::DeleteStudioDeployment200ResponseData` initialize method"
63
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::SandboxResetResult` initialize method"
59
64
  end
60
65
 
61
66
  # check to see if the attribute exists and convert string to symbol for hash key
62
67
  acceptable_attribute_map = self.class.acceptable_attribute_map
63
68
  attributes = attributes.each_with_object({}) { |(k, v), h|
64
69
  if (!acceptable_attribute_map.key?(k.to_sym))
65
- fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::DeleteStudioDeployment200ResponseData`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
70
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::SandboxResetResult`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
66
71
  end
67
72
  h[k.to_sym] = v
68
73
  }
69
74
 
70
- if attributes.key?(:'deployment_id')
71
- self.deployment_id = attributes[:'deployment_id']
75
+ if attributes.key?(:'customer_id')
76
+ self.customer_id = attributes[:'customer_id']
77
+ else
78
+ self.customer_id = nil
79
+ end
80
+
81
+ if attributes.key?(:'reset_at')
82
+ self.reset_at = attributes[:'reset_at']
83
+ else
84
+ self.reset_at = nil
72
85
  end
73
86
 
74
87
  if attributes.key?(:'deleted')
75
88
  self.deleted = attributes[:'deleted']
89
+ else
90
+ self.deleted = nil
76
91
  end
77
92
  end
78
93
 
@@ -81,6 +96,18 @@ module Repull
81
96
  def list_invalid_properties
82
97
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
83
98
  invalid_properties = Array.new
99
+ if @customer_id.nil?
100
+ invalid_properties.push('invalid value for "customer_id", customer_id cannot be nil.')
101
+ end
102
+
103
+ if @reset_at.nil?
104
+ invalid_properties.push('invalid value for "reset_at", reset_at cannot be nil.')
105
+ end
106
+
107
+ if @deleted.nil?
108
+ invalid_properties.push('invalid value for "deleted", deleted cannot be nil.')
109
+ end
110
+
84
111
  invalid_properties
85
112
  end
86
113
 
@@ -88,15 +115,49 @@ module Repull
88
115
  # @return true if the model is valid
89
116
  def valid?
90
117
  warn '[DEPRECATED] the `valid?` method is obsolete'
118
+ return false if @customer_id.nil?
119
+ return false if @reset_at.nil?
120
+ return false if @deleted.nil?
91
121
  true
92
122
  end
93
123
 
124
+ # Custom attribute writer method with validation
125
+ # @param [Object] customer_id Value to be assigned
126
+ def customer_id=(customer_id)
127
+ if customer_id.nil?
128
+ fail ArgumentError, 'customer_id cannot be nil'
129
+ end
130
+
131
+ @customer_id = customer_id
132
+ end
133
+
134
+ # Custom attribute writer method with validation
135
+ # @param [Object] reset_at Value to be assigned
136
+ def reset_at=(reset_at)
137
+ if reset_at.nil?
138
+ fail ArgumentError, 'reset_at cannot be nil'
139
+ end
140
+
141
+ @reset_at = reset_at
142
+ end
143
+
144
+ # Custom attribute writer method with validation
145
+ # @param [Object] deleted Value to be assigned
146
+ def deleted=(deleted)
147
+ if deleted.nil?
148
+ fail ArgumentError, 'deleted cannot be nil'
149
+ end
150
+
151
+ @deleted = deleted
152
+ end
153
+
94
154
  # Checks equality by comparing each attribute.
95
155
  # @param [Object] Object to be compared
96
156
  def ==(o)
97
157
  return true if self.equal?(o)
98
158
  self.class == o.class &&
99
- deployment_id == o.deployment_id &&
159
+ customer_id == o.customer_id &&
160
+ reset_at == o.reset_at &&
100
161
  deleted == o.deleted
101
162
  end
102
163
 
@@ -109,7 +170,7 @@ module Repull
109
170
  # Calculates hash code according to all attributes.
110
171
  # @return [Integer] Hash code
111
172
  def hash
112
- [deployment_id, deleted].hash
173
+ [customer_id, reset_at, deleted].hash
113
174
  end
114
175
 
115
176
  # Builds the object from hash