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,22 +14,22 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Repull
17
- class CreateStudioProjectRequest < ApiModelBase
18
- # Human-readable project name. Used to derive the slug.
19
- attr_accessor :name
17
+ # Body for `PUT /v1/channels/airbnb/listings/{id}/availability`. `type: \"calendar\"` carries per-date restrictions (min/max nights, closed-to-arrival/departure, stop-sell); `type: \"rules\"` carries listing-level availability rules (default min/max nights, booking lead time, turnover days).
18
+ class AirbnbAvailabilityWriteRequest < ApiModelBase
19
+ attr_accessor :type
20
20
 
21
- # Initial prompt that seeds the project. Repull AI scaffolds the first generation from this.
22
- attr_accessor :prompt
21
+ # Required when `type: \"calendar\"`. Batch of per-date restriction operations.
22
+ attr_accessor :operations
23
23
 
24
- # Optional template to start from (e.g. `next-saas`). Omit to generate from prompt only.
25
- attr_accessor :template_id
24
+ # Required when `type: \"rules\"`. Airbnb availability-rules object — `default_min_nights`, `default_max_nights`, `booking_lead_time`, `turnover_days`, `day_of_week_min_nights`, `seasonal_min_nights`, etc.
25
+ attr_accessor :rules
26
26
 
27
27
  # Attribute mapping from ruby-style variable name to JSON key.
28
28
  def self.attribute_map
29
29
  {
30
- :'name' => :'name',
31
- :'prompt' => :'prompt',
32
- :'template_id' => :'template_id'
30
+ :'type' => :'type',
31
+ :'operations' => :'operations',
32
+ :'rules' => :'rules'
33
33
  }
34
34
  end
35
35
 
@@ -46,16 +46,15 @@ module Repull
46
46
  # Attribute type mapping.
47
47
  def self.openapi_types
48
48
  {
49
- :'name' => :'String',
50
- :'prompt' => :'String',
51
- :'template_id' => :'String'
49
+ :'type' => :'String',
50
+ :'operations' => :'Array<AirbnbCalendarOperation>',
51
+ :'rules' => :'Hash<String, Object>'
52
52
  }
53
53
  end
54
54
 
55
55
  # List of attributes with nullable: true
56
56
  def self.openapi_nullable
57
57
  Set.new([
58
- :'template_id'
59
58
  ])
60
59
  end
61
60
 
@@ -63,32 +62,34 @@ module Repull
63
62
  # @param [Hash] attributes Model attributes in the form of hash
64
63
  def initialize(attributes = {})
65
64
  if (!attributes.is_a?(Hash))
66
- fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::CreateStudioProjectRequest` initialize method"
65
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::AirbnbAvailabilityWriteRequest` initialize method"
67
66
  end
68
67
 
69
68
  # check to see if the attribute exists and convert string to symbol for hash key
70
69
  acceptable_attribute_map = self.class.acceptable_attribute_map
71
70
  attributes = attributes.each_with_object({}) { |(k, v), h|
72
71
  if (!acceptable_attribute_map.key?(k.to_sym))
73
- fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::CreateStudioProjectRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
72
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::AirbnbAvailabilityWriteRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
74
73
  end
75
74
  h[k.to_sym] = v
76
75
  }
77
76
 
78
- if attributes.key?(:'name')
79
- self.name = attributes[:'name']
77
+ if attributes.key?(:'type')
78
+ self.type = attributes[:'type']
80
79
  else
81
- self.name = nil
80
+ self.type = nil
82
81
  end
83
82
 
84
- if attributes.key?(:'prompt')
85
- self.prompt = attributes[:'prompt']
86
- else
87
- self.prompt = nil
83
+ if attributes.key?(:'operations')
84
+ if (value = attributes[:'operations']).is_a?(Array)
85
+ self.operations = value
86
+ end
88
87
  end
89
88
 
90
- if attributes.key?(:'template_id')
91
- self.template_id = attributes[:'template_id']
89
+ if attributes.key?(:'rules')
90
+ if (value = attributes[:'rules']).is_a?(Hash)
91
+ self.rules = value
92
+ end
92
93
  end
93
94
  end
94
95
 
@@ -97,12 +98,8 @@ module Repull
97
98
  def list_invalid_properties
98
99
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
99
100
  invalid_properties = Array.new
100
- if @name.nil?
101
- invalid_properties.push('invalid value for "name", name cannot be nil.')
102
- end
103
-
104
- if @prompt.nil?
105
- invalid_properties.push('invalid value for "prompt", prompt cannot be nil.')
101
+ if @type.nil?
102
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
106
103
  end
107
104
 
108
105
  invalid_properties
@@ -112,29 +109,18 @@ module Repull
112
109
  # @return true if the model is valid
113
110
  def valid?
114
111
  warn '[DEPRECATED] the `valid?` method is obsolete'
115
- return false if @name.nil?
116
- return false if @prompt.nil?
112
+ return false if @type.nil?
117
113
  true
118
114
  end
119
115
 
120
116
  # Custom attribute writer method with validation
121
- # @param [Object] name Value to be assigned
122
- def name=(name)
123
- if name.nil?
124
- fail ArgumentError, 'name cannot be nil'
125
- end
126
-
127
- @name = name
128
- end
129
-
130
- # Custom attribute writer method with validation
131
- # @param [Object] prompt Value to be assigned
132
- def prompt=(prompt)
133
- if prompt.nil?
134
- fail ArgumentError, 'prompt cannot be nil'
117
+ # @param [Object] type Value to be assigned
118
+ def type=(type)
119
+ if type.nil?
120
+ fail ArgumentError, 'type cannot be nil'
135
121
  end
136
122
 
137
- @prompt = prompt
123
+ @type = type
138
124
  end
139
125
 
140
126
  # Checks equality by comparing each attribute.
@@ -142,9 +128,9 @@ module Repull
142
128
  def ==(o)
143
129
  return true if self.equal?(o)
144
130
  self.class == o.class &&
145
- name == o.name &&
146
- prompt == o.prompt &&
147
- template_id == o.template_id
131
+ type == o.type &&
132
+ operations == o.operations &&
133
+ rules == o.rules
148
134
  end
149
135
 
150
136
  # @see the `==` method
@@ -156,7 +142,7 @@ module Repull
156
142
  # Calculates hash code according to all attributes.
157
143
  # @return [Integer] Hash code
158
144
  def hash
159
- [name, prompt, template_id].hash
145
+ [type, operations, rules].hash
160
146
  end
161
147
 
162
148
  # Builds the object from hash
@@ -14,41 +14,50 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Repull
17
- class CreateStudioDeployment201ResponseData < ApiModelBase
18
- attr_accessor :deployment_id
19
-
20
- attr_accessor :subdomain
21
-
22
- attr_accessor :status
23
-
24
- class EnumAttributeValidator
25
- attr_reader :datatype
26
- attr_reader :allowable_values
27
-
28
- def initialize(datatype, allowable_values)
29
- @allowable_values = allowable_values.map do |value|
30
- case datatype.to_s
31
- when /Integer/i
32
- value.to_i
33
- when /Float/i
34
- value.to_f
35
- else
36
- value
37
- end
38
- end
39
- end
17
+ # One calendar operation. Supply either `start_date` + `end_date` OR a `dates` array. Every restriction here is forwarded verbatim to Airbnb's batch calendar API.
18
+ class AirbnbCalendarOperation < ApiModelBase
19
+ # Inclusive range start (pair with `end_date`).
20
+ attr_accessor :start_date
40
21
 
41
- def valid?(value)
42
- !value || allowable_values.include?(value)
43
- end
44
- end
22
+ # Inclusive range end (pair with `start_date`).
23
+ attr_accessor :end_date
24
+
25
+ # Explicit date or `start:end` range strings, as an alternative to `start_date`/`end_date`.
26
+ attr_accessor :dates
27
+
28
+ # Nightly price override.
29
+ attr_accessor :daily_price
30
+
31
+ # Stop-sell is expressed here: `unavailable` blocks the date(s); `available` re-opens; `default` reverts to rule-based availability.
32
+ attr_accessor :availability
33
+
34
+ # Minimum length of stay for the date(s).
35
+ attr_accessor :min_nights
36
+
37
+ # Maximum length of stay for the date(s).
38
+ attr_accessor :max_nights
39
+
40
+ # Closed-to-arrival — no check-ins on the affected date(s).
41
+ attr_accessor :closed_to_arrival
42
+
43
+ # Closed-to-departure — no check-outs on the affected date(s).
44
+ attr_accessor :closed_to_departure
45
+
46
+ attr_accessor :notes
45
47
 
46
48
  # Attribute mapping from ruby-style variable name to JSON key.
47
49
  def self.attribute_map
48
50
  {
49
- :'deployment_id' => :'deployment_id',
50
- :'subdomain' => :'subdomain',
51
- :'status' => :'status'
51
+ :'start_date' => :'start_date',
52
+ :'end_date' => :'end_date',
53
+ :'dates' => :'dates',
54
+ :'daily_price' => :'daily_price',
55
+ :'availability' => :'availability',
56
+ :'min_nights' => :'min_nights',
57
+ :'max_nights' => :'max_nights',
58
+ :'closed_to_arrival' => :'closed_to_arrival',
59
+ :'closed_to_departure' => :'closed_to_departure',
60
+ :'notes' => :'notes'
52
61
  }
53
62
  end
54
63
 
@@ -65,15 +74,32 @@ module Repull
65
74
  # Attribute type mapping.
66
75
  def self.openapi_types
67
76
  {
68
- :'deployment_id' => :'String',
69
- :'subdomain' => :'String',
70
- :'status' => :'String'
77
+ :'start_date' => :'Date',
78
+ :'end_date' => :'Date',
79
+ :'dates' => :'Array<String>',
80
+ :'daily_price' => :'Float',
81
+ :'availability' => :'String',
82
+ :'min_nights' => :'Integer',
83
+ :'max_nights' => :'Integer',
84
+ :'closed_to_arrival' => :'Boolean',
85
+ :'closed_to_departure' => :'Boolean',
86
+ :'notes' => :'String'
71
87
  }
72
88
  end
73
89
 
74
90
  # List of attributes with nullable: true
75
91
  def self.openapi_nullable
76
92
  Set.new([
93
+ :'start_date',
94
+ :'end_date',
95
+ :'dates',
96
+ :'daily_price',
97
+ :'availability',
98
+ :'min_nights',
99
+ :'max_nights',
100
+ :'closed_to_arrival',
101
+ :'closed_to_departure',
102
+ :'notes'
77
103
  ])
78
104
  end
79
105
 
@@ -81,28 +107,58 @@ module Repull
81
107
  # @param [Hash] attributes Model attributes in the form of hash
82
108
  def initialize(attributes = {})
83
109
  if (!attributes.is_a?(Hash))
84
- fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::CreateStudioDeployment201ResponseData` initialize method"
110
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::AirbnbCalendarOperation` initialize method"
85
111
  end
86
112
 
87
113
  # check to see if the attribute exists and convert string to symbol for hash key
88
114
  acceptable_attribute_map = self.class.acceptable_attribute_map
89
115
  attributes = attributes.each_with_object({}) { |(k, v), h|
90
116
  if (!acceptable_attribute_map.key?(k.to_sym))
91
- fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::CreateStudioDeployment201ResponseData`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
117
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::AirbnbCalendarOperation`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
92
118
  end
93
119
  h[k.to_sym] = v
94
120
  }
95
121
 
96
- if attributes.key?(:'deployment_id')
97
- self.deployment_id = attributes[:'deployment_id']
122
+ if attributes.key?(:'start_date')
123
+ self.start_date = attributes[:'start_date']
124
+ end
125
+
126
+ if attributes.key?(:'end_date')
127
+ self.end_date = attributes[:'end_date']
98
128
  end
99
129
 
100
- if attributes.key?(:'subdomain')
101
- self.subdomain = attributes[:'subdomain']
130
+ if attributes.key?(:'dates')
131
+ if (value = attributes[:'dates']).is_a?(Array)
132
+ self.dates = value
133
+ end
102
134
  end
103
135
 
104
- if attributes.key?(:'status')
105
- self.status = attributes[:'status']
136
+ if attributes.key?(:'daily_price')
137
+ self.daily_price = attributes[:'daily_price']
138
+ end
139
+
140
+ if attributes.key?(:'availability')
141
+ self.availability = attributes[:'availability']
142
+ end
143
+
144
+ if attributes.key?(:'min_nights')
145
+ self.min_nights = attributes[:'min_nights']
146
+ end
147
+
148
+ if attributes.key?(:'max_nights')
149
+ self.max_nights = attributes[:'max_nights']
150
+ end
151
+
152
+ if attributes.key?(:'closed_to_arrival')
153
+ self.closed_to_arrival = attributes[:'closed_to_arrival']
154
+ end
155
+
156
+ if attributes.key?(:'closed_to_departure')
157
+ self.closed_to_departure = attributes[:'closed_to_departure']
158
+ end
159
+
160
+ if attributes.key?(:'notes')
161
+ self.notes = attributes[:'notes']
106
162
  end
107
163
  end
108
164
 
@@ -118,29 +174,24 @@ module Repull
118
174
  # @return true if the model is valid
119
175
  def valid?
120
176
  warn '[DEPRECATED] the `valid?` method is obsolete'
121
- status_validator = EnumAttributeValidator.new('String', ["provisioning"])
122
- return false unless status_validator.valid?(@status)
123
177
  true
124
178
  end
125
179
 
126
- # Custom attribute writer method checking allowed values (enum).
127
- # @param [Object] status Object to be assigned
128
- def status=(status)
129
- validator = EnumAttributeValidator.new('String', ["provisioning"])
130
- unless validator.valid?(status)
131
- fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
132
- end
133
- @status = status
134
- end
135
-
136
180
  # Checks equality by comparing each attribute.
137
181
  # @param [Object] Object to be compared
138
182
  def ==(o)
139
183
  return true if self.equal?(o)
140
184
  self.class == o.class &&
141
- deployment_id == o.deployment_id &&
142
- subdomain == o.subdomain &&
143
- status == o.status
185
+ start_date == o.start_date &&
186
+ end_date == o.end_date &&
187
+ dates == o.dates &&
188
+ daily_price == o.daily_price &&
189
+ availability == o.availability &&
190
+ min_nights == o.min_nights &&
191
+ max_nights == o.max_nights &&
192
+ closed_to_arrival == o.closed_to_arrival &&
193
+ closed_to_departure == o.closed_to_departure &&
194
+ notes == o.notes
144
195
  end
145
196
 
146
197
  # @see the `==` method
@@ -152,7 +203,7 @@ module Repull
152
203
  # Calculates hash code according to all attributes.
153
204
  # @return [Integer] Hash code
154
205
  def hash
155
- [deployment_id, subdomain, status].hash
206
+ [start_date, end_date, dates, daily_price, availability, min_nights, max_nights, closed_to_arrival, closed_to_departure, notes].hash
156
207
  end
157
208
 
158
209
  # Builds the object from hash
@@ -14,38 +14,27 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Repull
17
- class UpdateStudioProjectRequest < ApiModelBase
18
- attr_accessor :name
19
-
20
- attr_accessor :status
21
-
22
- class EnumAttributeValidator
23
- attr_reader :datatype
24
- attr_reader :allowable_values
25
-
26
- def initialize(datatype, allowable_values)
27
- @allowable_values = allowable_values.map do |value|
28
- case datatype.to_s
29
- when /Integer/i
30
- value.to_i
31
- when /Float/i
32
- value.to_f
33
- else
34
- value
35
- end
36
- end
37
- end
17
+ # Body for `POST /v1/channels/airbnb/listings/{id}`.
18
+ class AirbnbListingActionRequest < ApiModelBase
19
+ # `delete` deactivates the Repull record. `push`/`publish` push content to Airbnb.
20
+ attr_accessor :action
38
21
 
39
- def valid?(value)
40
- !value || allowable_values.include?(value)
41
- end
42
- end
22
+ # For `push`/`publish`: the Airbnb connection to update (from `GET /v1/channels/airbnb/listings/{id}`). Pass this OR `hostId`.
23
+ attr_accessor :airbnb_connection_id
24
+
25
+ # For `push`/`publish`: create + publish a new Airbnb listing under this host. Pass this OR `airbnbConnectionId`.
26
+ attr_accessor :host_id
27
+
28
+ # For `push`/`publish`: re-push every field, ignoring dirty-field tracking.
29
+ attr_accessor :force
43
30
 
44
31
  # Attribute mapping from ruby-style variable name to JSON key.
45
32
  def self.attribute_map
46
33
  {
47
- :'name' => :'name',
48
- :'status' => :'status'
34
+ :'action' => :'action',
35
+ :'airbnb_connection_id' => :'airbnbConnectionId',
36
+ :'host_id' => :'hostId',
37
+ :'force' => :'force'
49
38
  }
50
39
  end
51
40
 
@@ -62,8 +51,10 @@ module Repull
62
51
  # Attribute type mapping.
63
52
  def self.openapi_types
64
53
  {
65
- :'name' => :'String',
66
- :'status' => :'String'
54
+ :'action' => :'String',
55
+ :'airbnb_connection_id' => :'String',
56
+ :'host_id' => :'String',
57
+ :'force' => :'Boolean'
67
58
  }
68
59
  end
69
60
 
@@ -77,24 +68,36 @@ module Repull
77
68
  # @param [Hash] attributes Model attributes in the form of hash
78
69
  def initialize(attributes = {})
79
70
  if (!attributes.is_a?(Hash))
80
- fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::UpdateStudioProjectRequest` initialize method"
71
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Repull::AirbnbListingActionRequest` initialize method"
81
72
  end
82
73
 
83
74
  # check to see if the attribute exists and convert string to symbol for hash key
84
75
  acceptable_attribute_map = self.class.acceptable_attribute_map
85
76
  attributes = attributes.each_with_object({}) { |(k, v), h|
86
77
  if (!acceptable_attribute_map.key?(k.to_sym))
87
- fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::UpdateStudioProjectRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
78
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Repull::AirbnbListingActionRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
88
79
  end
89
80
  h[k.to_sym] = v
90
81
  }
91
82
 
92
- if attributes.key?(:'name')
93
- self.name = attributes[:'name']
83
+ if attributes.key?(:'action')
84
+ self.action = attributes[:'action']
85
+ else
86
+ self.action = nil
94
87
  end
95
88
 
96
- if attributes.key?(:'status')
97
- self.status = attributes[:'status']
89
+ if attributes.key?(:'airbnb_connection_id')
90
+ self.airbnb_connection_id = attributes[:'airbnb_connection_id']
91
+ end
92
+
93
+ if attributes.key?(:'host_id')
94
+ self.host_id = attributes[:'host_id']
95
+ end
96
+
97
+ if attributes.key?(:'force')
98
+ self.force = attributes[:'force']
99
+ else
100
+ self.force = false
98
101
  end
99
102
  end
100
103
 
@@ -103,6 +106,10 @@ module Repull
103
106
  def list_invalid_properties
104
107
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
105
108
  invalid_properties = Array.new
109
+ if @action.nil?
110
+ invalid_properties.push('invalid value for "action", action cannot be nil.')
111
+ end
112
+
106
113
  invalid_properties
107
114
  end
108
115
 
@@ -110,19 +117,18 @@ module Repull
110
117
  # @return true if the model is valid
111
118
  def valid?
112
119
  warn '[DEPRECATED] the `valid?` method is obsolete'
113
- status_validator = EnumAttributeValidator.new('String', ["draft", "building", "live", "archived"])
114
- return false unless status_validator.valid?(@status)
120
+ return false if @action.nil?
115
121
  true
116
122
  end
117
123
 
118
- # Custom attribute writer method checking allowed values (enum).
119
- # @param [Object] status Object to be assigned
120
- def status=(status)
121
- validator = EnumAttributeValidator.new('String', ["draft", "building", "live", "archived"])
122
- unless validator.valid?(status)
123
- fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
124
+ # Custom attribute writer method with validation
125
+ # @param [Object] action Value to be assigned
126
+ def action=(action)
127
+ if action.nil?
128
+ fail ArgumentError, 'action cannot be nil'
124
129
  end
125
- @status = status
130
+
131
+ @action = action
126
132
  end
127
133
 
128
134
  # Checks equality by comparing each attribute.
@@ -130,8 +136,10 @@ module Repull
130
136
  def ==(o)
131
137
  return true if self.equal?(o)
132
138
  self.class == o.class &&
133
- name == o.name &&
134
- status == o.status
139
+ action == o.action &&
140
+ airbnb_connection_id == o.airbnb_connection_id &&
141
+ host_id == o.host_id &&
142
+ force == o.force
135
143
  end
136
144
 
137
145
  # @see the `==` method
@@ -143,7 +151,7 @@ module Repull
143
151
  # Calculates hash code according to all attributes.
144
152
  # @return [Integer] Hash code
145
153
  def hash
146
- [name, status].hash
154
+ [action, airbnb_connection_id, host_id, force].hash
147
155
  end
148
156
 
149
157
  # Builds the object from hash