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,614 @@
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 ProjectsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Bulk delete projects
23
+ # @param batch_delete_projects_request [BatchDeleteProjectsRequest]
24
+ # @param [Hash] opts the optional parameters
25
+ # @return [BatchDeleteResult]
26
+ def batch_delete_projects(batch_delete_projects_request, opts = {})
27
+ data, _status_code, _headers = batch_delete_projects_with_http_info(batch_delete_projects_request, opts)
28
+ data
29
+ end
30
+
31
+ # Bulk delete projects
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_projects_with_http_info(batch_delete_projects_request, opts = {})
36
+ if @api_client.config.debugging
37
+ @api_client.config.logger.debug 'Calling API: ProjectsApi.batch_delete_projects ...'
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 ProjectsApi.batch_delete_projects"
42
+ end
43
+ # resource path
44
+ local_var_path = '/v1/projects/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 => :"ProjectsApi.batch_delete_projects",
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: ProjectsApi#batch_delete_projects\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
84
+ end
85
+ return data, status_code, headers
86
+ end
87
+
88
+ # Create a project
89
+ # @param project_create [ProjectCreate]
90
+ # @param [Hash] opts the optional parameters
91
+ # @return [CreateProject200Response]
92
+ def create_project(project_create, opts = {})
93
+ data, _status_code, _headers = create_project_with_http_info(project_create, opts)
94
+ data
95
+ end
96
+
97
+ # Create a project
98
+ # @param project_create [ProjectCreate]
99
+ # @param [Hash] opts the optional parameters
100
+ # @return [Array<(CreateProject200Response, Integer, Hash)>] CreateProject200Response data, response status code and response headers
101
+ def create_project_with_http_info(project_create, opts = {})
102
+ if @api_client.config.debugging
103
+ @api_client.config.logger.debug 'Calling API: ProjectsApi.create_project ...'
104
+ end
105
+ # verify the required parameter 'project_create' is set
106
+ if @api_client.config.client_side_validation && project_create.nil?
107
+ fail ArgumentError, "Missing the required parameter 'project_create' when calling ProjectsApi.create_project"
108
+ end
109
+ # resource path
110
+ local_var_path = '/v1/projects'
111
+
112
+ # query parameters
113
+ query_params = opts[:query_params] || {}
114
+
115
+ # header parameters
116
+ header_params = opts[:header_params] || {}
117
+ # HTTP header 'Accept' (if needed)
118
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
119
+ # HTTP header 'Content-Type'
120
+ content_type = @api_client.select_header_content_type(['application/json'])
121
+ if !content_type.nil?
122
+ header_params['Content-Type'] = content_type
123
+ end
124
+
125
+ # form parameters
126
+ form_params = opts[:form_params] || {}
127
+
128
+ # http body (model)
129
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(project_create)
130
+
131
+ # return_type
132
+ return_type = opts[:debug_return_type] || 'CreateProject200Response'
133
+
134
+ # auth_names
135
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
136
+
137
+ new_options = opts.merge(
138
+ :operation => :"ProjectsApi.create_project",
139
+ :header_params => header_params,
140
+ :query_params => query_params,
141
+ :form_params => form_params,
142
+ :body => post_body,
143
+ :auth_names => auth_names,
144
+ :return_type => return_type
145
+ )
146
+
147
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
148
+ if @api_client.config.debugging
149
+ @api_client.config.logger.debug "API called: ProjectsApi#create_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
150
+ end
151
+ return data, status_code, headers
152
+ end
153
+
154
+ # Delete a project
155
+ # @param id [String]
156
+ # @param [Hash] opts the optional parameters
157
+ # @return [DeleteProject200Response]
158
+ def delete_project(id, opts = {})
159
+ data, _status_code, _headers = delete_project_with_http_info(id, opts)
160
+ data
161
+ end
162
+
163
+ # Delete a project
164
+ # @param id [String]
165
+ # @param [Hash] opts the optional parameters
166
+ # @return [Array<(DeleteProject200Response, Integer, Hash)>] DeleteProject200Response data, response status code and response headers
167
+ def delete_project_with_http_info(id, opts = {})
168
+ if @api_client.config.debugging
169
+ @api_client.config.logger.debug 'Calling API: ProjectsApi.delete_project ...'
170
+ end
171
+ # verify the required parameter 'id' is set
172
+ if @api_client.config.client_side_validation && id.nil?
173
+ fail ArgumentError, "Missing the required parameter 'id' when calling ProjectsApi.delete_project"
174
+ end
175
+ # resource path
176
+ local_var_path = '/v1/projects/{id}'.sub('{id}', CGI.escape(id.to_s))
177
+
178
+ # query parameters
179
+ query_params = opts[:query_params] || {}
180
+
181
+ # header parameters
182
+ header_params = opts[:header_params] || {}
183
+ # HTTP header 'Accept' (if needed)
184
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
185
+
186
+ # form parameters
187
+ form_params = opts[:form_params] || {}
188
+
189
+ # http body (model)
190
+ post_body = opts[:debug_body]
191
+
192
+ # return_type
193
+ return_type = opts[:debug_return_type] || 'DeleteProject200Response'
194
+
195
+ # auth_names
196
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
197
+
198
+ new_options = opts.merge(
199
+ :operation => :"ProjectsApi.delete_project",
200
+ :header_params => header_params,
201
+ :query_params => query_params,
202
+ :form_params => form_params,
203
+ :body => post_body,
204
+ :auth_names => auth_names,
205
+ :return_type => return_type
206
+ )
207
+
208
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
209
+ if @api_client.config.debugging
210
+ @api_client.config.logger.debug "API called: ProjectsApi#delete_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
211
+ end
212
+ return data, status_code, headers
213
+ end
214
+
215
+ # Duplicate a project
216
+ # @param id [String]
217
+ # @param [Hash] opts the optional parameters
218
+ # @return [CreateProject200Response]
219
+ def duplicate_project(id, opts = {})
220
+ data, _status_code, _headers = duplicate_project_with_http_info(id, opts)
221
+ data
222
+ end
223
+
224
+ # Duplicate a project
225
+ # @param id [String]
226
+ # @param [Hash] opts the optional parameters
227
+ # @return [Array<(CreateProject200Response, Integer, Hash)>] CreateProject200Response data, response status code and response headers
228
+ def duplicate_project_with_http_info(id, opts = {})
229
+ if @api_client.config.debugging
230
+ @api_client.config.logger.debug 'Calling API: ProjectsApi.duplicate_project ...'
231
+ end
232
+ # verify the required parameter 'id' is set
233
+ if @api_client.config.client_side_validation && id.nil?
234
+ fail ArgumentError, "Missing the required parameter 'id' when calling ProjectsApi.duplicate_project"
235
+ end
236
+ # resource path
237
+ local_var_path = '/v1/projects/{id}/duplicate'.sub('{id}', CGI.escape(id.to_s))
238
+
239
+ # query parameters
240
+ query_params = opts[:query_params] || {}
241
+
242
+ # header parameters
243
+ header_params = opts[:header_params] || {}
244
+ # HTTP header 'Accept' (if needed)
245
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
246
+
247
+ # form parameters
248
+ form_params = opts[:form_params] || {}
249
+
250
+ # http body (model)
251
+ post_body = opts[:debug_body]
252
+
253
+ # return_type
254
+ return_type = opts[:debug_return_type] || 'CreateProject200Response'
255
+
256
+ # auth_names
257
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
258
+
259
+ new_options = opts.merge(
260
+ :operation => :"ProjectsApi.duplicate_project",
261
+ :header_params => header_params,
262
+ :query_params => query_params,
263
+ :form_params => form_params,
264
+ :body => post_body,
265
+ :auth_names => auth_names,
266
+ :return_type => return_type
267
+ )
268
+
269
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
270
+ if @api_client.config.debugging
271
+ @api_client.config.logger.debug "API called: ProjectsApi#duplicate_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
272
+ end
273
+ return data, status_code, headers
274
+ end
275
+
276
+ # Get a project
277
+ # @param id [String]
278
+ # @param [Hash] opts the optional parameters
279
+ # @return [GetProject200Response]
280
+ def get_project(id, opts = {})
281
+ data, _status_code, _headers = get_project_with_http_info(id, opts)
282
+ data
283
+ end
284
+
285
+ # Get a project
286
+ # @param id [String]
287
+ # @param [Hash] opts the optional parameters
288
+ # @return [Array<(GetProject200Response, Integer, Hash)>] GetProject200Response data, response status code and response headers
289
+ def get_project_with_http_info(id, opts = {})
290
+ if @api_client.config.debugging
291
+ @api_client.config.logger.debug 'Calling API: ProjectsApi.get_project ...'
292
+ end
293
+ # verify the required parameter 'id' is set
294
+ if @api_client.config.client_side_validation && id.nil?
295
+ fail ArgumentError, "Missing the required parameter 'id' when calling ProjectsApi.get_project"
296
+ end
297
+ # resource path
298
+ local_var_path = '/v1/projects/{id}'.sub('{id}', CGI.escape(id.to_s))
299
+
300
+ # query parameters
301
+ query_params = opts[:query_params] || {}
302
+
303
+ # header parameters
304
+ header_params = opts[:header_params] || {}
305
+ # HTTP header 'Accept' (if needed)
306
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
307
+
308
+ # form parameters
309
+ form_params = opts[:form_params] || {}
310
+
311
+ # http body (model)
312
+ post_body = opts[:debug_body]
313
+
314
+ # return_type
315
+ return_type = opts[:debug_return_type] || 'GetProject200Response'
316
+
317
+ # auth_names
318
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
319
+
320
+ new_options = opts.merge(
321
+ :operation => :"ProjectsApi.get_project",
322
+ :header_params => header_params,
323
+ :query_params => query_params,
324
+ :form_params => form_params,
325
+ :body => post_body,
326
+ :auth_names => auth_names,
327
+ :return_type => return_type
328
+ )
329
+
330
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
331
+ if @api_client.config.debugging
332
+ @api_client.config.logger.debug "API called: ProjectsApi#get_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
333
+ end
334
+ return data, status_code, headers
335
+ end
336
+
337
+ # Get total project count
338
+ # @param [Hash] opts the optional parameters
339
+ # @return [GetProjectStats200Response]
340
+ def get_project_stats(opts = {})
341
+ data, _status_code, _headers = get_project_stats_with_http_info(opts)
342
+ data
343
+ end
344
+
345
+ # Get total project count
346
+ # @param [Hash] opts the optional parameters
347
+ # @return [Array<(GetProjectStats200Response, Integer, Hash)>] GetProjectStats200Response data, response status code and response headers
348
+ def get_project_stats_with_http_info(opts = {})
349
+ if @api_client.config.debugging
350
+ @api_client.config.logger.debug 'Calling API: ProjectsApi.get_project_stats ...'
351
+ end
352
+ # resource path
353
+ local_var_path = '/v1/projects/stats'
354
+
355
+ # query parameters
356
+ query_params = opts[:query_params] || {}
357
+
358
+ # header parameters
359
+ header_params = opts[:header_params] || {}
360
+ # HTTP header 'Accept' (if needed)
361
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
362
+
363
+ # form parameters
364
+ form_params = opts[:form_params] || {}
365
+
366
+ # http body (model)
367
+ post_body = opts[:debug_body]
368
+
369
+ # return_type
370
+ return_type = opts[:debug_return_type] || 'GetProjectStats200Response'
371
+
372
+ # auth_names
373
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
374
+
375
+ new_options = opts.merge(
376
+ :operation => :"ProjectsApi.get_project_stats",
377
+ :header_params => header_params,
378
+ :query_params => query_params,
379
+ :form_params => form_params,
380
+ :body => post_body,
381
+ :auth_names => auth_names,
382
+ :return_type => return_type
383
+ )
384
+
385
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
386
+ if @api_client.config.debugging
387
+ @api_client.config.logger.debug "API called: ProjectsApi#get_project_stats\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
388
+ end
389
+ return data, status_code, headers
390
+ end
391
+
392
+ # List user projects
393
+ # @param [Hash] opts the optional parameters
394
+ # @option opts [Integer] :page (default to 1)
395
+ # @option opts [Integer] :limit (default to 25)
396
+ # @option opts [String] :sort_by (default to 'updated_at')
397
+ # @option opts [String] :sort_order (default to 'desc')
398
+ # @option opts [String] :search
399
+ # @return [ListProjects200Response]
400
+ def list_projects(opts = {})
401
+ data, _status_code, _headers = list_projects_with_http_info(opts)
402
+ data
403
+ end
404
+
405
+ # List user projects
406
+ # @param [Hash] opts the optional parameters
407
+ # @option opts [Integer] :page (default to 1)
408
+ # @option opts [Integer] :limit (default to 25)
409
+ # @option opts [String] :sort_by (default to 'updated_at')
410
+ # @option opts [String] :sort_order (default to 'desc')
411
+ # @option opts [String] :search
412
+ # @return [Array<(ListProjects200Response, Integer, Hash)>] ListProjects200Response data, response status code and response headers
413
+ def list_projects_with_http_info(opts = {})
414
+ if @api_client.config.debugging
415
+ @api_client.config.logger.debug 'Calling API: ProjectsApi.list_projects ...'
416
+ end
417
+ allowable_values = ["created_at", "updated_at", "name", "duration"]
418
+ if @api_client.config.client_side_validation && opts[:'sort_by'] && !allowable_values.include?(opts[:'sort_by'])
419
+ fail ArgumentError, "invalid value for \"sort_by\", must be one of #{allowable_values}"
420
+ end
421
+ allowable_values = ["asc", "desc"]
422
+ if @api_client.config.client_side_validation && opts[:'sort_order'] && !allowable_values.include?(opts[:'sort_order'])
423
+ fail ArgumentError, "invalid value for \"sort_order\", must be one of #{allowable_values}"
424
+ end
425
+ # resource path
426
+ local_var_path = '/v1/projects'
427
+
428
+ # query parameters
429
+ query_params = opts[:query_params] || {}
430
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
431
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
432
+ query_params[:'sortBy'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?
433
+ query_params[:'sortOrder'] = opts[:'sort_order'] if !opts[:'sort_order'].nil?
434
+ query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
435
+
436
+ # header parameters
437
+ header_params = opts[:header_params] || {}
438
+ # HTTP header 'Accept' (if needed)
439
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
440
+
441
+ # form parameters
442
+ form_params = opts[:form_params] || {}
443
+
444
+ # http body (model)
445
+ post_body = opts[:debug_body]
446
+
447
+ # return_type
448
+ return_type = opts[:debug_return_type] || 'ListProjects200Response'
449
+
450
+ # auth_names
451
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
452
+
453
+ new_options = opts.merge(
454
+ :operation => :"ProjectsApi.list_projects",
455
+ :header_params => header_params,
456
+ :query_params => query_params,
457
+ :form_params => form_params,
458
+ :body => post_body,
459
+ :auth_names => auth_names,
460
+ :return_type => return_type
461
+ )
462
+
463
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
464
+ if @api_client.config.debugging
465
+ @api_client.config.logger.debug "API called: ProjectsApi#list_projects\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
466
+ end
467
+ return data, status_code, headers
468
+ end
469
+
470
+ # Partially update a project
471
+ # @param id [String]
472
+ # @param project_update [ProjectUpdate]
473
+ # @param [Hash] opts the optional parameters
474
+ # @return [CreateProject200Response]
475
+ def patch_project(id, project_update, opts = {})
476
+ data, _status_code, _headers = patch_project_with_http_info(id, project_update, opts)
477
+ data
478
+ end
479
+
480
+ # Partially update a project
481
+ # @param id [String]
482
+ # @param project_update [ProjectUpdate]
483
+ # @param [Hash] opts the optional parameters
484
+ # @return [Array<(CreateProject200Response, Integer, Hash)>] CreateProject200Response data, response status code and response headers
485
+ def patch_project_with_http_info(id, project_update, opts = {})
486
+ if @api_client.config.debugging
487
+ @api_client.config.logger.debug 'Calling API: ProjectsApi.patch_project ...'
488
+ end
489
+ # verify the required parameter 'id' is set
490
+ if @api_client.config.client_side_validation && id.nil?
491
+ fail ArgumentError, "Missing the required parameter 'id' when calling ProjectsApi.patch_project"
492
+ end
493
+ # verify the required parameter 'project_update' is set
494
+ if @api_client.config.client_side_validation && project_update.nil?
495
+ fail ArgumentError, "Missing the required parameter 'project_update' when calling ProjectsApi.patch_project"
496
+ end
497
+ # resource path
498
+ local_var_path = '/v1/projects/{id}'.sub('{id}', CGI.escape(id.to_s))
499
+
500
+ # query parameters
501
+ query_params = opts[:query_params] || {}
502
+
503
+ # header parameters
504
+ header_params = opts[:header_params] || {}
505
+ # HTTP header 'Accept' (if needed)
506
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
507
+ # HTTP header 'Content-Type'
508
+ content_type = @api_client.select_header_content_type(['application/json'])
509
+ if !content_type.nil?
510
+ header_params['Content-Type'] = content_type
511
+ end
512
+
513
+ # form parameters
514
+ form_params = opts[:form_params] || {}
515
+
516
+ # http body (model)
517
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(project_update)
518
+
519
+ # return_type
520
+ return_type = opts[:debug_return_type] || 'CreateProject200Response'
521
+
522
+ # auth_names
523
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
524
+
525
+ new_options = opts.merge(
526
+ :operation => :"ProjectsApi.patch_project",
527
+ :header_params => header_params,
528
+ :query_params => query_params,
529
+ :form_params => form_params,
530
+ :body => post_body,
531
+ :auth_names => auth_names,
532
+ :return_type => return_type
533
+ )
534
+
535
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
536
+ if @api_client.config.debugging
537
+ @api_client.config.logger.debug "API called: ProjectsApi#patch_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
538
+ end
539
+ return data, status_code, headers
540
+ end
541
+
542
+ # Update a project
543
+ # @param id [String]
544
+ # @param project_update [ProjectUpdate]
545
+ # @param [Hash] opts the optional parameters
546
+ # @return [CreateProject200Response]
547
+ def update_project(id, project_update, opts = {})
548
+ data, _status_code, _headers = update_project_with_http_info(id, project_update, opts)
549
+ data
550
+ end
551
+
552
+ # Update a project
553
+ # @param id [String]
554
+ # @param project_update [ProjectUpdate]
555
+ # @param [Hash] opts the optional parameters
556
+ # @return [Array<(CreateProject200Response, Integer, Hash)>] CreateProject200Response data, response status code and response headers
557
+ def update_project_with_http_info(id, project_update, opts = {})
558
+ if @api_client.config.debugging
559
+ @api_client.config.logger.debug 'Calling API: ProjectsApi.update_project ...'
560
+ end
561
+ # verify the required parameter 'id' is set
562
+ if @api_client.config.client_side_validation && id.nil?
563
+ fail ArgumentError, "Missing the required parameter 'id' when calling ProjectsApi.update_project"
564
+ end
565
+ # verify the required parameter 'project_update' is set
566
+ if @api_client.config.client_side_validation && project_update.nil?
567
+ fail ArgumentError, "Missing the required parameter 'project_update' when calling ProjectsApi.update_project"
568
+ end
569
+ # resource path
570
+ local_var_path = '/v1/projects/{id}'.sub('{id}', CGI.escape(id.to_s))
571
+
572
+ # query parameters
573
+ query_params = opts[:query_params] || {}
574
+
575
+ # header parameters
576
+ header_params = opts[:header_params] || {}
577
+ # HTTP header 'Accept' (if needed)
578
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
579
+ # HTTP header 'Content-Type'
580
+ content_type = @api_client.select_header_content_type(['application/json'])
581
+ if !content_type.nil?
582
+ header_params['Content-Type'] = content_type
583
+ end
584
+
585
+ # form parameters
586
+ form_params = opts[:form_params] || {}
587
+
588
+ # http body (model)
589
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(project_update)
590
+
591
+ # return_type
592
+ return_type = opts[:debug_return_type] || 'CreateProject200Response'
593
+
594
+ # auth_names
595
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
596
+
597
+ new_options = opts.merge(
598
+ :operation => :"ProjectsApi.update_project",
599
+ :header_params => header_params,
600
+ :query_params => query_params,
601
+ :form_params => form_params,
602
+ :body => post_body,
603
+ :auth_names => auth_names,
604
+ :return_type => return_type
605
+ )
606
+
607
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
608
+ if @api_client.config.debugging
609
+ @api_client.config.logger.debug "API called: ProjectsApi#update_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
610
+ end
611
+ return data, status_code, headers
612
+ end
613
+ end
614
+ end