ilovevideoeditor-sdk 1.0.0 → 1.0.2

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,417 @@
1
+ =begin
2
+ #iLoveVideoEditor API
3
+
4
+ #Cloud video rendering API for iLoveVideoEditor. Submit a `VideoJSON` payload, queue a render job, and download the resulting MP4. **Authentication** - **API Key** (`x-api-key` header) — accepted by render pipeline and tool endpoints. - **Bearer Token** (`Authorization: Bearer <jwt>`) — required for user-scoped project, asset, billing, and webhook endpoints. - Many endpoints accept either form of authentication. **SDKs** Official typed SDKs are available for JavaScript/TypeScript, PHP, Python, Ruby, and Go. See https://ilovevideoeditor.com/docs/sdks **Outbound Webhooks** Render lifecycle events (`render.completed`, `render.failed`) are delivered to your endpoints as signed HTTP POST requests. See the `Webhooks` tag and the root-level `x-webhook-docs` extension for the payload format (`RenderWebhookPayload`), signature headers, HMAC verification, and the retry policy.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.22.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module ILoveVideoEditor
17
+ class WorkflowPreset < ApiModelBase
18
+ attr_accessor :id
19
+
20
+ attr_accessor :name
21
+
22
+ attr_accessor :description
23
+
24
+ attr_accessor :category
25
+
26
+ # Onboarding roles this preset is recommended for.
27
+ attr_accessor :roles
28
+
29
+ # Onboarding goals this preset is recommended for.
30
+ attr_accessor :goals
31
+
32
+ # Onboarding channels this preset is recommended for.
33
+ attr_accessor :channels
34
+
35
+ # Toolkit template id whose poster image represents this preset.
36
+ attr_accessor :poster_template_id
37
+
38
+ # Approximate credits consumed per run.
39
+ attr_accessor :estimated_credits
40
+
41
+ attr_accessor :definition
42
+
43
+ class EnumAttributeValidator
44
+ attr_reader :datatype
45
+ attr_reader :allowable_values
46
+
47
+ def initialize(datatype, allowable_values)
48
+ @allowable_values = allowable_values.map do |value|
49
+ case datatype.to_s
50
+ when /Integer/i
51
+ value.to_i
52
+ when /Float/i
53
+ value.to_f
54
+ else
55
+ value
56
+ end
57
+ end
58
+ end
59
+
60
+ def valid?(value)
61
+ !value || allowable_values.include?(value)
62
+ end
63
+ end
64
+
65
+ # Attribute mapping from ruby-style variable name to JSON key.
66
+ def self.attribute_map
67
+ {
68
+ :'id' => :'id',
69
+ :'name' => :'name',
70
+ :'description' => :'description',
71
+ :'category' => :'category',
72
+ :'roles' => :'roles',
73
+ :'goals' => :'goals',
74
+ :'channels' => :'channels',
75
+ :'poster_template_id' => :'posterTemplateId',
76
+ :'estimated_credits' => :'estimatedCredits',
77
+ :'definition' => :'definition'
78
+ }
79
+ end
80
+
81
+ # Returns attribute mapping this model knows about
82
+ def self.acceptable_attribute_map
83
+ attribute_map
84
+ end
85
+
86
+ # Returns all the JSON keys this model knows about
87
+ def self.acceptable_attributes
88
+ acceptable_attribute_map.values
89
+ end
90
+
91
+ # Attribute type mapping.
92
+ def self.openapi_types
93
+ {
94
+ :'id' => :'String',
95
+ :'name' => :'String',
96
+ :'description' => :'String',
97
+ :'category' => :'String',
98
+ :'roles' => :'Array<String>',
99
+ :'goals' => :'Array<String>',
100
+ :'channels' => :'Array<String>',
101
+ :'poster_template_id' => :'String',
102
+ :'estimated_credits' => :'Integer',
103
+ :'definition' => :'WorkflowDefinition'
104
+ }
105
+ end
106
+
107
+ # List of attributes with nullable: true
108
+ def self.openapi_nullable
109
+ Set.new([
110
+ :'poster_template_id',
111
+ ])
112
+ end
113
+
114
+ # Initializes the object
115
+ # @param [Hash] attributes Model attributes in the form of hash
116
+ def initialize(attributes = {})
117
+ if (!attributes.is_a?(Hash))
118
+ fail ArgumentError, "The input argument (attributes) must be a hash in `ILoveVideoEditor::WorkflowPreset` initialize method"
119
+ end
120
+
121
+ # check to see if the attribute exists and convert string to symbol for hash key
122
+ acceptable_attribute_map = self.class.acceptable_attribute_map
123
+ attributes = attributes.each_with_object({}) { |(k, v), h|
124
+ if (!acceptable_attribute_map.key?(k.to_sym))
125
+ fail ArgumentError, "`#{k}` is not a valid attribute in `ILoveVideoEditor::WorkflowPreset`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
126
+ end
127
+ h[k.to_sym] = v
128
+ }
129
+
130
+ if attributes.key?(:'id')
131
+ self.id = attributes[:'id']
132
+ else
133
+ self.id = nil
134
+ end
135
+
136
+ if attributes.key?(:'name')
137
+ self.name = attributes[:'name']
138
+ else
139
+ self.name = nil
140
+ end
141
+
142
+ if attributes.key?(:'description')
143
+ self.description = attributes[:'description']
144
+ else
145
+ self.description = nil
146
+ end
147
+
148
+ if attributes.key?(:'category')
149
+ self.category = attributes[:'category']
150
+ else
151
+ self.category = nil
152
+ end
153
+
154
+ if attributes.key?(:'roles')
155
+ if (value = attributes[:'roles']).is_a?(Array)
156
+ self.roles = value
157
+ end
158
+ else
159
+ self.roles = nil
160
+ end
161
+
162
+ if attributes.key?(:'goals')
163
+ if (value = attributes[:'goals']).is_a?(Array)
164
+ self.goals = value
165
+ end
166
+ else
167
+ self.goals = nil
168
+ end
169
+
170
+ if attributes.key?(:'channels')
171
+ if (value = attributes[:'channels']).is_a?(Array)
172
+ self.channels = value
173
+ end
174
+ else
175
+ self.channels = nil
176
+ end
177
+
178
+ if attributes.key?(:'poster_template_id')
179
+ self.poster_template_id = attributes[:'poster_template_id']
180
+ end
181
+
182
+ if attributes.key?(:'estimated_credits')
183
+ self.estimated_credits = attributes[:'estimated_credits']
184
+ else
185
+ self.estimated_credits = nil
186
+ end
187
+
188
+ if attributes.key?(:'definition')
189
+ self.definition = attributes[:'definition']
190
+ else
191
+ self.definition = nil
192
+ end
193
+ end
194
+
195
+ # Show invalid properties with the reasons. Usually used together with valid?
196
+ # @return Array for valid properties with the reasons
197
+ def list_invalid_properties
198
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
199
+ invalid_properties = Array.new
200
+ if @id.nil?
201
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
202
+ end
203
+
204
+ if @name.nil?
205
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
206
+ end
207
+
208
+ if @description.nil?
209
+ invalid_properties.push('invalid value for "description", description cannot be nil.')
210
+ end
211
+
212
+ if @category.nil?
213
+ invalid_properties.push('invalid value for "category", category cannot be nil.')
214
+ end
215
+
216
+ if @roles.nil?
217
+ invalid_properties.push('invalid value for "roles", roles cannot be nil.')
218
+ end
219
+
220
+ if @goals.nil?
221
+ invalid_properties.push('invalid value for "goals", goals cannot be nil.')
222
+ end
223
+
224
+ if @channels.nil?
225
+ invalid_properties.push('invalid value for "channels", channels cannot be nil.')
226
+ end
227
+
228
+ if @estimated_credits.nil?
229
+ invalid_properties.push('invalid value for "estimated_credits", estimated_credits cannot be nil.')
230
+ end
231
+
232
+ if @definition.nil?
233
+ invalid_properties.push('invalid value for "definition", definition cannot be nil.')
234
+ end
235
+
236
+ invalid_properties
237
+ end
238
+
239
+ # Check to see if the all the properties in the model are valid
240
+ # @return true if the model is valid
241
+ def valid?
242
+ warn '[DEPRECATED] the `valid?` method is obsolete'
243
+ return false if @id.nil?
244
+ return false if @name.nil?
245
+ return false if @description.nil?
246
+ return false if @category.nil?
247
+ category_validator = EnumAttributeValidator.new('String', ["getting-started", "social", "promo", "real_estate", "travel", "events", "news", "beauty", "automotive", "business"])
248
+ return false unless category_validator.valid?(@category)
249
+ return false if @roles.nil?
250
+ return false if @goals.nil?
251
+ return false if @channels.nil?
252
+ return false if @estimated_credits.nil?
253
+ return false if @definition.nil?
254
+ true
255
+ end
256
+
257
+ # Custom attribute writer method with validation
258
+ # @param [Object] id Value to be assigned
259
+ def id=(id)
260
+ if id.nil?
261
+ fail ArgumentError, 'id cannot be nil'
262
+ end
263
+
264
+ @id = id
265
+ end
266
+
267
+ # Custom attribute writer method with validation
268
+ # @param [Object] name Value to be assigned
269
+ def name=(name)
270
+ if name.nil?
271
+ fail ArgumentError, 'name cannot be nil'
272
+ end
273
+
274
+ @name = name
275
+ end
276
+
277
+ # Custom attribute writer method with validation
278
+ # @param [Object] description Value to be assigned
279
+ def description=(description)
280
+ if description.nil?
281
+ fail ArgumentError, 'description cannot be nil'
282
+ end
283
+
284
+ @description = description
285
+ end
286
+
287
+ # Custom attribute writer method checking allowed values (enum).
288
+ # @param [Object] category Object to be assigned
289
+ def category=(category)
290
+ validator = EnumAttributeValidator.new('String', ["getting-started", "social", "promo", "real_estate", "travel", "events", "news", "beauty", "automotive", "business"])
291
+ unless validator.valid?(category)
292
+ fail ArgumentError, "invalid value for \"category\", must be one of #{validator.allowable_values}."
293
+ end
294
+ @category = category
295
+ end
296
+
297
+ # Custom attribute writer method with validation
298
+ # @param [Object] roles Value to be assigned
299
+ def roles=(roles)
300
+ if roles.nil?
301
+ fail ArgumentError, 'roles cannot be nil'
302
+ end
303
+
304
+ @roles = roles
305
+ end
306
+
307
+ # Custom attribute writer method with validation
308
+ # @param [Object] goals Value to be assigned
309
+ def goals=(goals)
310
+ if goals.nil?
311
+ fail ArgumentError, 'goals cannot be nil'
312
+ end
313
+
314
+ @goals = goals
315
+ end
316
+
317
+ # Custom attribute writer method with validation
318
+ # @param [Object] channels Value to be assigned
319
+ def channels=(channels)
320
+ if channels.nil?
321
+ fail ArgumentError, 'channels cannot be nil'
322
+ end
323
+
324
+ @channels = channels
325
+ end
326
+
327
+ # Custom attribute writer method with validation
328
+ # @param [Object] estimated_credits Value to be assigned
329
+ def estimated_credits=(estimated_credits)
330
+ if estimated_credits.nil?
331
+ fail ArgumentError, 'estimated_credits cannot be nil'
332
+ end
333
+
334
+ @estimated_credits = estimated_credits
335
+ end
336
+
337
+ # Custom attribute writer method with validation
338
+ # @param [Object] definition Value to be assigned
339
+ def definition=(definition)
340
+ if definition.nil?
341
+ fail ArgumentError, 'definition cannot be nil'
342
+ end
343
+
344
+ @definition = definition
345
+ end
346
+
347
+ # Checks equality by comparing each attribute.
348
+ # @param [Object] Object to be compared
349
+ def ==(o)
350
+ return true if self.equal?(o)
351
+ self.class == o.class &&
352
+ id == o.id &&
353
+ name == o.name &&
354
+ description == o.description &&
355
+ category == o.category &&
356
+ roles == o.roles &&
357
+ goals == o.goals &&
358
+ channels == o.channels &&
359
+ poster_template_id == o.poster_template_id &&
360
+ estimated_credits == o.estimated_credits &&
361
+ definition == o.definition
362
+ end
363
+
364
+ # @see the `==` method
365
+ # @param [Object] Object to be compared
366
+ def eql?(o)
367
+ self == o
368
+ end
369
+
370
+ # Calculates hash code according to all attributes.
371
+ # @return [Integer] Hash code
372
+ def hash
373
+ [id, name, description, category, roles, goals, channels, poster_template_id, estimated_credits, definition].hash
374
+ end
375
+
376
+ # Builds the object from hash
377
+ # @param [Hash] attributes Model attributes in the form of hash
378
+ # @return [Object] Returns the model itself
379
+ def self.build_from_hash(attributes)
380
+ return nil unless attributes.is_a?(Hash)
381
+ attributes = attributes.transform_keys(&:to_sym)
382
+ transformed_hash = {}
383
+ openapi_types.each_pair do |key, type|
384
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
385
+ transformed_hash["#{key}"] = nil
386
+ elsif type =~ /\AArray<(.*)>/i
387
+ # check to ensure the input is an array given that the attribute
388
+ # is documented as an array but the input is not
389
+ if attributes[attribute_map[key]].is_a?(Array)
390
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
391
+ end
392
+ elsif !attributes[attribute_map[key]].nil?
393
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
394
+ end
395
+ end
396
+ new(transformed_hash)
397
+ end
398
+
399
+ # Returns the object in the form of hash
400
+ # @return [Hash] Returns the object in the form of hash
401
+ def to_hash
402
+ hash = {}
403
+ self.class.attribute_map.each_pair do |attr, param|
404
+ value = self.send(attr)
405
+ if value.nil?
406
+ is_nullable = self.class.openapi_nullable.include?(attr)
407
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
408
+ end
409
+
410
+ hash[param] = _to_hash(value)
411
+ end
412
+ hash
413
+ end
414
+
415
+ end
416
+
417
+ end
@@ -25,6 +25,7 @@ module ILoveVideoEditor
25
25
 
26
26
  attr_accessor :trigger
27
27
 
28
+ # `queued` → `running` → `completed` / `failed` / `cancelled`. A run with a human-in-the-loop `review` step pauses in `waiting_review` until the step is approved or rejected via `/v1/workflows/runs/{runId}/steps/{stepId}/review`.
28
29
  attr_accessor :status
29
30
 
30
31
  attr_accessor :variables
@@ -27,6 +27,7 @@ module ILoveVideoEditor
27
27
 
28
28
  attr_accessor :config
29
29
 
30
+ # `pending` → `running` → `completed` / `failed` / `skipped`. A `review` step waits in `waiting` for a human decision; the run is in `waiting_review` while any step is waiting.
30
31
  attr_accessor :status
31
32
 
32
33
  attr_accessor :input_url
@@ -149,7 +149,7 @@ module ILoveVideoEditor
149
149
  def valid?
150
150
  warn '[DEPRECATED] the `valid?` method is obsolete'
151
151
  return false if @type.nil?
152
- type_validator = EnumAttributeValidator.new('String', ["upload_asset", "crawl_url", "discover_variables", "render_template", "render_videojson", "apply_tool", "send_to_destination"])
152
+ type_validator = EnumAttributeValidator.new('String', ["upload_asset", "crawl_url", "discover_variables", "render_template", "render_videojson", "apply_tool", "review", "send_to_destination"])
153
153
  return false unless type_validator.valid?(@type)
154
154
  return false if !@max_retries.nil? && @max_retries > 10
155
155
  return false if !@max_retries.nil? && @max_retries < 0
@@ -160,7 +160,7 @@ module ILoveVideoEditor
160
160
  # Custom attribute writer method checking allowed values (enum).
161
161
  # @param [Object] type Object to be assigned
162
162
  def type=(type)
163
- validator = EnumAttributeValidator.new('String', ["upload_asset", "crawl_url", "discover_variables", "render_template", "render_videojson", "apply_tool", "send_to_destination"])
163
+ validator = EnumAttributeValidator.new('String', ["upload_asset", "crawl_url", "discover_variables", "render_template", "render_videojson", "apply_tool", "review", "send_to_destination"])
164
164
  unless validator.valid?(type)
165
165
  fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
166
166
  end
@@ -56,6 +56,7 @@ require 'ilovevideoeditor-sdk/models/get_subscription200_response'
56
56
  require 'ilovevideoeditor-sdk/models/get_template200_response'
57
57
  require 'ilovevideoeditor-sdk/models/get_usage200_response'
58
58
  require 'ilovevideoeditor-sdk/models/get_workflow200_response'
59
+ require 'ilovevideoeditor-sdk/models/get_workflow_preset200_response'
59
60
  require 'ilovevideoeditor-sdk/models/get_workflow_run200_response'
60
61
  require 'ilovevideoeditor-sdk/models/health_check200_response'
61
62
  require 'ilovevideoeditor-sdk/models/health_check_detailed200_response'
@@ -68,6 +69,7 @@ require 'ilovevideoeditor-sdk/models/list_projects200_response'
68
69
  require 'ilovevideoeditor-sdk/models/list_renditions200_response'
69
70
  require 'ilovevideoeditor-sdk/models/list_templates200_response'
70
71
  require 'ilovevideoeditor-sdk/models/list_webhook_subscriptions200_response'
72
+ require 'ilovevideoeditor-sdk/models/list_workflow_presets200_response'
71
73
  require 'ilovevideoeditor-sdk/models/list_workflow_runs200_response'
72
74
  require 'ilovevideoeditor-sdk/models/list_workflow_step_types200_response'
73
75
  require 'ilovevideoeditor-sdk/models/list_workflows200_response'
@@ -89,6 +91,7 @@ require 'ilovevideoeditor-sdk/models/rendition'
89
91
  require 'ilovevideoeditor-sdk/models/rendition_cancel_result'
90
92
  require 'ilovevideoeditor-sdk/models/rendition_output'
91
93
  require 'ilovevideoeditor-sdk/models/rendition_stats'
94
+ require 'ilovevideoeditor-sdk/models/review_workflow_step_request'
92
95
  require 'ilovevideoeditor-sdk/models/run_workflow202_response'
93
96
  require 'ilovevideoeditor-sdk/models/run_workflow_request'
94
97
  require 'ilovevideoeditor-sdk/models/service_health'
@@ -110,6 +113,7 @@ require 'ilovevideoeditor-sdk/models/webhook_subscription'
110
113
  require 'ilovevideoeditor-sdk/models/webhook_subscription_create'
111
114
  require 'ilovevideoeditor-sdk/models/workflow'
112
115
  require 'ilovevideoeditor-sdk/models/workflow_definition'
116
+ require 'ilovevideoeditor-sdk/models/workflow_preset'
113
117
  require 'ilovevideoeditor-sdk/models/workflow_run'
114
118
  require 'ilovevideoeditor-sdk/models/workflow_run_step'
115
119
  require 'ilovevideoeditor-sdk/models/workflow_step'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ilovevideoeditor-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - iLoveVideoEditor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-14 00:00:00.000000000 Z
11
+ date: 2026-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -30,7 +30,11 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.0.1
33
- description: High-level wrapper over the auto-generated iLoveVideoEditor OpenAPI client
33
+ description: 'Render videos programmatically with the iLoveVideoEditor cloud video
34
+ API: submit JSON scenes or render templates with variables, queue render jobs, and
35
+ download the resulting MP4/WebM. Provides a high-level client with blocking renders,
36
+ polling and progress callbacks, plus the full auto-generated OpenAPI client for
37
+ every endpoint. Requires Ruby 3.0 or later.'
34
38
  email: support@ilovevideoeditor.com
35
39
  executables: []
36
40
  extensions: []
@@ -91,6 +95,7 @@ files:
91
95
  - lib/generated/ilovevideoeditor-sdk/models/get_template200_response.rb
92
96
  - lib/generated/ilovevideoeditor-sdk/models/get_usage200_response.rb
93
97
  - lib/generated/ilovevideoeditor-sdk/models/get_workflow200_response.rb
98
+ - lib/generated/ilovevideoeditor-sdk/models/get_workflow_preset200_response.rb
94
99
  - lib/generated/ilovevideoeditor-sdk/models/get_workflow_run200_response.rb
95
100
  - lib/generated/ilovevideoeditor-sdk/models/health_check200_response.rb
96
101
  - lib/generated/ilovevideoeditor-sdk/models/health_check_detailed200_response.rb
@@ -103,6 +108,7 @@ files:
103
108
  - lib/generated/ilovevideoeditor-sdk/models/list_renditions200_response.rb
104
109
  - lib/generated/ilovevideoeditor-sdk/models/list_templates200_response.rb
105
110
  - lib/generated/ilovevideoeditor-sdk/models/list_webhook_subscriptions200_response.rb
111
+ - lib/generated/ilovevideoeditor-sdk/models/list_workflow_presets200_response.rb
106
112
  - lib/generated/ilovevideoeditor-sdk/models/list_workflow_runs200_response.rb
107
113
  - lib/generated/ilovevideoeditor-sdk/models/list_workflow_step_types200_response.rb
108
114
  - lib/generated/ilovevideoeditor-sdk/models/list_workflows200_response.rb
@@ -124,6 +130,7 @@ files:
124
130
  - lib/generated/ilovevideoeditor-sdk/models/rendition_cancel_result.rb
125
131
  - lib/generated/ilovevideoeditor-sdk/models/rendition_output.rb
126
132
  - lib/generated/ilovevideoeditor-sdk/models/rendition_stats.rb
133
+ - lib/generated/ilovevideoeditor-sdk/models/review_workflow_step_request.rb
127
134
  - lib/generated/ilovevideoeditor-sdk/models/run_workflow202_response.rb
128
135
  - lib/generated/ilovevideoeditor-sdk/models/run_workflow_request.rb
129
136
  - lib/generated/ilovevideoeditor-sdk/models/service_health.rb
@@ -145,6 +152,7 @@ files:
145
152
  - lib/generated/ilovevideoeditor-sdk/models/webhook_subscription_create.rb
146
153
  - lib/generated/ilovevideoeditor-sdk/models/workflow.rb
147
154
  - lib/generated/ilovevideoeditor-sdk/models/workflow_definition.rb
155
+ - lib/generated/ilovevideoeditor-sdk/models/workflow_preset.rb
148
156
  - lib/generated/ilovevideoeditor-sdk/models/workflow_run.rb
149
157
  - lib/generated/ilovevideoeditor-sdk/models/workflow_run_step.rb
150
158
  - lib/generated/ilovevideoeditor-sdk/models/workflow_step.rb
@@ -154,10 +162,15 @@ files:
154
162
  - lib/generated/ilovevideoeditor-sdk/version.rb
155
163
  - lib/ilovevideoeditor-sdk.rb
156
164
  - lib/ilovevideoeditor/client.rb
157
- homepage: https://ilovevideoeditor.com
165
+ homepage: https://ilovevideoeditor.com/docs/sdks
158
166
  licenses:
159
167
  - MIT
160
- metadata: {}
168
+ metadata:
169
+ homepage_uri: https://ilovevideoeditor.com
170
+ source_code_uri: https://github.com/ilovevideoeditor/sdk-ruby
171
+ documentation_uri: https://ilovevideoeditor.com/docs
172
+ changelog_uri: https://github.com/ilovevideoeditor/sdk-ruby/blob/master/CHANGELOG.md
173
+ bug_tracker_uri: https://github.com/ilovevideoeditor/sdk-ruby/issues
161
174
  post_install_message:
162
175
  rdoc_options: []
163
176
  require_paths:
@@ -177,5 +190,5 @@ requirements: []
177
190
  rubygems_version: 3.4.20
178
191
  signing_key:
179
192
  specification_version: 4
180
- summary: Official Ruby SDK for iLoveVideoEditor
193
+ summary: Official Ruby SDK for the iLoveVideoEditor cloud video rendering API
181
194
  test_files: []