ilovevideoeditor-sdk 1.0.0

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 (120) hide show
  1. checksums.yaml +7 -0
  2. data/lib/generated/ilovevideoeditor-sdk/api/api_keys_api.rb +204 -0
  3. data/lib/generated/ilovevideoeditor-sdk/api/assets_api.rb +632 -0
  4. data/lib/generated/ilovevideoeditor-sdk/api/billing_api.rb +428 -0
  5. data/lib/generated/ilovevideoeditor-sdk/api/health_api.rb +134 -0
  6. data/lib/generated/ilovevideoeditor-sdk/api/integrations_api.rb +587 -0
  7. data/lib/generated/ilovevideoeditor-sdk/api/projects_api.rb +614 -0
  8. data/lib/generated/ilovevideoeditor-sdk/api/render_api.rb +656 -0
  9. data/lib/generated/ilovevideoeditor-sdk/api/renditions_api.rb +420 -0
  10. data/lib/generated/ilovevideoeditor-sdk/api/templates_api.rb +217 -0
  11. data/lib/generated/ilovevideoeditor-sdk/api/tools_api.rb +220 -0
  12. data/lib/generated/ilovevideoeditor-sdk/api/webhooks_api.rb +204 -0
  13. data/lib/generated/ilovevideoeditor-sdk/api/workflows_api.rb +854 -0
  14. data/lib/generated/ilovevideoeditor-sdk/api_client.rb +397 -0
  15. data/lib/generated/ilovevideoeditor-sdk/api_error.rb +58 -0
  16. data/lib/generated/ilovevideoeditor-sdk/api_model_base.rb +88 -0
  17. data/lib/generated/ilovevideoeditor-sdk/configuration.rb +316 -0
  18. data/lib/generated/ilovevideoeditor-sdk/models/api_key.rb +246 -0
  19. data/lib/generated/ilovevideoeditor-sdk/models/api_key_with_secret.rb +191 -0
  20. data/lib/generated/ilovevideoeditor-sdk/models/asset.rb +404 -0
  21. data/lib/generated/ilovevideoeditor-sdk/models/asset_create.rb +303 -0
  22. data/lib/generated/ilovevideoeditor-sdk/models/asset_upload_url_response.rb +295 -0
  23. data/lib/generated/ilovevideoeditor-sdk/models/batch_delete_projects_request.rb +184 -0
  24. data/lib/generated/ilovevideoeditor-sdk/models/batch_delete_result.rb +175 -0
  25. data/lib/generated/ilovevideoeditor-sdk/models/billing_prices.rb +158 -0
  26. data/lib/generated/ilovevideoeditor-sdk/models/billing_prices_tiers.rb +168 -0
  27. data/lib/generated/ilovevideoeditor-sdk/models/billing_subscription.rb +254 -0
  28. data/lib/generated/ilovevideoeditor-sdk/models/cancel_render200_response.rb +225 -0
  29. data/lib/generated/ilovevideoeditor-sdk/models/create_api_key_request.rb +147 -0
  30. data/lib/generated/ilovevideoeditor-sdk/models/create_asset201_response.rb +164 -0
  31. data/lib/generated/ilovevideoeditor-sdk/models/create_checkout_session200_response.rb +164 -0
  32. data/lib/generated/ilovevideoeditor-sdk/models/create_checkout_session_request.rb +220 -0
  33. data/lib/generated/ilovevideoeditor-sdk/models/create_integration201_response.rb +164 -0
  34. data/lib/generated/ilovevideoeditor-sdk/models/create_project200_response.rb +164 -0
  35. data/lib/generated/ilovevideoeditor-sdk/models/create_workflow201_response.rb +164 -0
  36. data/lib/generated/ilovevideoeditor-sdk/models/create_workflow_request.rb +208 -0
  37. data/lib/generated/ilovevideoeditor-sdk/models/credit_balance.rb +219 -0
  38. data/lib/generated/ilovevideoeditor-sdk/models/credit_balance_summary.rb +174 -0
  39. data/lib/generated/ilovevideoeditor-sdk/models/credit_balance_usage.rb +156 -0
  40. data/lib/generated/ilovevideoeditor-sdk/models/delete_project200_response.rb +190 -0
  41. data/lib/generated/ilovevideoeditor-sdk/models/destination.rb +331 -0
  42. data/lib/generated/ilovevideoeditor-sdk/models/destination_input.rb +304 -0
  43. data/lib/generated/ilovevideoeditor-sdk/models/error.rb +182 -0
  44. data/lib/generated/ilovevideoeditor-sdk/models/estimate_render_cost_request.rb +164 -0
  45. data/lib/generated/ilovevideoeditor-sdk/models/get_asset_signed_url200_response.rb +164 -0
  46. data/lib/generated/ilovevideoeditor-sdk/models/get_asset_upload_url_request.rb +214 -0
  47. data/lib/generated/ilovevideoeditor-sdk/models/get_destination200_response.rb +164 -0
  48. data/lib/generated/ilovevideoeditor-sdk/models/get_project200_response.rb +173 -0
  49. data/lib/generated/ilovevideoeditor-sdk/models/get_project_stats200_response.rb +164 -0
  50. data/lib/generated/ilovevideoeditor-sdk/models/get_render_download_url200_response.rb +190 -0
  51. data/lib/generated/ilovevideoeditor-sdk/models/get_rendition200_response.rb +164 -0
  52. data/lib/generated/ilovevideoeditor-sdk/models/get_subscription200_response.rb +164 -0
  53. data/lib/generated/ilovevideoeditor-sdk/models/get_template200_response.rb +164 -0
  54. data/lib/generated/ilovevideoeditor-sdk/models/get_usage200_response.rb +166 -0
  55. data/lib/generated/ilovevideoeditor-sdk/models/get_workflow200_response.rb +175 -0
  56. data/lib/generated/ilovevideoeditor-sdk/models/get_workflow_run200_response.rb +175 -0
  57. data/lib/generated/ilovevideoeditor-sdk/models/health_check200_response.rb +147 -0
  58. data/lib/generated/ilovevideoeditor-sdk/models/health_check_detailed200_response.rb +199 -0
  59. data/lib/generated/ilovevideoeditor-sdk/models/health_check_detailed200_response_services.rb +156 -0
  60. data/lib/generated/ilovevideoeditor-sdk/models/list_api_keys200_response.rb +166 -0
  61. data/lib/generated/ilovevideoeditor-sdk/models/list_assets200_response.rb +185 -0
  62. data/lib/generated/ilovevideoeditor-sdk/models/list_integrations200_response.rb +166 -0
  63. data/lib/generated/ilovevideoeditor-sdk/models/list_invoices200_response.rb +158 -0
  64. data/lib/generated/ilovevideoeditor-sdk/models/list_projects200_response.rb +185 -0
  65. data/lib/generated/ilovevideoeditor-sdk/models/list_renditions200_response.rb +185 -0
  66. data/lib/generated/ilovevideoeditor-sdk/models/list_templates200_response.rb +166 -0
  67. data/lib/generated/ilovevideoeditor-sdk/models/list_webhook_subscriptions200_response.rb +166 -0
  68. data/lib/generated/ilovevideoeditor-sdk/models/list_workflow_runs200_response.rb +185 -0
  69. data/lib/generated/ilovevideoeditor-sdk/models/list_workflow_step_types200_response.rb +166 -0
  70. data/lib/generated/ilovevideoeditor-sdk/models/list_workflows200_response.rb +185 -0
  71. data/lib/generated/ilovevideoeditor-sdk/models/project.rb +329 -0
  72. data/lib/generated/ilovevideoeditor-sdk/models/project_create.rb +218 -0
  73. data/lib/generated/ilovevideoeditor-sdk/models/project_update.rb +239 -0
  74. data/lib/generated/ilovevideoeditor-sdk/models/queue_render200_response.rb +199 -0
  75. data/lib/generated/ilovevideoeditor-sdk/models/queue_render_request.rb +182 -0
  76. data/lib/generated/ilovevideoeditor-sdk/models/refresh_render_url200_response.rb +190 -0
  77. data/lib/generated/ilovevideoeditor-sdk/models/render_cost_estimate.rb +254 -0
  78. data/lib/generated/ilovevideoeditor-sdk/models/render_cost_estimate_resolution.rb +165 -0
  79. data/lib/generated/ilovevideoeditor-sdk/models/render_cost_estimate_tier.rb +165 -0
  80. data/lib/generated/ilovevideoeditor-sdk/models/render_job.rb +271 -0
  81. data/lib/generated/ilovevideoeditor-sdk/models/render_job_progress.rb +165 -0
  82. data/lib/generated/ilovevideoeditor-sdk/models/render_list_item.rb +356 -0
  83. data/lib/generated/ilovevideoeditor-sdk/models/render_template_request.rb +167 -0
  84. data/lib/generated/ilovevideoeditor-sdk/models/render_webhook_payload.rb +357 -0
  85. data/lib/generated/ilovevideoeditor-sdk/models/rendition.rb +335 -0
  86. data/lib/generated/ilovevideoeditor-sdk/models/rendition_cancel_result.rb +236 -0
  87. data/lib/generated/ilovevideoeditor-sdk/models/rendition_output.rb +233 -0
  88. data/lib/generated/ilovevideoeditor-sdk/models/rendition_stats.rb +192 -0
  89. data/lib/generated/ilovevideoeditor-sdk/models/run_workflow202_response.rb +164 -0
  90. data/lib/generated/ilovevideoeditor-sdk/models/run_workflow_request.rb +149 -0
  91. data/lib/generated/ilovevideoeditor-sdk/models/service_health.rb +208 -0
  92. data/lib/generated/ilovevideoeditor-sdk/models/template.rb +324 -0
  93. data/lib/generated/ilovevideoeditor-sdk/models/template_summary.rb +322 -0
  94. data/lib/generated/ilovevideoeditor-sdk/models/test_integration200_response.rb +174 -0
  95. data/lib/generated/ilovevideoeditor-sdk/models/tier_info.rb +214 -0
  96. data/lib/generated/ilovevideoeditor-sdk/models/tier_info_credits.rb +165 -0
  97. data/lib/generated/ilovevideoeditor-sdk/models/tool_job_request.rb +242 -0
  98. data/lib/generated/ilovevideoeditor-sdk/models/tool_job_request_dimensions.rb +208 -0
  99. data/lib/generated/ilovevideoeditor-sdk/models/tool_job_status.rb +310 -0
  100. data/lib/generated/ilovevideoeditor-sdk/models/track_render_bandwidth200_response.rb +164 -0
  101. data/lib/generated/ilovevideoeditor-sdk/models/update_workflow_request.rb +174 -0
  102. data/lib/generated/ilovevideoeditor-sdk/models/upload_asset200_response.rb +164 -0
  103. data/lib/generated/ilovevideoeditor-sdk/models/usage_log.rb +302 -0
  104. data/lib/generated/ilovevideoeditor-sdk/models/video_json.rb +243 -0
  105. data/lib/generated/ilovevideoeditor-sdk/models/video_json_destination.rb +227 -0
  106. data/lib/generated/ilovevideoeditor-sdk/models/webhook_subscription.rb +283 -0
  107. data/lib/generated/ilovevideoeditor-sdk/models/webhook_subscription_create.rb +204 -0
  108. data/lib/generated/ilovevideoeditor-sdk/models/workflow.rb +356 -0
  109. data/lib/generated/ilovevideoeditor-sdk/models/workflow_definition.rb +262 -0
  110. data/lib/generated/ilovevideoeditor-sdk/models/workflow_run.rb +372 -0
  111. data/lib/generated/ilovevideoeditor-sdk/models/workflow_run_step.rb +409 -0
  112. data/lib/generated/ilovevideoeditor-sdk/models/workflow_step.rb +262 -0
  113. data/lib/generated/ilovevideoeditor-sdk/models/workflow_variable.rb +242 -0
  114. data/lib/generated/ilovevideoeditor-sdk/models/workspace_integration.rb +398 -0
  115. data/lib/generated/ilovevideoeditor-sdk/models/workspace_integration_input.rb +260 -0
  116. data/lib/generated/ilovevideoeditor-sdk/version.rb +15 -0
  117. data/lib/generated/ilovevideoeditor-sdk.rb +150 -0
  118. data/lib/ilovevideoeditor/client.rb +106 -0
  119. data/lib/ilovevideoeditor-sdk.rb +2 -0
  120. metadata +181 -0
@@ -0,0 +1,409 @@
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 WorkflowRunStep < ApiModelBase
18
+ attr_accessor :id
19
+
20
+ attr_accessor :workflow_run_id
21
+
22
+ attr_accessor :step_index
23
+
24
+ attr_accessor :step_type
25
+
26
+ attr_accessor :name
27
+
28
+ attr_accessor :config
29
+
30
+ attr_accessor :status
31
+
32
+ attr_accessor :input_url
33
+
34
+ attr_accessor :output_url
35
+
36
+ attr_accessor :output_key
37
+
38
+ attr_accessor :rendition_id
39
+
40
+ attr_accessor :error
41
+
42
+ attr_accessor :response_status
43
+
44
+ attr_accessor :metadata
45
+
46
+ attr_accessor :retry_count
47
+
48
+ attr_accessor :max_retries
49
+
50
+ attr_accessor :logs
51
+
52
+ attr_accessor :started_at
53
+
54
+ attr_accessor :completed_at
55
+
56
+ attr_accessor :created_at
57
+
58
+ attr_accessor :updated_at
59
+
60
+ # Attribute mapping from ruby-style variable name to JSON key.
61
+ def self.attribute_map
62
+ {
63
+ :'id' => :'id',
64
+ :'workflow_run_id' => :'workflowRunId',
65
+ :'step_index' => :'stepIndex',
66
+ :'step_type' => :'stepType',
67
+ :'name' => :'name',
68
+ :'config' => :'config',
69
+ :'status' => :'status',
70
+ :'input_url' => :'inputUrl',
71
+ :'output_url' => :'outputUrl',
72
+ :'output_key' => :'outputKey',
73
+ :'rendition_id' => :'renditionId',
74
+ :'error' => :'error',
75
+ :'response_status' => :'responseStatus',
76
+ :'metadata' => :'metadata',
77
+ :'retry_count' => :'retryCount',
78
+ :'max_retries' => :'maxRetries',
79
+ :'logs' => :'logs',
80
+ :'started_at' => :'startedAt',
81
+ :'completed_at' => :'completedAt',
82
+ :'created_at' => :'createdAt',
83
+ :'updated_at' => :'updatedAt'
84
+ }
85
+ end
86
+
87
+ # Returns attribute mapping this model knows about
88
+ def self.acceptable_attribute_map
89
+ attribute_map
90
+ end
91
+
92
+ # Returns all the JSON keys this model knows about
93
+ def self.acceptable_attributes
94
+ acceptable_attribute_map.values
95
+ end
96
+
97
+ # Attribute type mapping.
98
+ def self.openapi_types
99
+ {
100
+ :'id' => :'String',
101
+ :'workflow_run_id' => :'String',
102
+ :'step_index' => :'Integer',
103
+ :'step_type' => :'String',
104
+ :'name' => :'String',
105
+ :'config' => :'Object',
106
+ :'status' => :'String',
107
+ :'input_url' => :'String',
108
+ :'output_url' => :'String',
109
+ :'output_key' => :'String',
110
+ :'rendition_id' => :'String',
111
+ :'error' => :'String',
112
+ :'response_status' => :'Integer',
113
+ :'metadata' => :'Object',
114
+ :'retry_count' => :'Integer',
115
+ :'max_retries' => :'Integer',
116
+ :'logs' => :'Array<Object>',
117
+ :'started_at' => :'Time',
118
+ :'completed_at' => :'Time',
119
+ :'created_at' => :'Time',
120
+ :'updated_at' => :'Time'
121
+ }
122
+ end
123
+
124
+ # List of attributes with nullable: true
125
+ def self.openapi_nullable
126
+ Set.new([
127
+ :'name',
128
+ :'config',
129
+ :'input_url',
130
+ :'output_url',
131
+ :'output_key',
132
+ :'rendition_id',
133
+ :'error',
134
+ :'response_status',
135
+ :'metadata',
136
+ :'logs',
137
+ :'started_at',
138
+ :'completed_at',
139
+ ])
140
+ end
141
+
142
+ # Initializes the object
143
+ # @param [Hash] attributes Model attributes in the form of hash
144
+ def initialize(attributes = {})
145
+ if (!attributes.is_a?(Hash))
146
+ fail ArgumentError, "The input argument (attributes) must be a hash in `ILoveVideoEditor::WorkflowRunStep` initialize method"
147
+ end
148
+
149
+ # check to see if the attribute exists and convert string to symbol for hash key
150
+ acceptable_attribute_map = self.class.acceptable_attribute_map
151
+ attributes = attributes.each_with_object({}) { |(k, v), h|
152
+ if (!acceptable_attribute_map.key?(k.to_sym))
153
+ fail ArgumentError, "`#{k}` is not a valid attribute in `ILoveVideoEditor::WorkflowRunStep`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
154
+ end
155
+ h[k.to_sym] = v
156
+ }
157
+
158
+ if attributes.key?(:'id')
159
+ self.id = attributes[:'id']
160
+ else
161
+ self.id = nil
162
+ end
163
+
164
+ if attributes.key?(:'workflow_run_id')
165
+ self.workflow_run_id = attributes[:'workflow_run_id']
166
+ else
167
+ self.workflow_run_id = nil
168
+ end
169
+
170
+ if attributes.key?(:'step_index')
171
+ self.step_index = attributes[:'step_index']
172
+ else
173
+ self.step_index = nil
174
+ end
175
+
176
+ if attributes.key?(:'step_type')
177
+ self.step_type = attributes[:'step_type']
178
+ else
179
+ self.step_type = nil
180
+ end
181
+
182
+ if attributes.key?(:'name')
183
+ self.name = attributes[:'name']
184
+ end
185
+
186
+ if attributes.key?(:'config')
187
+ self.config = attributes[:'config']
188
+ end
189
+
190
+ if attributes.key?(:'status')
191
+ self.status = attributes[:'status']
192
+ end
193
+
194
+ if attributes.key?(:'input_url')
195
+ self.input_url = attributes[:'input_url']
196
+ end
197
+
198
+ if attributes.key?(:'output_url')
199
+ self.output_url = attributes[:'output_url']
200
+ end
201
+
202
+ if attributes.key?(:'output_key')
203
+ self.output_key = attributes[:'output_key']
204
+ end
205
+
206
+ if attributes.key?(:'rendition_id')
207
+ self.rendition_id = attributes[:'rendition_id']
208
+ end
209
+
210
+ if attributes.key?(:'error')
211
+ self.error = attributes[:'error']
212
+ end
213
+
214
+ if attributes.key?(:'response_status')
215
+ self.response_status = attributes[:'response_status']
216
+ end
217
+
218
+ if attributes.key?(:'metadata')
219
+ self.metadata = attributes[:'metadata']
220
+ end
221
+
222
+ if attributes.key?(:'retry_count')
223
+ self.retry_count = attributes[:'retry_count']
224
+ end
225
+
226
+ if attributes.key?(:'max_retries')
227
+ self.max_retries = attributes[:'max_retries']
228
+ end
229
+
230
+ if attributes.key?(:'logs')
231
+ if (value = attributes[:'logs']).is_a?(Array)
232
+ self.logs = value
233
+ end
234
+ end
235
+
236
+ if attributes.key?(:'started_at')
237
+ self.started_at = attributes[:'started_at']
238
+ end
239
+
240
+ if attributes.key?(:'completed_at')
241
+ self.completed_at = attributes[:'completed_at']
242
+ end
243
+
244
+ if attributes.key?(:'created_at')
245
+ self.created_at = attributes[:'created_at']
246
+ end
247
+
248
+ if attributes.key?(:'updated_at')
249
+ self.updated_at = attributes[:'updated_at']
250
+ end
251
+ end
252
+
253
+ # Show invalid properties with the reasons. Usually used together with valid?
254
+ # @return Array for valid properties with the reasons
255
+ def list_invalid_properties
256
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
257
+ invalid_properties = Array.new
258
+ if @id.nil?
259
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
260
+ end
261
+
262
+ if @workflow_run_id.nil?
263
+ invalid_properties.push('invalid value for "workflow_run_id", workflow_run_id cannot be nil.')
264
+ end
265
+
266
+ if @step_index.nil?
267
+ invalid_properties.push('invalid value for "step_index", step_index cannot be nil.')
268
+ end
269
+
270
+ if @step_type.nil?
271
+ invalid_properties.push('invalid value for "step_type", step_type cannot be nil.')
272
+ end
273
+
274
+ invalid_properties
275
+ end
276
+
277
+ # Check to see if the all the properties in the model are valid
278
+ # @return true if the model is valid
279
+ def valid?
280
+ warn '[DEPRECATED] the `valid?` method is obsolete'
281
+ return false if @id.nil?
282
+ return false if @workflow_run_id.nil?
283
+ return false if @step_index.nil?
284
+ return false if @step_type.nil?
285
+ true
286
+ end
287
+
288
+ # Custom attribute writer method with validation
289
+ # @param [Object] id Value to be assigned
290
+ def id=(id)
291
+ if id.nil?
292
+ fail ArgumentError, 'id cannot be nil'
293
+ end
294
+
295
+ @id = id
296
+ end
297
+
298
+ # Custom attribute writer method with validation
299
+ # @param [Object] workflow_run_id Value to be assigned
300
+ def workflow_run_id=(workflow_run_id)
301
+ if workflow_run_id.nil?
302
+ fail ArgumentError, 'workflow_run_id cannot be nil'
303
+ end
304
+
305
+ @workflow_run_id = workflow_run_id
306
+ end
307
+
308
+ # Custom attribute writer method with validation
309
+ # @param [Object] step_index Value to be assigned
310
+ def step_index=(step_index)
311
+ if step_index.nil?
312
+ fail ArgumentError, 'step_index cannot be nil'
313
+ end
314
+
315
+ @step_index = step_index
316
+ end
317
+
318
+ # Custom attribute writer method with validation
319
+ # @param [Object] step_type Value to be assigned
320
+ def step_type=(step_type)
321
+ if step_type.nil?
322
+ fail ArgumentError, 'step_type cannot be nil'
323
+ end
324
+
325
+ @step_type = step_type
326
+ end
327
+
328
+ # Checks equality by comparing each attribute.
329
+ # @param [Object] Object to be compared
330
+ def ==(o)
331
+ return true if self.equal?(o)
332
+ self.class == o.class &&
333
+ id == o.id &&
334
+ workflow_run_id == o.workflow_run_id &&
335
+ step_index == o.step_index &&
336
+ step_type == o.step_type &&
337
+ name == o.name &&
338
+ config == o.config &&
339
+ status == o.status &&
340
+ input_url == o.input_url &&
341
+ output_url == o.output_url &&
342
+ output_key == o.output_key &&
343
+ rendition_id == o.rendition_id &&
344
+ error == o.error &&
345
+ response_status == o.response_status &&
346
+ metadata == o.metadata &&
347
+ retry_count == o.retry_count &&
348
+ max_retries == o.max_retries &&
349
+ logs == o.logs &&
350
+ started_at == o.started_at &&
351
+ completed_at == o.completed_at &&
352
+ created_at == o.created_at &&
353
+ updated_at == o.updated_at
354
+ end
355
+
356
+ # @see the `==` method
357
+ # @param [Object] Object to be compared
358
+ def eql?(o)
359
+ self == o
360
+ end
361
+
362
+ # Calculates hash code according to all attributes.
363
+ # @return [Integer] Hash code
364
+ def hash
365
+ [id, workflow_run_id, step_index, step_type, name, config, status, input_url, output_url, output_key, rendition_id, error, response_status, metadata, retry_count, max_retries, logs, started_at, completed_at, created_at, updated_at].hash
366
+ end
367
+
368
+ # Builds the object from hash
369
+ # @param [Hash] attributes Model attributes in the form of hash
370
+ # @return [Object] Returns the model itself
371
+ def self.build_from_hash(attributes)
372
+ return nil unless attributes.is_a?(Hash)
373
+ attributes = attributes.transform_keys(&:to_sym)
374
+ transformed_hash = {}
375
+ openapi_types.each_pair do |key, type|
376
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
377
+ transformed_hash["#{key}"] = nil
378
+ elsif type =~ /\AArray<(.*)>/i
379
+ # check to ensure the input is an array given that the attribute
380
+ # is documented as an array but the input is not
381
+ if attributes[attribute_map[key]].is_a?(Array)
382
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
383
+ end
384
+ elsif !attributes[attribute_map[key]].nil?
385
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
386
+ end
387
+ end
388
+ new(transformed_hash)
389
+ end
390
+
391
+ # Returns the object in the form of hash
392
+ # @return [Hash] Returns the object in the form of hash
393
+ def to_hash
394
+ hash = {}
395
+ self.class.attribute_map.each_pair do |attr, param|
396
+ value = self.send(attr)
397
+ if value.nil?
398
+ is_nullable = self.class.openapi_nullable.include?(attr)
399
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
400
+ end
401
+
402
+ hash[param] = _to_hash(value)
403
+ end
404
+ hash
405
+ end
406
+
407
+ end
408
+
409
+ end
@@ -0,0 +1,262 @@
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 WorkflowStep < ApiModelBase
18
+ attr_accessor :type
19
+
20
+ attr_accessor :name
21
+
22
+ attr_accessor :max_retries
23
+
24
+ attr_accessor :config
25
+
26
+ class EnumAttributeValidator
27
+ attr_reader :datatype
28
+ attr_reader :allowable_values
29
+
30
+ def initialize(datatype, allowable_values)
31
+ @allowable_values = allowable_values.map do |value|
32
+ case datatype.to_s
33
+ when /Integer/i
34
+ value.to_i
35
+ when /Float/i
36
+ value.to_f
37
+ else
38
+ value
39
+ end
40
+ end
41
+ end
42
+
43
+ def valid?(value)
44
+ !value || allowable_values.include?(value)
45
+ end
46
+ end
47
+
48
+ # Attribute mapping from ruby-style variable name to JSON key.
49
+ def self.attribute_map
50
+ {
51
+ :'type' => :'type',
52
+ :'name' => :'name',
53
+ :'max_retries' => :'maxRetries',
54
+ :'config' => :'config'
55
+ }
56
+ end
57
+
58
+ # Returns attribute mapping this model knows about
59
+ def self.acceptable_attribute_map
60
+ attribute_map
61
+ end
62
+
63
+ # Returns all the JSON keys this model knows about
64
+ def self.acceptable_attributes
65
+ acceptable_attribute_map.values
66
+ end
67
+
68
+ # Attribute type mapping.
69
+ def self.openapi_types
70
+ {
71
+ :'type' => :'String',
72
+ :'name' => :'String',
73
+ :'max_retries' => :'Integer',
74
+ :'config' => :'Hash<String, Object>'
75
+ }
76
+ end
77
+
78
+ # List of attributes with nullable: true
79
+ def self.openapi_nullable
80
+ Set.new([
81
+ ])
82
+ end
83
+
84
+ # Initializes the object
85
+ # @param [Hash] attributes Model attributes in the form of hash
86
+ def initialize(attributes = {})
87
+ if (!attributes.is_a?(Hash))
88
+ fail ArgumentError, "The input argument (attributes) must be a hash in `ILoveVideoEditor::WorkflowStep` initialize method"
89
+ end
90
+
91
+ # check to see if the attribute exists and convert string to symbol for hash key
92
+ acceptable_attribute_map = self.class.acceptable_attribute_map
93
+ attributes = attributes.each_with_object({}) { |(k, v), h|
94
+ if (!acceptable_attribute_map.key?(k.to_sym))
95
+ fail ArgumentError, "`#{k}` is not a valid attribute in `ILoveVideoEditor::WorkflowStep`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
96
+ end
97
+ h[k.to_sym] = v
98
+ }
99
+
100
+ if attributes.key?(:'type')
101
+ self.type = attributes[:'type']
102
+ else
103
+ self.type = nil
104
+ end
105
+
106
+ if attributes.key?(:'name')
107
+ self.name = attributes[:'name']
108
+ end
109
+
110
+ if attributes.key?(:'max_retries')
111
+ self.max_retries = attributes[:'max_retries']
112
+ end
113
+
114
+ if attributes.key?(:'config')
115
+ if (value = attributes[:'config']).is_a?(Hash)
116
+ self.config = value
117
+ end
118
+ else
119
+ self.config = nil
120
+ end
121
+ end
122
+
123
+ # Show invalid properties with the reasons. Usually used together with valid?
124
+ # @return Array for valid properties with the reasons
125
+ def list_invalid_properties
126
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
127
+ invalid_properties = Array.new
128
+ if @type.nil?
129
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
130
+ end
131
+
132
+ if !@max_retries.nil? && @max_retries > 10
133
+ invalid_properties.push('invalid value for "max_retries", must be smaller than or equal to 10.')
134
+ end
135
+
136
+ if !@max_retries.nil? && @max_retries < 0
137
+ invalid_properties.push('invalid value for "max_retries", must be greater than or equal to 0.')
138
+ end
139
+
140
+ if @config.nil?
141
+ invalid_properties.push('invalid value for "config", config cannot be nil.')
142
+ end
143
+
144
+ invalid_properties
145
+ end
146
+
147
+ # Check to see if the all the properties in the model are valid
148
+ # @return true if the model is valid
149
+ def valid?
150
+ warn '[DEPRECATED] the `valid?` method is obsolete'
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"])
153
+ return false unless type_validator.valid?(@type)
154
+ return false if !@max_retries.nil? && @max_retries > 10
155
+ return false if !@max_retries.nil? && @max_retries < 0
156
+ return false if @config.nil?
157
+ true
158
+ end
159
+
160
+ # Custom attribute writer method checking allowed values (enum).
161
+ # @param [Object] type Object to be assigned
162
+ def type=(type)
163
+ validator = EnumAttributeValidator.new('String', ["upload_asset", "crawl_url", "discover_variables", "render_template", "render_videojson", "apply_tool", "send_to_destination"])
164
+ unless validator.valid?(type)
165
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
166
+ end
167
+ @type = type
168
+ end
169
+
170
+ # Custom attribute writer method with validation
171
+ # @param [Object] max_retries Value to be assigned
172
+ def max_retries=(max_retries)
173
+ if max_retries.nil?
174
+ fail ArgumentError, 'max_retries cannot be nil'
175
+ end
176
+
177
+ if max_retries > 10
178
+ fail ArgumentError, 'invalid value for "max_retries", must be smaller than or equal to 10.'
179
+ end
180
+
181
+ if max_retries < 0
182
+ fail ArgumentError, 'invalid value for "max_retries", must be greater than or equal to 0.'
183
+ end
184
+
185
+ @max_retries = max_retries
186
+ end
187
+
188
+ # Custom attribute writer method with validation
189
+ # @param [Object] config Value to be assigned
190
+ def config=(config)
191
+ if config.nil?
192
+ fail ArgumentError, 'config cannot be nil'
193
+ end
194
+
195
+ @config = config
196
+ end
197
+
198
+ # Checks equality by comparing each attribute.
199
+ # @param [Object] Object to be compared
200
+ def ==(o)
201
+ return true if self.equal?(o)
202
+ self.class == o.class &&
203
+ type == o.type &&
204
+ name == o.name &&
205
+ max_retries == o.max_retries &&
206
+ config == o.config
207
+ end
208
+
209
+ # @see the `==` method
210
+ # @param [Object] Object to be compared
211
+ def eql?(o)
212
+ self == o
213
+ end
214
+
215
+ # Calculates hash code according to all attributes.
216
+ # @return [Integer] Hash code
217
+ def hash
218
+ [type, name, max_retries, config].hash
219
+ end
220
+
221
+ # Builds the object from hash
222
+ # @param [Hash] attributes Model attributes in the form of hash
223
+ # @return [Object] Returns the model itself
224
+ def self.build_from_hash(attributes)
225
+ return nil unless attributes.is_a?(Hash)
226
+ attributes = attributes.transform_keys(&:to_sym)
227
+ transformed_hash = {}
228
+ openapi_types.each_pair do |key, type|
229
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
230
+ transformed_hash["#{key}"] = nil
231
+ elsif type =~ /\AArray<(.*)>/i
232
+ # check to ensure the input is an array given that the attribute
233
+ # is documented as an array but the input is not
234
+ if attributes[attribute_map[key]].is_a?(Array)
235
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
236
+ end
237
+ elsif !attributes[attribute_map[key]].nil?
238
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
239
+ end
240
+ end
241
+ new(transformed_hash)
242
+ end
243
+
244
+ # Returns the object in the form of hash
245
+ # @return [Hash] Returns the object in the form of hash
246
+ def to_hash
247
+ hash = {}
248
+ self.class.attribute_map.each_pair do |attr, param|
249
+ value = self.send(attr)
250
+ if value.nil?
251
+ is_nullable = self.class.openapi_nullable.include?(attr)
252
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
253
+ end
254
+
255
+ hash[param] = _to_hash(value)
256
+ end
257
+ hash
258
+ end
259
+
260
+ end
261
+
262
+ end