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,632 @@
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 'cgi'
14
+
15
+ module ILoveVideoEditor
16
+ class AssetsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Bulk delete assets
23
+ # @param batch_delete_projects_request [BatchDeleteProjectsRequest]
24
+ # @param [Hash] opts the optional parameters
25
+ # @return [BatchDeleteResult]
26
+ def batch_delete_assets(batch_delete_projects_request, opts = {})
27
+ data, _status_code, _headers = batch_delete_assets_with_http_info(batch_delete_projects_request, opts)
28
+ data
29
+ end
30
+
31
+ # Bulk delete assets
32
+ # @param batch_delete_projects_request [BatchDeleteProjectsRequest]
33
+ # @param [Hash] opts the optional parameters
34
+ # @return [Array<(BatchDeleteResult, Integer, Hash)>] BatchDeleteResult data, response status code and response headers
35
+ def batch_delete_assets_with_http_info(batch_delete_projects_request, opts = {})
36
+ if @api_client.config.debugging
37
+ @api_client.config.logger.debug 'Calling API: AssetsApi.batch_delete_assets ...'
38
+ end
39
+ # verify the required parameter 'batch_delete_projects_request' is set
40
+ if @api_client.config.client_side_validation && batch_delete_projects_request.nil?
41
+ fail ArgumentError, "Missing the required parameter 'batch_delete_projects_request' when calling AssetsApi.batch_delete_assets"
42
+ end
43
+ # resource path
44
+ local_var_path = '/v1/assets/batch-delete'
45
+
46
+ # query parameters
47
+ query_params = opts[:query_params] || {}
48
+
49
+ # header parameters
50
+ header_params = opts[:header_params] || {}
51
+ # HTTP header 'Accept' (if needed)
52
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
53
+ # HTTP header 'Content-Type'
54
+ content_type = @api_client.select_header_content_type(['application/json'])
55
+ if !content_type.nil?
56
+ header_params['Content-Type'] = content_type
57
+ end
58
+
59
+ # form parameters
60
+ form_params = opts[:form_params] || {}
61
+
62
+ # http body (model)
63
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(batch_delete_projects_request)
64
+
65
+ # return_type
66
+ return_type = opts[:debug_return_type] || 'BatchDeleteResult'
67
+
68
+ # auth_names
69
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
70
+
71
+ new_options = opts.merge(
72
+ :operation => :"AssetsApi.batch_delete_assets",
73
+ :header_params => header_params,
74
+ :query_params => query_params,
75
+ :form_params => form_params,
76
+ :body => post_body,
77
+ :auth_names => auth_names,
78
+ :return_type => return_type
79
+ )
80
+
81
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
82
+ if @api_client.config.debugging
83
+ @api_client.config.logger.debug "API called: AssetsApi#batch_delete_assets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
84
+ end
85
+ return data, status_code, headers
86
+ end
87
+
88
+ # Register an uploaded asset
89
+ # Register an asset after it has been uploaded to Bunny Storage. Use `POST /v1/assets/upload-url` first.
90
+ # @param asset_create [AssetCreate]
91
+ # @param [Hash] opts the optional parameters
92
+ # @return [CreateAsset201Response]
93
+ def create_asset(asset_create, opts = {})
94
+ data, _status_code, _headers = create_asset_with_http_info(asset_create, opts)
95
+ data
96
+ end
97
+
98
+ # Register an uploaded asset
99
+ # Register an asset after it has been uploaded to Bunny Storage. Use &#x60;POST /v1/assets/upload-url&#x60; first.
100
+ # @param asset_create [AssetCreate]
101
+ # @param [Hash] opts the optional parameters
102
+ # @return [Array<(CreateAsset201Response, Integer, Hash)>] CreateAsset201Response data, response status code and response headers
103
+ def create_asset_with_http_info(asset_create, opts = {})
104
+ if @api_client.config.debugging
105
+ @api_client.config.logger.debug 'Calling API: AssetsApi.create_asset ...'
106
+ end
107
+ # verify the required parameter 'asset_create' is set
108
+ if @api_client.config.client_side_validation && asset_create.nil?
109
+ fail ArgumentError, "Missing the required parameter 'asset_create' when calling AssetsApi.create_asset"
110
+ end
111
+ # resource path
112
+ local_var_path = '/v1/assets'
113
+
114
+ # query parameters
115
+ query_params = opts[:query_params] || {}
116
+
117
+ # header parameters
118
+ header_params = opts[:header_params] || {}
119
+ # HTTP header 'Accept' (if needed)
120
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
121
+ # HTTP header 'Content-Type'
122
+ content_type = @api_client.select_header_content_type(['application/json'])
123
+ if !content_type.nil?
124
+ header_params['Content-Type'] = content_type
125
+ end
126
+
127
+ # form parameters
128
+ form_params = opts[:form_params] || {}
129
+
130
+ # http body (model)
131
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(asset_create)
132
+
133
+ # return_type
134
+ return_type = opts[:debug_return_type] || 'CreateAsset201Response'
135
+
136
+ # auth_names
137
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
138
+
139
+ new_options = opts.merge(
140
+ :operation => :"AssetsApi.create_asset",
141
+ :header_params => header_params,
142
+ :query_params => query_params,
143
+ :form_params => form_params,
144
+ :body => post_body,
145
+ :auth_names => auth_names,
146
+ :return_type => return_type
147
+ )
148
+
149
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
150
+ if @api_client.config.debugging
151
+ @api_client.config.logger.debug "API called: AssetsApi#create_asset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
152
+ end
153
+ return data, status_code, headers
154
+ end
155
+
156
+ # Delete an asset
157
+ # @param id [String]
158
+ # @param [Hash] opts the optional parameters
159
+ # @return [DeleteProject200Response]
160
+ def delete_asset(id, opts = {})
161
+ data, _status_code, _headers = delete_asset_with_http_info(id, opts)
162
+ data
163
+ end
164
+
165
+ # Delete an asset
166
+ # @param id [String]
167
+ # @param [Hash] opts the optional parameters
168
+ # @return [Array<(DeleteProject200Response, Integer, Hash)>] DeleteProject200Response data, response status code and response headers
169
+ def delete_asset_with_http_info(id, opts = {})
170
+ if @api_client.config.debugging
171
+ @api_client.config.logger.debug 'Calling API: AssetsApi.delete_asset ...'
172
+ end
173
+ # verify the required parameter 'id' is set
174
+ if @api_client.config.client_side_validation && id.nil?
175
+ fail ArgumentError, "Missing the required parameter 'id' when calling AssetsApi.delete_asset"
176
+ end
177
+ # resource path
178
+ local_var_path = '/v1/assets/{id}'.sub('{id}', CGI.escape(id.to_s))
179
+
180
+ # query parameters
181
+ query_params = opts[:query_params] || {}
182
+
183
+ # header parameters
184
+ header_params = opts[:header_params] || {}
185
+ # HTTP header 'Accept' (if needed)
186
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
187
+
188
+ # form parameters
189
+ form_params = opts[:form_params] || {}
190
+
191
+ # http body (model)
192
+ post_body = opts[:debug_body]
193
+
194
+ # return_type
195
+ return_type = opts[:debug_return_type] || 'DeleteProject200Response'
196
+
197
+ # auth_names
198
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
199
+
200
+ new_options = opts.merge(
201
+ :operation => :"AssetsApi.delete_asset",
202
+ :header_params => header_params,
203
+ :query_params => query_params,
204
+ :form_params => form_params,
205
+ :body => post_body,
206
+ :auth_names => auth_names,
207
+ :return_type => return_type
208
+ )
209
+
210
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
211
+ if @api_client.config.debugging
212
+ @api_client.config.logger.debug "API called: AssetsApi#delete_asset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
213
+ end
214
+ return data, status_code, headers
215
+ end
216
+
217
+ # Get a single asset
218
+ # @param id [String]
219
+ # @param [Hash] opts the optional parameters
220
+ # @return [CreateAsset201Response]
221
+ def get_asset(id, opts = {})
222
+ data, _status_code, _headers = get_asset_with_http_info(id, opts)
223
+ data
224
+ end
225
+
226
+ # Get a single asset
227
+ # @param id [String]
228
+ # @param [Hash] opts the optional parameters
229
+ # @return [Array<(CreateAsset201Response, Integer, Hash)>] CreateAsset201Response data, response status code and response headers
230
+ def get_asset_with_http_info(id, opts = {})
231
+ if @api_client.config.debugging
232
+ @api_client.config.logger.debug 'Calling API: AssetsApi.get_asset ...'
233
+ end
234
+ # verify the required parameter 'id' is set
235
+ if @api_client.config.client_side_validation && id.nil?
236
+ fail ArgumentError, "Missing the required parameter 'id' when calling AssetsApi.get_asset"
237
+ end
238
+ # resource path
239
+ local_var_path = '/v1/assets/{id}'.sub('{id}', CGI.escape(id.to_s))
240
+
241
+ # query parameters
242
+ query_params = opts[:query_params] || {}
243
+
244
+ # header parameters
245
+ header_params = opts[:header_params] || {}
246
+ # HTTP header 'Accept' (if needed)
247
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
248
+
249
+ # form parameters
250
+ form_params = opts[:form_params] || {}
251
+
252
+ # http body (model)
253
+ post_body = opts[:debug_body]
254
+
255
+ # return_type
256
+ return_type = opts[:debug_return_type] || 'CreateAsset201Response'
257
+
258
+ # auth_names
259
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
260
+
261
+ new_options = opts.merge(
262
+ :operation => :"AssetsApi.get_asset",
263
+ :header_params => header_params,
264
+ :query_params => query_params,
265
+ :form_params => form_params,
266
+ :body => post_body,
267
+ :auth_names => auth_names,
268
+ :return_type => return_type
269
+ )
270
+
271
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
272
+ if @api_client.config.debugging
273
+ @api_client.config.logger.debug "API called: AssetsApi#get_asset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
274
+ end
275
+ return data, status_code, headers
276
+ end
277
+
278
+ # Get a public asset URL
279
+ # Returns the public Bunny CDN URL for the asset.
280
+ # @param id [String]
281
+ # @param [Hash] opts the optional parameters
282
+ # @return [GetAssetSignedUrl200Response]
283
+ def get_asset_signed_url(id, opts = {})
284
+ data, _status_code, _headers = get_asset_signed_url_with_http_info(id, opts)
285
+ data
286
+ end
287
+
288
+ # Get a public asset URL
289
+ # Returns the public Bunny CDN URL for the asset.
290
+ # @param id [String]
291
+ # @param [Hash] opts the optional parameters
292
+ # @return [Array<(GetAssetSignedUrl200Response, Integer, Hash)>] GetAssetSignedUrl200Response data, response status code and response headers
293
+ def get_asset_signed_url_with_http_info(id, opts = {})
294
+ if @api_client.config.debugging
295
+ @api_client.config.logger.debug 'Calling API: AssetsApi.get_asset_signed_url ...'
296
+ end
297
+ # verify the required parameter 'id' is set
298
+ if @api_client.config.client_side_validation && id.nil?
299
+ fail ArgumentError, "Missing the required parameter 'id' when calling AssetsApi.get_asset_signed_url"
300
+ end
301
+ # resource path
302
+ local_var_path = '/v1/assets/{id}/signed-url'.sub('{id}', CGI.escape(id.to_s))
303
+
304
+ # query parameters
305
+ query_params = opts[:query_params] || {}
306
+
307
+ # header parameters
308
+ header_params = opts[:header_params] || {}
309
+ # HTTP header 'Accept' (if needed)
310
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
311
+
312
+ # form parameters
313
+ form_params = opts[:form_params] || {}
314
+
315
+ # http body (model)
316
+ post_body = opts[:debug_body]
317
+
318
+ # return_type
319
+ return_type = opts[:debug_return_type] || 'GetAssetSignedUrl200Response'
320
+
321
+ # auth_names
322
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
323
+
324
+ new_options = opts.merge(
325
+ :operation => :"AssetsApi.get_asset_signed_url",
326
+ :header_params => header_params,
327
+ :query_params => query_params,
328
+ :form_params => form_params,
329
+ :body => post_body,
330
+ :auth_names => auth_names,
331
+ :return_type => return_type
332
+ )
333
+
334
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
335
+ if @api_client.config.debugging
336
+ @api_client.config.logger.debug "API called: AssetsApi#get_asset_signed_url\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
337
+ end
338
+ return data, status_code, headers
339
+ end
340
+
341
+ # Get asset upload URL
342
+ # Returns the upload endpoint and Bunny Storage path for a new asset.
343
+ # @param get_asset_upload_url_request [GetAssetUploadUrlRequest]
344
+ # @param [Hash] opts the optional parameters
345
+ # @return [AssetUploadUrlResponse]
346
+ def get_asset_upload_url(get_asset_upload_url_request, opts = {})
347
+ data, _status_code, _headers = get_asset_upload_url_with_http_info(get_asset_upload_url_request, opts)
348
+ data
349
+ end
350
+
351
+ # Get asset upload URL
352
+ # Returns the upload endpoint and Bunny Storage path for a new asset.
353
+ # @param get_asset_upload_url_request [GetAssetUploadUrlRequest]
354
+ # @param [Hash] opts the optional parameters
355
+ # @return [Array<(AssetUploadUrlResponse, Integer, Hash)>] AssetUploadUrlResponse data, response status code and response headers
356
+ def get_asset_upload_url_with_http_info(get_asset_upload_url_request, opts = {})
357
+ if @api_client.config.debugging
358
+ @api_client.config.logger.debug 'Calling API: AssetsApi.get_asset_upload_url ...'
359
+ end
360
+ # verify the required parameter 'get_asset_upload_url_request' is set
361
+ if @api_client.config.client_side_validation && get_asset_upload_url_request.nil?
362
+ fail ArgumentError, "Missing the required parameter 'get_asset_upload_url_request' when calling AssetsApi.get_asset_upload_url"
363
+ end
364
+ # resource path
365
+ local_var_path = '/v1/assets/upload-url'
366
+
367
+ # query parameters
368
+ query_params = opts[:query_params] || {}
369
+
370
+ # header parameters
371
+ header_params = opts[:header_params] || {}
372
+ # HTTP header 'Accept' (if needed)
373
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
374
+ # HTTP header 'Content-Type'
375
+ content_type = @api_client.select_header_content_type(['application/json'])
376
+ if !content_type.nil?
377
+ header_params['Content-Type'] = content_type
378
+ end
379
+
380
+ # form parameters
381
+ form_params = opts[:form_params] || {}
382
+
383
+ # http body (model)
384
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(get_asset_upload_url_request)
385
+
386
+ # return_type
387
+ return_type = opts[:debug_return_type] || 'AssetUploadUrlResponse'
388
+
389
+ # auth_names
390
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
391
+
392
+ new_options = opts.merge(
393
+ :operation => :"AssetsApi.get_asset_upload_url",
394
+ :header_params => header_params,
395
+ :query_params => query_params,
396
+ :form_params => form_params,
397
+ :body => post_body,
398
+ :auth_names => auth_names,
399
+ :return_type => return_type
400
+ )
401
+
402
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
403
+ if @api_client.config.debugging
404
+ @api_client.config.logger.debug "API called: AssetsApi#get_asset_upload_url\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
405
+ end
406
+ return data, status_code, headers
407
+ end
408
+
409
+ # List workspace assets
410
+ # @param [Hash] opts the optional parameters
411
+ # @option opts [String] :type
412
+ # @option opts [String] :search
413
+ # @option opts [String] :sort_by (default to 'created_at')
414
+ # @option opts [String] :sort_order (default to 'desc')
415
+ # @option opts [Integer] :page (default to 1)
416
+ # @option opts [Integer] :limit (default to 25)
417
+ # @return [ListAssets200Response]
418
+ def list_assets(opts = {})
419
+ data, _status_code, _headers = list_assets_with_http_info(opts)
420
+ data
421
+ end
422
+
423
+ # List workspace assets
424
+ # @param [Hash] opts the optional parameters
425
+ # @option opts [String] :type
426
+ # @option opts [String] :search
427
+ # @option opts [String] :sort_by (default to 'created_at')
428
+ # @option opts [String] :sort_order (default to 'desc')
429
+ # @option opts [Integer] :page (default to 1)
430
+ # @option opts [Integer] :limit (default to 25)
431
+ # @return [Array<(ListAssets200Response, Integer, Hash)>] ListAssets200Response data, response status code and response headers
432
+ def list_assets_with_http_info(opts = {})
433
+ if @api_client.config.debugging
434
+ @api_client.config.logger.debug 'Calling API: AssetsApi.list_assets ...'
435
+ end
436
+ allowable_values = ["video", "audio", "image", "font"]
437
+ if @api_client.config.client_side_validation && opts[:'type'] && !allowable_values.include?(opts[:'type'])
438
+ fail ArgumentError, "invalid value for \"type\", must be one of #{allowable_values}"
439
+ end
440
+ allowable_values = ["created_at", "name", "type", "size_bytes", "duration"]
441
+ if @api_client.config.client_side_validation && opts[:'sort_by'] && !allowable_values.include?(opts[:'sort_by'])
442
+ fail ArgumentError, "invalid value for \"sort_by\", must be one of #{allowable_values}"
443
+ end
444
+ allowable_values = ["asc", "desc"]
445
+ if @api_client.config.client_side_validation && opts[:'sort_order'] && !allowable_values.include?(opts[:'sort_order'])
446
+ fail ArgumentError, "invalid value for \"sort_order\", must be one of #{allowable_values}"
447
+ end
448
+ # resource path
449
+ local_var_path = '/v1/assets'
450
+
451
+ # query parameters
452
+ query_params = opts[:query_params] || {}
453
+ query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
454
+ query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
455
+ query_params[:'sortBy'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?
456
+ query_params[:'sortOrder'] = opts[:'sort_order'] if !opts[:'sort_order'].nil?
457
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
458
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
459
+
460
+ # header parameters
461
+ header_params = opts[:header_params] || {}
462
+ # HTTP header 'Accept' (if needed)
463
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
464
+
465
+ # form parameters
466
+ form_params = opts[:form_params] || {}
467
+
468
+ # http body (model)
469
+ post_body = opts[:debug_body]
470
+
471
+ # return_type
472
+ return_type = opts[:debug_return_type] || 'ListAssets200Response'
473
+
474
+ # auth_names
475
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
476
+
477
+ new_options = opts.merge(
478
+ :operation => :"AssetsApi.list_assets",
479
+ :header_params => header_params,
480
+ :query_params => query_params,
481
+ :form_params => form_params,
482
+ :body => post_body,
483
+ :auth_names => auth_names,
484
+ :return_type => return_type
485
+ )
486
+
487
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
488
+ if @api_client.config.debugging
489
+ @api_client.config.logger.debug "API called: AssetsApi#list_assets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
490
+ end
491
+ return data, status_code, headers
492
+ end
493
+
494
+ # Proxy an asset through the API
495
+ # Streams the asset through the API so the browser can fetch it without relying on CDN CORS.
496
+ # @param id [String]
497
+ # @param [Hash] opts the optional parameters
498
+ # @return [File]
499
+ def proxy_asset(id, opts = {})
500
+ data, _status_code, _headers = proxy_asset_with_http_info(id, opts)
501
+ data
502
+ end
503
+
504
+ # Proxy an asset through the API
505
+ # Streams the asset through the API so the browser can fetch it without relying on CDN CORS.
506
+ # @param id [String]
507
+ # @param [Hash] opts the optional parameters
508
+ # @return [Array<(File, Integer, Hash)>] File data, response status code and response headers
509
+ def proxy_asset_with_http_info(id, opts = {})
510
+ if @api_client.config.debugging
511
+ @api_client.config.logger.debug 'Calling API: AssetsApi.proxy_asset ...'
512
+ end
513
+ # verify the required parameter 'id' is set
514
+ if @api_client.config.client_side_validation && id.nil?
515
+ fail ArgumentError, "Missing the required parameter 'id' when calling AssetsApi.proxy_asset"
516
+ end
517
+ # resource path
518
+ local_var_path = '/v1/assets/{id}/proxy'.sub('{id}', CGI.escape(id.to_s))
519
+
520
+ # query parameters
521
+ query_params = opts[:query_params] || {}
522
+
523
+ # header parameters
524
+ header_params = opts[:header_params] || {}
525
+ # HTTP header 'Accept' (if needed)
526
+ header_params['Accept'] = @api_client.select_header_accept(['application/octet-stream', 'application/json']) unless header_params['Accept']
527
+
528
+ # form parameters
529
+ form_params = opts[:form_params] || {}
530
+
531
+ # http body (model)
532
+ post_body = opts[:debug_body]
533
+
534
+ # return_type
535
+ return_type = opts[:debug_return_type] || 'File'
536
+
537
+ # auth_names
538
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
539
+
540
+ new_options = opts.merge(
541
+ :operation => :"AssetsApi.proxy_asset",
542
+ :header_params => header_params,
543
+ :query_params => query_params,
544
+ :form_params => form_params,
545
+ :body => post_body,
546
+ :auth_names => auth_names,
547
+ :return_type => return_type
548
+ )
549
+
550
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
551
+ if @api_client.config.debugging
552
+ @api_client.config.logger.debug "API called: AssetsApi#proxy_asset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
553
+ end
554
+ return data, status_code, headers
555
+ end
556
+
557
+ # Upload an asset file
558
+ # Receives a multipart/form-data file upload and forwards it to Bunny Storage.
559
+ # @param asset_id [String]
560
+ # @param file [File] Asset file (up to 2 GB).
561
+ # @param [Hash] opts the optional parameters
562
+ # @return [UploadAsset200Response]
563
+ def upload_asset(asset_id, file, opts = {})
564
+ data, _status_code, _headers = upload_asset_with_http_info(asset_id, file, opts)
565
+ data
566
+ end
567
+
568
+ # Upload an asset file
569
+ # Receives a multipart/form-data file upload and forwards it to Bunny Storage.
570
+ # @param asset_id [String]
571
+ # @param file [File] Asset file (up to 2 GB).
572
+ # @param [Hash] opts the optional parameters
573
+ # @return [Array<(UploadAsset200Response, Integer, Hash)>] UploadAsset200Response data, response status code and response headers
574
+ def upload_asset_with_http_info(asset_id, file, opts = {})
575
+ if @api_client.config.debugging
576
+ @api_client.config.logger.debug 'Calling API: AssetsApi.upload_asset ...'
577
+ end
578
+ # verify the required parameter 'asset_id' is set
579
+ if @api_client.config.client_side_validation && asset_id.nil?
580
+ fail ArgumentError, "Missing the required parameter 'asset_id' when calling AssetsApi.upload_asset"
581
+ end
582
+ # verify the required parameter 'file' is set
583
+ if @api_client.config.client_side_validation && file.nil?
584
+ fail ArgumentError, "Missing the required parameter 'file' when calling AssetsApi.upload_asset"
585
+ end
586
+ # resource path
587
+ local_var_path = '/v1/assets/{assetId}/upload'.sub('{assetId}', CGI.escape(asset_id.to_s))
588
+
589
+ # query parameters
590
+ query_params = opts[:query_params] || {}
591
+
592
+ # header parameters
593
+ header_params = opts[:header_params] || {}
594
+ # HTTP header 'Accept' (if needed)
595
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
596
+ # HTTP header 'Content-Type'
597
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
598
+ if !content_type.nil?
599
+ header_params['Content-Type'] = content_type
600
+ end
601
+
602
+ # form parameters
603
+ form_params = opts[:form_params] || {}
604
+ form_params['file'] = file
605
+
606
+ # http body (model)
607
+ post_body = opts[:debug_body]
608
+
609
+ # return_type
610
+ return_type = opts[:debug_return_type] || 'UploadAsset200Response'
611
+
612
+ # auth_names
613
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
614
+
615
+ new_options = opts.merge(
616
+ :operation => :"AssetsApi.upload_asset",
617
+ :header_params => header_params,
618
+ :query_params => query_params,
619
+ :form_params => form_params,
620
+ :body => post_body,
621
+ :auth_names => auth_names,
622
+ :return_type => return_type
623
+ )
624
+
625
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
626
+ if @api_client.config.debugging
627
+ @api_client.config.logger.debug "API called: AssetsApi#upload_asset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
628
+ end
629
+ return data, status_code, headers
630
+ end
631
+ end
632
+ end