algolia 3.0.0.beta.9 → 3.0.0.beta.11

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.
@@ -0,0 +1,328 @@
1
+ # Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
2
+
3
+ require "date"
4
+ require "time"
5
+
6
+ module Algolia
7
+ module Ingestion
8
+ # API request body for creating a task using the V1 shape, please use methods and types that don't contain the V1 suffix.
9
+ class TaskCreateV1
10
+ # Universally uniqud identifier (UUID) of a source.
11
+ attr_accessor :source_id
12
+
13
+ # Universally unique identifier (UUID) of a destination resource.
14
+ attr_accessor :destination_id
15
+
16
+ attr_accessor :trigger
17
+
18
+ attr_accessor :action
19
+
20
+ # Whether the task is enabled.
21
+ attr_accessor :enabled
22
+
23
+ # Maximum accepted percentage of failures for a task run to finish successfully.
24
+ attr_accessor :failure_threshold
25
+
26
+ attr_accessor :input
27
+
28
+ # Date of the last cursor in RFC 3339 format.
29
+ attr_accessor :cursor
30
+
31
+ class EnumAttributeValidator
32
+ attr_reader :datatype
33
+ attr_reader :allowable_values
34
+
35
+ def initialize(datatype, allowable_values)
36
+ @allowable_values = allowable_values.map do |value|
37
+ case datatype.to_s
38
+ when /Integer/i
39
+ value.to_i
40
+ when /Float/i
41
+ value.to_f
42
+ else
43
+ value
44
+ end
45
+ end
46
+ end
47
+
48
+ def valid?(value)
49
+ !value || allowable_values.include?(value)
50
+ end
51
+ end
52
+
53
+ # Attribute mapping from ruby-style variable name to JSON key.
54
+ def self.attribute_map
55
+ {
56
+ :source_id => :sourceID,
57
+ :destination_id => :destinationID,
58
+ :trigger => :trigger,
59
+ :action => :action,
60
+ :enabled => :enabled,
61
+ :failure_threshold => :failureThreshold,
62
+ :input => :input,
63
+ :cursor => :cursor
64
+ }
65
+ end
66
+
67
+ # Returns all the JSON keys this model knows about
68
+ def self.acceptable_attributes
69
+ attribute_map.values
70
+ end
71
+
72
+ # Attribute type mapping.
73
+ def self.types_mapping
74
+ {
75
+ :source_id => :"String",
76
+ :destination_id => :"String",
77
+ :trigger => :"TaskCreateTrigger",
78
+ :action => :"ActionType",
79
+ :enabled => :"Boolean",
80
+ :failure_threshold => :"Integer",
81
+ :input => :"TaskInput",
82
+ :cursor => :"String"
83
+ }
84
+ end
85
+
86
+ # List of attributes with nullable: true
87
+ def self.openapi_nullable
88
+ Set.new(
89
+ []
90
+ )
91
+ end
92
+
93
+ # Initializes the object
94
+ # @param [Hash] attributes Model attributes in the form of hash
95
+ def initialize(attributes = {})
96
+ if (!attributes.is_a?(Hash))
97
+ raise(
98
+ ArgumentError,
99
+ "The input argument (attributes) must be a hash in `Algolia::TaskCreateV1` initialize method"
100
+ )
101
+ end
102
+
103
+ # check to see if the attribute exists and convert string to symbol for hash key
104
+ attributes = attributes.each_with_object({}) { |(k, v), h|
105
+ if (!self.class.attribute_map.key?(k.to_sym))
106
+ raise(
107
+ ArgumentError,
108
+ "`#{k}` is not a valid attribute in `Algolia::TaskCreateV1`. Please check the name to make sure it's valid. List of attributes: " +
109
+ self.class.attribute_map.keys.inspect
110
+ )
111
+ end
112
+
113
+ h[k.to_sym] = v
114
+ }
115
+
116
+ if attributes.key?(:source_id)
117
+ self.source_id = attributes[:source_id]
118
+ else
119
+ self.source_id = nil
120
+ end
121
+
122
+ if attributes.key?(:destination_id)
123
+ self.destination_id = attributes[:destination_id]
124
+ else
125
+ self.destination_id = nil
126
+ end
127
+
128
+ if attributes.key?(:trigger)
129
+ self.trigger = attributes[:trigger]
130
+ else
131
+ self.trigger = nil
132
+ end
133
+
134
+ if attributes.key?(:action)
135
+ self.action = attributes[:action]
136
+ else
137
+ self.action = nil
138
+ end
139
+
140
+ if attributes.key?(:enabled)
141
+ self.enabled = attributes[:enabled]
142
+ end
143
+
144
+ if attributes.key?(:failure_threshold)
145
+ self.failure_threshold = attributes[:failure_threshold]
146
+ end
147
+
148
+ if attributes.key?(:input)
149
+ self.input = attributes[:input]
150
+ end
151
+
152
+ if attributes.key?(:cursor)
153
+ self.cursor = attributes[:cursor]
154
+ end
155
+ end
156
+
157
+ # Custom attribute writer method with validation
158
+ # @param [Object] failure_threshold Value to be assigned
159
+ def failure_threshold=(failure_threshold)
160
+ if failure_threshold.nil?
161
+ raise ArgumentError, "failure_threshold cannot be nil"
162
+ end
163
+
164
+ if failure_threshold > 100
165
+ raise ArgumentError, "invalid value for \"failure_threshold\", must be smaller than or equal to 100."
166
+ end
167
+
168
+ if failure_threshold < 0
169
+ raise ArgumentError, "invalid value for \"failure_threshold\", must be greater than or equal to 0."
170
+ end
171
+
172
+ @failure_threshold = failure_threshold
173
+ end
174
+
175
+ # Checks equality by comparing each attribute.
176
+ # @param [Object] Object to be compared
177
+ def ==(other)
178
+ return true if self.equal?(other)
179
+ self.class == other.class &&
180
+ source_id == other.source_id &&
181
+ destination_id == other.destination_id &&
182
+ trigger == other.trigger &&
183
+ action == other.action &&
184
+ enabled == other.enabled &&
185
+ failure_threshold == other.failure_threshold &&
186
+ input == other.input &&
187
+ cursor == other.cursor
188
+ end
189
+
190
+ # @see the `==` method
191
+ # @param [Object] Object to be compared
192
+ def eql?(other)
193
+ self == other
194
+ end
195
+
196
+ # Calculates hash code according to all attributes.
197
+ # @return [Integer] Hash code
198
+ def hash
199
+ [source_id, destination_id, trigger, action, enabled, failure_threshold, input, cursor].hash
200
+ end
201
+
202
+ # Builds the object from hash
203
+ # @param [Hash] attributes Model attributes in the form of hash
204
+ # @return [Object] Returns the model itself
205
+ def self.build_from_hash(attributes)
206
+ return nil unless attributes.is_a?(Hash)
207
+ attributes = attributes.transform_keys(&:to_sym)
208
+ transformed_hash = {}
209
+ types_mapping.each_pair do |key, type|
210
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
211
+ transformed_hash[key.to_sym] = nil
212
+ elsif type =~ /\AArray<(.*)>/i
213
+ # check to ensure the input is an array given that the attribute
214
+ # is documented as an array but the input is not
215
+ if attributes[attribute_map[key]].is_a?(Array)
216
+ transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
217
+ _deserialize(::Regexp.last_match(1), v)
218
+ }
219
+ end
220
+ elsif !attributes[attribute_map[key]].nil?
221
+ transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
222
+ end
223
+ end
224
+
225
+ new(transformed_hash)
226
+ end
227
+
228
+ # Deserializes the data based on type
229
+ # @param string type Data type
230
+ # @param string value Value to be deserialized
231
+ # @return [Object] Deserialized data
232
+ def self._deserialize(type, value)
233
+ case type.to_sym
234
+ when :Time
235
+ Time.parse(value)
236
+ when :Date
237
+ Date.parse(value)
238
+ when :String
239
+ value.to_s
240
+ when :Integer
241
+ value.to_i
242
+ when :Float
243
+ value.to_f
244
+ when :Boolean
245
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
246
+ true
247
+ else
248
+ false
249
+ end
250
+
251
+ when :Object
252
+ # generic object (usually a Hash), return directly
253
+ value
254
+ when /\AArray<(?<inner_type>.+)>\z/
255
+ inner_type = Regexp.last_match[:inner_type]
256
+ value.map { |v| _deserialize(inner_type, v) }
257
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
258
+ k_type = Regexp.last_match[:k_type]
259
+ v_type = Regexp.last_match[:v_type]
260
+ {}.tap do |hash|
261
+ value.each do |k, v|
262
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
263
+ end
264
+ end
265
+ # model
266
+ else
267
+ # models (e.g. Pet) or oneOf
268
+ klass = Algolia::Ingestion.const_get(type)
269
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
270
+ .build_from_hash(value)
271
+ end
272
+ end
273
+
274
+ # Returns the string representation of the object
275
+ # @return [String] String presentation of the object
276
+ def to_s
277
+ to_hash.to_s
278
+ end
279
+
280
+ # to_body is an alias to to_hash (backward compatibility)
281
+ # @return [Hash] Returns the object in the form of hash
282
+ def to_body
283
+ to_hash
284
+ end
285
+
286
+ def to_json(*_args)
287
+ to_hash.to_json
288
+ end
289
+
290
+ # Returns the object in the form of hash
291
+ # @return [Hash] Returns the object in the form of hash
292
+ def to_hash
293
+ hash = {}
294
+ self.class.attribute_map.each_pair do |attr, param|
295
+ value = send(attr)
296
+ if value.nil?
297
+ is_nullable = self.class.openapi_nullable.include?(attr)
298
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
299
+ end
300
+
301
+ hash[param] = _to_hash(value)
302
+ end
303
+
304
+ hash
305
+ end
306
+
307
+ # Outputs non-array value in the form of hash
308
+ # For object, use to_hash. Otherwise, just return the value
309
+ # @param [Object] value Any valid value
310
+ # @return [Hash] Returns the value in the form of hash
311
+ def _to_hash(value)
312
+ if value.is_a?(Array)
313
+ value.compact.map { |v| _to_hash(v) }
314
+ elsif value.is_a?(Hash)
315
+ {}.tap do |hash|
316
+ value.each { |k, v| hash[k] = _to_hash(v) }
317
+ end
318
+ elsif value.respond_to?(:to_hash)
319
+ value.to_hash
320
+ else
321
+ value
322
+ end
323
+ end
324
+
325
+ end
326
+
327
+ end
328
+ end
@@ -10,7 +10,8 @@ module Algolia
10
10
  # Universally unique identifier (UUID) of a destination resource.
11
11
  attr_accessor :destination_id
12
12
 
13
- attr_accessor :trigger
13
+ # Cron expression for the task's schedule.
14
+ attr_accessor :cron
14
15
 
15
16
  attr_accessor :input
16
17
 
@@ -24,7 +25,7 @@ module Algolia
24
25
  def self.attribute_map
25
26
  {
26
27
  :destination_id => :destinationID,
27
- :trigger => :trigger,
28
+ :cron => :cron,
28
29
  :input => :input,
29
30
  :enabled => :enabled,
30
31
  :failure_threshold => :failureThreshold
@@ -40,7 +41,7 @@ module Algolia
40
41
  def self.types_mapping
41
42
  {
42
43
  :destination_id => :"String",
43
- :trigger => :"TriggerUpdateInput",
44
+ :cron => :"String",
44
45
  :input => :"TaskInput",
45
46
  :enabled => :"Boolean",
46
47
  :failure_threshold => :"Integer"
@@ -81,8 +82,8 @@ module Algolia
81
82
  self.destination_id = attributes[:destination_id]
82
83
  end
83
84
 
84
- if attributes.key?(:trigger)
85
- self.trigger = attributes[:trigger]
85
+ if attributes.key?(:cron)
86
+ self.cron = attributes[:cron]
86
87
  end
87
88
 
88
89
  if attributes.key?(:input)
@@ -122,7 +123,7 @@ module Algolia
122
123
  return true if self.equal?(other)
123
124
  self.class == other.class &&
124
125
  destination_id == other.destination_id &&
125
- trigger == other.trigger &&
126
+ cron == other.cron &&
126
127
  input == other.input &&
127
128
  enabled == other.enabled &&
128
129
  failure_threshold == other.failure_threshold
@@ -137,7 +138,7 @@ module Algolia
137
138
  # Calculates hash code according to all attributes.
138
139
  # @return [Integer] Hash code
139
140
  def hash
140
- [destination_id, trigger, input, enabled, failure_threshold].hash
141
+ [destination_id, cron, input, enabled, failure_threshold].hash
141
142
  end
142
143
 
143
144
  # Builds the object from hash
@@ -0,0 +1,269 @@
1
+ # Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
2
+
3
+ require "date"
4
+ require "time"
5
+
6
+ module Algolia
7
+ module Ingestion
8
+ # API request body for updating a task using the V1 shape, please use methods and types that don't contain the V1 suffix.
9
+ class TaskUpdateV1
10
+ # Universally unique identifier (UUID) of a destination resource.
11
+ attr_accessor :destination_id
12
+
13
+ attr_accessor :trigger
14
+
15
+ attr_accessor :input
16
+
17
+ # Whether the task is enabled.
18
+ attr_accessor :enabled
19
+
20
+ # Maximum accepted percentage of failures for a task run to finish successfully.
21
+ attr_accessor :failure_threshold
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :destination_id => :destinationID,
27
+ :trigger => :trigger,
28
+ :input => :input,
29
+ :enabled => :enabled,
30
+ :failure_threshold => :failureThreshold
31
+ }
32
+ end
33
+
34
+ # Returns all the JSON keys this model knows about
35
+ def self.acceptable_attributes
36
+ attribute_map.values
37
+ end
38
+
39
+ # Attribute type mapping.
40
+ def self.types_mapping
41
+ {
42
+ :destination_id => :"String",
43
+ :trigger => :"TriggerUpdateInput",
44
+ :input => :"TaskInput",
45
+ :enabled => :"Boolean",
46
+ :failure_threshold => :"Integer"
47
+ }
48
+ end
49
+
50
+ # List of attributes with nullable: true
51
+ def self.openapi_nullable
52
+ Set.new(
53
+ []
54
+ )
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ if (!attributes.is_a?(Hash))
61
+ raise(
62
+ ArgumentError,
63
+ "The input argument (attributes) must be a hash in `Algolia::TaskUpdateV1` initialize method"
64
+ )
65
+ end
66
+
67
+ # check to see if the attribute exists and convert string to symbol for hash key
68
+ attributes = attributes.each_with_object({}) { |(k, v), h|
69
+ if (!self.class.attribute_map.key?(k.to_sym))
70
+ raise(
71
+ ArgumentError,
72
+ "`#{k}` is not a valid attribute in `Algolia::TaskUpdateV1`. Please check the name to make sure it's valid. List of attributes: " +
73
+ self.class.attribute_map.keys.inspect
74
+ )
75
+ end
76
+
77
+ h[k.to_sym] = v
78
+ }
79
+
80
+ if attributes.key?(:destination_id)
81
+ self.destination_id = attributes[:destination_id]
82
+ end
83
+
84
+ if attributes.key?(:trigger)
85
+ self.trigger = attributes[:trigger]
86
+ end
87
+
88
+ if attributes.key?(:input)
89
+ self.input = attributes[:input]
90
+ end
91
+
92
+ if attributes.key?(:enabled)
93
+ self.enabled = attributes[:enabled]
94
+ end
95
+
96
+ if attributes.key?(:failure_threshold)
97
+ self.failure_threshold = attributes[:failure_threshold]
98
+ end
99
+ end
100
+
101
+ # Custom attribute writer method with validation
102
+ # @param [Object] failure_threshold Value to be assigned
103
+ def failure_threshold=(failure_threshold)
104
+ if failure_threshold.nil?
105
+ raise ArgumentError, "failure_threshold cannot be nil"
106
+ end
107
+
108
+ if failure_threshold > 100
109
+ raise ArgumentError, "invalid value for \"failure_threshold\", must be smaller than or equal to 100."
110
+ end
111
+
112
+ if failure_threshold < 0
113
+ raise ArgumentError, "invalid value for \"failure_threshold\", must be greater than or equal to 0."
114
+ end
115
+
116
+ @failure_threshold = failure_threshold
117
+ end
118
+
119
+ # Checks equality by comparing each attribute.
120
+ # @param [Object] Object to be compared
121
+ def ==(other)
122
+ return true if self.equal?(other)
123
+ self.class == other.class &&
124
+ destination_id == other.destination_id &&
125
+ trigger == other.trigger &&
126
+ input == other.input &&
127
+ enabled == other.enabled &&
128
+ failure_threshold == other.failure_threshold
129
+ end
130
+
131
+ # @see the `==` method
132
+ # @param [Object] Object to be compared
133
+ def eql?(other)
134
+ self == other
135
+ end
136
+
137
+ # Calculates hash code according to all attributes.
138
+ # @return [Integer] Hash code
139
+ def hash
140
+ [destination_id, trigger, input, enabled, failure_threshold].hash
141
+ end
142
+
143
+ # Builds the object from hash
144
+ # @param [Hash] attributes Model attributes in the form of hash
145
+ # @return [Object] Returns the model itself
146
+ def self.build_from_hash(attributes)
147
+ return nil unless attributes.is_a?(Hash)
148
+ attributes = attributes.transform_keys(&:to_sym)
149
+ transformed_hash = {}
150
+ types_mapping.each_pair do |key, type|
151
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
152
+ transformed_hash[key.to_sym] = nil
153
+ elsif type =~ /\AArray<(.*)>/i
154
+ # check to ensure the input is an array given that the attribute
155
+ # is documented as an array but the input is not
156
+ if attributes[attribute_map[key]].is_a?(Array)
157
+ transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
158
+ _deserialize(::Regexp.last_match(1), v)
159
+ }
160
+ end
161
+ elsif !attributes[attribute_map[key]].nil?
162
+ transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
163
+ end
164
+ end
165
+
166
+ new(transformed_hash)
167
+ end
168
+
169
+ # Deserializes the data based on type
170
+ # @param string type Data type
171
+ # @param string value Value to be deserialized
172
+ # @return [Object] Deserialized data
173
+ def self._deserialize(type, value)
174
+ case type.to_sym
175
+ when :Time
176
+ Time.parse(value)
177
+ when :Date
178
+ Date.parse(value)
179
+ when :String
180
+ value.to_s
181
+ when :Integer
182
+ value.to_i
183
+ when :Float
184
+ value.to_f
185
+ when :Boolean
186
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
187
+ true
188
+ else
189
+ false
190
+ end
191
+
192
+ when :Object
193
+ # generic object (usually a Hash), return directly
194
+ value
195
+ when /\AArray<(?<inner_type>.+)>\z/
196
+ inner_type = Regexp.last_match[:inner_type]
197
+ value.map { |v| _deserialize(inner_type, v) }
198
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
199
+ k_type = Regexp.last_match[:k_type]
200
+ v_type = Regexp.last_match[:v_type]
201
+ {}.tap do |hash|
202
+ value.each do |k, v|
203
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
204
+ end
205
+ end
206
+ # model
207
+ else
208
+ # models (e.g. Pet) or oneOf
209
+ klass = Algolia::Ingestion.const_get(type)
210
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
211
+ .build_from_hash(value)
212
+ end
213
+ end
214
+
215
+ # Returns the string representation of the object
216
+ # @return [String] String presentation of the object
217
+ def to_s
218
+ to_hash.to_s
219
+ end
220
+
221
+ # to_body is an alias to to_hash (backward compatibility)
222
+ # @return [Hash] Returns the object in the form of hash
223
+ def to_body
224
+ to_hash
225
+ end
226
+
227
+ def to_json(*_args)
228
+ to_hash.to_json
229
+ end
230
+
231
+ # Returns the object in the form of hash
232
+ # @return [Hash] Returns the object in the form of hash
233
+ def to_hash
234
+ hash = {}
235
+ self.class.attribute_map.each_pair do |attr, param|
236
+ value = send(attr)
237
+ if value.nil?
238
+ is_nullable = self.class.openapi_nullable.include?(attr)
239
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
240
+ end
241
+
242
+ hash[param] = _to_hash(value)
243
+ end
244
+
245
+ hash
246
+ end
247
+
248
+ # Outputs non-array value in the form of hash
249
+ # For object, use to_hash. Otherwise, just return the value
250
+ # @param [Object] value Any valid value
251
+ # @return [Hash] Returns the value in the form of hash
252
+ def _to_hash(value)
253
+ if value.is_a?(Array)
254
+ value.compact.map { |v| _to_hash(v) }
255
+ elsif value.is_a?(Hash)
256
+ {}.tap do |hash|
257
+ value.each { |k, v| hash[k] = _to_hash(v) }
258
+ end
259
+ elsif value.respond_to?(:to_hash)
260
+ value.to_hash
261
+ else
262
+ value
263
+ end
264
+ end
265
+
266
+ end
267
+
268
+ end
269
+ end